Основываясь на том, что мы должны делать, если вопрос, опубликованный в DataScience, является дубликатом вопроса, размещенного в CrossValidated? , Я публикую свой ответ на тот же вопрос, заданный на CrossValidated ( /stats//a/311318/89653 ).
Примечание: в этом ответе я имею в виду минимизацию потерь при обучении и не обсуждаю критерии остановки, такие как потеря при проверке. Выбор критериев остановки не влияет на процесс / концепции, описанные ниже.
Процесс обучения нейронной сети состоит в том, чтобы найти минимальное значение функции потерь , где представляет матрицу (или несколько матриц) весов между нейронами, а представляет обучающий набор данных. Я использую нижний индекс для чтобы указать, что наша минимизация происходит только по весам (то есть мы ищем такой, что минимизируется), пока фиксирован.WXX ℒ WW ℒ XLИкс( W)WИксИксLWWLИкс
Теперь, если мы предположим, что у нас есть элементов в (то есть, есть весов в сети), - поверхность в -мерном пространстве. Чтобы дать визуальный аналог, представьте, что у нас есть только два веса нейронов ( ). Тогда имеет простую геометрическую интерпретацию: это поверхность в трехмерном пространстве. Это вытекает из того факта, что для любых заданных матриц весов функция потерь может быть оценена по и это значение становится высотой поверхности.W P ℒ P + 1 P = 2 ℒ W XпWпLP+1P=2LWX
Но есть проблема невыпуклости; Поверхность, которую я описал, будет иметь множество локальных минимумов, и поэтому алгоритмы градиентного спуска могут застрять в этих минимумах, в то время как более глубокое / меньшее / лучшее решение может находиться поблизости. Это может произойти, если остается неизменным в течение всех обучающих итераций, потому что поверхность фиксирована для данного ; все его характеристики статичны, включая различные минимумы.XXX
Решением этой проблемы является мини-пакетное обучение в сочетании с перетасовкой. Перетасовывая строки и обучая только их подмножеству во время данной итерации, изменяется с каждой итерацией, и на самом деле вполне возможно, что никакие две итерации по всей последовательности обучающих итераций и эпох не будут выполняться с точно такой же , В результате решатель может легко «отскочить» от локального минимума. Представьте, что решатель застрял в локальном минимуме на итерации с обучающей мини-партией . Этот локальный минимум соответствует оцененному при определенном значении весов; мы назовем этоX i X i ℒ ℒ X i ( W i ) X i + 1 ℒ X i + 1 ( W i ) ℒ X i ( W i ) ℒ X i + 1 ℒ X i ℒ X W WXXiXiLLXi(Wi), На следующей итерации форма нашей поверхности потерь фактически меняется, потому что мы используем , то есть может принимать значение, от и вполне возможно, что он не соответствует локальному минимуму! Теперь мы можем вычислить обновление градиента и продолжить обучение. Для ясности: форма будет - в общем случае - отличаться от формы . Обратите внимание, что здесь я имею в виду функцию потерь на тренировочном наборе ; это полная поверхность, определенная по всем возможным значениямXi+1LXi+1(Wi)LXi(Wi)LXi+1LXiLXW, А не оценки этой потери (который является только скаляром) для определенного значения . Отметим также, что если мини-пакеты используются без перестановки, все еще существует степень «диверсификации» поверхностей потерь, но будет определенное (и относительно небольшое) количество уникальных поверхностей ошибок, видимых решающим устройством (в частности, он будет видеть одинаковый точный набор мини-партий - и, следовательно, поверхностей потерь - в течение каждой эпохи).W
Одной вещи, которую я сознательно избегал, было обсуждение размеров мини-пакетов, потому что существует миллион мнений по этому вопросу, и это имеет существенные практические последствия (большая параллелизация может быть достигнута с большими партиями). Тем не менее, я считаю, что стоит упомянуть следующее. Поскольку оценивается путем вычисления значения для каждой строки (и суммирования или взятия среднего значения, т. Коммутативного оператора) для заданного набора весовых матриц , расположение строк имеет никакого эффекта при использовании полной градиентный спуск (то есть, когда каждый пакет представляет собой полный , а итерации и эпохи - это одно и то же). X W X XLXWX X