содержание
Неконтролируемое обучение (он же Hebbian Learning)
вернуться к глубокому обучению
Глубокое обучение и искусственные нейронные сети
Генеративно-состязательные сети
предисловие
Мы живем в мире, где, к лучшему или к худшему, нас всегда окружают алгоритмы глубокого обучения. От фильтрации в социальных сетях до беспилотных автомобилей, рекомендаций фильмов, обнаружения финансовых махинаций, обнаружения наркотиков… Глубокое обучение влияет на нашу жизнь и решения.
В этом посте эти понятия будут объяснены максимально просто и доступно: глубокое обучение, искусственные нейронные сети, сверточные нейронные сети, градиентный спуск и т. д.
Что такое глубокое обучение?
Проще говоря, это обучение на примере.
На самом базовом уровне глубокое обучение — это метод машинного обучения, который учит компьютер фильтровать входные данные (наблюдения в виде изображений, текста или звуков) по слоям, чтобы научиться предсказывать и классифицировать информацию.
Глубокое обучение основано на том, как человеческий мозг фильтрует информацию.
По сути, глубокое обучение является частью семейства машинного обучения и основано на представлениях обучающих данных, а не на алгоритмах для конкретных задач. Глубокое обучение на самом деле тесно связано с рядом теорий о развитии мозга, выдвинутых когнитивными нейробиологами в начале 90-х годов.
Как и в мозге, а точнее в теориях и моделях развития неокортекса человека, предложенных исследователями в 90-х годах, нейронные сети используют иерархию иерархических фильтров, каждый слой учится на предыдущем, а результат затем передается следующему слою.
Глубокое обучение пытается имитировать активность слоев нейронов в неокортексе.
В человеческом мозгу около 100 миллиардов нейронов, и каждый нейрон связан примерно со 100 000 нейронов. По сути, это то, что мы хотим создать так, как это возможно для машин.
Цель глубокого обучения — имитировать работу человеческого мозга. Что это означает для нейронов, аксонов, дендритов и т. д.? Ну, у нейронов есть клеточные тела, дендриты и аксоны. Сигналы от одного нейрона проходят по аксону и передаются на дендриты следующего нейрона. Соединение, передающее сигнал, называется синапсом.
Нейроны сами по себе бесполезны, но когда их много, они работают вместе, создавая некую «магию». Это идея алгоритмов глубокого обучения! Вы можете получать входные данные из наблюдений, помещать входные данные в слой, который создает выходные данные, которые, в свою очередь, становятся входными данными для следующего слоя, и так далее. Это происходит многократно до получения окончательного выходного сигнала.
Таким образом, нейрон (или узел) получает сигнал или сигнал (входное значение), который проходит через нейрон и выдает выходной сигнал. Думайте о входном слое как о своих чувствах: вещах, которые вы видите, обоняете, чувствуете и т. д. Это независимые переменные для одного наблюдения. Эта информация делится на числа и биты двоичных данных, которые может использовать компьютер (нужно нормализовать или нормализовать эти переменные, чтобы они находились в одном диапазоне).
Каким может быть выходное значение? Оно может быть непрерывным (например, цена), бинарным (да или нет) или категоричным (кошка, собака, лось, ежик, ленивец и т. д.). Если это категорично, вы хотите помнить, что ваше выходное значение — это не одна переменная, а несколько выходных переменных.
Кроме того, имейте в виду, что выходное значение всегда связано с одним и тем же единственным наблюдением во входном значении. Например, если ваши входные значения — это наблюдения за возрастом, зарплатой и транспортным средством человека, выходные значения также будут связаны с тем же наблюдением за одним и тем же человеком.
А синапсы? Каждому синапсу присваивается вес, что очень важно для искусственных нейронных сетей (ИНС). Веса — это то, как учатся искусственные нейронные сети. Регулируя веса, ИНС определяет степень передачи сигнала. При обучении сети вы решите, как настроить веса.
Что происходит внутри нейронов? Сначала сложите все полученные значения (вычислите взвешенную сумму). Затем он применяет функцию активации, которая воздействует на этот конкретный нейрон. Отсюда нейрон понимает, нужно ли ему передавать сигнал.
Этот процесс повторяется от тысяч до сотен тысяч раз!
Мы создаем искусственную нейронную сеть с узлами с входными значениями (что мы уже знаем и что хотим предсказать) и выходными значениями (нашими предсказаниями), а между этими узлами находится одна (или более) информация. слой, распространяемый до того, как он достигнет выхода. Это похоже на то, как информация, которую вы видите своими глазами, фильтруется и понимается вместо того, чтобы попасть прямо в мозг.
Модели глубокого обучения могут быть контролируемыми, полуконтролируемыми и неконтролируемыми.
контролируемое обучение
Вы интересуетесь психологией? По сути, это концептуальное обучение, когда вы узнаете, что такое понятие (например, объект, идея, событие и т. д.), основываясь на убеждении, что каждый объект/идея/событие имеет общие свойства.
Идея состоит в том, что вам могут показать набор помеченных примеров объектов, и вы научитесь классифицировать объекты на основе того, что вы уже видели. Вы упрощаете то, что узнали, сжимаете это в форму примера, а затем применяете эту упрощенную версию к будущим примерам. Мы называем это обучением на примере.
Проще говоря, контролируемое машинное обучение — это задача изучения функции, которая сопоставляет входные данные с выходными на основе примеров пар вход-выход. Он работает с помеченными обучающими данными, состоящими из обучающих примеров. Каждый пример представляет собой пару, состоящую из входного объекта (обычно вектора) и желаемого выходного значения (также известного как сигнал монитора).
Ваш алгоритм контролирует обучающие данные и генерирует функцию вывода, которую можно использовать для сопоставления новых примеров. В идеале алгоритм позволил бы вам классифицировать примеры, которые вы раньше не видели.
По сути, он смотрит на вещи с метками и использует то, что он узнает из меток, чтобы предсказать метки для других вещей.
Задачи классификации часто зависят от контролируемого обучения. Эти задачи могут включать:
- Обнаружение лиц, личности и выражений лица на изображениях
- Распознавать объекты на изображениях, такие как знаки остановки, пешеходы и разметка полосы движения
- Определить спам
- Распознавать жесты в видео
- Обнаружение речи и определение эмоций в записях
- Определите говорящего
- речь в текст
полуконтролируемое обучение
Это больше похоже на комбинацию того, что вы прямо рассказали вам от своих родителей (маркированная информация), с тем, что вы узнали сами без ярлыков. Обучение с полуучителем делает то же самое, что и обучение с учителем, но оно может использовать для обучения как размеченные, так и неразмеченные данные.
При полууправляемом обучении вы часто просматриваете множество неразмеченных данных и некоторые размеченные данные. Многие исследователи обнаружили, что этот процесс может обеспечить более высокую точность, чем обучение без учителя, без затрат времени и средств на маркировку данных. Маркировка данных иногда требует, чтобы опытные люди расшифровывали аудиофайлы или анализировали 3D-изображения, что может сделать создание полностью размеченных наборов данных очень невозможным, особенно для задач глубокого обучения, в которых используются большие наборы данных.
Полуконтролируемое обучение можно назвать трансдукцией (вывод правильных меток для данных) или индукцией (вывод правильного отображения из X в Y).
Для этого алгоритмы глубокого обучения должны сделать хотя бы одно из следующих предположений:
- Точки, расположенные близко друг к другу, могут иметь общие маркеры (предположение о непрерывности).
- Данные, формирующие кластеры, и точки, сгруппированные вместе, могут иметь общий маркер (кластерная гипотеза).
- Данные находятся в более низком измерении многообразия, чем входное пространство (предположение многообразия)
Неконтролируемое обучение (он же Hebbian Learning)
Неконтролируемое обучение включает в себя изучение взаимосвязей между элементами в наборе данных и классификацию данных без помощи меток. Это может принимать различные алгоритмические формы, но все они преследуют одну и ту же цель — моделирование человеческой логики для анализа новых данных путем поиска скрытых структур, функций и закономерностей. Эти алгоритмы могут включать кластеризацию, обнаружение аномалий, нейронные сети и т. д.
Кластеризация, по сути, заключается в обнаружении сходств или аномалий в наборе данных и является хорошим примером задачи обучения без учителя. Сравнивая документы, изображения или звуки на предмет сходства и аномалий, кластеризация может дать очень точные результаты поиска. Он может точно обнаруживать аномалии и аномальное поведение, что очень удобно для таких приложений, как безопасность и обнаружение мошенничества.
вернуться к глубокому обучению
Архитектуры глубокого обучения применялись для фильтрации социальных сетей, распознавания изображений, обнаружения финансового мошенничества, распознавания речи, компьютерного зрения, обработки медицинских изображений, обработки естественного языка, обработки изобразительного искусства, открытия и разработки лекарств, токсикологии, биоинформатики, управления взаимоотношениями с клиентами и т. д. многие другие области и понятия. Модели глубокого обучения повсюду!
Конечно, существует также множество методов глубокого обучения, таких как сверточные нейронные сети, рекуррентные нейронные сети и т. д.
Глубокое обучение и искусственные нейронные сети
Большинство современных архитектур глубокого обучения основаны на искусственных нейронных сетях (ИНС) и используют несколько уровней нелинейных процессоров для извлечения и преобразования признаков. Каждый последующий слой использует выходные данные предыдущего слоя в качестве входных данных. То, что они изучают, формирует концептуальную иерархию, где каждый уровень учится преобразовывать свои входные данные в абстрактные и составные представления.
Это означает, что для изображения, например, входными данными может быть матрица пикселей, и первый слой может кодировать границы и составлять пиксели, затем следующий слой может располагать края, а следующий слой может кодировать носы и глаза, а затем он может распознать, что изображение содержит лица людей... хотя вам может потребоваться выполнить некоторую точную настройку, процесс глубокого обучения сам узнает, какие функции следует размещать на каком уровне.
«Глубокое» в глубоком обучении просто относится к количеству слоев преобразования данных (у них есть существенная CAP, цепочка преобразований от ввода до вывода). Для нейронных сетей с прямой связью глубина CAP равна глубине сети и количеству скрытых слоев плюс 1 (выходной слой). Для рекуррентных нейронных сетей сигнал может распространяться в слое более одного раза, поэтому глубина верхней границы может быть бесконечной. Большинство исследователей считают, что глубина CAP для глубокого обучения >2.
Сверточная нейронная сеть
Сверточные нейронные сети (CNN) — один из самых популярных типов нейронных сетей. CNN используют входные свертки для изучения свойств входных данных и используют 2D-сверточные слои, а это означает, что этот тип сети хорошо подходит для работы с 2D-изображениями.
CNN работают, извлекая функции из изображений, что означает, что ручное извлечение функций не требуется. Эти функции не обучаются, они обучаются заново, когда сеть обучается на наборе изображений, что делает модели глубокого обучения очень точными для задач компьютерного зрения. CNN учатся обнаружению признаков через десятки или сотни скрытых слоев, каждый слой увеличивает сложность изучения признаков.
Рекуррентная нейронная сеть
Сверточные нейронные сети часто используются для обработки изображений, а рекуррентные нейронные сети (RNN) — для обработки языка. RNN не просто фильтруют информацию от одного уровня к другому, они имеют встроенные петли обратной связи, в которых выходные данные одного уровня могут быть переданы обратно на уровни, предшествующие ему. Это фактически обеспечивает память для сети.
Генеративно-состязательные сети
В генеративно-состязательных сетях (GAN) две нейронные сети конкурируют друг с другом. Сеть генератора пытается создать убедительные поддельные данные, в то время как дискриминатор пытается определить разницу между поддельными и реальными данными.
В каждую эпоху обучения генератор лучше создает поддельные данные, а дискриминатор лучше идентифицирует поддельные данные. Обе сети были улучшены за счет того, что они соревновались друг с другом во время обучения.
Будущее глубокого обучения
Будущее глубокого обучения полно потенциала. Самое замечательное в нейронной сети — это ее способность обрабатывать большие объемы различных данных. Сейчас, когда мы живем в эпоху передовых интеллектуальных датчиков, это становится все более и более важным, поскольку каждую секунду собираются огромные объемы данных.
В настоящее время мы ежедневно генерируем огромные объемы данных. В то время как традиционные компьютеры с трудом делают выводы из такого большого количества данных, глубокое обучение фактически становится более эффективным по мере увеличения объема данных. Нейронные сети способны обнаруживать основные структуры в больших объемах неструктурированных данных, таких как необработанные носители, которые содержат большую часть мировых данных.