Глубокое обучение — Юрген Шмидхубер

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


2020-11-09 17:04

Профессор искусственного интеллекта Юрген Шмидхубер о работе алгоритмов распознавания образов

Эта лекция — часть курса «Глубокое обучение», который мы делаем вместе с организаторами технологического конкурса UpGreat ПРО//ЧТЕНИЕ. Профессор Университета прикладных наук итальянской Швейцарии, пионер в области искусственного интеллекта Юрген Шмидхубер рассказывает о совершенных искусственных нейросетях и механизмах глубокого обучения. 

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

Глубокое обучение связано с работой искусственных нейронных сетей, вдохновленных устройством человеческого мозга. В мозге человеке примерно 100 миллиардов маленьких процессоров (нейронов), каждый из которых в среднем связан примерно с 10 тысячами других нейронов. Некоторые из них — входные нейроны, которые снабжают все остальные нейроны данными — например, визуальной информацией от «камер», звуковой от «микрофонов», сигналами боли, голода и так далее. Бывают также выходные нейроны, которые контролируют движения мышц в пальцах или голосовом аппарате. Большинство нейронов спрятано посередине, где происходит обработка информации. 

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

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

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

Рекуррентные нейронные сети (РНС), обрабатывающие последовательности данных, являются наиболее совершенными нейросетями, поскольку это универсальные вычислительные машины: они имитируют работу электронных микросхем. В полносвязной РНС все узлы связаны со всеми узлами, кроме входных. В отличие от нейросетей с прямой связью, в РНС могут встречаться циклы, рекурсия и тому подобное. Программа работы РНС — это ее весовая матрица.

Рекуррентные нейронные сети могут легко и эффективно научиться выполнять программы, которые сочетают в себе последовательную и параллельную обработку информации. Чтобы определить, к какому типу относится назначение коэффициентов доверия в заданной нейросети — глубокому или неглубокому, — мы рассматриваем продолжительность соответствующих путей назначения коэффициентов доверия, то есть цепочек возможных причинно-следственных связей между следующими друг за другом узлами. Например, данные могут идти от входных нейронов через скрытые и к выходным нейронам в сетях с прямой связью, где не бывает обратной связи. Другой вариант — данные от входных нейронов динамично трансформируются в рекуррентных нейронных сетях.

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

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

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

На практике оказывается, что если добавить много-много слоев, то многие задачи решать намного проще, а если добавить в сеть рекуррентные связи, то становится возможным решить многие задачи, с которыми сети с прямой связью справиться не могут.

Вернемся к нашему примеру. Задача — определить бит четности. На вход подается поток битов: 1, 0, 0, 1, 1, 0, 1 и так далее, всего десять бит. Существует 210 возможных комбинаций нулей и единиц, то есть всего 1024 варианта, и можно научить сеть с прямой связью корректно их распознавать. В такой сети будет десять входных нейронов, скрытый слой нейронов (одного слоя, как мы знаем, достаточно), в котором есть еще около десяти нейронов, и один выходной нейрон, который говорит: да, 1.0 — если число единиц в строке четное, и 0 — если число единиц нечетное. Чтобы обучить такую сеть, нужно предоставить ей много обучающих данных. 

Тот же результат можно получить намного легче при помощи крохотной рекуррентной сети всего с пятью связями, а не с сотнями связей, как в предыдущем примере. У нас будет всего один входной нейрон, который считывает биты по одному: 1, 0, 1, 1 и так далее. Еще в такой сети должен быть всегда активный нейрон смещения и один-единственный скрытый нейрон, связанный сам с собой, плюс один выходной нейрон, который получает данные от скрытого нейрона и от нейрона смещения.

Итак, в такой системе пять весов, и нам нужно создать программу, которая позволит такой сети решить задачу четности. Это очень просто. Сеть должна научиться всего лишь инвертировать значение: если на вход поступает 1, то состояние скрытого нейрона должно смениться на обратное. Если состояние было равно 1, оно должно принять значение 0, а если оно было 0 или близким к 0, то оно должно стать 1 или близким к 1.

Для решения этой задачи достаточно пяти связей, и для обучения такой сети можно использовать наиглупейший алгоритм: вы просто случайным образом присваиваете всем этим связям веса в пределах от -10 до 10 и смотрите, что получится. Сработает ли она на тренировочном сете из трех примеров — скажем, 7 бит, 15 бит и 21 бит? Если да, то вы можете быть уверены: она сработает на строке любой длины. Мы провели такой эксперимент много десятилетий назад. 

Итак, крошечная рекуррентная сеть может решать те же задачи, что и намного более крупная сеть с прямой связью, а также многие другие задачи, поскольку сеть с прямой связью перестанет работать, как только на вход придет больше 10 бит данных, например 11 бит, поскольку она никогда не тренировалась на таких данных и даже не может обработать 11 бит. Однако рекуррентная сеть, эта очень простая и элегантная сеть, естественным образом решает задачу четности для строк произвольной длины. Это иллюстрирует базовые преимущества рекуррентных сетей по сравнению с сетями с прямой связью.

Вернемся к глубокому обучению. В следующих двух лекциях мы рассмотрим глубинные нейронные сети с прямой связью, которые сейчас широко распространены, несмотря на свойственные им ограничения. Они применяются в самых разных областях — от компьютерного зрения до предсказания биржевых котировок. В следующей части лекции мы поговорим о рекуррентных сетях, сильные стороны которых я уже описал. Мы увидим, что, да, они могут быть очень мощными, однако, чтобы заставить их работать, приходится вводить кое-какие тонкости.

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


Источник: postnauka.ru

Комментарии: