Этот пост в блоге охватывает лекции 2, 3 и 4 Стэнфордского курса машинного обучения http://cs229.stanford.edu/syllabus-spring2020.html.

Используемый документ следующий: http://cs229.stanford.edu/notes2020spring/cs229-notes1.pdf

Алгоритм наименьших средних квадратов

Это ваша классическая линейная регрессия или «линия наилучшего соответствия». Цель алгоритма регрессии наименьших квадратов состоит в том, чтобы найти линию, которая минимизирует сумму квадратов расстояний между точками данных и точкой на линии с тем же значением x. Линейная регрессия — это очень простой алгоритм, используемый в случаях, когда данные в основном линейны. Всего несколько терминов, которые нужно знать -

  • Регрессия имеет дело с непрерывными переменными, а классификация — с дискретными или категориальными переменными.
  • Фактическое значение зависимой переменной за вычетом предсказанного значения линейной регрессии называется остатком.

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

Теперь мы подошли к самой сложной части — попытке обновить коэффициенты. Используя градиентный спуск, мы можем вносить небольшие изменения в наклон и отрезок, чтобы более точно соответствовать данным. Причина, по которой мы должны делать это шаг за шагом, заключается в том, что мы можем выйти за пределы линии наилучшего соответствия. По сути, мы будем по очереди обновлять наклон и точку пересечения (поскольку мы пытаемся оптимизировать в отношении более чем одной переменной), чтобы минимизировать общую функцию. Вот еще немного информации о градиентном спуске: https://ml-cheatsheet.readthedocs.io/en/latest/gradient_descent.html#:~:text=Gradient%20descent%20is%20an%20оптимизация,%20параметры%20% 20наша%20модель.

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

Стохастический градиентный спуск

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

Локально взвешенная линейная регрессия

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

Дискретные переменные

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

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

Метод Ньютона

Другой способ обновить алгоритм — использовать метод Ньютона, который равен x = x₀-f(x₀)/f’(x₀). Если нет подавляющего количества измерений, это на самом деле быстрее, чем градиентный спуск.

Другие сообщения в серии

Часть 1: https://medium.com/@ayanabh/introduction-to-machine-learning-machine-learning-for-high-schoolers-1-26573dd1e670

Часть 3: https://medium.com/@ayanabh/support-vector-machines-machine-learning-for-high-schoolers-a9d1025dfdbb

Отдельное спасибо Ishita Sharma за отзыв в этом блоге!