Есть ли альтернатива искусственным нейронным сетям?

МЕНЮ


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

ТЕМЫ


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

Авторизация



RSS


RSS новости


Почему нейронные сети оказались эффективнее всех предыдущих алгоритмов машинного обучения — объясняет математик Константин Воронцов

Первая модель нейронных сетей появилась в 1943 году, ее создали ученые У. Маккалок и У. Питтс. Уже после них были эксперименты Ф. Розенблатта. Последующие исследования, которые проводили М. Минский и С. Пейперт, убедили всех, что у нейросетей нет будущего и эти технологии не работают. И исследования в этой области прекратились на ближайшие 15–20 лет.

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

Это довольно условное объяснение. То есть проблема в том, что, если можно построить более сложную суперпозицию функции, снижаются требования к каждому ее отдельному элементу, сами по себе они могут быть более примитивными. А в каком элементе архитектуры происходит решение задачи? Или это происходит за счет того, что каждый элемент умный сам по себе? Или потому, что они как-то нетривиально взаимодействуют и количество переходит в качество? По всей видимости, мы еще не до конца осознали этот переход. Но действительно оказалось, что сложные задачи лучше решают сети, в которых много слоев. И прорыв в конкурсе ImageNet в 2012 году совершила именно глубокая сеть, что и положило начало массовому развитию именно этой архитектуры.

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

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

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

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

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

Еще одна группа, о которой упоминал Педро Домингос, собственно нейросети. Они развились из модели Маккалока — Питтса. Эта модель всегда сильно присутствовала в искусственном интеллекте и машинном обучении. В основе лежит идея создания устройства, похожего на человеческий мозг, и с годами люди учатся делать это все лучше и точнее. Отдельно построением физических моделей функционирования мозга занимаются нейрофизиологи. Но они все же биологи, а для создания автоматического устройства нужно нечто иное. Самолеты ведь не летают так, как птицы? И искусственные нейронные сети не «думают» так же, как мозг. Поэтому за основу берется только внешняя аналогия: у птицы два крыла, но на этом ее сходство с самолетом заканчивается. Поэтому все модели искусственных сетей — что-то, что реализовано на компьютере, на графических картах, и это все довольно далеко ушло от мозга.

Следующая идея — эволюционная, и она опирается на теорию Дарвина, то есть опять же подсмотрена в живой природе. Это эволюция структур моделей. Во всех сценариях, которые мы описывали выше, используется очень примитивная и простая структура. А для более сложных задач ее надо усложнять, уметь их комбинировать и так далее. И чтобы построить сложную модель, которая всегда некоторая суперпозиция функции, если говорить на математическом языке, то эту суперпозицию надо найти, перебрать большое количество вариантов. И тут мы сталкиваемся с тем, что в математике и информатике называется комбинаторным взрывом, потому что число структур, которое надо перебрать, просто фантастическое, с этим не справятся даже суперсовременные компьютеры. Эволюция как-то выкрутилась и в конце концов пришла к тому, что человеческий геном такой, какой он есть. И методы, которые эмулируют эволюцию, способны делать переборы в таких сложно устроенных пространствах и достаточно быстро находить решения. Эти генетические, или эволюционные, алгоритмы могут быть использованы в том числе и для оптимизации структуры нейронных сетей. И понятно, что если рассматривать наш мозг как эволюционирующий орган, он тоже как-то развивался, менялся от поколения к поколению, через рождение новых людей. Но с эволюционными алгоритмами у нас больше возможностей, мы не обязаны «рожать» новое решение только из данных других двух — можно взять хоть десять моделей и вывести оптимальное решение из них.

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

Еще один путь — построение композиций. Если у нас есть много посредственных решателей задачи, то можно их всех спросить, усреднить их ответы, проголосовать и выдать некое среднее решение. Эта идея очень старая, она появилась в 1960–1970-х годах и потом огромное количество раз переизобреталась. Называлось это каждый раз по-новому, потому что люди не знали о предыдущих достижениях, была другая терминология, которая складывалась по ходу дела.

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

Эта идея в 1995 году привела к появлению алгоритма бустинга, который стал очень известным и популярным. В том же году появился алгоритм беггинга. Бустинг последовательно выстраивает модели, и каждая следующая компенсирует ошибку предыдущих и старается решить задачу еще лучше. Это была довольно известная идея, но Фройнду и Шапиро удалось превратить эту тему в настоящий бум в машинном обучении, который, на мой взгляд, произошел очень быстро. Они просто описали алгоритм, который оказался очень понятным. Можно было прочитать статью, пойти и запрограммировать все за один вечер — и все получалось. Это оказалось фантастикой. Раньше были методы, которые либо плохо работали, либо были слишком сложными. Начиная с 1995 года, когда Шапиро придумал адаптивный бустинг — AdaBoost, десять лет в машинном обучении работы велись при помощи этого метода, на него тогда набросились так же, как сейчас на глубокое обучение.

Очевидно, что сегодняшнее увлечение нейросетями — очередная дань моде, но кажется, что она надолго, в них верят больше, чем в идею бустинга. Почему стали решаться сложные задачи? Потому что глубокие сети принесли в машинное обучение то, чего раньше не было, в том числе и в бустинге. Все предыдущие методы требовали на входе очень рафинированную информацию в виде матрицы «объекты — признаки». А здесь признаки изобретать не нужно. То есть нам, например, не надо выдумывать признаки, по которым можно обсчитать фотографию. Раньше для распознавания большого количества фотографий надо было настраивать очень тонкую фильтрацию: сглаживания, переходы, градиенты и так далее. И оказалось, что нам это не нужно. Весь этот пласт красивых, хороших наработок, в которые вложилось огромное количество ученых, оказался бесполезен. Первые слои в глубоких сетях сами определяют признаки, и больше инженерам не надо сидеть и придумывать фильтры, а нужно только поставить несколько сверточных слоев и по большой выборке данных настроить в них коэффициенты. А дальше эти слои сами обучатся вынимать из изображений нужные признаки, полезные для решения задач классификации. Но это стало возможно только после того, как эта выборка стала многомиллионной. Изображений в ImageNet хватило для того, чтобы обучить классификатор и предварительные стадии вынимания содержательных информативных признаков из изображения. Когда эти явления попытались объяснить, оказалось, что первые слои реагируют на грубые перепады градиентов, переходы разных цветов вдоль каких-то границ, а следующие слои распознают переходы этих границ друг в друга, следующие — какие-то примитивные формы, кружочки, загогулины, зигзаги. Еще через несколько слоев — глазки, ушки, лапки, элементы реальной коллекции. Соответственно, эти сети можно обучать на специальных коллекциях, затачивая их под распознавание автомобильных номеров, например, а за основу брать первые слои сети, обученной по ImageNet. Это называется использованием частично предобученной сети. Это одно из средств, которое помогает нам двигаться вперед в распознавании изображений, голоса и текста.


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

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