Машинное обучение — с чего начинать программисту?
===================================================

 Друзья, заинтересовался с недавнего времени машинным обучением. Математической подготовки 9 классов школы (той, которую более-менее помню). Начал нахрапом сразу штурмовать книги, курсы и видео по соответствующим тематикам, но уперся в нехватку мат. подготовки. Понял, нарыл кучу ресурсов и уроков вышмату. И сейчас сижу, не знаю с какой стороны подойти.  

Знающие люди, подскажите, пожалуйста, какие именно разделы в вышмате нужны на первых порах для взлета.  

Спасибо. 

 На первых порах нужно следующие:  
* Умение работы с матрицами. Это их сложение и умножение. Понимание что такое диагональная, обратная и транспонированная матрица. Определители, базы и т.д. в начале не нужны. Мой совет - взять задачник по линейной алгебре и решить примеров 10 по этим темам.
* Понимание что такое производная на уровне "тангенс угла наклона касательной в точке". Неплохо было бы понять что такое градиент, так как половина обучающих алгоритмов на нем основано.
* Из теории вероятности полезны основные понятия, а также совместная и условные вероятности. Ну и знать что такое формула Байеса.
* Ну и статистика. Это распределения (самое важное - это понять что такое распределение Гаусса), знание что такое математическое ожидание, дисперсия (или стандартное отклонение) ну и понимание что такое плотность распределения вероятности.

  
  

По линейной алгебре и производным могу посоветовать "Вся высшая математика Том I - Краснов М., Киселев А., Макаренко Г., Шакин Е., Заляпин В". Но там много лишнего для начинающего.   

По статистике и теории вероятности могу посоветовать "элементарный курс теории вероятностей и математической статистики - А. Бородин" до 100-й страницы будет достаточно.  

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

В некоторых книгах по ML все эти темы затрагиваются. Могу посоветовать Python Machine Learning (Sebastian Raschka). А если есть проблемы с английским языком - Построение систем машинноrо обучения на языке Python - Луис Педро Коэльо, Вилли Ричарт. 

 По поводу математики, думаю полезным будут следующие курсы:  

- дискретная математика  

- математическая статистика  

- теория вероятностей  

- численные методы  

- методы математического моделирования  

- линейная алгебра  
  

Из программирования:  

- алгоритмы и структуры данных  

- теория графов  

- нейронные сети  

- компьютерная графика (т.к. машинное обучение и нейронные сети в последнее время часто используют именно в компьютерном зрении) 

[Вот довольно неплохой источник информации](https://unsupervisedmethods.com/cheat-sheet-of-machine-learning-and-python-and-math-cheat-sheets-a4afe4e791b6) (особенно, если вы планируете работать с Python).   

Конкретно по математике смотрите ближе к концу раздел **Math**. 

 Список книг, видео и курсов по машинному обучению и математике, всё на русском языке. Большая, качественная подборка. Почти все pdf'ки книг гуглятся.  

<https://ru.stackoverflow.com/a/683632/1084> 

 Курсеру, в частности Andrew Ng, не рекомендую, так как сначала все более-менее, но чем дальше, тем меньше он объясняет и становится непонятно, не столько что и как, сколько зачем.  
  

Мне нравятся лекции Воронцова <https://www.youtube.com/watch?v=qLBkB4sMztk>  

где-то также можно скачать тексты лекций, отлично дополняют друг друга, все становится более-менее понятно. 

 Начните с курсеры. Как ни банально. Отличный курс от Эндрю Ына - <https://www.coursera.org/learn/machine-learning>  
  

Неплохой, на мой взгляд, курс от ВШЭ и Яндекса, там используется стандартные питоновские либы [https://www.coursera.org/learn/vvedenie-mashinnoe-...](https://www.coursera.org/learn/vvedenie-mashinnoe-obuchenie)  
  

Есть цикл курсов от того же Яндекса и МФТИ, но его я не прошел полностью, только начинал. Он мне кажется каким-то менее сбалансированным, чем озвученные.  

[https://www.coursera.org/specializations/machine-l...](https://www.coursera.org/specializations/machine-learning-data-analysis)  
  

А потом практика. Я перестал интересоваться машинным обучением, потому что не было реальных проектов с его примененеием. Решать задачки на Kaggle и аналогичным ресурсам - мне неинтересно. 

 Статья не новая, но вполне может помочь сориентироваться:  

<https://habrahabr.ru/company/mlclass/blog/252743/>  
  

В любом случае можно написать автору и получить больше инфо по этому вопросу. Удачи" 

 Будет полезно следить за новостями и новыми разработками в сфере машинного обучения, ИИ и нейросетей. В группе <https://vk.com/neural_nets> и канале <https://t.me/aichannel> в телеграме каждый день публикуют новости и статьи, подборки учебников. Попробуйте посмотреть там.