Эндрю Нг Машинное обучение: линейная регрессия
Начнем с небольшого отступления о курсе. Для этого курса от Ng я не стал проходить курсы на Coursera, во-первых, потому что у Coursera есть собственный цикл курсов, но этот цикл может подойти не всем. Во-вторых, курсовая работа Coursera написана на языке Octave, и я лично считаю, что Python будет более подходящим языком для обучения и использования в будущем. Итак, в конце концов я выбрал форму курса видео + задание по реализации Python.
нажмитеВидео курсаВы сможете изучать курсы Нг без перерыва.Код Python для курсовой работы я выложил на Github, нажмитекод курсаВы можете перейти на Github, чтобы просмотреть его, и вы можете указать на ошибки и улучшения в коде.
Ниже приведены мои заметки с первой недели курса машинного обучения Нг.
машинное обучение
Что такое машинное обучение? Неофициальное определение, данное Артуром Сэмюэлем, таково:Компьютеры способны учиться решать проблемы без явного программирования.
Алгоритмы машинного обучения включаютконтролируемое обучение,неконтролируемое обучение,обучение с подкреплением,рекомендательная система и др.. наша первая неделяЛинейная регрессияпринадлежатьконтролируемое обучение.
Как работает контролируемое обучение
Первое, что нужно сделать, это иметь набор обучающих данных (обучающий набор), который содержит правильные результаты для задачи, соответствующей данным. С помощью нашего алгоритма обучения (алгоритма обучения), чтобы изучить набор обучающих данных и, наконец, получить функцию (гипотезу), эта функция - то, что нам нужно.функция предсказания, который может делать более точные прогнозы на основе данных обучающего набора и других входных данных.
заЛинейная регрессия,нашHypothesisэто:
hθ(x)=θ0+θ1x1+θ2x2+⋯+θnxn=θTxодин из нихэто параметр, который должен изучить алгоритм обучения, и- это функции, которые мы выбираем для проблемы.
функция стоимости
так как научитьсяфункция предсказаниясерединаШерстяная ткань? нам нужно импортироватьфункция стоимостиПонятие , его роль заключается в оценке разницы между фактическими и прогнозируемыми значениями. Когда у вас есть эта функция, цель алгоритма обучения состоит в том, чтобы найтиСделайте значение этой функции как можно меньше. заЛинейная регрессия, мы используемфункция стоимостиДа:
J(θ)=12 мм∑i=1(hθ(x(i))−y(i))2вколичество образцов,- известный ответ обучающего набора данных, верхний индекспредставляет количество наборов обучающих данных,функция стоимости это оФункция. Конечно, чтобы выразиться лаконичнее и написать программы понятнее, мы обычно используем его матричное выражение:
J(θ)=12m(Xθ−y)T(Xθ−y)Наконец, чтобы связать вышесказанное, давайте посмотрим, когда есть только одна функция,функция стоимости Посмотрите.
Картинка справаКонтурная карта , каждая линия представляетфункция стоимостиодинаковы, красный крестик указываетфункция стоимостисамая нижняя точка.
Алгоритм градиентного спуска
Тогда единственная функция, которую вы только что рассмотрели, соответствуетфункция стоимостиИзображение плюс то, что я сказал ранее: «Цель алгоритма обучения — найтисделатьфункция стоимостиКак можно меньше». Очень интуитивная идея — взять любую точку на склоне, а затем спуститься вниз, чтобы достичь самой низкой точки. Именно в этом и заключается идея алгоритма градиентного спуска, обновляем по обратному градиентузначение (вниз по склону в самом крутом направлении) до тех пор, покафункция стоимостисходятся к минимальному значению. Обновление алгоритма градиентного спускаСпособ таков:
θi:=:=θi−α∂∂θiJ(θ)вскорость обучения,Указывает на использование подстановки правого значенияисходное значение. заЛинейная регрессия, мы обновляемСпособ таков:
θ:=:=θ−α1mXT(Xθ−y)Здесь мы можем завершить весьЛинейная регрессияалгоритмы машинного обучения. настраиватьНачальное значение , которое итеративно обновляется с использованием алгоритма градиентного спуска.значение доконвергенция. Что касается того, почему используется инверсия градиента, см.эта статья, автор объясняет почему с математической точки зрения.
нормальное уравнение
заЛинейная регрессия, мы можем использовать математические методы, чтобы получитьПри взятии минимального значениязначение . Это требует некоторых знаний о производных и линейной алгебре.Заинтересованные студенты могут подробно посмотреть процесс вывода в видеокурсе. Решение дано прямо здесьФормула:
θ=(XTX)−1XTyкогда используетсянормальное уравнениеСуществуют определенные ограничения, такие какМатрица должна быть обратимой. Так зачем нам концепция градиентного спуска, когда у нас есть прямое решение проблемы? Поскольку метод градиентного спуска является более общим, его можно использовать для решения многих задач, таких как нелинейныефункция стоимости.
нормализация признаков
В практических приложениях функции, которые мы выбираем, такие как длина, вес, площадь и т. д., обычно имеют разные единицы измерения и диапазоны, что приводит к замедлению алгоритма градиентного спуска. Итак, мы хотим масштабировать функции до относительно однородного диапазона. Обычные методыStandardizationиNormalization.Standardizationсостоит в том, чтобы преобразовать данные в стандартное нормальное распределение, даже если оно окажется странным распределением, путемЦентральная предельная теоремаВидно, что объем данных достаточно велик, чтобы стать нормальным, а формула обновления такова:
xi:=:=xi−µδNormalizationОн дружелюбен к алгоритму градиентного спуска, что может позволить алгоритму окончательно сойтись и повысить скорость и точность обучения.Формула обновления:
xi:=:=xi−min(xi)max(xi)−min(xi)полиномиальная регрессия
иногда линейныйHypothesisНе обязательно подходит для данных, которые нам нужно подобрать, мы выберем полиномиальную подгонку, например:
hθ(x)=θ0+θ1x1+θ2x2+θ3x1x2+θ4x21+θ5x22На этом этапе мы также можем преобразовать его вЛинейная регрессияпроблема, пока новая функция,,Вот и все.
Итак~, это все, что касается содержания недели, спасибо за терпеливое чтение.
hertzcat
2018-03-24