Лекции / 6. Введение в нейронные сети
.pdf
Такая система взглядов была вполне логична на ранних этапах изучения мозга. Однако, исследования нейропластичности показывают, что нейроны из самых разных областей мозга могут при необходимости принимать на себя функции, обычно им не свойственные. Сейчас уже ясно, что в нашем мозге не только постоянно образуются новые связи между нейронами (новые синапсы), но и происходит непрерывное обновление самих нейронов (нейрогенезис). А уже существующие нейроны могут переобучиться для того, чтобы обрабатывать совершенно новые сигналы.
Считается, что на нейропластичности основан феномен фантомных болей: нейроны, которые раньше «отвечали» за утраченные органы, начинают обучаться чему-то новому, а другие отделы мозга по привычке интерпретируют новые сигналы как идущие от уже давно не существующих конечностей.
Например, некоторые слепые люди развивают в себе способность к эхолокации, определению местоположения окружающих объектов по отраженному от них звуку. Некоторые слепые могут просто щелкать языком и определять окружающие объекты, прислушиваясь к отзвукам. А в других экспериментах вполне зрячие люди обучались эхолокации, получая сигналы с укрепленного на них сонара.
Итак, человеческий мозг состоит из связанных между собой нейронов, которые активируются в зависимости от своих «предков» и при активации передают друг другу сигналы.
Мозг может адаптироваться к новым источникам информации, даже изначально совершенно чуждым ему.
Исследования нейропластичности, да и просто тот факт, что все нейроны в мозге работают примерно одинаково, убеждают нас в том, что весь мозг функционирует по некоему «единому алгоритму», который может обучать конгломераты из нейронов на самых разных данных, выделяя признаки из потока неструктурированной информации.
Основная идея искусственных нейронных сетей — собрать сеть из простых нейронов, активирующихся или не активирующихся в зависимости от снабженных поддающимися тренировке весами, — действительно позаимствована у природы.
Однако дальше путь развития искусственного интеллекта отошел от природы; настоящие нейроны устроены значительно сложнее.
Можно сказать, что одна из далеких, фактически конечных целей программы по созданию искусственного интеллекта — это понять или хотя бы просто моделировать этот «единый алгоритм» и построить программы, которые могли бы его использовать.
Насколько можно доверять «современному пониманию»?
В своей недавней работе «Может ли нейробиолог понять микропроцессор?» Эрик Джонас и Конрад Кординг пытаются проследить, насколько бы получилось у методов современной нейробиологии проанализировать какой-нибудь очень простой «мозг» на примере процессора MOS 6502. Такие процессоры устанавливались в Apple I и Atari.
Сам чип процессора состоит из всего 3510 транзисторов; для исследования была построена точная цифровая реконструкция чипа, которая могла запускать те самые классические игры Donkey Kong и Space Invaders и была способна порождать для дальнейшего анализа около 1,5 Гбайт данных за секунду эмуляции.
Если сравнить это с огромными возможностями человеческого мозга, видно, что задачу перед собой ученые поставили гораздо менее амбициозную, чем изучение настоящего мозга, а полноценные данные о состоянии каждого транзистора после каждого такта — это такой уровень детализации, о котором современная нейробиология пока и мечтать не осмеливается.
Для анализа Джонас и Кординг использовали классические методы, которыми нейробиология изучает настоящий человеческий мозг. Например, они специально симулировали повреждения отдельных транзисторов, чтобы узнать, за что они «отвечают». В рамках MOS 6502 они могли позволить себе попробовать повредить буквально каждый транзистор по отдельности. И действительно, они сумели выделить отдельные подмножества транзисторов, которые были необходимы для запуска каждой из трех рассмотренных игр (Space Invaders, Donkey Kong и Pitfall); без такого транзистора одна игра не запускалась, а две другие работали нормально.
Можно было бы предположить, что эти транзисторы являются ключевыми для именно этого конкретного «поведения»... Вот только на самом деле не было ничего подобного: большинство этих транзисторов на самом деле реализовывали простые функции, например сложение, и чисто случайно именно эта часть реализации оказывалась нужна лишь в одной игре. Конечно, если бы исследователи заранее знали, что эта часть «мозга» реализует сложение, и затем начали повреждать отдельные транзисторы, смысла в этом было бы больше. Но ведь в реальной нейробиологии мы тоже совершенно не умеем изолировать настолько простые, базовые функции.
Другой пример, показывающий огромную сложность изучения и моделирования настоящих мыслительных процессов — это то, как сложно ученым по настоящему убедительно если не понять, то хотя бы просимулировать даже простейшие системы нейронов. Например, совсем недавно стало известно о важном успехе на этом пути: проект OpenWorm начал работу по симуляции нервной системы нематоды C. elegans. Этот червь — один из самых хорошо изученных современной биологией организмов. Он стал для современной генетики примерно тем же, чем муха дрозофила была для классической; о нем опубликованы тысячи работ, есть даже специальная конференция под названием C. Elegans Genetics, и практически все механизмы его существования давно известны ученым.
Проект OpenWorm поставил целью сделать достаточно достоверную модель всех
959 клеток C. elegans, а начать решили с того, чтобы полностью моделировать его нервную систему и то, как она приводит к движениям червя.
Система эта состоит из 302 нейронов (одна из самых простых нервных систем в мире) и 95 клеток мышечного волокна. Проект, реализуемый согласно философии открытого программного обеспечения, движется успешно, но дело оказалось совсем не таким простым, как могло показаться: в 2015 году координатор проекта Стивен Ларсон признавал, что они пока «прошли только
20–30 % пути».
Современное состояние
Первым значительным индустриальным приложением современных глубоких нейронных сетей, которое подтвердило, что революция глубокого обучения действительно начинает необратимо менять ландшафт машинного обучения, да и вообще мира вокруг нас, стали успехи в распознавании речи.
Структура полноценного распознавателя речи выглядит так:
1.Звуковой сигнал преобразуется в признаки специального вида;
2.Признаки превращаются в гипотезы, которые предлагают варианты конкретных фонем
для каждого окна в звуковом сигнале;
3.Гипотезы о фонемах объединяются в гипотезы относительно произнесенных слов, и в выборе между ними уже участвует не только обработка самого звука, но и языковые модели.
До глубоких сетей первые два шага этого процесса выглядели так: сначала звуковой сигнал превращался в так называемые MFCC-признаки, фонемы из них распознавали с помощью скрытых марковских моделей, а языковые модели представляли собой обычно сглаженные распределения n-грамм, то есть модели, которые оценивают вероятность следующего слова при условии нескольких предыдущих
MFCC (мел-кепстральные коэффициенты) — это представление сигнала, в виде особого спектра, из которого с помощью различных фильтраций и преобразований удалены незначительные для человеческого слуха компоненты. Спектр носит кратковременный характер, то есть изначально сигнал делится на пересекающиеся отрезки по 20-40 мс. Предполагается, что на таких отрезках частоты сигнала не меняются слишком сильно.
Сигнал |
Отрезки по 25 мс |
MFCC |
Глубокие сети начали с того, что заменили собой распознаватель, основанный на скрытых марковских моделях. Более того, быстро стало ясно, что MFCC-признаки тоже можно улучшить путем обучения: нет, сети пока что не начинают работу непосредственно с необработанного звукового сигнала, но представления, подающиеся на вход современным системам распознавания, гораздо более «сырые», чем MFCC.
Первые такие исследования, основанные на глубоких сетях с предобучением без учителя, появились около 2010 года, а уже к 2012-му это привело к тому, что все крупнейшие игроки на рынке распознавания речи перешли на нейронные сети: и Microsoft, и Google, и IBM. Основные результаты здесь были достигнуты сначала благодаря тому, что выделение признаков для декодеров, основанных на скрытых марковских моделях, можно было «отделить» от самих декодеров и отдать глубоким сетям, то есть сначала это было во многом обучение без учителя.
Но вскоре появились и прорывные результаты о распознавании end-to-end, то есть полностью от начала до конца с учителем, и сейчас фактически все проекты для распознавания речи, включая виртуальных помощников вроде Apple Siri, работают на глубоких нейронных сетях. Сюда же примыкает и анализ музыки: хотя там успехи пока не столь впечатляющие, последние модели для распознавания и порождения музыки тоже работают на глубоких нейронных сетях.
Вслед за речью пришло время обработки изображений. C 1980-х годов в группе Яна ЛеКуна изображения обрабатывали именно нейронными сетями. К тому же времени относится и первый взлет сверточных нейронных сетей, специальной архитектуры, которая отлично подходит для обработки именно таких входов, как картинки. В целом, это редкий пример области, в которой нейронные сети никогда полностью не пропадали из виду.
Однако после начала революции глубокого обучения прогресс в обработке изображений тоже резко ускорился. В 2009–2010 годах глубокие сверточные сети выиграли ряд соревнований по распознаванию символов и даже распознаванию видео с камер слежения. Кроме того, в 2009 году появились первые реализации нейронных сетей на графических процессорах, что дало огромный импульс всем связанным со сверточными сетями исследованиям.
В2010 году были серьезно превзойдены давние результаты на классическом датасете распознавания рукописных цифр MNIST, а еще через пару лет появились первые системы, которые распознавали изображения лучше, чем люди!
В2011-м глубокие сверточные сети лучше людей распознавали дорожные знаки на фотографиях, что очень важно для автоматического вождения автомобилей, а с 2014 года Facebook распознает лица наших друзей не хуже, чем мы сами. В наши дни самые глубокие сети — это именно сверточные сети для обработки изображений или видео; они могут насчитывать несколько сотен слоев.
