Понятие локальных минимумов в обучении нейронных сетей

Добавлено 15 февраля 2020 в 19:38
Нейронные сети перцептрон для начинающих  (содержание)

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

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

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

Мы назовем это «проблемой локальных минимумов».

Почему локальные минимумы заслуживают нашего внимания?

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

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

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

Что такое локальный минимум?

В части 5 мы рассмотрели «чашу ошибки», показанную ниже, и я описал обучение как, по сути, стремление к самой нижней точке в этой чаше.

Рисунок 1 Чаша ошибки
Рисунок 1 – Чаша ошибки

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

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

Однако мы знаем, что нейронные сети способны аппроксимировать чрезвычайно сложные связи вход-выход. Показанная выше чаша ошибки не совсем подходит под категорию «чрезвычайно сложных». Это просто график функции \(f(x,y) = x^2 + y^2\)

Но теперь представьте, что функция ошибки выглядит примерно так:

Рисунок 2 Пример функции ошибки
Рисунок 2 – Пример функции ошибки

Или так:

Рисунок 3 Пример функции ошибки
Рисунок 3 – Пример функции ошибки

Или так:

Рисунок 4 Пример функции ошибки
Рисунок 4 – Пример функции ошибки

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

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

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

Действительно ли мы хотим найти глобальный минимум?

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

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

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

Рисунок 5 Пример функции ошибки
Рисунок 5 – Пример функции ошибки

Заключение

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

Теги

Локальный минимумМашинное обучение / Machine LearningНейросеть / Нейронная сетьПерцептрон / PerceptronЧаша ошибки

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

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.