www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Сверточные нейронные сети для всех | Часть I

Дата публикации Feb 5, 2018

Первые три курсаCoursera Deep Learning Специализациябыли сносно жесткими, но потом пришликурс 4, Так много отличных тем и концепций! Но бесчисленное количество раз, когда мы останавливали видео, делали заметки и перечитывали лекции, мы, группа официальных наставников, решили, что руководство по обучению учащихся стоит этих усилий.

Давайте пройдем этот тур по CNN, пока не переместимся в Neural Style.

В первой части этой учебной трилогии рассматриваются общие понятия, рассматриваемые в этом курсе. Что такое сверточные нейронные сети и как на самом деле работает YOLO?Часть IIобобщает каждую лекцию и углубляется в объяснение концепций верхнего уровня.Часть IIIпредлагает словарь deeplearning.ai, чтобы помочь вам разобраться в джунглях акронимов, технических терминов и случайных шуток от гроссмейстера Нг.

Давайте начнем с того, что разберем самые интересные концепции курса CNN по очереди.


Сверточные нейронные сети

Что такое сверточная нейронная сеть?

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

Свертка пикселей изображения.

Как работают CNN?

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

Простая архитектура CNN. Источник:https://goo.gl/dVSMQo

Существуют определенные архитектуры, такие как ResNets или InceptionNets, чтобы ускорить обучение CNN. Обработка огромного количества изображений и тренировка весов требует времени, потому что существует очень много связей. К счастью, многие великие CNN уже были обучены, какImageNetилиVGGи вы можете повторно использовать их модели. Эндрю Нг советует использовать трансферное обучение с существующей архитектурой CNN и предварительно обученной моделью, чтобы быстро приступить к решению задачи компьютерного зрения.


Обнаружение объекта через YOLO

Что такое ЙОЛО?

YOLO - это алгоритм обнаружения нескольких объектов, который также работает в режиме реального времени. Картинаавтомобили с автоматическим управлением, которым необходимо идентифицировать автомобили, пешеходов и светофоров во время вожденияилипросто комментируя фильм, YOLO очень быстр, потому что «вы смотрите только один раз», то есть вы выполняете один шаг прямого распространения и сразу же точно знаете, где находится объект на изображении и к какому классу принадлежит этот объект. Как вишня на вершине, YOLO может обнаружить несколько объектов на изображении.

Вывод обнаружения объекта YOLO. Источник:https://goo.gl/yefAZa

Как работает YOLO?

Чтобы обучить CNN с использованием YOLO, сначала вы должны поместить сетку на тренировочный образ, например формы 3х3. Далее вы создаете выходные метки для каждой сетки. Нарисуйте ограничивающий прямоугольник вокруг объектов в каждой сетке и соответствующим образом обозначьте выходные векторы. Пометьте как можно больше изображений. Последний слой вашего CNN имеет форму ячеек сетки из входного изображения по ширине и высоте и столько же каналов, сколько число элементов в одном выходном векторе.

Как маркировать ваш тренировочный набор для YOLO.

Обратное распространение корректирует вес CNN, чтобы он научился идентифицировать объекты. Вы можете использовать не максимальное подавление, чтобы определить наилучшую ограничивающую рамку для объекта. Если вы столкнулись с несколькими объектами, перекрывающимися в одной ячейке сетки, вы можете использовать якорные блоки для разделения этих объектов. Эти детали объясняются более подробно вЧасть II,


Распознавание лица

Что такое распознавание лиц?

Распознавание лиц используется для идентификации человека на основе изображения его лица. В то время как проверка лица связана с проверкой, является ли человек тем, кем, как он утверждает, он основывается на своем лице, распознавание лица намного сложнее, потому что вы пытаетесь сопоставить лицо этого человека с базой данных изображений лица. Кроме того, вам часто приходится идентифицировать человека с помощью однократного обучения, то есть вы должны идентифицировать его на основе одного изображения и проверить, достаточно ли он похож на какое-либо изображение в базе данных - довольно сложно!

