За последние несколько месяцев несколько человек связались со мной по поводу своего энтузиазма по поводу того, чтобы войти в мир науки о данных и использовать методы машинного обучения (ML) для исследования статистических закономерностей и создания безупречных продуктов, основанных на данных. Однако я заметил, что некоторым на самом деле не хватает математической интуиции и основы для получения полезных результатов. Это основная причина, по которой я решил написать этот пост в блоге. В последнее время наблюдается рост количества простых в использовании пакетов машинного и глубокого обучения, таких как scikit-learn, Weka, Tensorflow, R-caret и т. Д. Теория машинного обучения - это Область, которая пересекает статистические, вероятностные, компьютерные и алгоритмические аспекты, возникающие в результате итеративного обучения на основе данных и поиска скрытых идей, которые можно использовать для создания интеллектуальных приложений. Несмотря на огромные возможности машинного и глубокого обучения, глубокое математическое понимание многих из этих методов необходимо для хорошего понимания внутренней работы алгоритмов и получения хороших результатов.

Зачем беспокоиться о математике?

Есть много причин, по которым математика машинного обучения важна, и я выделю некоторые из них ниже:

  1. Выбор правильного алгоритма, который включает рассмотрение точности, времени обучения, сложности модели, количества параметров и количества функций.
  2. Выбор настроек параметров и стратегий проверки.
  3. Выявление недостаточного и переоборудования путем понимания компромисса смещения и отклонения.
  4. Оценка правильного доверительного интервала и неопределенности.

Какой уровень математики вам нужен?

Главный вопрос при попытке понять междисциплинарную область, такую ​​как машинное обучение, - это количество необходимых математических операций и уровень математики, необходимый для понимания этих методов. Ответ на этот вопрос многомерен и зависит от уровня и интереса человека. Исследования математических формулировок и теоретического развития машинного обучения продолжаются, и некоторые исследователи работают над более продвинутыми методами. Я расскажу о том, что я считаю минимальным уровнем математики, необходимым для ученого / инженера по машинному обучению, и о важности каждой математической концепции.

  1. Линейная алгебра: коллега Скайлер Спикман недавно сказал, что Линейная алгебра - это математика 21 века, и я полностью согласен с этим утверждением. В ML линейная алгебра встречается повсюду. Такие темы, как анализ главных компонентов (PCA), разложение по сингулярным значениям (SVD), собственное разложение матрицы, LU-разложение, QR-разложение / факторизация, симметричные матрицы, ортогонализация и ортонормализация, матричные операции, проекции, собственные значения и собственные векторы, векторные пространства и нормы. необходимы для понимания методов оптимизации, используемых для машинного обучения. В линейной алгебре удивительно то, что существует так много онлайн-ресурсов. Я всегда говорил, что традиционный класс умирает из-за огромного количества ресурсов, доступных в Интернете. Мой любимый курс линейной алгебры - курс, предлагаемый MIT Courseware (профессор Гилберт Стрэнг).
  2. Теория вероятностей и статистика: машинное обучение и статистика - области не очень разные. На самом деле, кто-то недавно определил машинное обучение как «ведение статистики на Mac». Некоторые из фундаментальных статистических теорий и теорий вероятностей, необходимых для ML, - это комбинаторика, правила и аксиомы вероятностей, теорема Байеса, случайные переменные, дисперсия и ожидание, условные и совместные распределения, стандартные распределения (Бернулли, биномиальные, полиномиальные, равномерные и гауссовские), момент Производящие функции, оценка максимального правдоподобия (MLE), априорная и апостериорная оценка, максимальная апостериорная оценка (MAP) и методы выборки.
  3. Многовариантное исчисление: некоторые из необходимых тем включают дифференциальное и интегральное исчисление, частные производные, функции векторных значений, направленный градиент, гессианское, якобианское, лапласианское и лагранжевое распределение.
  4. Алгоритмы и сложные оптимизации: это важно для понимания вычислительной эффективности и масштабируемости нашего алгоритма машинного обучения, а также для использования разреженности в наших наборах данных. Требуются знания структур данных (двоичные деревья, хеширование, куча, стек и т. Д.), Динамического программирования, рандомизированных и сублинейных алгоритмов, графиков, градиентных / стохастических спусков и первично-дуальных методов.
  5. Другое: сюда входят другие математические темы, не охваченные в четырех основных областях, описанных выше. Они включают в себя реальный и комплексный анализ (множества и последовательности, топология, метрические пространства, однозначные и непрерывные функции, пределы, ядро ​​Коши, преобразования Фурье), теорию информации (энтропия, получение информации), функциональные пространства и многообразия.

Вот некоторые онлайн-курсы и материалы для изучения некоторых тем математики, необходимых для машинного обучения:

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

Эта запись была первоначально опубликована на моей странице LinkedIn в июле 2016 года.