ИИ 101
Что такое глубокое обучение?
Глубокое обучение – одно из наиболее влиятельных и быстро растущих направлений в области искусственного интеллекта. Однако получить интуитивное понимание глубокого обучения может быть сложно, поскольку термин “глубокое обучение” охватывает широкий спектр различных алгоритмов и методов. Глубокое обучение также является поддисциплиной машинного обучения в целом, поэтому важно понять, что такое машинное обучение, чтобы понять глубокое обучение.
Что такое машинное обучение?
Глубокое обучение является расширением некоторых концепций, возникших из машинного обучения, поэтому давайте потратим минуту на объяснение того, что такое машинное обучение.
Просто говоря, машинное обучение – это метод, который позволяет компьютерам выполнять конкретные задачи без явного программирования каждой строки алгоритмов, используемых для выполнения этих задач. Существует множество различных алгоритмов машинного обучения, но одним из наиболее часто используемых алгоритмов является мультислойный перцептрон. Мультислойный перцептрон также называется нейронной сетью и состоит из серии узлов/нейронов, связанных между собой. В мультислойном перцептроне есть три различных слоя: входной слой, скрытый слой и выходной слой.
Входной слой принимает данные в сеть, где они обрабатываются узлами в среднем/скрытом слое. Узлы в скрытом слое являются математическими функциями, которые могут манипулировать данными, поступающими из входного слоя, извлекая соответствующие закономерности из входных данных. Это то, как нейронная сеть “учится”. Нейронные сети получили свое название от того, что они вдохновлены структурой и функцией человеческого мозга.
Соединения между узлами в сети имеют значения, называемые весами. Эти значения по сути являются предположениями о том, как данные в одном слое связаны с данными в следующем слое. Когда сеть тренируется, веса корректируются, и цель состоит в том, чтобы веса/предположения о данных в конечном итоге с収ились на значениях, которые точно представляют осмысленные закономерности в данных.
Активационные функции присутствуют в узлах сети, и эти активационные функции преобразуют данные нелинейным образом, позволяя сети учиться сложным представлениям данных. Активационные функции умножают входные значения на весовые значения и добавляют смещение.
Что такое глубокое обучение?
Глубокое обучение – это термин, данный машинным обучающим архитектурам, которые объединяют многие мультислойные перцептроны, так что не существует только одного скрытого слоя, но многих скрытых слоев. Чем “глубже” глубокая нейронная сеть, тем более сложные закономерности может научиться сеть.
Глубокие слои сетей, состоящие из нейронов, иногда называются полностью связанными сетями или полностью связанными слоями, ссылаясь на тот факт, что данный нейрон поддерживает связь со всеми соседними нейронами. Полностью связанные сети можно объединить с другими функциями машинного обучения для создания различных архитектур глубокого обучения.
Различные типы глубокого обучения
Существует множество архитектур глубокого обучения, используемых исследователями и инженерами, и каждая из этих архитектур имеет свое специальное применение.
Свёрточные нейронные сети
Свёрточные нейронные сети, или CNN, – это архитектура нейронной сети, наиболее часто используемая при создании систем компьютерного зрения. Структура свёрточных нейронных сетей позволяет им интерпретировать данные изображений, преобразуя их в числа, которые полностью связанная сеть может интерпретировать. Свёрточная нейронная сеть имеет четыре основных компонента:
- Свёрточные слои
- Слои подсampling/пулинга
- Активационные функции
- Полностью связанные слои
Свёрточные слои принимают изображения в качестве входных данных в сеть, анализируя изображения и получая значения пикселей. Подсampling или пулинг – это то, где значения изображений преобразуются/уменьшаются, чтобы упростить представление изображений и уменьшить чувствительность фильтров изображений к шуму. Активационные функции контролируют, как данные протекают из одного слоя в другой слой, и полностью связанные слои анализируют значения, представляющие изображение, и учатся закономерностям, содержащимся в этих значениях.
RNN/LSTM
Рекуррентные нейронные сети, или RNN, – популярны для задач, где порядок данных имеет значение, где сеть должна научиться последовательности данных. RNN наиболее часто применяются к проблемам, таким как обработка естественного языка, поскольку порядок слов имеет значение при расшифровке смысла предложения. “Рекуррентный” часть термина Рекуррентная Нейронная Сеть происходит от того, что выход для данного элемента в последовательности зависит от предыдущего расчета, а также от текущего расчета. В отличие от других форм глубоких нейронных сетей, RNN имеют “память”, и информация, рассчитанная на разных временных шагах в последовательности, используется для расчета окончательных значений.
Существует несколько типов RNN, включая двунаправленные RNN, которые принимают будущие элементы в последовательности во внимание, в дополнение к предыдущим элементам, при расчете значения элемента. Другой тип RNN – это Долгосрочная краткосрочная память, или LSTM, сеть. LSTM – это тип RNN, который может справиться с длинными цепочками данных. Регулярные RNN могут стать жертвами проблемы, называемой “проблемой взрыва градиента”. Эта проблема возникает, когда цепочка входных данных становится чрезвычайно длинной, но LSTM имеют методы борьбы с этой проблемой.
Автоэнкодеры
Большинство архитектур глубокого обучения, упомянутых до сих пор, применяются к задачам обучения с учителем, а не к задачам обучения без учителя. Автоэнкодеры могут преобразовать неучебные данные в формат с учителем, позволяя нейронным сетям использоваться на проблеме.
Автоэнкодеры часто используются для обнаружения аномалий в наборах данных, что является примером обучения без учителя, поскольку природа аномалии неизвестна. Такие примеры обнаружения аномалий включают обнаружение мошенничества для финансовых учреждений. В этом контексте цель автоэнкодера – определить базовый уровень регулярных закономерностей в данных и выявить аномалии или выбросы.
Структура автоэнкодера часто симметрична, со скрытыми слоями, расположенными так, чтобы выход сети напоминал вход. Четыре типа автоэнкодеров, которые часто используются, это:
- Обычные/простые автоэнкодеры
- Мультислойные автоэнкодеры
- Свёрточные автоэнкодеры
- Регуляризированные автоэнкодеры
Обычные/простые автоэнкодеры – это просто нейронные сети с одним скрытым слоем, в то время как мультислойные автоэнкодеры – это глубокие сети с более чем одним скрытым слоем. Свёрточные автоэнкодеры используют свёрточные слои вместо, или в дополнение к, полностью связанным слоям. Регуляризированные автоэнкодеры используют определенный вид функции потерь, который позволяет нейронной сети выполнять более сложные функции, функции, отличные от простого копирования входных данных в выходные данные.
Генеративные противостоящие сети
Генеративные противостоящие сети (GAN) на самом деле являются несколькими глубокими нейронными сетями, а не одной сетью. Две глубокие модели обучаются одновременно, и их выходные данные подаются в другую сеть. Сети находятся в конкурентном отношении друг с другом, и поскольку они получают доступ к выходным данным друг друга, они обе учатся из этих данных и улучшаются. Сети по сути играют в игру “фальшивка и обнаружение”, где генеративная модель пытается создать новые экземпляры, которые обманут детективную модель/дискриминатор. GAN стали популярными в области компьютерного зрения.
Резюме глубокого обучения
Глубокое обучение расширяет принципы нейронных сетей для создания сложных моделей, которые могут учиться сложным закономерностям и обобщать эти закономерности на будущие наборы данных. Свёрточные нейронные сети используются для интерпретации изображений, в то время как RNN/LSTM используются для интерпретации последовательных данных. Автоэнкодеры могут преобразовать задачи обучения без учителя в задачи обучения с учителем. Наконец, GAN – это несколько сетей, противопоставленных друг другу, которые особенно полезны для задач компьютерного зрения.










