Введение в машинное обучение (3): начало работы с нейронной сетью

машинное обучение алгоритм Нейронные сети модульный тест
Введение в машинное обучение (3): начало работы с нейронной сетью

Серия столбцов

Машинное обучение (1): Обзор начать работу новичков
Введение в машинное обучение (2): выбор инструментов и фреймворков
Что такое поиск по дереву Монте-Карло

Начало нейронной сети - персептрон

Это одна из моделей машинного обучения, основанная на персептронах, и она наиболее подходит для понимания основных средств машинного обучения. В то же время он также является основой нейронной сети и машины опорных векторов SVM. Поняв ее принцип, легче понять принцип работы нейронной сети.

определение

Предположим, что входное пространство (вектор признаков) — это X⊆Rn, а выходное пространство — это Y={-1, +1}. Вход x∈X представляет вектор признаков экземпляра, соответствующий точке во входном пространстве, выход y∈Y представляет класс экземпляра. Функция от входного пространства до выходного пространства

f(x) = sign(w \cdot x + b)

называется перцептроном. Среди них w называется весами, b — смещением,w \cdot xпредставляет скалярное произведение w и x.signФункция

f(x) =      \begin{cases}     \begin{array}{lcl}          +1   && if & x >= 0 \\          -1   && if & x < 0  \\     \end{array}     \end{cases}

Линейная классификация персептронов

Персептрон — это бинарная классификация.Модель линейной классификации, по образцуf(x)значение (+1 или -1) для классификации (положительное или отрицательное). Как показано на рисунке,

Функция потери

В большинстве случаев машинного обучения функция потерь требуется для измерения степени соответствия модели и служит эталоном для оптимизации. Что еще более важно, конкретное применение машинного обучения будет иметь разные роли в зависимости от определения функции потерь, таких как проверка лица (Face Validation), распознавание лиц (Face Recognition), передача нейронного стиля (Neural Style Transfer). соответствующие ему функции.
Для перцептрона используемая функция потерь обычно представляет собой расстояние от точки до линии.Для одной точки выборки, т.е.

\cfrac{1}{||w||}|w*x_0 + b|

Таким образом, общее расстояние от всех точек до плоскости равно (Mпредставляет собой неправильно классифицированный набор):

L(w,b) = -\cfrac{1}{N} \sum_{x_i\in M}y_i(w*x_0 + b)

Это функция потерь персептрона, также называемая здесь егоэмпирический риск,использоватьR_{emp}(f)Выражать. При обучении персептрона делается минимизация функции потерь или минимизация эмпирического риска (ERM, минимизация эмпирического риска).

функция оптимизации метода обучения/оптимизации

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

Визуальная интерпретация градиентного спуска

В общем, градиентный спуск — это процесс поиска нисходящего пути в функциональном пространстве, постепенного спуска с высоты и, наконец, нахождения самой низкой точки в пространстве.

Источник изображения: https://www.cnblogs.com/pinard/p/5970503.html

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

Здесь вы обнаружите, что то, что мы ищем, не обязательноминимум, номинимум. Как видно из приведенного выше рисунка, начальная точка каждого спуска разная, и конечная точка, достигаемая также, может быть разной. если сама функция не является выпуклой.

Алгебраические принципы алгоритмов градиентного спуска

В ходе работы алгоритма алгебраически вычисляется частный интеграл функции потерь, и каждый вес подвергается градиентному спуску.w_i, получить градиент:

\cfrac{\delta}{\delta w_i}L(w_0,w_1, \dots,w_n)

Также умножьте на скорость обучения\alphaполучить окончательное значение нисходящего градиента

\alpha \cfrac{\delta}{\delta w_i}L(w_0,w_1, \dots,w_n)

Так что по весуw_i, каждый раз, когда обновление

w_i = w_i - \alpha \cfrac{\delta}{\delta w_i}L(w_0,w_1, \dots,w_n)

И для оценки частной производной мы можем получить (\widehat{y}— результат, полученный текущей функцией, y — результат выборки, m — количество групп обучающих данных, j относится к j-му экземпляру данных в обучающих данных, n — количество признаков, а i относится к i-му признаку в наборе данных или соответствующем экземпляре данных x)

\alpha \cfrac{\delta}{\delta w_i}L(w_0,w_1, \dots,w_n) = \cfrac {\alpha}{m} \sum_{j=0}^m (\widehat{y_j}-y_j)x_i^j

Итак, последнее обновление

w_i= w_i - \cfrac {\alpha}{m} \sum_{j=0}^m (\widehat{y_j}-y_j)x_i^j

