Основы ИИ

Что такое глубокое обучение?

mm
Добавьте Unite.AI в избранные источники в Google

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

Что такое машинное обучение?

Глубокое обучение – это расширение некоторых концепций, возникших из машинного обучения, поэтому давайте потратим минуту, чтобы объяснить, что такое машинное обучение.

Просто говоря, машинное обучение – это метод, позволяющий компьютерам выполнять конкретные задачи без явного программирования каждой строки алгоритмов, используемых для выполнения этих задач. Существует много различных алгоритмов машинного обучения, но одним из наиболее часто используемых алгоритмов является многослойный перцептрон. Многослойный перцептрон также называется нейронной сетью и состоит из серии узлов/нейронов, связанных между собой. В многослойном перцептроне есть три различных слоя: входной слой, скрытый слой и выходной слой.

Входной слой принимает данные в сеть, где они обрабатываются узлами в среднем/скрытом слое. Узлы в скрытом слое являются математическими функциями, которые могут манипулировать данными, поступающими из входного слоя, извлекая соответствующие закономерности из входных данных. Это то, как нейронная сеть “учится”. Нейронные сети получили свое название от того, что они вдохновлены структурой и функцией человеческого мозга.

Соединения между узлами в сети имеют значения, называемые весами. Эти значения по сути являются предположениями о том, как данные в одном слое связаны с данными в следующем слое. Когда сеть обучается, веса корректируются, и цель состоит в том, чтобы веса/предположения о данных в конечном итоге сходились к значениям, точно представляющим осмысленные закономерности в данных.

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

Что такое глубокое обучение?

Глубокое обучение – это термин, данный машинным обучениям, которые объединяют много многослойных перцептронов, так что не только один скрытый слой, но и много скрытых слоев. “Глубже” глубокая нейронная сеть, тем более сложные закономерности может научиться распознавать сеть.

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

Различные типы глубокого обучения

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

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

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

  • Свёрточные слои
  • Слои подсampling/пулинга
  • Активационные функции
  • Полностью связанные слои

Свёрточные слои принимают изображения в качестве входных данных в сеть, анализируя изображения и получая значения пикселей. Слои подсampling или пулинга – это место, где значения изображений преобразуются/уменьшаются, чтобы упростить представление изображений и уменьшить чувствительность изображений к шуму. Активационные функции контролируют, как данные текут из одного слоя в другой, и полностью связанные слои анализируют значения, представляющие изображение, и учатся закономерностям, содержащимся в этих значениях.

RNN/LSTM

Рекуррентные нейронные сети, или RNN, популярны для задач, где порядок данных имеет значение, где сеть должна научиться распознавать последовательность данных. RNN часто применяются к задачам, таким как обработка естественного языка, поскольку порядок слов имеет значение при расшифровке смысла предложения. “Рекуррентный” часть термина Рекуррентная Нейронная Сеть происходит от того факта, что выход для данного элемента в последовательности зависит от предыдущего вычисления, а также от текущего вычисления. В отличие от других форм глубоких нейронных сетей, RNN имеют “память”, и информация, вычисленная на разных шагах времени в последовательности, используется для вычисления окончательных значений.

Существует несколько типов RNN, включая двунаправленные RNN, которые учитывают будущие элементы в последовательности, в дополнение к предыдущим элементам, при вычислении значения элемента. Другой тип RNN – это Долгая Короткосрочная Память, или LSTM, сеть. LSTM – это тип RNN, который может справиться с длинными цепочками данных. Регулярные RNN могут стать жертвами проблемы, называемой “взрывающейся проблемой градиента”. Эта проблема возникает, когда цепочка входных данных становится чрезвычайно длинной, но LSTM имеет техники, чтобы бороться с этой проблемой.

Автоэнкодеры

Большинство архитектур глубокого обучения, упомянутых до сих пор, применяются к задачам обучения с учителем, а не к задачам обучения без учителя. Автоэнкодеры могут преобразовать несупervised данные в формат с учителем, позволяя нейронным сетям использоваться на этой задаче.

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

Структура автоэнкодера часто симметрична, с скрытыми слоями, расположенными так, что выход сети напоминает вход. Четыре типа автоэнкодеров, которые часто используются, являются:

  • Обычные/простые автоэнкодеры
  • Многослойные автоэнкодеры
  • Свёрточные автоэнкодеры
  • Регуляризированные автоэнкодеры

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

Генеративные противостоящие сети

Генеративные противостоящие сети (GAN) на самом деле являются несколькими глубокими нейронными сетями, а не одной сетью. Две глубокие модели обучения обучаются одновременно, и их выходные данные подаются в другую сеть. Сети находятся в соревновании друг с другом, и поскольку они получают доступ к выходным данным друг друга, они обе учатся из этих данных и улучшаются. Сети по сути играют в игру подделки и обнаружения, где генеративная модель пытается создать новые экземпляры, которые обманут детективную модель/дискриминатор. GAN стали популярными в области компьютерного зрения.

Сводка глубокого обучения

Глубокое обучение расширяет принципы нейронных сетей, чтобы создать сложные модели, которые могут учиться сложным закономерностям и обобщать эти закономерности на будущие наборы данных. Свёрточные нейронные сети используются для интерпретации изображений, в то время как RNN/LSTM используются для интерпретации последовательных данных. Автоэнкодеры могут преобразовать несупervised задачи обучения в формат с учителем. Наконец, GAN – это несколько сетей, противопоставленных друг другу, которые особенно полезны для задач компьютерного зрения.

Блогер и программист с специализацией в Machine Learning и Deep Learning темах. Daniel надеется помочь другим использовать силу ИИ для социального блага.