Эта статья является частью ежедневных электронных писем, которые я пишу для One Step Ahead, частного списка рассылки на Autonomous Tech.

💌 Чтобы присоединиться к списку рассылки и получать ежедневные материалы, перейдите по этой ссылке.
https://mailchi.mp/820bed51b8dc/onestepahead

🚀 Чтобы учиться вместе со мной на онлайн-курсах, посетите: https://jeremycohen.podia.com

Почему

Глубокое обучение обычно делится на три большие области: традиционные нейронные сети, сверточные нейронные сети (CNN) и рекуррентные нейронные сети (RNN).

В то время как первая - это общая структура, которая может работать с большими данными, CNN - это нейронные сети, которые могут работать с изображениями, а RNN - это нейронные сети, которые могут работать с такими последовательностями, как текст или звук.

Вот учебная программа, которой следует большинство курсов (онлайн и офлайн).

Обычно мы начинаем с изучения базовой структуры нейронных сетей и того, как использовать регуляризацию и тонкую настройку для предотвращения переобучения и общих проблем.
Затем мы углубляемся в то, как использовать эти нейронные сети в контексте изображений и последовательностей например, текст или звук.

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

Тогда многие люди специализируются либо на компьютерном зрении через CNN, либо на обработке естественного языка через RNN.

Обычно люди выбирают то, что им больше всего нравится или понятно.
Приложения обычно очень разделены.
Я начал изучать CNN через беспилотные автомобили и даже не взял ни одного класса RNN, потому что мне не нужно было изучать NLP.
Некоторые люди работают в компаниях, занимающихся чат-ботами, и будут пропускать CNN, чтобы сосредоточиться на RNN, которые для них гораздо более полезны.

Сегодня я буду обсуждать, является ли изучение того и другого - хорошей идеей или пустой тратой времени.

Изучение CNN

Начнем с приложений компьютерного зрения.

Очень популярной областью глубокого обучения является компьютерное зрение или способность работать с изображениями.

От классификации изображений до сегментации изображений можно многое сделать.

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

Давайте не будем вдаваться в подробности техники, но давайте просто разберемся, для чего используются CNN.

Классификация изображений

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

Обнаружение объектов

Второе наиболее используемое применение CNN - обнаружение объектов.
Цель состоит в том, чтобы вывести набор координат ограничивающего прямоугольника из изображения. Здесь мы выводим не 0, 1, 2,… как в первом случае, а список из 4 координат, представляющих ограничивающий прямоугольник, и оценку вероятности для класса.
Обнаружение координат ограничивающего прямоугольника в данном случае фактически является задачей регрессии.
Обнаружение объектов также выполняет классификацию, поскольку обнаруживает конкретный объект и может обнаруживать автомобиль среди 80 или более объектов.

Сегментация изображений

Если мы продолжим наш обзор CNN, мы получим нейронную сеть, которая может классифицировать каждый пиксель изображения и установить объект (дорогу, пешеход, автомобиль,…). В отличие от обнаружения объектов, здесь каждый объект может быть обнаружен индивидуально. Следовательно, пешеход слева не окрашен так же, как пешеход справа.
Результатом является изображение. Чтобы получить изображение в качестве вывода (в отличие от класса или числа), нейронная сеть работает двумя способами: кодировщик, который изучает желаемые функции, и декодер, воссоздающий изображение. Для воссоздания изображений используются такие методы, как транспонированные свертки.

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

Вот шпаргалка

Изучение RNN

Поскольку я сначала научился беспилотным автомобилям, я сначала выучил CNN. Может быть, это и ваш случай.
В течение многих лет я был совершенно не знаком с RNN и тем, как они обрабатывают текст.

Давайте попробуем рассмотреть несколько приложений RNN.

Рекуррентная нейронная сеть - это сеть, которая может понимать последовательности и время.
В сверточной нейронной сети мы обрабатывали каждый раз одно изображение.
Если мы работаем с видео, мы разбиваем видео на изображения и обрабатываем каждое изображение независимо.

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

Давайте попробуем проанализировать различные варианты использования.

Классификация (многие-к-одному)

Начнем с классификации для сравнения с нейронными сетями. Сначала мы можем взять серию слов и передать их нейронной сети, чтобы она могла вывести класс.
Например, мы можем проанализировать обзор фильма и классифицировать текст как положительный или отрицательный.
Мы говорим о "многие-к-одному", потому что мы берем много входов и выводим один единственный элемент.

Подсказка слов или машинный перевод (многие-ко-многим)

Если мы хотим понять значения слов и предсказать оставшуюся часть предложения по его первым нескольким словам, мы находимся в контексте предсказания "многие-ко-многим".
Мы берем много слов в качестве входных данных (быстрая коричневая лиса) и после каждого слова мы пытаемся угадать следующее с учетом всех предшествующих. Итак, мы находимся в случае "многие-ко-многим".

Иногда у нас не так много вывода, как ввода, например, при языковом переводе.

Генерация последовательности (один ко многим)

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

Если вы хотите узнать о RNN, вы можете получить доступ к широкому спектру интересных вакансий практически в любой области.
Вот шпаргалка!

Изучение обоих: следующий шаг?

Является ли изучение (и освоение) CNN и RNN следующим шагом, если вы знаете только одну из них?

Долгое время я вообще не рассматривал РНС. На протяжении большей части моей карьеры в области глубокого обучения я плохо практиковал RNN. В лучшем случае я прошел общие курсы, такие как специализация Deep Learning или Nanodegree.

Это очень хорошие курсы, но примеры зачастую далеки от реальных.

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

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

RNN используют последовательности.
Последовательности - это не только текст или музыка, это также могут быть видео (набор изображений).

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

Классификация действий, создание фильмов, следующий шаг - использование RNN.

Чтобы понять действия в видео, мы должны анализировать несколько изображений, а не одно. Затем мы можем работать с использованием RNN, чтобы сосредоточиться на отслеживании сверточных функций.

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

Большинство людей изучают только одну из двух областей, изучение обеих на самом деле является одним из немногих, кто работает с видео. Можно многое сделать: предотвратить кражу в магазинах, заменить Kinect, предсказать поведение автомобилей в будущем, понять футбольный матч…
Быть на шаг впереди - значит делать то, чего не делают другие, в том числе и это.

Чтобы получать подобные электронные письма ежедневно, подпишитесь на частный список рассылки!

📩 https://mailchi.mp/820bed51b8dc/onestepahead