Сравнительное исследование различных методов инициализации веса

Методы машинного обучения и глубокого обучения вторгаются во все возможные области, о которых вы только можете подумать. С увеличением доступности оцифрованных данных и развитием вычислительных возможностей современных компьютеров, возможно, в ближайшем будущем он будет процветать. В рамках этого с каждым днем ​​все больше и больше людей погружаются в задачу создания и обучения моделей. Как новичок в этой области, я также должен построить и обучить несколько моделей нейронных сетей. Что ж, в большинстве случаев моей основной задачей остается создание высокоточной, а также обобщенной модели. И чтобы достичь этого, я обычно ломаю голову над поиском подходящих гиперпараметров для моей модели, над тем, какие различные методы регуляризации я могу применить, или обдумывая вопрос, нужно ли мне еще больше углубить мою модель и так далее. Но часто я забываю поиграть с методами инициализации веса. И я верю, что так обстоит дело и со многими другими, такими как я.

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

Настройка:

Я создал простую модель CNN с комбинацией слоев Conv-2D, Max-pool, Dropout, Batch-norm и Dense с активацией Relu (за исключением последнего слоя, который является Softmax). Я обучил его для задачи классификации набора данных Cifar-10. Я инициализировал модель с помощью шести различных методов инициализации ядра и проанализировал этап обучения. Я обучил модель с 30 эпохами и размером пакета 512 с помощью оптимизатора SGD. В этом эксперименте использовались шесть методов инициализации, а именно:

  • Глорот Униформа
  • Глорот Нормальный
  • Он униформа
  • Он нормальный
  • Случайная форма
  • Случайный Нормальный

Примечание. Метод инициализации ядра по умолчанию для слоев Keras - Glorot Uniform.

Результаты эксперимента:

Давайте сначала посмотрим, как ведет себя единообразная и нормальная инициализация для трех разных методов.

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

Для случайных методов (последний график) тенденция для обеих кривых вообще не совпадала. Общая тенденция точности проверки для случайной нормы оставалась очень низкой, ниже 40% (за исключением двух резких скачков вверх). Тогда как единый метод показал лучший результат. Хотя кривая для единой техники носит очень неустойчивый и скачковый характер. После 23-й эпохи обе кривые показали падение точности валидации. Следуя тенденции методов Glorot, здесь мы также видим очень медленный запуск до эпохи 5, показывающий точность проверки всего ~ 10%. Для методов Glorot и Random кривая точности валидации не показывала должного шаблона сходимости и оставалась нестабильной на протяжении всего процесса обучения.

Методы He (средний график) показали лучшие результаты в этом аспекте, чем два других. Кривые для единой и нормальной методик похожи и следуют друг за другом до конца тренировки 30 эпох. И оба они показали общий восходящий тренд, и кривые сравнительно менее скачкообразные. В отличие от Glorot и Random, при использовании методов He точность проверки начала расти с самой первой эпохи, не показывая медленного старта.

Давайте теперь углубимся и проанализируем эффективность этих методов по нескольким желательным аспектам.

  • Точность. Что касается точности, то наивысшая точность проверки достигается с использованием методов Glorot (синие кривые). Хотя, как показывают кривые, он не смог удержать позицию, а показал очень нестабильное поведение. Методы (оранжевые кривые) намного более стабильны и надежны, чем остальные два, а точность проверки сравнима с Glorot. Среди них методы случайного выбора, как равномерные, так и нормальные, дали самую низкую точность проверки на протяжении всего обучения. В приведенной ниже таблице дается общее описание того, как эти методы вели себя.

  • Конвергенция. В настоящее время люди тренируют очень глубокие модели. GPT-3 имеет 175 миллиардов параметров для обучения, поэтому более быстрая и четкая конвергенция всегда является желательным аспектом. Как я уже упоминал, кривые методов Glorot и Random очень нестабильны и скачкообразны, поэтому трудно сделать вывод, достигнута ли сходимость или нет. Если мы проанализируем общую тенденцию, методы случайной инициализации работают очень плохо, и мы можем сказать, что обучение для случайного нормального сошлось на отметке около 40%, тогда как для случайной однородной формы оно ниже 50%. Для достижения такого уровня точности проверки случайным кривым потребовалось как минимум 15–16 эпох. Для инициализации Glorot Uniform и Normal точность проверки сходится между 50–60% (некоторые случайные пики выше 60%). И тенденция конвергенции стала формализоваться спустя 15 эпох. Его кривые после увеличения постоянно пересекали отметку 50% примерно через 12 эпох (нормальная кривая He была быстрее). После этого как равномерная, так и нормальная кривые He продолжили движение вверх и закончили на отметке около 60%. Кроме того, если мы посмотрим на кривые потерь He, начальные потери для однородных методов Glorot и Random равны низки по сравнению с He Uniform. Вероятно, это связано с тем, что метод инициализации He немного инициализирует веса на более высокой стороне.
  • Стабильность и случайность обучения. Кривые сравнения точности валидации очень четко показывают, что методы Glorot и Random очень нестабильны и, как следствие, мешают дизайнеру принимать решения для ранней остановки тренировочный процесс. Это очень важный прием для уменьшения чрезмерной подгонки и создания хорошо обобщенной модели. С другой стороны, когда модель инициализирована с помощью однородных или случайных методов He, кривые точности проверки показывают очень стабильное и последовательное поведение. Это также вселяет уверенность дизайнера в процесс обучения модели. Дизайнер может остановиться в любом желаемом положении по своему желанию. Чтобы доказать правильность наших выводов, мы обучили модель по пять раз каждому из методов инициализации.

Графики ясно показывают, насколько скачкообразным может быть процесс обучения при инициализации с помощью методов Glorot и Random. Метод случайной униформы не смог показать никакого приращения до 5-й эпохи, и история такая же для униформы Глорот до 3-й эпохи.

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

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

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


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

Заключение:

Что ж, когда сообщество глубокого обучения разделилось на то, какой метод инициализации работает лучше всего, что мы должны использовать Uniform или Normal, этот эксперимент дает мне уверенность в том, что методы инициализации HE работают лучше по нескольким аспектам при настройке этой задачи с учетом данной модели.

1) Очень стабильная и плавная тренировка

2) Быстрая сходимость к желаемой точности проверки

3) Постоянное повышение точности проверки с очень быстрой эпохи

4) Множественные прогоны похожи, и в тренировочном процессе меньше случайности.

5) Четкая конвергенция и очень тонкий пробел в обобщении (обучение против тестирования) по сравнению с другими.