Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
глубокое обучение: общие замечания
Сергей Николенко
СПбГУ − Санкт-Петербург28 сентября 2019 г.
Random facts:
• 28 сентября 480 г. до н.э. «друг на друга корабли пошли. Сначала удавалось персамсдерживать напор. когда же в узком месте множество судов скопилось, никому никтопомочь не мог, и клювы направляли медные свои в своих же, вёсла и гребцов круша».
• 28 сентября 1066 г. Вильгельм Бастард сделал по английской земле первый шаг к тому,чтобы называться заметно более славным именем
• 28 сентября 1864 г. в Лондоне собрался митинг в поддержку польскогонационально-освободительного восстания; рабочие разных стран решили, что, пословам присутствовавшего там Карла Маркса, «завоевание политической власти сталовеликой обязанностью рабочего класса», и учредили Первый интернационал
• 28 сентября 1939 г. в Москве Иоахим фон Риббентроп и Вячеслав Молотов подписалиДоговор о дружбе и границе между СССР и Германией, к которому прилагались трипротокола — один конфиденциальный и два секретных
Регуляризацияв нейронных сетях
Регуляризация в нейронных сетях
• У нейронных сетей очень много параметров.• Регуляризация совершенно необходима.• 𝐿2 или 𝐿1 регуляризация (𝜆 ∑𝑤 𝑤2 или 𝜆 ∑𝑤 |𝑤|) — этоклассический метод и в нейронных сетях, weight decay.
• Очень легко добавить: ещё одно слагаемое в целевуюфункцию, и иногда всё ещё полезно.
3
Регуляризация в нейронных сетях
• Регуляризация есть во всех библиотеках. Например, в Keras:• W_regularizer добавит регуляризатор на матрицу весовслоя;
• b_regularizer — на вектор свободных членов;• activity_regularizer — на вектор выходов.
3
Регуляризация в нейронных сетях
• Второй способ регуляризации: ранняя остановка (earlystopping).
• Давайте просто останавливаться, когда начнёт ухудшатьсяошибка на валидационном множестве!
• Тоже есть из коробки в Keras, через callbacks.
3
Регуляризация в нейронных сетях
• Третий способ – max-norm constraint.• Давайте искусственно ограничим норму вектора весовкаждого нейрона:
‖w‖2 ≤ 𝑐.
• Это можно делать в процессе оптимизации: когда w выходитза шар радиуса 𝑐, проецируем его обратно.
3
Дропаут
• Но есть и другие варианты.• Дропаут (dropout): давайте просто выбросим некоторыенейроны случайным образом с вероятностью 𝑝!(Srivastava et al., 2014)
4
Дропаут
• Получается, что мы сэмплируем кучу сетей, и нейронполучает на вход «среднюю» активацию от разныхархитектур.
• Технический вопрос: как потом применять? Неужели надоопять сэмплировать кучу архитектур и усреднять?
4
Дропаут
• Чтобы применить обученную сеть, умножим результат на 1/𝑝,сохраняя ожидание выхода!
• В качестве вероятности часто можно брать просто 𝑝 = 12 ,
большой разницы нет.
4
Дропаут
• Dropout улучшает (большие и свёрточные) нейронные сетиочень заметно... но почему? WTF?
4
Дропаут
• Идея 1: нейроны теперь должны обучать признакисамостоятельно, а не рассчитывать на других.
4
Дропаут
• Аналогично, и разреженность появляется.
4
Дропаут
• Идея 2: мы как бы усредняем огромное число (2𝑁 ) сетей собщими весами, каждую обучая на один шаг.
• Усреднять кучу моделей очень полезно –bootstrapping/xgboost/всё такое...
• Получается, что дропаут – это такой экстремальныйбутстреппинг.
4
Дропаут
• Идея 3: this is just like sex!• Как работает половое размножение?• Важно собрать не просто хорошую комбинацию, аустойчивую хорошую комбинацию.
4
Дропаут
• Идея 4: нейрон посылает активацию 𝑎 с вероятностью 0.5.• Но можно наоборот: давайте посылать 0.5 (или 1) свероятностью 𝑎.
• Ожидание то же, дисперсия для маленьких 𝑝 растёт (чтонеплохо).
• И у нас получаются стохастические нейроны, которыепосылают сигналы случайно – точно как в мозге!
• Улучшение примерно то же, как от dropout, но нужно меньшекоммуникации между нейронами (один бит вместо float).
• Т.е. стохастические нейроны в мозге работают какдропаут-регуляризатор!
• Возможно, именно поэтому мы умеем задумываться.
4
Дропаут
• Идея 5: dropout — это специальная форма априорногораспределения.
• Это очень полезный взгляд, с ним победили dropout врекуррентных сетях.
• Но для этого нужно сначала поговорить о нейронных сетяхпо-байесовски...
• Вернёмся к этому, если будет время.
4
Вывод
• Итого получается, что dropout – это очень крутой метод.
• Но и он сейчас отходит на второй план из-за нормализациипо мини-батчам и новых версий градиентного спуска.
• О них чуть позже, а сначала об инициализации весов.
5
Спасибо!
Спасибо за внимание!
6