Понимание методов регуляризации

Понимание методов регуляризации в ML и DL

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

Обзор:

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

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

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

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

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

Понимание компромисса между отклонением и смещением и необходимость регуляризации:

Смещение - это математически разница между ожидаемым значением и фактическим значением функции. Мы не будем вдаваться в статистику предвзятости, но я ответственно предоставлю вам пугающее уравнение:

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

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

Простая модель имеет низкую дисперсию, тогда как сложная модель имеет высокую дисперсию.

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

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

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

Существуют различные методы, с помощью которых мы можем достичь компромисса с отклонением от смещения. Эти методы или приемы известны как методы регуляризации.

Вот некоторые из распространенных:

  • L2 регуляризация
  • Ранняя остановка
  • Увеличение набора данных
  • Ансамблевые методы
  • Выбывать
  • Пакетная нормализация

Регуляризация L2:

По возможности упрощая, я бы определил L2 Regularization как «уловку, не позволяющую модели довести ошибку обучения до нуля». Если бы все было так просто ...

Во время обучения модели мы постоянно обновляем различные переменные (веса и смещения; w и b), которые пытаются предсказать нашу исходную функцию. Это обновление происходит на основе «правила обновления», такого как градиентный спуск (о котором мы не будем говорить). Это правило обновления зависит от «функции потерь», которая является функцией этих переменных. Если что-то усложняется, терпите меня. Наша цель - минимизировать эту «функцию потерь». И это довольно интуитивно, не правда ли? В любой прибыльной производственной ситуации вы стремитесь минимизировать убытки. Просто, init?

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

Первый член в уравнении над нами - это «термин потерь» или термин, который измеряет, насколько хорошо модель соответствует данным. Последний член - это «логарифм вероятности гауссовского распределения весов» математиками. Это измеряет сложность модели. Для нас, неспециалистов, это сумма квадратов всех весов характеристик (w). И снова, ответственно, я оставляю вас с:

Эта сложность модели количественно оценивается методом L2. В этом случае веса признаков, близкие к нулю, не так сильно зависят от преобразования, но выбросы имеют огромное влияние. И чем больше значение вышеуказанного члена, тем больше мы видим увеличения смещения и уменьшения дисперсии. Из приведенного выше графика видно, что в конце обучения смещение очень мало, а дисперсия высока. Таким образом, если бы мы увеличили смещение и уменьшили дисперсию, мы бы фактически достигли где-то в зоне «хорошей модели» графика. Итак, у нас есть хорошая модель! Ура!

Ранняя остановка:

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

Увеличение набора данных:

Обучение модели хорошему состоянию прогнозирования возможно только тогда, когда у нас есть много данных для ее обучения. Другими словами, довольно легко свести ошибку обучения к нулю, если данных слишком мало. Возьмем пример обучения нейронной сети классификации изображений. Скажем, у нас есть 1000 изображений для обучения модели. Не было бы лучше, если бы у нас было, скажем, 3000 изображений для обучения? Не собирая дополнительных данных, мы можем легко «дополнить» текущие изображения и создать «новые». На самом деле они не новы для нас, но для модели она такая же новая, как и приходят.

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

Итак, когда у нас теперь есть больше данных для кормления нашей модели, это затрудняет запоминание всего, и, следовательно, ошибка обучения не сводится к нулю. Как твой тест по истории, init?

Методы ансамбля:

Методы ансамбля - это метаалгоритмы, которые объединяют несколько методов машинного обучения в одну модель прогнозирования, чтобы уменьшить дисперсию, смещение или улучшить прогнозы.

Вышеупомянутый абзац представляет собой определение методов ансамбля, данное Google, и я постараюсь объяснить его вам. В этом методе мы используем несколько архитектур моделей для прогнозирования результата, будь то классификация или регрессия. Допустим, моделям A, B и C дана задача классифицировать собаку: модель A говорит, что это кошка, а модели B и C говорят, что это собака. Итак, если мы должны верить тому, что говорит большинство, мы приходим к правильному результату, но если бы мы доверяли выходу первой модели, мы бы ошиблись. То же самое и с регрессией или прогнозированием стоимости. Мы берем средневзвешенное значение прогнозов для трех моделей, чтобы получить окончательный результат. Это снижает вероятность ошибки и повышает точность.

Интересно то, что нам также не нужно тратить ресурсы на 3 модели. Мы могли тренироваться на одной и той же модели 3 раза с разными пакетами данных. Это тоже послужило бы цели. Но вы уловили идею, не так ли?

Прекращение учебы:

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

Это очень простая нейронная сеть, цель которой - быть классификатором True / False. Посмотрите на выходной слой (зеленый). Он имеет 2 капли, один из которых дает вероятность того, что результат будет истинным, а другой - ложным. Сумма двух значений: как вы уже догадались: 1! Разве ты не умный? XD.

Идея состоит в том, чтобы вы поняли, что эти «капли» называются узлами. В каждом из этих узлов выполняется масса сложных вычислений. Помните, о чем я говорил в L2 Regularization? Здесь все происходит. Таким образом, эти узлы являются фактическими участниками вывода.

Отсев предполагает случайное отключение определенных узлов. Это меняет архитектуру модели и способ передачи информации через узлы. Это делает модель более надежным предсказателем. Модель должна предсказывать одни и те же результаты с отключенными некоторыми из ее участников. Это все равно, что сказать, что вам нужно пройти викторину в отсутствие друзей-топперов. Тебе нужно учиться. Возьми? XD.

Вывод:

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

Если вам не терпится узнать, как их кодировать на Python с помощью PyTorch, обратитесь к следующему репозиторию на GitHub. Будет интересен файл batchnorm_dropout.ipynb. Я также буду загружать файлы TensorFlow в другое репо, чтобы иметь код на обеих этих платформах.

Https://github.com/sreyan-ghosh/pytorch_files

Я прекрасно провел время, написав это для вас, и я надеюсь, что вы могли бы кое-что вынести из этого. Если вам понравилось, оставьте аплодисменты. Если бы вы этого не сделали, вы бы, вероятно, давно ушли со страницы. И если у вас есть какие-либо вопросы, не стесняйтесь оставлять комментарии там. Я буду рад развеять ваши сомнения.

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

Https://www.linkedin.com/in/sreyan-ghosh-b0722a18b/