Их лица обнаружены! Теперь мы можем проверить, принадлежат ли эти лица людям, которым разрешено находиться там. Источник:https://goo.gl/ubrq3H

Как работает распознавание лиц?

Ваша цель - изучить функцию подобия, например, потеря триплета Функция подобия предназначена для выявления идентичности людей на разных наборах изображений. Функция потери триплета требует трех изображений для вычисления сходства: якорь, положительный и отрицательный пример этого человека. Функция потери триплета корректирует веса, чтобы максимизировать разницу между положительным и отрицательным изображением на основе привязанного изображения. Основываясь на результатах потери триплета, CNN решает, узнает ли он человека или нет. Убедитесь, что вы усердно тренируете изображения для функции подобия.

Потеря тройня узнает, что сходство между двумя изображениями Джен Энистон должно быть больше, чем между Джен Энистон и Л.Л. Кул Дж. Источник:https://goo.gl/hWn8jJ
Хороший пример сложного в обучении триплета изображения для функции подобия.

Нейронный стиль передачи

Что это такое?

Neural Style Transfer - забавное приложение, которое улучшит ваше понимание CNN. По сути, вы пытаетесь создать новое изображение, которое сочетает в себе содержание одного изображения со стилем другого изображения, скажем, от популярного художника. Хотите знать, как Пикассо нарисовал бы вас? Идите и попробуйте сами с Neural Style Transfer!

«Звездная ночь» Ван Гога подана на GIF.

Как работает Neural Style Transfer?

В Neural Style Transfer вы начинаете с созданного изображенияг, который содержит случайные значения пикселей, как показано ниже. Далее вы определяете изображение контентаСи образ стиляS, который вы хотите объединить. Ваша цель - настроить значения пикселей вги чтогстановится похожим на обаСа такжеS, Для этого вы определяете функции стоимостиJ (С)а такжеJ (S),и попытаться свести к минимуму оба.

Случайные значения пикселей для начала NST.

J (С)удостоверяется, чтогвыглядит аналогично содержанию вС, Вы знаете, что CNN учатся распознавать объекты более низкого уровня, такие как ребра в более ранних скрытых слоях, и более сложные объекты, такие как лица в более поздних скрытых слоях. Выберите скрытый слой в середине CNN и бегите вперед сСа такжег, Затем вы сравниваете значения активации для обоих изображений и пытаетесь минимизировать разницу между значениями активации посредством обратного распространения.

Далее вы также должны настроить стильгчтобы соответствовать стилю вS, Ключ к минимизацииJ (S),чтобы настроить корреляцию между активациями канала вгсоответствоватьS, Вы делаете это путем расчета матриц Грама дляSа такжег, Матрица Грама рассчитывает каждую возможную пару комбинаций фильтров. Затем вы выбираете слой в середине CNN и снова запускаете распространение вперед дляSа такжег,J (S),минимизирует разницу между грамм-матрицами путем обратного распространения и делаетгвыглядеть более похожим наS,

Красивый, исторический Штраусбергер Плац в Берлине в сочетании с «Звездной ночью» Ван Гога через НСТ

Круто то, что нейронная сеть учится настраивать значения пикселей, а не только веса! Это очень наглядный способ исследования и понимания CNN, и я призываю вас создать свои собственные изображения передачи нейронного стиля.


Отказ от ответственности: все кредитные из-заdeeplearning.ai, Хотя я наставник, я просто суммирую и перефразирую содержание, чтобы помочь учащимся развиваться.

Часть I - завернутьЧасть IIа такжеЧасть III, Если вы считаете, что этот пост был полезен, не забудьте показать свой 💛 👏 👏 👏 и следуйте за мной, чтобы услышать больше статей о глубоком обучении, онлайн-курсах, автономных автомобилях и жизни. Также,чекэтисообщенийо специализации глубокого обучения. Пожалуйста, прокомментируйте, чтобы поделиться своим мнением. Ура! 🙇

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map