Когда расстояние градиентного спуска меньше\varepsilon(небольшое заданное значение), алгоритм завершает работу, и алгоритм считается сходящимся.

Гиперпараметры для алгоритмов градиентного спуска

Гиперпараметры относятся к тем параметрам, которые нам необходимо настроить в процессе обучения в сочетании с фактической производительностью модели и контекстом проблемы. Гиперпараметры алгоритма градиентного спуска включают в себя: скорость обучения\alpha, количество отсчетов, используемых для каждого спуска x(1 \leq x \leq m), скорость затухания d скорости обучения.

скорость обучения\alpha

Скорость обучения является важным гиперпараметром для алгоритмов градиентного спуска. Он представляет размер шага алгоритма каждый раз, когда он снижается. Его размер определяет скорость сходимости алгоритма:\alphaКогда он слишком велик, алгоритм спускается слишком быстро и может пропустить конечную точку, что приводит к блужданиям взад и вперед в конечной точке, но сходимость будет медленной;\alpha过小时, алгоритм медленно снижается, что приводит к более длительному времени окончательной сходимости.

Количество образцов

В зависимости от количества выборок выборки обычно существует три типа алгоритмов градиентного спуска:
Пакетный градиентный спуск Пакетный градиентный спуск:Это обычный алгоритм градиентного спуска, т. е. весь набор данных вносит свой вклад в нисходящий градиент.
Стохастический градиентный спуск:Каждый раз в качестве выборки для градиентного спуска случайным образом выбирается только набор данных, что очень быстро.Проблема в том, что количество выборок мало, направление спуска неточное, и легко попасть в локальное оптимальное решение.
Мини-пакетный градиентный спуск Мини-пакетный градиентный спуск:То есть, взяв часть данных для настройки алгоритма градиентного спуска, его преимущество в том, что он сочетает в себе пакетный градиентный спуск и стохастический градиентный спуск, что не только обеспечивает надежность градиентного спуска при определенном количестве данных, но и снижает объем данных для каждого раунда обучения, ускоряя скорость обучения.

Затухание скорости обучения

По мере того, как алгоритм постепенно приближается к конечной точке, алгоритму легко блуждать назад и вперед вокруг конечной точки из-за чрезмерно большого шага, что затрудняет сходимость. Однако, если скорость обучения снижается, скорость снижения может быть слишком медленной на ранней стадии, что приводит к потере большого количества времени.

Рисунок взят из машинного обучения Эндрю Нг на Couera, здесьJ(\theta)функция потерь

Итак, у нас снова есть распад оценки обучения, чтобы динамически корректировать скорость обучения как алгоритм прогрессирует. В целом, формула распада, которую обычно используют люди

\alpha = \cfrac {1} {1 + 衰减率 * 训练次数} \alpha_0

в\alpha_0Для исходной скорости обучения скорость затухания должна быть установлена ​​на основе опыта.

выбор модели

После обучения модели нам необходимо проверить точность модели с помощью данных. Вообще говоря, набор данных необходимо разделить на обучающий набор/проверочный набор/тестовый набор (рекомендуемое соотношение 6:2:2) или обучающий набор/тестовый набор (7:3).

Перекрестная проверка

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

  1. Простая перекрестная сертификация:Разделите набор данных непосредственно на 7:3 для проверки
  2. S-кратная перекрестная проверка:Произвольно разделите данные на S непересекающихся подмножеств одинакового размера, используйте S-1 подмножеств для обучения и 1 для тестирования.
  3. Оставить тест:Частный случай, когда S=N во втором методе

Способность к обобщению

Определение: предсказательная способность метода обучения на неизвестных данных. То есть мы хотим, чтобы модель хорошо работала не только на обучающем наборе, но и на неизвестных наборах данных (проверочных и тестовых наборах).

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

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

Теорема о персептроне

Когда набор данных является линейно разделимым, всегда будет гиперплоскость, удовлетворяющая условию, полностью разделяющему набор данных.
Когда набор данных линейно неразделим, итерационные результаты алгоритма колеблются, и результаты не могут сходиться.

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

использованная литература

  1. Машинное обучение — персептроны,blog.CSDN.net/dream_Angel…
  2. Ли Ханг, "Статистические методы обучения"
  3. алгоритм градиентного спуска,woo woo woo.cn блог на.com/pi этого человека/afraid/59…
  4. Алгоритм стохастического градиентного спуска,blog.CSDN.net/Чжоу Бичан 10905498…
  5. Некоторые основные идеи и методы выбора модели,блог woo woo woo.cn на.com/war/fear/5…