Потихоньку изучаю DataScience. Дошёл до борьбы с переобучением и хочу поделиться наглядной картинкой.

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Потихоньку изучаю DataScience. Дошёл до борьбы с переобучением и хочу поделиться наглядной картинкой.

Для начала немного подробностей о задаче:

=====

Это MNIST, т.е. распознаются рукописные цифры. Сеть представляет собой 3-х слойный перцептрон с функцией активации RELU (f(x) = x * (x > 0), т.е. если x меньше 0 функция вернёт 0, в противном случае - x).

На вход подаются картинки 28х28 пикселей со значениями от 0 до 255. Картинки преобразуются в 784 входа со значениями от 0 до 1. Скрытый слой содержит 40 нейронов. Выходной слой состоит из 10 нейронов, по одному на каждую цифру (0-9).

=====

Теперь немного о графиках:

Справа графики обучения методом обратного распространения. Слева графики обучения с использованием приёма Drop Out (выключение случайных нейронов).

На каждом графике две линии: синяя - обучающая выборка, оранжевая - проверочная.

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

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

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

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

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

Комментарии: