Обучение нейронных сетей
Подтемы:
Что такое перцептрон?
Перцептрон - это простая форма искусственной нейронной сети, представляющая собой один нейрон с несколькими входами, каждый из которых имеет весовое значение. Он принимает входные данные, взвешивает их с помощью весов и применяет функцию активации к суммированному взвешенному входу, чтобы сгенерировать выход. Перцептрон может использоваться для бинарной классификации, когда выход является бинарным (например, 0 или 1), и может быть обучен методом градиентного спуска для настройки весовых коэффициентов.
Ссылки для изучения
Как работает Back Propagation?
Алгоритм обратного распространения ошибки (Back propagation) - это метод обучения нейронных сетей, который используется для определения и корректировки весовых коэффициентов сети, чтобы минимизировать ошибку между прогнозируемым и фактическим выходом. Он работает в два этапа:
-
Прямое распространение: Входные данные проходят через нейронную сеть, и каждый нейрон вычисляет свой выход на основе текущих весовых коэффициентов и функции активации.
-
Обратное распространение: Ошибка между прогнозируемым и фактическим выходом вычисляется и обратно распространяется через сеть, чтобы определить, какие веса нужно скорректировать для уменьшения этой ошибки. Это делается путем вычисления градиента функции потерь по отношению к каждому весу с использованием правила цепочки.
После этого веса обновляются с использованием градиентного спуска или его вариантов, чтобы минимизировать ошибку предсказания. Этот процесс повторяется на протяжении нескольких эпох обучения до тех пор, пока модель не достигнет удовлетворительного уровня производительности.
Ссылки для изучения
Зачем нейросети функции активации?
Функция активации добавляет нелинейность между линейными слоями. Без неё композиция нескольких слоёв остаётся одним линейным или аффинным преобразованием, поэтому глубина не даёт модели описывать нелинейные зависимости.
Выбор активации также влияет на прохождение градиента и диапазон выходов. Например, ReLU проста и не насыщается на положительной полуоси, но может надолго оставить нейрон в области нулевого градиента. Нельзя считать, что любая активация сама по себе предотвращает затухание градиентов.
Ссылки для изучения
Что такое функция активации?
Функция активации - это математическая функция, применяемая к выходу каждого нейрона в нейронной сети. Она определяет, как нейрон должен реагировать на входные данные и определяет выходной сигнал нейрона. Функции активации придают нейронной сети нелинейность, что позволяет ей моделировать сложные зависимости в данных.
Ссылки для изучения
Какие вы знаете функции активации?
Некоторые из наиболее популярных функций активации включают в себя:
-
ReLU(Rectified Linear Activation): Простая и широко используемая функция, которая возвращает ноль для всех отрицательных входов и сам вход для всех неотрицательных входов. -
Sigmoid: Функция, которая преобразует вход в диапазоне от 0 до 1, полезная для бинарной классификации. -
Tanh(гиперболический тангенс): Похожа на сигмоид, но преобразует вход в диапазоне от -1 до 1, что может помочь в центрировании данных. -
Leaky ReLU: Вариант ReLU, который позволяет небольшим отрицательным входам пропускать небольшой сигнал, чтобы избежать “мертвых” нейронов. -
Softmax: Функция активации, используемая для многоклассовой классификации, которая преобразует выходы в вероятности, сумма которых равна 1.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- Мок-собеседование Junior Python-разработчика с вопросами по ML · 23:10–24:55Мок-собеседование · Совместный разбор
Кандидат перечисляет ReLU, parametric ReLU и sigmoid и объясняет практические различия между ними.
Приведите формулы функции активации.
Формулы некоторых из наиболее распостраненных функций активации:
-
ReLU
-
Sigmoid
-
Tanh
-
Leaky ReLU
Softmax(для многоклассовой классификации)
Ссылки для изучения
Почему несколько линейных слоев без нелинейности равны одному?
Линейный слой с bias выполняет аффинное преобразование Wx + b. Композиция двух таких слоев снова аффинна: W2(W1x + b1) + b2 = W'x + b'. Поэтому сколько бы линейных слоев без нелинейности ни поставить, граница останется линейной, и кубическую зависимость они не представят. Промежуточная размерность может ограничить ранг преобразования, но не добавит нелинейность. Нужна нелинейная activation, например ReLU, tanh или GELU.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- Собеседование Data Science: Артур Кузин/Sber Devices vs Сергей Колесников/Tinkoff | #Нанято S1E02RU · 36:45–37:38Мок-собеседование · Совместный разбор
На примере cubic polynomial кандидат объясняет, что произведение нескольких линейных слоёв сворачивается в одну матрицу.
Формула ReLU.
Формула функции активации ReLU (Rectified Linear Unit) выглядит следующим образом:
Это означает, что функция ReLU возвращает , если положительно, и возвращает 0, если отрицательно или равно нулю.
Ссылки для изучения
Какие есть оптимизаторы в нейронных сетях?
В нейронных сетях оптимизаторы используются для обновления весов сети на основе данных и функции потерь. Вот несколько наиболее распространенных оптимизаторов:
-
SGD (Stochastic Gradient Descent): Классический метод, который обновляет параметры в направлении антиградиента текущей оценки градиента функции потерь. -
Momentum: Вариант SGD, который добавляет понятие инерции в обновления параметров, тем самым ускоряя сходимость. -
Nesterov Accelerated Gradient (NAG): Усовершенствование Momentum, где корректировка параметров происходит более предсказуемо. -
Adagrad: Адаптирует скорость обучения к параметрам, увеличивая эффективность для разреженных данных. -
RMSprop: Изменяет метод Adagrad для борьбы с его агрессивным, монотонно уменьшающимся скоростям обучения. -
Adam (Adaptive Moment Estimation): Сочетает идеи Momentum и RMSprop, поддерживая оценки первого и второго моментов градиента. -
Adamax: Вариант Adam, основанный на норме L-infinity. -
Nadam (Nesterov-accelerated Adaptive Moment Estimation)
: Интегрирует Nesterov Momentum в Adam.
Эти оптимизаторы позволяют настроить процесс обучения, улучшить скорость сходимости и повысить точность модели на разнообразных задачах.
Ссылки для изучения
Как определить размер пакета (batch_size)?
Размер батча выбирают с учётом памяти, скорости обработки и качества на валидации. Большие батчи часто лучше загружают оборудование и уменьшают шум градиента, но требуют настройки learning rate. Малые экономят память и дают больше обновлений за эпоху; их преимущество по качеству не гарантировано.
Ссылки для изучения
Как изменяются свойства пакета в зависимости от размера пакета (batch_size)?
Большой батч даёт менее шумную оценку градиента, но требует больше памяти и уменьшает число обновлений за эпоху. Малый батч обычно даёт более шумный градиент; это иногда помогает обобщению, но не гарантирует стабильность или лучшее качество. Размер выбирают вместе с learning rate по валидации и замерам скорости.
Ссылки для изучения
Какие методы регуляризации существуют для нейросетей?
Для регуляризации нейронных сетей существуют следующие методы:
-
L1иL2регуляризация: Добавление штрафа на веса в функцию потерь для сокращения их значений и предотвращения переобучения. -
Dropout: Случайное исключение некоторых нейронов во время обучения для уменьшения зависимости между нейронами и предотвращения переобучения. -
Early stopping: Остановка обучения, когда производительность на валидационном наборе данных перестает улучшаться, чтобы избежать переобучения. -
Batch Normalization: Нормализация активаций между слоями для ускорения обучения и уменьшения переобучения.
Эти методы помогают сделать нейронные сети более устойчивыми к переобучению и улучшить их обобщающую способность.
Ссылки для изучения
Примеры хороших ответов из реальных собеседований
- Собеседование Data Science: Артур Кузин/Sber Devices vs Сергей Колесников/Tinkoff | #Нанято S1E02RU · 46:45–49:05Мок-собеседование · Совместный разбор
Участники обсуждают L1/L2 и dropout, включая случайное отключение активаций при обучении и поведение на inference.
Каким образом применение метода дропаут способствует регуляризации модели?
Метод дропаут случайным образом исключает некоторые нейроны во время обучения с определенной вероятностью. Это заставляет нейроны работать независимо друг от друга и предотвращает слишком сильную адаптацию модели к обучающим данным, что в свою очередь уменьшает риск переобучения и улучшает обобщающую способность модели.
Ссылки для изучения







