Загрузка урока...
Сверточные нейронные сети (CNN) - это архитектуры, состоящие преимущественно из сверточных слоев. Каждый сверточный слой состоит из нескольких фильтров (ядер). Обучаясь, сеть последовательно будет выучивать полезные для решения задачи паттерны (будет находить веса в фильтрах) и на основе найденных паттернов будет делать прогнозы.

Сначала в сверточной сети идут сверточные слои - обучаясь, модель выучивает полезные паттерны.
Далее, в конце сети (в ее голове) идет 1-2 полносвязных слоя. Признаки (паттерны), выученные свертками, вытягиваются в вектор и подаются на вход полносвязным слоям, а они уже в свою очередь решают исходную поставленную задачу (например, классифицируют объекты на изображениях).
Рассмотрим одну из самых первых сверточных архитектур - LeNet.
LeNet - архитектура сверточной нейронной сети, предложенная ЛеКуном и др. в 1998 г. В общем случае при упоминании LeNet говорят о конкретной модификации LeNet-5.
Ян ЛеКун и др. впервые применили сверточную нейронную сеть для чтения рукописных цифр номеров почтовых индексов, предоставляемых почтой США. После доработок эта сеть и стала LeNet, а Ян ЛеКун вошел в историю как один из самых известных людей в CV.
Посмотрим на архитектуру:

Картинка отсюда.
Набор сверточных слоев, нелинейностей и пуллингов. В какой-то момент полученный набор feature maps вытягивают в вектор и прогоняют уже через известные полносвязные слои. На выходе 10 чисел, показывающие вероятности каждой из цифр (0-9). Просто, не так ли? И на самом деле, если мы откроем современные архитектуры, они во многом будут похожи на эту архитектуру, придуманную более 25 лет назад! Конечно, идеи посложнее, но основа та же самая.
Обучение модели в PyTorch состоит из трех важных шагов:
Формирование батчей данных для дальнейшего обучения модели
Задание архитектуры сети
Создание цикла обучения и отслеживание метрик
Далее в видео мы обсудим подробно каждый из этих шагов.
В этом материале нет файлов для просмотра.