Об авторе

Михаил Коротеев - руководитель образовательной программы департамента анализа данных и машинного обучения Финансового университета при правительстве Российской Федерации, ведущий преподаватель машинного обучения, кандидат экономических наук. Этот учебник вобрал в себя опыт более чем пяти лет преподавания дисциплин, связанных с интеллектуальным анализом данных и машинным обучением, а также опыт практической деятельности в разработке систем машинного обучения для разных сфер экономики и финансов.

Автор этой книги - специалист на стыке математики, программирования и экономики. Под его руководством в Финансовом университете реализуется ряд проектов по разработке прикладных систем искусственного интеллекта. Все практические примеры и отсылки, рассмотренные в книге взяты из личного опыта автора разработки практических проектов в сфере машинного обучения и искусственного интеллекта.

Для кого эта книга

Сейчас существует огромное количество учебных и справочных материалов по машинному обучению и искусственному интеллекту. Это, конечно, связано с большой популярностью этой темы в цифровой среде. Тысячи разных курсов обещают научить строить интеллектуальные системы, пользоваться популярными библиотеками и инструментами обучения крутых нейронных сетей. Но зачастую в погоне за прикладной ценностью такие материалы лишь поверхностно затрагивают основные идеи машинного обучения, базовые термины, а самое главное - рассуждения и обоснования, почему все работает именно так.

Эта книга будет полезна всем, кто начинает изучать машинное обучение и столкнулся с огромным количеством бессистемной информации, кода, математических выкладок, библиотек и инструментов. В таких ситуациях очень полезен некий план обучения, roadmap, навигатор различных тем и разделов. Эта книга представляет собой первые шаги по такой дорожной карте. На основе базовых понятий, определений и примеров, которые разобраны в этом учебнике можно продолжать изучение более продвинутых тем машинного обучения, но уже имея фундаментальное представление о ландшафте наук о данных и машинного обучения.

Данный учебник концентрируется на общих понятиях машинного обучения и уделяет больше всего внимания изучению классических (не нейросетевых) моделей обучения с учителем. Это самая базовая отрасль машинного обучения, с которой все начинают знакомство с этим сложным миром.

В этой книге вы не найдете сложных математических выкладок и доказательств, которые лежат в основе моделей и алгоритмов машинного обучения. Хотя это, несомненно, очень важно и нужно понимать профессиональному специалисту в анализе данных, часто преждевременное погружение в математические детали отвлекает от главного - понимания принципов работы основных алгоритмов, причин, почему они устроены именно так, а не иначе. При обучении студентов машинному обучению именно это - самая важная часть: объяснить, добиться понимания механизмов работы базовых алгоритмов и моделей. Если эта книга достигнет своей цели, то после ее прочтения вы сможете с уверенностью понимать базовые принципы, на которых держится машинное обучение как отдельная дисциплина. А после этого глубокое изучение математики становится гораздо более простым занятием, потому что ложиться на подготовленную почву.

Нет в этой книге и подробного справочника по пользованию какой-то определенной библиотекой машинного обучения. Писать такие книги - дело неблагодарное и бесполезное только потому, что они будут устаревать быстрее, чем успевать выходить. С задачей описания конкретных инструментов гораздо лучше справится официальная документация к соответствующим библиотекам. Благо, она есть, очень актуальная, полезная и понятная.

При этом здесь вы найдете и примеры кода, и формулы, которые необходимы для пояснения тех или иных принципов и механизмов. Для полного освоения материала данного учебника читателю пригодятся знания основ программирования на Python, самых базовых вещей из математического анализа и теории вероятностей. Но даже не строго обязательно. Там, где понимание математических основ принципиально важно, даны необходимые пояснения (порой чересчур излишние для искушенного читателя). А примеры программного кода можно просто пропустить.

В среднем учебник ориентируется на уровень студента колледжа по информационным специальностям или на студента младших курсов высшего учебного заведения. Учебник соответствует федеральным государственным образовательным стандартам среднего профессионального образования по направлениям подготовки “Программирование в компьютерных системах” и “Информационные системы и программирование”, а также федеральным государственным образовательным стандартам высшего образования по направлениям подготовки бакалавриата “Прикладная математика и информатика”, “Прикладная информатика”, “Математика и компьютерные науки” и “Программная инженерия”.

Условные обозначения

1
2
# В книге будет очень много примеров на языке программирования Python.
print("Для удобства они выделены в блоки с подсветкой синтаксиса.")

Так в книге будут обозначаться определения, или ключевые идеи, которые стоит запомнить особенно тщательно.

Таким цветом выделяются пояснения, выходящие за рамки основного курса, и отступления от темы, которые могут потребовать дополнительного изучения.

Так будем обозначать критически важные моменты, без учета которых все будет работать неправильно, или типичные ошибки, которые совершают начинающие.

В конце каждой главы так будут обозначаться тезисные выводы, краткое изложение основных идей главы. Это будет полезно для повторения материала или подготовки к занятиям и экзаменам.

Все иллюстрации в этой книге подготовлены автором с использованием свободно распространяемых библиотек matplotlib, seaborn, yellowbrick, средств визуализации mermaid и Dia.

Благодарности

Эта книга была бы невозможна без совместной работы большого количества людей, работающих вместе над обучением студентов машинному обучению. Автор выражает благодарности своим коллегам и руководителям: Владимиру Игоревичу Соловьеву, Вадиму Геннадьевичу Феклину, Сергею Вячеславовичу Макрушину, благодаря которым я посвятил себя преподаванию этой интересной области человеческого знания.

Отдельных благодарностей заслуживают все мои коллеги, которые в разные годы помогали мне в ведении таких дисциплин как “Машинное обучение”, “Технологии анализа данных и машинное обучение”, “Технологии обработки больших данных”, и позволяли ежегодно совершенствовать и дополнять программы этих курсов.

Особенно хочу подчеркнуть, что этот учебник был бы невозможен без многолетнего преподавания машинного обучения студентам Финансового университета, которым я также выражаю свою признательность за поддержку, постоянную обратную связь, благодаря которой и родился этот курс.

Введение

Введение