Что такое глубокое обучение? 3 вещи, которые вам нужно знать
Глубокое обучение - это метод машинного обучения, который учит компьютеры делать то, что естественно для людей: учиться на собственном примере. Глубокое обучение - это ключевая технология, лежащая в основе беспилотных автомобилей, позволяющая им распознавать знак остановки или отличать пешехода от фонарного столба. Это ключ к голосовому управлению в потребительских устройствах, таких как телефоны, планшеты, телевизоры и громкоговорители. В последнее время глубокому обучению уделяется много внимания и не зря. Это достижение результатов, которые раньше были невозможны.
При глубоком обучении компьютерная модель учится выполнять задачи классификации непосредственно из изображений, текста или звука. Модели глубокого обучения могут достигать высочайшей точности, иногда превышающей производительность человеческого уровня. Модели обучаются с использованием большого набора помеченных данных и архитектур нейронных сетей, которые содержат много слоев.
Почему так важно глубокое обучение
Как глубокое обучение достигает таких впечатляющих результатов?
Одним словом, точность. Глубокое обучение обеспечивает точность распознавания на более высоком уровне, чем когда-либо прежде. Это помогает потребительской электронике соответствовать ожиданиям пользователей и имеет решающее значение для приложений, критически важных для безопасности, таких как автомобили без водителя. Недавние достижения в области глубокого обучения улучшились до такой степени, что глубокое обучение превосходит людей в некоторых задачах, таких как классификация объектов на изображениях.
Хотя теория глубокого обучения впервые появилась в 1980-х годах, есть две основные причины, по которым оно стало полезным только недавно:
Для глубокого обучения требуются большие объемы помеченных данных. Например, для разработки автомобилей без водителя требуются миллионы изображений и тысячи часов видео.
Глубокое обучение требует значительных вычислительных мощностей. Высокопроизводительные графические процессоры имеют параллельную архитектуру, которая эффективна для глубокого обучения. В сочетании с кластерами или облачными вычислениями это позволяет командам разработчиков сократить время обучения для сети глубокого обучения с недель до часов или меньше.
Примеры глубокого обучения на работе
Приложения глубокого обучения используются в различных отраслях, от автоматизированного вождения до медицинских устройств.
Автоматизированное вождение: автомобильные исследователи используют глубокое обучение для автоматического обнаружения таких объектов, как знаки остановки и светофоры. Кроме того, для обнаружения пешеходов используется глубокое обучение, что помогает снизить количество аварий.
Аэрокосмическая промышленность и оборона: глубокое обучение используется для идентификации объектов со спутников, которые определяют интересующие области, а также для определения безопасных или небезопасных зон для войск.
Медицинские исследования: исследователи рака используют глубокое обучение для автоматического обнаружения раковых клеток. Команды из Калифорнийского университета в Лос-Анджелесе создали усовершенствованный микроскоп, который позволяет получать большой набор данных, используемых для обучения приложения глубокого обучения для точной идентификации раковых клеток.
Промышленная автоматизация: глубокое обучение помогает повысить безопасность работников тяжелой техники за счет автоматического определения, когда люди или объекты находятся на небезопасном расстоянии от машин.
Электроника: Глубокое обучение используется для автоматического перевода речи и слуха. Например, устройства помощи на дому, которые реагируют на ваш голос и знают ваши предпочтения, работают на основе приложений глубокого обучения.
Как работает глубокое обучение
Большинство методов глубокого обучения используют архитектуры нейронных сетей, поэтому модели глубокого обучения часто называют глубокими нейронными сетями.
Термин «глубокий» обычно относится к количеству скрытых слоев в нейронной сети. Традиционные нейронные сети содержат всего 2-3 скрытых слоя, в то время как глубокие сети могут иметь до 150.
Модели глубокого обучения обучаются с использованием больших наборов помеченных данных и архитектур нейронных сетей, которые изучают функции непосредственно из данных без необходимости извлечения функций вручную.
Рисунок 1: Нейронные сети, которые организованы в слои, состоящие из набора взаимосвязанных узлов. В сетях могут быть десятки или сотни скрытых слоев.
Один из самых популярных типов глубоких нейронных сетей известен как сверточные нейронные сети (CNN или ConvNet). CNN объединяет изученные функции с входными данными и использует сверточные 2D-слои, что делает эту архитектуру хорошо подходящей для обработки 2D-данных, таких как изображения.
CNN устраняют необходимость в извлечении признаков вручную, поэтому вам не нужно определять особенности, используемые для классификации изображений. CNN работает путем извлечения функций непосредственно из изображений. Соответствующие функции не проходят предварительную подготовку; они изучаются, пока сеть тренируется на наборе изображений. Это автоматическое извлечение признаков делает модели глубокого обучения очень точными для задач компьютерного зрения, таких как классификация объектов.
Рисунок 2: Пример сети со многими сверточными слоями. Фильтры применяются к каждому обучающему изображению с разным разрешением, и выходные данные каждого свернутого изображения служат входными данными для следующего слоя.
CNN учатся обнаруживать различные особенности изображения, используя десятки или сотни скрытых слоев. Каждый скрытый слой увеличивает сложность изученных функций изображения. Например, первый скрытый слой может научиться обнаруживать края, а последний научится обнаруживать более сложные формы, специально адаптированные к форме объекта, который мы пытаемся распознать.
В чем разница между машинным обучением и глубоким обучением?
Глубокое обучение - это специализированная форма машинного обучения. Рабочий процесс машинного обучения начинается с ручного извлечения соответствующих функций из изображений. Затем эти функции используются для создания модели, которая классифицирует объекты на изображении. В рабочем процессе глубокого обучения соответствующие функции автоматически извлекаются из изображений. Кроме того, глубокое обучение выполняет «сквозное обучение», когда сети предоставляются необработанные данные и задача для выполнения, например классификация, и она учится делать это автоматически.
Еще одно ключевое отличие - алгоритмы глубокого обучения масштабируются с данными, тогда как поверхностное обучение сходится. Поверхностное обучение относится к методам машинного обучения, которые достигают определенного уровня производительности, когда вы добавляете в сеть больше примеров и обучающих данных.
Ключевое преимущество сетей глубокого обучения заключается в том, что они часто продолжают улучшаться по мере увеличения размера ваших данных.
Рис. 3. Сравнение подхода машинного обучения к классификации транспортных средств (слева) с глубоким обучением (справа).
В машинном обучении вы вручную выбираете функции и классификатор для сортировки изображений. При глубоком обучении этапы извлечения функций и моделирования выполняются автоматически.
Распознавание объектов: глубокое обучение и машинное обучение для компьютерного зрения (26:57)
Введение в глубокое обучение: что такое сверточные нейронные сети? (4:44)
Выбор между машинным обучением и глубоким обучением
Машинное обучение предлагает множество методов и моделей, которые вы можете выбрать в зависимости от вашего приложения, объема обрабатываемых данных и типа проблемы, которую вы хотите решить. Для успешного приложения глубокого обучения требуется очень большой объем данных (тысячи изображений) для обучения модели, а также графические процессоры или графические процессоры для быстрой обработки ваших данных.
Выбирая между машинным обучением и глубоким обучением, подумайте, есть ли у вас высокопроизводительный графический процессор и много размеченных данных. Если у вас нет ни того, ни другого, возможно, имеет смысл использовать машинное обучение вместо глубокого обучения. Глубокое обучение обычно сложнее, поэтому для получения надежных результатов вам понадобится как минимум несколько тысяч изображений. Наличие высокопроизводительного графического процессора означает, что модели потребуется меньше времени для анализа всех этих изображений.
Глубокое обучение и традиционное машинное обучение: выбор правильного подхода
Как создавать и тренировать модели глубокого обучения
Три наиболее распространенных способа использования глубокого обучения для классификации объектов:
Обучение с нуля
Чтобы обучить глубокую сеть с нуля, вы собираете очень большой маркированный набор данных и разрабатываете архитектуру сети, которая будет изучать функции и модель. Это хорошо для новых приложений или приложений, которые будут иметь большое количество выходных категорий. Это менее распространенный подход, поскольку при большом объеме данных и скорости обучения эти сети обычно занимают дни или недели на обучение.
Глубокое обучение с помощью MATLAB: глубокое обучение в 11 строках кода MATLAB (2:38)
Трансферное обучение
Большинство приложений глубокого обучения используют подход трансферного обучения, который включает в себя точную настройку предварительно обученной модели. Вы начинаете с существующей сети, такой как AlexNet или GoogLeNet, и вводите новые данные, содержащие ранее неизвестные классы. После внесения некоторых изменений в сеть вы теперь можете выполнять новую задачу, например, категоризировать только собак или кошек вместо 1000 различных объектов. Это также имеет то преимущество, что требуется гораздо меньше данных (обработка тысяч изображений, а не миллионов), поэтому время вычислений сокращается до минут или часов.
Для передачи обучения требуется интерфейс с внутренними компонентами ранее существовавшей сети, поэтому его можно хирургическим путем модифицировать и расширять для решения новой задачи. MATLAB® имеет инструменты и функции, предназначенные для помощи в переносе обучения.
Глубокое обучение с MATLAB: передача обучения в 10 строках кода MATLAB (3:59)
Извлечение функций
Чуть менее распространенный, более специализированный подход к глубокому обучению - использование сети в качестве экстрактора функций. Поскольку всем слоям поручено изучать определенные функции из изображений, мы можем извлечь эти функции из сети в любой момент во время процесса обучения. Эти функции затем можно использовать в качестве входных данных для модели машинного обучения, такой как поддерживающие векторные машины (SVM).
Ускорение моделей глубокого обучения с помощью графических процессоров
Обучение модели глубокого обучения может занять много времени, от дней до недель. Использование ускорения графического процессора может значительно ускорить процесс. Использование MATLAB с графическим процессором сокращает время, необходимое для обучения сети, и может сократить время обучения для задачи классификации изображений с дней до часов. При обучении моделей глубокого обучения MATLAB использует графические процессоры (если они доступны), не требуя от вас понимания того, как явно программировать графические процессоры.
Комментарии