Дата публикации Jul 14, 2019
Мы продемонстрировали, как мы строим нейронную сеть, используя Python NumPy в9 шаговвЧасть 1из этой серии, но это может быть слишком сложно для начинающих понять. В этом случае мы будем использовать библиотеку NumPy для реализациилинейная регрессия, одна из самых простых моделей машинного обучения. Базовое понимание исчисления и синтаксиса Python является предпочтительным (но не обязательным, поскольку вы можете учиться на ходу).
Коды доступны наGitHub, Первоначально опубликовано наedenau.github.io,
Первый шаг. Импортировать NumPy. Шутки в сторону.
Мы генерируем десять тысяч точек для скалярного вводаX
и соответствующий ему гауссовnoise
такой, что для некоторого фиксированного наклонаw_true=7.6
и перехватитьb_true=-3.3
мы можем генерироватьy
по следующим линейным отношениям. Значения дляw_true
а такжеb_true
совершенно произвольно.
y = w_true * X + b_true + noise
Добавление гауссовского шума с нулевым средним делает наши данные более реалистичными.
На самом деле мы не знаем значений параметров линейной функцииw
а такжеb
, и это где градиентный спуск приходит. Мы определяем функцию ошибкиe
каксумма квадратов разностимежду фактическимy
и предсказалy=wx+b
для некоторых(w,b)
,
Эта функция ошибок штрафует несоответствие между фактическим и прогнозируемымy
ценность. Разница в квадрате используется вместо абсолютной разницы||.||
так что мы можем рассчитать∂e / ∂wа также∂e / ∂bаналитически, что оставлено в качестве упражнения для читателя.Эти градиенты являются представлениями направлений увеличенияw
а такжеb
соответственно.Поэтому, если мы хотимуменьшитьОшибкаe
мы должны обновить параметры, перейдя вотрицательное направлениепроизводных. Это может быть выражено
w ← w - learning_rate * ∂e/∂w
b ← b - learning_rate * ∂e/∂b
# The key is the minus signs
Если мы будем делать эти обновления итеративно до(w,b)
сходясь, мы получим оптимальный набор параметров, которые могут представлять линейную зависимость междуX
а такжеy
,
Это минимальная реализация алгоритма линейной регрессии с использованием библиотеки NumPy в3 шага, Если вы хотите проверить свое понимание линейной регрессии, вот список вещей, которые вы можете попробовать:
Коды доступны наGithub, Удачного кодирования!
Спасибо за чтение! Если вы заинтересованы в машинном обучении или Python, ознакомьтесь со следующими статьями:
Первоначально опубликовано наedenau.github.io,
© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map