Вы находитесь на странице: 1из 6

14.

Назовите и прокомментируйте проблему


переобучение/недообучения нейронных сетей, как данная проблема
связана с архитектурой сетей, как можно снизить вероятность
переобучения.
Если че смотри лекцию 3.
Методы снижения вероятности переобучения:
 Выбор функций активации, функций ошибки и других нелинейных
функций может изменить результаты работы сети (например ф-я ReLu)
 Метод дропаутов (будет ниже)
 Ограничение нормы вектора весов (позволяет предотвратить
«взрывной» рост весов даже при слишком большой скорости обучения,
потому что обновления весов всегда ограничены)
 Регуляризация данных (используют небольшое подмножество наиболее
важных входов и, соответственно, почти не подвержены влиянию
«шумных» входов, сильно штрафует векторы весов с большими
значениями, и слабо затрагивает векторы с умеренными значениями)
 Нормализация мини-батча (хз чеита)
 Метод замораживания части слоев – как правило начальные слои, чтобы
они не выходили в насыщение. Иногда веса можно просто ограничить.
 Использование предобучения (Предобучение на неразмеченных
данных. Предобучение при помощи автокодирующих сетей – каждый
слой предобучается так, чтобы воспроизводить результат предыдущего
слоя или, например, генетическими алгоритмами)
 Инициализация весов (в случае, если предобучение невозможно,
используются инициализации Ксавьера или Ге)
 Остаточное обучение (Используется тождественный слой с единичными
весами)
 Расширение выборки (искусственное расширение обучающих данных
их искаженными (зашумленными) версиями (аугментация данных))
 Метод статистических ансамблей (использование нескольких копий
сети с разной инициализацией)
 Дообучение верхних слоев сети (специально выделенном наборе
данных)

Переобучение (overfitting) — одна из проблем глубоких нейронных


сетей (Deep Neural Networks, DNN), состоящая в следующем: модель хорошо
объясняет только примеры из обучающей выборки, адаптируясь к
обучающим примерам, вместо того чтобы учиться классифицировать
примеры, не участвовавшие в обучении (теряя способность к обобщению).
Одно из предложенных решений превзошло все остальные, благодаря своей
простоте и прекрасным практическим результатам; это решение — Dropout (в
русскоязычных источниках — “метод прореживания”, “метод исключения”
или просто “дропаут”). Также есть способы решения такие как метод
ансамблей и батч-нормализация (хз чеита, гуглите).

Главная идея Dropout — вместо обучения одной DNN обучить ансамбль


нескольких DNN, а затем усреднить полученные результаты. Сети для
обучения получаются с помощью исключения из сети (dropping out) нейронов
с вероятностью p, таким образом, вероятность того, что нейрон останется в
сети, составляет q=1−p. “Исключение” нейрона означает, что при любых
входных данных или параметрах он возвращает 0. Исключенные нейроны не
вносят свой вклад в процесс обучения ни на одном из этапов алгоритма
обратного распространения ошибки (backpropagation); поэтому исключение
хотя бы одного из нейронов равносильно обучению новой нейронной сети.
Переобучение или недообучение сети свидетельствует о несоответствии
сложности сети характеру зависимостей в данных. Недообучение говорит о
том, что сеть недостаточно сложна для воспроизведения зависимостей.
Переобучение, напротив, свидетельствует о том, что сеть строит слишком
сложную модель.
Из слайдов: При слишком
долгом обучение может
возникнуть ситуация
переобучения.
Переобучение - ситуация,
когда сеть перестанет
учится и будет запоминать
результаты для
тренировочного набора входных данных (выучит тренировочный сет вместе с
его шумами). Тестовые результаты будут вносить шумы – ошибка увеличится.
При переобучении нейросеть считает шумы как бы частью полезного сигнала.
Кроме переобучения может быть недообучение – когда нейросеть выделила
не все признаки.
15. Объяснить, как особенности подготовки данных влияют на
обусловленность сформированной выборки, зачем нужны
тренировочная, тестовая и валидационная выборки.
Если че смотри лекцию 3.
Сбор данных (фотографирование интересующих объектов, снятие
видеопотока с камеры, выделение части изображения на интернет странице).
 операции подготовки данных требуют значительных затрат рабочего
времени и, соответственно, подобный способ создания обучающей базы
весьма дорог.
 Доступ к данным не всегда бывает открытым и не всегда этичен.
 Проблема хранения и безопасности данных, а также их анонимизации.
