Эндрю Ын: «Не изобретайте гиперпараметры, используйте проверенные архитектуры»

DeepLearning.AI 139 тыс. 11 мин 3 мин 07.11.2017
Главное

В новом уроке от DeepLearning.AI рассматривается практический пример построения сверточной нейронной сети (CNN) для распознавания рукописных цифр. Основатель проекта Эндрю Ын на примере архитектуры, вдохновленной классической сетью LeNet-5, объясняет принципы объединения различных слоев и логику распределения параметров в современных моделях глубокого обучения.

🏗️ Анатомия классической сверточной сети 0:00

В качестве базового примера Эндрю Ын рассматривает задачу распознавания рукописных цифр (от 0 до 9) на цветных изображениях размером 32x32x3 пикселя . Архитектура, представленная в уроке, во многом вдохновлена классической сетью LeNet-5, созданной Яном Лекуном много лет назад, и использует схожие принципы выбора гиперпараметров .

Процесс обработки данных начинается с первого слоя (Layer 1):

📏 Проблема терминологии и подсчета слоев 2:20

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

Автор курса придерживается следующей логики:

  1. Слоем считается только тот этап обработки, который содержит обучаемые веса (параметры) .
  2. Поскольку слой пулинга не имеет весов, а обладает лишь гиперпараметрами, Ын объединяет Conv1 и Pool1 в единый «Слой 1» (Layer 1) .
  3. Названия «Conv1» и «Pool1» в данном контексте указывают на их принадлежность к первому логическому уровню нейросети .

🔗 От сверток к полносвязным слоям 3:45

Второй этап (Layer 2) повторяет структуру первого, но с увеличением глубины каналов. Для входа 14x14x6 применяется свертка с 16 фильтрами 5x5 (stride 1, no padding), что дает на выходе 10x10x16 . После последующего Max Pooling (2x2, stride 2) размер уменьшается до 5x5x16 .

Переход к классической архитектуре нейронных сетей происходит через следующие шаги:

📉 Анализ параметров и общие паттерны 7:15

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

Основные тенденции при углублении в сеть:

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

💬 Цитаты

«Когда я считаю слои, я считаю только те слои, у которых есть веса.»

«Один из распространенных советов — не пытаться изобретать собственные настройки гиперпараметров, а посмотреть в литературе, что сработало у других.»

«Если размер активации падает слишком быстро, это обычно не очень хорошо для производительности.»

👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Padding (Паддинг)
Добавление пустых пикселей по краям изображения для сохранения его размера после свертки.
Max Pooling
Операция выбора максимального значения из определенной области изображения для уменьшения его размерности.
Softmax
Функция активации, преобразующая вектор чисел в вектор вероятностей, сумма которых равна единице.
ReLU
Линейный выпрямитель, популярная функция активации, которая заменяет отрицательные значения нулем.
📊 Цифры
⚖️ Другая сторона
Технологии и IT DeepLearning.AI CNN LeNet-5 Эндрю Ын Max Pooling