Нейросети
Нейросети
Впрочем, существуют весьма сложные системы, представляющие собой набор примитивных "процессоров", не имеющих команд перехода, — речь идет о так называемых нейросетях. Идея нейросетей была позаимствована у нервных систем высших животных, которые представляют собой сложносоединенную сеть специализированных клеток, нейронов. Каждый нейрон представляет собой довольно примитивное аналоговое устройство, пороговый сумматор: он имеет много (иногда много тысяч) входов и один выход. Каждый вход нейрона имеет свой вес, возможно отрицательный. Нейрон суммирует сигналы со всех
своих входов с учетом их весов, и, если результат превосходит некоторый порог, начинает генерировать сигнал на выходе. Суммирование бывает как линейное, так и нелинейное, когда вместо самого сигнала используется некоторая монотонная его функция. Например, если в качестве функции использовать логарифм, нейрон из сумматора превратится в умножитель.
Кажущаяся примитивность одиночного нейрона компенсируется их большим количеством, сложной системой связей между нейронами и их способностью "обучаться", изменяя коэффициенты входов (веса) и пороговое значение. Биологические нейросети могут расти, создавая дополнительные соединения. Некоторые комплексы биологических нейронов имеют фиксированную структуру связей и записанные на генетическом уровне веса. Простые поведенческие реакции, обусловленные такими нейронами, называют безусловно-рефлекторными, а сложные комплексы таких реакций — инстинктом.
Нейрофизиологические исследования показывают, что, во всяком случае, первичный анализ видимого изображения (выделение контуров, объединение их в фигуры) мозг млекопитающих осуществляет как нейросеть. Есть весьма убедительные доводы в пользу того, что остальные функции мозг выполняет по тому же принципу — хотя точная анатомическая локализация многих функций восприятия, распознавания образов, мышления, памяти и координации движений до сих пор неизвестна, в мозге пока не обнаружены структуры, которые могли бы работать иначе, чем нейросеть.
Успехи биологических нейросетей поражают воображение разработчиков электронных вычислительных и управляющих систем. Даже если отвлечься от часто упоминаемых в литературе задач распознавания образов, задача координации движений в том виде, в каком ее решает мозг млекопитающих, выходит далеко за пределы возможностей самых современных вычислительных систем.
Действительно, тело млекопитающего (например, человека) с точки зрения теоретической механики представляет собой систему многих тел (туловища, головы, сочленений конечностей), связанных вязко-упругими соединениями (мышцами и сухожилиями). При этом далеко не все эти тела можно адекватно описать как твердые: тот факт, что туловище способно изгибаться и скручиваться, используется человеком почти во всех движениях и для сохранения равновесия, и для придания движению дополнительного усилия, и для других целей. Даже самая примитивная модель "палочного человечка" с жестким туловищем состоит из четырнадцати элементов: головы, туловища и четырех конечностей, каждая из которых имеет по три сочленения. Казалось бы, немного, но движение каждого из этих элементов описывается шестью переменными: перемещение центра масс по трем координатам и вращение в трех плоскостях.
Таким образом, полное движение "палочного человечка" описывается восемьюдесятью четырьмя переменными. Для адекватного описания нам надо использовать не только сами переменные, но и их первые производные по времени, линейные и угловые скорости и соответствующие им импульсы и моменты импульса, так что переменных получается 168.
Для примера, большинство задач, решаемых в ВУЗовских курсах физики и теоретической механики, описывает одно- или двухмерное движения материальных точек или одиночных твердых тел, т. е. имеет дело с двумя или четырьмя "координатами" и, соответственно, четырьмя или восемью переменными. При решении уравнений, описывающих даже такие системы, есть место подвигу. Алгоритмы же решения систем дифференциальных уравнений большой размерности содержат шаги, вычислительная стоимость которых быстро — быстрее, чем экспоненциально— растет с увеличением размерности системы. Пользуясь методами теоретической механики, можно относительно легко записать систему дифференциальных уравнений, описывающую движения "палочного человечка". Решить же эту систему ни аналитически, ни численно за приемлемое время невозможно. Причем мы еще не учли в нашей модели нелинейных вязко-упругих связей между отдельными частями тела! А человеческий мозг решает эту задачу в полном виде и в режиме реального времени, причем не только для сложных движений, таких, как танец или боевые искусства, но и для таких повседневных действий, как вставание со стула, выполнение одного шага или поднесение ложки ко рту. Следует отметить, что решение этой задачи обычно не отвлекает сколько-нибудь значительной доли вычислительных ресурсов мозга, так что мы можем без труда одновременно идти, созерцать окружающий пейзаж (распознавание зрительных образов тоже не самая вычислительно дешевая задача) и размышлять о чем-нибудь.
Относительная легкость, с которой человек осваивает новые типы движений, даже такие, которые меняют механику его тела (т. е. изменяют систему дифференциальных уравнений, которая описывает поведение тела как механической системы), — езда на велосипеде, лыжах, роликовых коньках, работа простыми инструментами — или те, которые позволяют использовать механику чего-то совсем другого (управление автомобилем или летательным аппаратом), показывает, что врожденной является способность предсказывать движение и управлять поведением сложных механических систем вообще, а не только собственного тела. Эта же легкость, возможно, свидетельствует также и о том, что при решении этих задач в мозгу не происходит ничего даже отдаленно похожего на запись и решение системы многомерных дифференциальных уравнений.
Технические нейросистемы (или, если угодно, имитации нейросистем) достигли гораздо меньших успехов. Основная сфера применения компьютерных нейро-симуляторов — поиск корреляций в статистических и экспериментальных данных. Наибольший коммерческий успех имели аппаратно реализованные папиллярные детекторы и системы автофокусировки видео- и фотокамер, задача которых — крутить объектив, пока количество четких контуров в изображении не станет максимальным. На любительских видеосъемках, а иногда и в прямом эфире коммерческого телевещания, встречаются забавные моменты, когда такой автофокус настраивает резкость совсем не на тот элемент сцены, который хочет запечатлеть оператор, а на посторонний предмет, в изображении которого много мелких элементов, — крону дерева или что-нибудь в этом роде.
В нервных системах высших животных можно выделить функциональные подсистемы, которые с определенной натяжкой сопоставляются с теми или иными модулями компьютерных ОС. Так, например, есть нейрофизиологические свидетельства, что лобные доли коры больших полушарий головного мозга млекопитающих отвечают за его способность отложить деятельность, направленную на достижение какой-то одной цели, и переключиться на что-то другое, не забывая, однако, ни о предыдущей деятельности, ни о предыдущей цели. Это неплохо коррелирует с тем фактом, что человек, у которого лобные доли развиты до беспрецедентного в животном мире размера, способен также и к построению беспрецедентных по сложности цепочек, направленных на достижение целей окольными путями. Например, какому из животных придет в голову,
что гарантированного ежедневного питания и многих других материальных вознаграждений можно достичь посредством изучения современных операционных систем? У людей, впрочем, способность строить сложные цепочки промежуточных действий и промежуточных целей иногда доходит и до патологических явлений, когда забывается начальная (или, наоборот, конечная) цель, ради которой все затевалось. В связи с этим нельзя не вспомнить знаменитую реплику Льва Троцкого: "цель — ничто, движение — все".
Лобные доли можно — как признавалось выше, с определенной натяжкой — сопоставить с планировщиком многозадачной ОС. Понятно, что натяжка здесь столь велика, что вряд ли такое сопоставление сильно поможет нам в понимании того, что же такое планировщик, и как он устроен.
Несмотря на определенное родство решаемых задач, нейросети радикально отличаются от фон-неймановских компьютеров. Главное отличие состоит в том, что нейросеть не имеет ничего даже отдаленно похожего на программу в фон-неймановском смысле. Обсуждение, а также изучение реализаций биологических нейросетей и разработка нейросетей технических — занятие очень интересное и ему посвящено несколько научных и инженерных дисциплин, но это занятие увело бы нас далеко в сторону от темы нашей книги.