Узнайте, что такое глубокое обучение и как алгоритмы глубокого обучения используются в реальных приложениях!
Методы машинного обучения (ML) и глубокого обучения (DL) применяются в самых разных областях, и специалисты по данным востребованы во многих отраслях.
С помощью машинного обучения мы определяем процессы, с помощью которых мы получаем знания, которые не всегда очевидны из данных, чтобы принимать решения. Применения методов машинного обучения могут сильно различаться, и их можно найти в таких разнообразных дисциплинах, как медицина, финансы и реклама.
В глубоком обучении используются более совершенные нейронные сети, чем в 1980-х годах. Это не только результат последних достижений в теории, но и достижений компьютерного оборудования.
В этом ускоренном курсе мы узнаем о глубоком обучении и глубоких нейронных сетях (DNN), то есть нейронных сетях с несколькими скрытыми слоями. Мы рассмотрим следующие темы:
- Введение в глубокое обучение
- Алгоритмы глубокого обучения
- Приложения глубокого обучения
Давайте начнем!
Этот ускоренный курс адаптирован из курса Проекты глубокого обучения Python (Часть 1: Основы) компании Next Tech, в котором изучаются основы глубокого обучения, настройки среды DL и построения MLP. Он включает в себя изолированную среду в браузере со всем необходимым программным обеспечением и предустановленными библиотеками. Начать можно здесь!
Введение в глубокое обучение
Учитывая теорему об универсальном приближении, вы можете задаться вопросом, в чем смысл использования более одного скрытого слоя. Это отнюдь не наивный вопрос, и долгое время нейронные сети использовались таким образом.
Одна из причин наличия нескольких скрытых слоев заключается в том, что для аппроксимации сложной функции может потребоваться огромное количество нейронов в скрытом слое, что делает его использование непрактичным. Более важная причина использования глубоких сетей, которая напрямую связана не с количеством скрытых слоев, а с уровнем обучения, заключается в том, что глубокая сеть не просто учится предсказывать выход Y по входу X: она также понимает основные особенности вход.
Давайте посмотрим на пример.
В Proceedings of the International Conference on Machine Learning (ICML) (2009) Х. Ли, Р. Гроссе, Р. Ранганата и А. Нг авторы обучают нейронная сеть с изображениями разных категорий объектов или животных. На следующем изображении мы можем увидеть, как разные уровни сети узнают разные характеристики входных данных. На первом уровне сеть учится обнаруживать некоторые основные функции, такие как линии и края, которые являются общими для всех изображений во всех категориях:
В следующих слоях, показанных на изображении ниже, он объединяет эти линии и края, чтобы составить более сложные элементы, характерные для каждой категории:
В верхнем ряду мы можем увидеть, как сеть определяет различные функции каждой категории. Глаза, носы и рты для человеческих лиц, двери и колеса для автомобилей и так далее. Эти функции являются абстрактными. То есть сеть узнала общую форму объекта, такого как рот или нос, и может обнаружить эту особенность во входных данных, несмотря на возможные вариации.
Во втором ряду предыдущего изображения мы можем видеть, как более глубокие слои сети объединяют эти функции в еще более сложные, такие как лица и целые автомобили. Сильной стороной глубоких нейронных сетей является то, что они могут самостоятельно изучать эти высокоуровневые абстрактные представления, выводя их из обучающих данных.
Алгоритмы глубокого обучения
Мы могли бы определить глубокое обучение как класс методов машинного обучения, в которых информация обрабатывается на иерархических уровнях для понимания представлений и функций данных с возрастающими уровнями сложности. На практике все алгоритмы глубокого обучения представляют собой нейронные сети, которые обладают некоторыми общими базовыми свойствами. Все они состоят из взаимосвязанных нейронов, организованных по слоям. Они отличаются сетевой архитектурой (способом организации нейронов в сети), а иногда и способом их обучения.
Имея это в виду, давайте рассмотрим основные классы нейронных сетей. Следующий список не является исчерпывающим, но он представляет подавляющее большинство алгоритмов, используемых сегодня.
Многослойные персептроны (MLP)
Нейронная сеть с прямым распространением, полносвязными слоями и как минимум одним скрытым слоем.
Схема демонстрирует трехслойную полностью связанную нейронную сеть с двумя скрытыми слоями. Входной слой имеет k входных нейронов, первый скрытый слой имеет n скрытых нейронов, а второй скрытый слой имеет m скрытых нейронов. Выходными данными в этом примере являются два класса y ₁ и y ₂. Сверху находится постоянно включенный нейрон смещения. Блок из одного уровня связан со всеми блоками из предыдущего и последующего уровней (следовательно, полностью подключен).
Сверточные нейронные сети (CNN)
CNN - это нейронная сеть прямого распространения с несколькими типами специальных слоев. Например, сверточные слои применяют фильтр к входному изображению (или звуку), перемещая этот фильтр по всему входящему сигналу, чтобы создать n -мерную карту активации. Есть некоторые свидетельства того, что нейроны в CNN организованы аналогично тому, как организованы биологические клетки в зрительной коре головного мозга. Сегодня они превосходят все другие алгоритмы машинного обучения в большом количестве задач компьютерного зрения и обработки естественного языка.
Рекуррентные нейронные сети (RNN)
Этот тип сети имеет внутреннее состояние (или память), которое основано на всех или части входных данных, уже поданных в сеть. Выходной сигнал повторяющейся сети - это комбинация ее внутреннего состояния (памяти предыдущих входов) и последней входной выборки. В то же время внутреннее состояние изменяется, чтобы включить новые входные данные. Благодаря этим свойствам повторяющиеся сети являются хорошими кандидатами для задач, которые работают с последовательными данными, такими как текст или данные временных рядов.
Автоэнкодеры
Класс алгоритмов обучения без учителя, в которых форма вывода совпадает с формой ввода, что позволяет сети лучше изучать базовые представления. Он состоит из входного, скрытого (или узкого места) и выходного слоев. Хотя это единая сеть, мы можем рассматривать ее как виртуальную композицию из двух компонентов:
- Кодировщик: сопоставляет входные данные с внутренним представлением сети.
- Декодер: пытается восстановить входные данные из внутреннего представления данных сети.
Обучение с подкреплением (RL)
Алгоритмы подкрепления учатся достигать сложной цели на многих этапах, используя штрафы, когда они принимают неправильное решение, и вознаграждения, когда они принимают правильное решение. Это метод, который часто используется, чтобы научить машину взаимодействовать с окружающей средой, подобно тому, как человеческое поведение формируется с помощью отрицательной и положительной обратной связи. RL часто используется при создании компьютерных игр и автономных транспортных средств.
Приложения глубокого обучения
Машинное обучение, особенно глубокое обучение, дает все более удивительные результаты с точки зрения качества прогнозов, обнаружения признаков и классификации. Многие из этих недавних результатов даже попали в новости! Вот лишь несколько способов, которыми эти методы могут быть применены сегодня или в ближайшем будущем:
Автономные автомобили
В настоящее время новые автомобили имеют набор функций безопасности и удобства, которые призваны сделать вождение более безопасным и менее стрессовым. Одна из таких функций - автоматическое экстренное торможение, если автомобиль видит препятствие. Еще одна функция - помощь в удержании полосы движения, которая позволяет автомобилю оставаться в текущей полосе движения, при этом водителю не нужно вносить коррективы с помощью рулевого колеса. Для распознавания разметки полос, других транспортных средств, пешеходов и велосипедистов в этих системах используется камера, обращенная вперед. Мы можем предположить, что в будущем автономные транспортные средства также будут использовать глубокие сети для компьютерного зрения.
Распознавание изображений и текста
И сервисы Google's Vision API, и Amazon’s Rekognition используют модели глубокого обучения для предоставления различных возможностей компьютерного зрения. К ним относятся распознавание и обнаружение объектов и сцен на изображениях, распознавание текста, распознавание лиц и т. Д.
Медицинская визуализация
Медицинская визуализация - это общий термин для различных неинвазивных методов создания визуальных представлений внутренней части тела. Некоторые из них включают изображения магнитного резонанса (МРТ), ультразвук, сканирование компьютерной аксиальной томографии (CAT), X -лучей и гистологических изображений. Обычно такое изображение анализирует медицинский работник, чтобы определить состояние пациента. Машинное обучение, в частности компьютерное зрение, позволяет проводить компьютерную диагностику, которая может помочь специалистам, обнаруживая и выделяя важные особенности изображений.
Например, чтобы определить степень злокачественности рака толстой кишки, патолог должен проанализировать морфологию желез с помощью гистологической визуализации. Это сложная задача, потому что морфология может сильно различаться. Глубокая нейронная сеть может автоматически сегментировать железы на изображении, предоставляя патологу возможность проверить результаты. Это сократит время, необходимое для анализа, сделает его более дешевым и доступным.
Анализ истории болезни
Еще одна область медицины, которая может извлечь выгоду из глубокого обучения, - это анализ историй болезни. Прежде чем врач диагностирует заболевание и назначит лечение, он консультируется с историей болезни пациента для получения дополнительных сведений. Алгоритм глубокого обучения может извлекать наиболее актуальную и важную информацию из этих обширных записей, даже если они написаны от руки. Таким образом можно упростить работу врача, а также снизить риск ошибок.
Языковой перевод
API Нейронный машинный перевод Google использует, как вы уже догадались, глубокие нейронные сети для машинного перевода.
Распознавание и генерация речи
Google Duplex - еще одна впечатляющая демонстрация глубокого обучения в реальном мире. Это новая система, которая может вести естественный разговор по телефону. Например, он может бронировать столики в ресторане от имени пользователя. Он использует глубокие нейронные сети, чтобы понимать разговор и генерировать реалистичные, похожие на человеческие ответы.
Siri, Google Assistant и Amazon Alexa также полагаются на глубокие сети для распознавания речи.
Игры
Наконец, AlphaGo - это машина с искусственным интеллектом (AI), основанная на глубоком обучении, которая стала новостью в марте 2016 года после победы над чемпионом мира по го Ли Седолом. AlphaGo уже упоминалась в новостях в январе 2016 года, когда победила чемпиона Европы Фань Хуэй. Хотя в то время казалось маловероятным, что он сможет побить чемпиона мира. Перенесемся на пару месяцев вперед, и AlphaGo смогла добиться этого замечательного подвига, обойдя своего противника в серии побед 4–1.
Это была важная веха, потому что в го существует гораздо больше возможных вариантов игры, чем в других играх, например, в шахматах, и невозможно заранее продумать все возможные ходы. Кроме того, в отличие от шахмат, в го очень сложно даже судить о текущем положении или стоимости одного камня на доске. В 2017 году DeepMind выпустила обновленную версию AlphaGo под названием AlphaZero.
В этом ускоренном курсе мы объяснили, что такое глубокое обучение и как оно связано с глубокими нейронными сетями. Мы обсудили различные типы сетей и некоторые реальные приложения глубокого обучения.
Это только начало - если вы хотите узнать больше о глубоком обучении, у Next Tech есть серия Проекты глубокого обучения Python, в которой исследуются реальные проекты глубокого обучения через компьютерное зрение, обработку естественного языка ( НЛП) и обработка изображений. В первой части этой серии статей рассматриваются фундаментальные концепции DL, как настроить среду DL и как построить MLP. Начать можно здесь!