Вопрос или проблема
Я только начал углубляться в машинное обучение, и каждый раз, когда я пытаюсь разобраться в концепциях или коде, я сталкиваюсь с математическими задачами и их запутанными обозначениями. Имея опыт в компьютерных науках, я немного их понимаю, но большинство уходит вбок.
Например, возьмем ниже приведенные формулы с этой страницы –
Я пытаюсь и действительно хочу их понять, но как-то путаюсь и каждый раз оставляю это.
Не могли бы вы подсказать, с чего начать? Буду признателен за начальные указания или советы.
Это действительно правда, что статьи или книги используют обозначения, которые иногда кажутся очевидными для людей, которые привыкли работать с математическими аспектами, но не имеют смысла для других. Способы понимания математики включают:
- Посещение теоретических курсов или тренингов
- Чтение специализированных книг
- Вопросы людям вокруг вас
- Обращение к людям на форумах, таких как этот, или Cross Validated для статистических формул
- Попытки самостоятельно понять, пересматривая части статьи/книги, которые не уяснили с первого раза
Существуют некоторые обозначения/конвенции, которые неявно приняты в статьях по науке о данных/машинному обучению, такие как:
- Использование $X$ в качестве ввода, $y$ в качестве вывода, $\theta$ в качестве параметров модели
- Использование $\hat{y}$ для оценки истинного $y$
- Предположение, что векторы являются столбцовыми векторами
Список был бы слишком длинным, чтобы включить его сюда.
Что касается приведенного выше примера, то мы имеем дело с ограниченной оптимизацией.
Утверждение $max$ означает, что мы ищем максимальное значение выражения, которое следует после. То, что находится ниже (то есть значения $\Delta_{ij}$), является списком “свободных” параметров, которые изменяют значение выражения.
Утверждение $max$ предшествует $arg$, что означает, что мы не заинтересованы в максимальном значении выражения, а скорее в наборе $\Delta_{ij}$, который приводит к этому значению.
Затем мы сталкиваемся с утверждением $s.t.$, потому что это не обычная оптимизация, мы также должны учитывать несколько ограничений, выраженных после $s.t.$. Это могут быть неравенства, уравнения, ограничения принадлежности и т. д., как явные ($\Delta_{ij} > 0$), так и более неявные.
Я бы рекомендовал путь обучения в формате TOP-DOWN:
- Получите первое представление о том, какие типы алгоритмов существуют на основе возможных случаев использования (классификация, регрессия, кластеризация и т. д.); таким образом, вы знаете ЧТО Я МОГУ РЕШИТЬ С ЭТИМ
- Для алгоритмов, которые вас интересуют (базовым может быть линейная регрессия, обученная с помощью градиентного спуска), вы можете получить первое представление, используя такие библиотеки, как
scikit-learn, которые оборачивают математику между ними, но дают вам результаты, которые вы можете быстро проверить и поиграть с ними –> КАК Я МОГУ ЭТО РЕШИТЬ - После того, как вы немного поиграете с этим, вы сможете более глубоко рассмотреть, как работают алгоритмы, с линейной алгеброй, статистикой и концепциями анализа, которые вам нужно действительно понять (в основном, это математические формулы, о которых вы говорили) –> КАК ЭТО РАБОТАЕТ
Хорошие источники:
- Книга “Python Machine Learning” Себастьяна Рашки (хороший баланс между теорией и практикой)
- Блог и книги Джейсона Браунли (очень практические случаи использования)
- Документация scikit-learn, которая включает в себя математику, использованную в их коде
Если вы слишком стараетесь, спросите себя, получаете ли вы от этого удовольствие. Если вы спрашиваете себя, получаете ли вы от этого удовольствие, то, возможно, вам стоит спросить себя, что именно вам действительно нравится.
В противном случае попробуйте серию книг Schaum по математическому анализу, линейной алгебре, статистике. Это отличные книги для начинающих: https://www.amazon.com/Schaums-Outline-Linear-Algebra-Outlines/dp/1260011445
Ответ или решение
Понимание машинного обучения через математику, статистику и вычисления
Недавний интерес к машинному обучению (ML) часто ставит перед новыми энтузиастами множество вопросов, особенно когда дело касается математических формул и сложной нотации. Если вы пришли из области информатики и уже обладаете основами, эта статья поможет вам структурировать ваши действия и углубить понимание ML через призму математики и статистики.
Основные Нотации и Концепции
В области машинного обучения часто используются специальные нотации, которые могут показаться запутанными для новичков. Вот основные обозначения, которые вы встретите:
- X: Вектор (или матрица) признаков (входные данные).
- y: Вектор целевых значений (выходные данные).
- θ: Параметры модели.
- ŷ: Оценка целевых значений на основе входных данных и параметров модели.
Эти обозначения помогут вам легче ориентироваться в материал.
Оптимизация и Ограничения
Как упоминалось в примерной формуле, представленной вами, вы столкнулись с проблемой ограниченной оптимизации. Это означает, что вы ищете оптимальное решение, которое максимизирует или минимизирует определённую функцию, соблюдая заданные ограничения.
- max: Указывает, что цель – найти максимальное значение выражения.
- arg: Указывает на набор параметров, который приводит к этому максимальному значению.
- s.t. (subject to): Отмечает, что вы должны соблюдать ограничения. Эти ограничения могут быть равенствами или неравенствами.
Процесс оптимизации ключевой для приложение многих алгоритмов машинного обучения и требует хорошего понимания математических основ:
- Линейная алгебра: Позволяет работать с векторами и матрицами.
- Калькуляция: Помогает в понимании производных и экстремумов функций.
- Статистика: Важна для оценки моделей и проверки их гипотез.
Рекомендации по обучению
Если вы хотите углубить свои знания в машинном обучении и преодолеть барьер математической сложности, рассмотрите следующий top-down подход:
-
Общее понимание алгоритмов: Начните с изучения типов алгоритмов (например, классификация, регрессия, кластеризация) и определите, как они могут помочь решить различные задачи. Это даст вам понимание того, что вы можете решить с помощью ML.
-
Практика через библиотеки: Ознакомьтесь с библиотеками, такими как scikit-learn. Это позволит вам увидеть, как работать с алгоритмами на практике, не углубляясь сразу в математику. Это поможет ответить на вопрос как я могу это решить?
-
Глубокое изучение: После получения некоторого опыта, обратите внимание на математику, стоящую за алгоритмами, включая линейную алгебру, статистику и основы математического анализа. Это поможет вам понять как это работает.
Рекомендуемые источники
Чтобы улучшить ваше понимание, найдите время для чтения следующей литературы:
- Книга «Python Machine Learning» Себастьяна Рашки – предлагает хороший баланс между теорией и практическими примерами.
- Blog и книги Джейсона Брауна – сосредотачиваются на прикладных аспектах.
- Документация scikit-learn – включает математические основы, использующиеся в их коде.
Если вы найдете себя в постоянной борьбе с математическими аспектами и не получаете удовольствия от процесса, размышляйте над тем, что вам интересно. Возможно, следует попробовать другие подходы к обучению.
Заключение
Путешествие по миру машинного обучения – это не только познание математических основ, но и одновременное изучение практических применений. Не бойтесь задавать вопросы на форумах, перепроверять информацию и использовать доступные ресурсы для самообразования. С течением времени и с практикой, сложные концепции станут более понятными и интуитивными.