Гиперпараметры — это переменные, которые контролируют различные аспекты обучения. Три распространенных гиперпараметра:
Напротив, параметры — это переменные, такие как веса и смещение, которые являются частью самой модели. Другими словами, гиперпараметры — это значения, которыми вы управляете; параметры — это значения, которые модель рассчитывает во время обучения.
Скорость обучения
Скорость обучения — это заданное вами число с плавающей запятой, которое влияет на скорость сходимости модели. Если скорость обучения слишком низкая, сходимость модели может занять много времени. Однако если скорость обучения слишком высока, модель никогда не сходится, а вместо этого отскакивает от весов и смещений, которые минимизируют потери. Цель состоит в том, чтобы выбрать не слишком высокую и не слишком низкую скорость обучения, чтобы модель быстро сходилась.
Скорость обучения определяет величину изменений, которые необходимо внести в веса и смещение на каждом этапе процесса градиентного спуска. Модель умножает градиент на скорость обучения, чтобы определить параметры модели (значения веса и смещения) для следующей итерации. На третьем этапе градиентного спуска «небольшая величина» движения в направлении отрицательного наклона относится к скорости обучения.
Разница между параметрами старой модели и параметрами новой модели пропорциональна наклону функции потерь. Например, если наклон большой, модель делает большой шаг. Если маленький, то нужно сделать небольшой шаг. Например, если величина градиента равна 2,5, а скорость обучения — 0,01, то модель изменит параметр на 0,025.
Идеальная скорость обучения помогает модели сходиться за разумное количество итераций. На рисунке 21 кривая потерь показывает, что модель значительно улучшается в течение первых 20 итераций, прежде чем начать сходиться:
Рисунок 21 . График потерь, показывающий модель, обученную с быстро сходящейся скоростью обучения.
Напротив, при слишком низкой скорости обучения для сходимости может потребоваться слишком много итераций. На рисунке 22 кривая потерь показывает, что модель делает лишь незначительные улучшения после каждой итерации:
Рисунок 22 . График потерь, показывающий модель, обученную с небольшой скоростью обучения.
Слишком большая скорость обучения никогда не сходится, потому что каждая итерация либо приводит к тому, что потери колеблются, либо постоянно увеличиваются. На рисунке 23 кривая потерь показывает, что потери модели уменьшаются, а затем увеличиваются после каждой итерации, а на рисунке 24 потери увеличиваются на последующих итерациях:
Рисунок 23 . График потерь, показывающий модель, обученную со слишком большой скоростью обучения, где кривая потерь сильно колеблется, поднимаясь и опускаясь по мере увеличения итераций.
Рисунок 24 . График потерь, показывающий модель, обученную со слишком большой скоростью обучения, где кривая потерь резко увеличивается на последующих итерациях.
Упражнение: Проверьте свое понимание.
Размер партии
Размер пакета — это гиперпараметр, который относится к количеству примеров, которые модель обрабатывает перед обновлением своих весов и смещения. Вы можете подумать, что модель должна рассчитать потери для каждого примера в наборе данных, прежде чем обновлять веса и смещение. Однако если набор данных содержит сотни тысяч или даже миллионы примеров, использование полного пакета нецелесообразно.
Два распространенных метода получения правильного градиента в среднем без необходимости просмотра каждого примера в наборе данных перед обновлением весов и смещения — это стохастический градиентный спуск и мини-пакетный стохастический градиентный спуск :
Стохастический градиентный спуск (SGD) : стохастический градиентный спуск использует только один пример (размер пакета один) на итерацию. При достаточном количестве итераций SGD работает, но очень шумно. «Шум» относится к изменениям во время обучения, которые приводят к увеличению, а не уменьшению потерь во время итерации. Термин «стохастический» означает, что один пример, включающий каждую партию, выбирается случайным образом.
Обратите внимание на следующем изображении, как потери слегка колеблются по мере того, как модель обновляет свои веса и смещение с использованием SGD, что может привести к шуму на графике потерь:
Рисунок 25 . Модель, обученная с помощью стохастического градиентного спуска (SGD), показывающая шум на кривой потерь.
Обратите внимание, что использование стохастического градиентного спуска может создавать шум по всей кривой потерь, а не только вблизи сходимости.
Мини-пакетный стохастический градиентный спуск (мини-пакетный SGD) : Мини-пакетный стохастический градиентный спуск представляет собой компромисс между полным пакетом и SGD. Для $N$ количества точек данных размер пакета может быть любым числом больше 1 и меньше $N$. Модель случайным образом выбирает примеры, включенные в каждую партию, усредняет их градиенты, а затем обновляет веса и смещение один раз за итерацию.
Определение количества примеров для каждого пакета зависит от набора данных и доступных вычислительных ресурсов. В общем, небольшие размеры партий ведут себя как SGD, а большие размеры партий ведут себя как полнопартийный градиентный спуск.
Рисунок 26 . Модель обучена с помощью мини-пакетного SGD.
При обучении модели вы можете подумать, что шум — это нежелательная характеристика, которую следует устранить. Однако определенное количество шума может быть и полезным. В последующих модулях вы узнаете, как шум может помочь модели лучше обобщать и находить оптимальные веса и смещение в нейронной сети .
Эпохи
Во время обучения эпоха означает, что модель обработала каждый пример в обучающем наборе один раз . Например, при наличии обучающего набора из 1000 примеров и размера мини-пакета в 100 примеров модели потребуется 10 итераций для завершения одной эпохи.
Обучение обычно требует многих эпох. То есть системе необходимо обрабатывать каждый пример в обучающем наборе несколько раз.
Количество эпох — это гиперпараметр, который вы задаете перед началом обучения модели. Во многих случаях вам придется поэкспериментировать с тем, сколько эпох потребуется для сходимости модели. В общем, чем больше эпох, тем лучше модель, но и на обучение уходит больше времени.
Рисунок 27 . Полная партия против мини-партии.
В следующей таблице показано, как размер пакета и эпохи связаны с количеством раз, когда модель обновляет свои параметры.
Тип партии | Когда происходят обновления весов и смещений |
---|---|
Полная партия | После того, как модель просмотрит все примеры в наборе данных. Например, если набор данных содержит 1000 примеров и модель обучается в течение 20 эпох, модель обновляет веса и смещение 20 раз, один раз за эпоху. |
Стохастический градиентный спуск | После того, как модель просмотрит один пример из набора данных. Например, если набор данных содержит 1000 примеров и обучается в течение 20 эпох, модель обновляет веса и смещение 20 000 раз. |
Мини-пакетный стохастический градиентный спуск | После модель просматривает примеры в каждой партии. Например, если набор данных содержит 1000 примеров, размер пакета равен 100, а модель обучается в течение 20 эпох, модель обновляет веса и смещение 200 раз. |