Данные необходимо собирать в различных условиях — освещение,
взаимодействие объектов, модели устройств, с которых происходит съемка, и
т. д. (Разнородность и качество данных влияют на качество работы сети).
Фильтрация — проверка данных (например изображений, звуков) на
ряд требований: (Например для изображений: достаточный уровень
освещенности объектов, наличие необходимого объекта и т. д.)
Подготовка инструментария для разметки (написание собственного
или оптимизация готового).
Разметка (выделение четырехугольников, необходимых знакомест,
интересующих областей изображения).
Присвоение каждому изображению метки (буква или название
объекта на изображении).
В идеале данных должно хватить на тренировочную,
валидационную и тестовую выборки, причем
тестовая+валидационная>тренировочной.
Тренировочная выборка – на ней проводится обучение. Валидационная
выборка – это выборка проверка, на которой должна проводится в ходе
обучения сети. Тестовая выборка – проверка на ней должна проводится по
окончанию обучения.
В дополнение может быть выделена тренировочная выборка дообучения
(fine-turning) – данная выборка необходима для тонкой настойки сети для
решаемых задач. Также данная выборка может быть сформирована в
результате работы сети.
Особенность подготовки данных – сбалансированность выборки.
Данные должны быть сбалансированы – к каждому классу должно относится
примерно равное число данных.
Решение проблемы дублированием изображений в классах с малым
количеством изображений, или исключение изображений из классов с
большим количеством изображений.
Набор данных можно разделить на два, одна часть будет - классы, с
большим количеством изображений, другая –, с малым количеством. Каждая
часть будет сравнительно сбалансированной. Сначала обучить модель на
классах с большим количеством изображений, затем – на классах с малым
количеством изображений.
Особенность подготовки данных – создание валидационного
репрезентативного множества, – выделение части тренировочного
множества в отдельный набор для проверки работы сети. Валидационная и
тестовая выборки должны иметь одинаковые распределения иначе сеть
обучится неверно. Распределение тренировочной выборки может отличатся от
распределений тестовой и валидационной выборки (быть шире). В некоторых
случаях рекомендуют, чтобы валидационная + тестовая выборка были
70% от всего объема данных. Остановку обучения надо делать когда
точность на тренировочном множестве приблизительно равна точности на
валидационном множестве и слабо меняется несколько итераций
(толерантность обучения).

16. Как вы считаете, зачем нужны разные варианты инициализации


весов нейронных сетей, как вы считаете каким образом предобучение
нейронных сетей сказывается на результате обучения, можно ли
дообучать обученные нейронные сети и как.
Если че смотри лекцию 3.
Инициализация весов используется в случае, если предобучение
невозможно. Используются следующие типы инициализации: Ксавьера, Ге,
Nguyen – Widrow, а также числами 0, 1 и другими случайными числами.
Использование нормализованной инициализации приводит к снижению
насыщения нейронов и снижению переобучения.
Объяснение зачем нужны случайные веса (по тупому для даунов):
Представьте, что кто-то сбросил вас с вертолета на неизвестную
вершину горы, и вы оказались там в ловушке. Везде туман. Единственное, что
вы знаете, это то, что вы должны как-то спуститься на уровень моря. Какое
направление вы должны предпринять, чтобы спуститься до самой низкой
точки?
Если вы не можете найти путь к уровню моря, и вертолет снова отвезет
вас и опустит на ту же самую вершину горы. Вы должны будете снова
следовать тем же указаниям, потому что вы "инициализируете" себя
одинаковыми стартовыми позициями.
Тем не менее, каждый раз, когда вертолет сбрасывает вас куда-то
случайно на гору, вы делаете разные указания и шаги. Таким образом, у вас
будет больше шансов достичь самой низкой точки.
Это то, что подразумевается под нарушением симметрии.
Инициализация является асимметричной (которая отличается), поэтому вы
можете найти разные решения для одной и той же проблемы.
В этой аналогии, где вы приземляетесь, это веса. Таким образом, с разными
весами, больше шансов достичь нижней (или нижней) точки.
Кроме того, это увеличивает энтропию в системе, поэтому система может
создавать больше информации, чтобы помочь вам найти нижние точки
(локальные или глобальные минимумы). Ниже картиночка для понимания.

Предобучение при помощи автокодирующих сетей – каждый слой


предобучается так, чтобы воспроизводить результат предыдущего слоя (deep
belief networks) или, например, генетическими алгоритмами.
Предобучение (stacked autoencoders). Обучение каждого слоя
нейронной сети без учителя с целью задать инициализацию весов.
Процедура обучения:
 Выбирается каждая пара слоев начиная с входного слоя
 К паре добавляется виртуальный выходной слой – образуется
автокодировщик.
 Производится обучение весов слоя, виртуальный выходной слой
убирается.
Автокодировщик – это алгоритм машинного обучения без учителя
основанный на нейронной сети, который преобразует входные данные
большой размерности в представление малой размерности. Принцип работы в
операциях кодирования и декодирования информации с условием, что данные
не должны просто копироваться. Условие может быть реализовано за счет
уменьшения или увеличения размерности внутренних слоев сети,
использование нелинейных функций активации и методов регуляризации. На
практике автокодировщики часто используют для извлечения таких признаков
из данных, которые в итоге позволяют уменьшить ошибку при последующем
обучении с учителем.
Часть тренировочных данных может быть выделена в выборку
дообучения, например, для балансировки основной тренировочной выборки
классы с малым числом данных можно выделить в выборку дообучения.
Также данная выборка может быть сформирована в результате работы
сети.
Наборы данных похожи, данных дообучения много. Необходимо
обучить на новых данных несколько верхних слоев обученной модели с малой
скоростью обучения.
Наборы данных похожи, данных мало. Необходимо обучить
классификатор на признаках, извлеченных из верхних слоев побученной
модели.
Наборы данных не похожи, данных много. Необходимо обучить на
новых данных большое количество слоев обученной модели с малой
скоростью обучения.
Наборы данных не похожи, новых данных мало. Обучить
дополнительный классификатор лучше обучить классификатор (например,
SVM) на признаках (активациях) из более ранних слоев. В данном случае
использование данных под вопросом.