Страница:
А.Ж. Разрыв – это что?
В.Н. Например, разрыв может быть в воде: турбулентность воды или какое-то течение вызывает…
А.Г. Ну, или ветер в другую сторону…
В.Н. Если в воздухе – то это ветер.
Когда наша инфузория сориентирована примерно на источник, естественно, активность динамической системы подавлена и поворот не осуществляется. Поэтому, если разрыв узкий, она его просто пролетает. Если же он широкий, инфузория переходит к блужданию. Но блуждание приводит её либо по ту сторону разрыва, которая удалена от источника, либо на ту сторону, которая к источнику ближе. В последнем случае всё хорошо…
А.Ж. То есть, если бы она решения принимала постоянно, она бы в этой полосе запуталась бы сразу…
В.Н. Она бы не знала, что там делать.
А.Г. А так, маршем её берёт.
В.Н. Либо она должна знать карту местности, которой у неё нет, либо пользоваться каким-то другим алгоритмом. А как действовать на пустом месте, собственно…
А.Ж. Разумно.
А.Г. Более чем…
В.Н. Для инфузории даже очень разумно. И, наконец, её поведение оказывается ещё богаче, если приделать ещё один сенсор, который подавляет повороты при касании с твёрдой поверхностью, с препятствием. Препятствие пропускает запах, но не пропускает инфузорию. Происходит очень интересная вещь, которая поразила даже нас – тех, кто делал эту модель: повороты происходят реже. И кончается тем, что инфузория скользит вдоль этого препятствия в ту или в другую сторону, пока его не обойдёт.
А.Г. Потому что она чувствует постоянный сигнал?
В.Н. Она чувствует сигнал, который не даёт ей уйти в другую сторону. И кроме того, поскольку она скользит по стенке, повороты происходят с небольшой вероятностью. Поэтому она, грубо говоря, не мельтешит вдоль стенки, не теряет время, чтобы ходить туда-сюда, и, в конце концов, обходит это препятствие, если оно не бесконечно длинное. Опять-таки, это поведение наблюдается у простых животных: и червей и инфузорий.
А.Ж. Не только у простых, я вам скажу. Я примерно так же тоже обхожу препятствие.
В.Н. Особенно, когда задумаешься над какой-нибудь научной проблемой, это так…
А.Ж. Или забор высокий.
В.Н. Ещё раз скажу, что, конечно, это – простая модель. Какой бы продуктивной она не казалась в качестве аналогии, она не может объяснить поведение животных, решающих более сложные задачи. Здесь нужна исследовательская работа с роботами. Получается, собственно говоря, взаимодействие между этологией – наукой о поведении, и робототехникой. Если я говорю, что я умею делать радиоприёмники, то мне могут сказать: возьми да и сделай. Если я говорю, что понимаю, как ведёт себя животное, то разумно потребовать, чтобы я запрограммировал робота. Но тут-то и выясняется, что наши теории недостаточны для этого, хотя этология существует уже 50 лет, а поведение животных изучается больше ста лет. На самом деле существующие теории поведения очень ограничены. Они не позволяют воспроизвести адаптивное поведение животных в роботе, и отсюда сразу видно, что наши знания ограничены. Это приходится признать.
Получается, что работа с роботами оказывается, с точки зрения биолога, новым инструментом исследований, который позволяет проверять наши знания.
А.Г. Это, в общем, довольно идеальный инструмент. Это в каком-то смысле лучше, чем знаменитая дрозофила. Потому что здесь можно плодить популяции, если говорить об эволюции этих искусственных объектов, как у нас шла речь в одной из программ. То есть у исследователя время не ограничено…
А что же с аниматами? Я просто хочу напомнить, что здесь, у нас, время программы ограничено, как время поиска у ручейника.
А.Ж. Я бы хотел здесь поговорить, дополнить рассказ Валентина Анатольевича о том, что интересен вопрос: а как же вырабатывается эта стратегия поведения у организма? Это то, о чём думали мы. И здесь, мне кажется, что многие ответы можно найти вот каким путём. Если встать на место нервной системы организма и оказаться в тех условиях, в которых находится она, то из этих условий просто логически вынужденно будет следовать и структура, и функция, и алгоритмы, по которым должна работать эта система. Я и хочу рассказать о результатах попытки такого вывода, это то, чем мы занимаемся. Покажите, пожалуйста, первый слайд.
Представим себя на месте управляющей системы. Что это такое? Вот есть любой организм – это некоторое тело, или некоторый объект, который является, по сути, частью среды. Если мы говорим о том, что этот организм управляем, значит, внутри него есть управляющая система, которая является частью этого организма. Причём будем рассматривать только такие организмы и такие объекты, где управляющая система лежит именно внутри организма, а не руководит им по телеметрии.
Из этой картинки сразу же следуют цели управления, то есть те цели, которые старается достигнуть система управления. Мне кажется, что здесь существуют две главные цели. Первая цель – это обеспечить выживание организма. Иначе, если этого нет, не о чем говорить, всё разваливается, и как такового этого тела не существует.
И вторая цель – это накопить знания, потому что управляемый организм, управляемый объект препятствует разрушению агрессивным воздействиям среды не за счёт своей твёрдости, как алмаз: «Вот стою тут и буду сопротивляться». Он препятствует разрушению за счёт того, что ведёт себя активно, он совершает некоторое воздействие на среду. И через эту среду к организму возвращается реакция совершенно другого типа. Например, если ребёнок хочет есть, то он кричит, и приходит мама с бутылочкой молока. Или, скажем, мы что-то бросаем вверх, а в результате падает плод с дерева. Организму надо ещё найти и понять эти реакции на его собственные действия.
Значит, для того чтобы обеспечить выживание, нужно знание: как это действие сопряжено с этим результатом? Поэтому я бы здесь выделил эти две цели управления. Может быть, даже цель накопления знания первична. Если мы хотим исследовать какое-то неизвестное пространство и сделаем для этого такого робота, который бы накопил знания, нам надо подумать о том, как он выживет, нам надо обеспечить его выживание.
Из этой же картинки сразу, наверное, следует (в грубом виде) алгоритм такого поиска. Нервная система должна найти обратные связи через среду. Это очень хорошая мысль, которую петербургский учёный Владимир Левченко когда-то красиво сформулировал. Среди всех действий, которые может совершать организм, есть такие, которые уходят в бесконечность и никуда не возвращаются, никогда к нам не вернутся. Надо найти те воздействия, которые через среду к нам вернутся, на наши датчики. И вот этот поисковый алгоритм нам надо найти.
Вы помните, как Максвелл в своё время предложил своего демона, которого помещал внутрь чёрного ящика и, пользуясь этим приёмом, он логически рассуждал, что же там должно происходить. Давайте мы сейчас с вами, подобно этому демону, погрузимся внутрь этого кружка нервной системы и посмотрим, что же она должна делать, если она находится в этих условиях.
Покажите, пожалуйста, следующий слайд. Исходное условие – это автономность системы управления, как я уже сказал. То есть мы находимся внутри тела. Второе условие – это дискретность, то есть у нас есть дискретные входы. Вот эти канальчики, по которым поступает дискретная информация. И есть дискретные выходы. Может быть, их много. Но это дискретные кнопочки, которые мы можем нажать. То есть, то, что является выходом нервной системы – это пучок волокон, через которые идут бинарные сигналы, точно так же, как и через вход. Их может быть много, миллионы рецепторов, но через них поступают бинарные сигналы.
И вот перед нами есть экран с входящей информацией, на котором мы видим входящие сигналы. И есть целый, так сказать, набор кнопочек, на которые нужно нажимать.
Представим себя внутри, в этой чёрной комнате с экраном, на который нам проецируется информация из окружающего мира. Первая задача, которую система должна решить – как в этом потоке входной информации научиться узнавать что-то знакомое. Например, сказать: «Ага, вот это красное пятно я уже когда-то видел». И когда этот момент произойдёт, тем самым произойдёт некое формирование образа (вот этого пятна) и акт его распознавания – «я его распознал». Теперь система его будет узнавать всегда, когда она его увидит, она его распознает. Это первое. Поэтому на этой схеме, которая сейчас видна, первый блок в нервной системе – это формирование и распознавание образов.
А.Г. Для того чтобы распознать, всё-таки надо каким-то образом повлиять на это красное пятно для того, чтобы сделать заключение о том, что это такое. Ведь недостаточно просто сенсорно считать.
А.Ж. Вы правильно говорите, но задачу: «Узнать это пятно» – можно решить, как бы не влияя на него в некотором смысле слова. То есть, если у вас несколько раз повторяется эта конфигурация, вы можете даже не воздействовать на неё, но узнавать: «Вот это лицо я уже видел неоднократно в толпе».
А.Г. Но кто это, я не знаю.
А.Ж. Я пока не знаю. Второе. Теперь надо найти, как я могу своими выходными воздействиями повлиять на это красное пятно. Ну, естественно, если у вас никаких знаний нет, вы начинаете что-то случайно перебирать. Наконец, вы находите, что вот это действие позволяет это пятно убрать. А вот это действие позволяет его вызвать. Это то, вообще говоря, с чего начинает ребёнок. Какие действия он находит первыми? Как игрушку взять, а следующее действие, он что находит? Как её бросить. Как маму вызвать? Как маму отогнать. Как это получить? Как от этого избавиться? Потому что он имеет дело с бинарными сигналами и бинарными объектами, и бинарными действиями. Либо я вызываю этот образ, либо я его вытесняю.
Эта связь образов, наших действий и обратной реакции на них уже есть знания. И если эти знания статистически достоверны, то есть связи не первый раз повторяются, если я понимаю, что, видимо, всегда это действие вызывает такой-то эффект, то я должен запомнить это, мне нужна память. Мы это называем базой знаний. В базе знаний записываются сведения о том, как действия влияют на образы. Естественно, для того чтобы хранить образы, нужна ещё память образа, где хранится эта конструкция, эти найденные мною образы.
Хорошо. Предположим, у меня эти знания накапливаются, то есть, сидя в этой чёрной комнате, наблюдая за входами и выходами я себе в блокноте, в конце концов, записываю, как эти действия влияют на эти образы. Предположим, у меня этих знаний накопилось много. Могу ли я управлять теперь ими? Могу, но я не знаю – зачем. Что здесь хорошо? Что здесь плохо? Мне нужны какие-то качественные критерии. Для этого в каждом организме есть такой блок или подсистема, которую мы назвали аппаратом эмоций. Может быть, мы ошибаемся, и биологи нас поправят, но такая вещь должна быть.
А.Г. Она и есть.
А.Ж. Она, в общем-то, есть, судя по всему. Это аппарат, который задаёт качественную окраску этим образам. Это очень хитрый, очень сложный, очень многофункциональный аппарат, который на самом деле решает много задач. Одна из них – это соотнести эти сформированные образы с теми целевыми функциями. Это происходит примерно так. Видимо, есть некоторая шкала, напоминающая термометр, и указатель на этой шкале. Один из моих студентов удачно назвал это штуку «хорошометром». То, что она есть, я могу сейчас доказать.
Если я сейчас спрошу: Валентин Анатольевич, вам сейчас как? Вы скажите, да так, ничего. На четвёрку, может быть, с плюсом. То есть на огромный комплекс распознанных в этот момент образов вы как-то отреагировали, сжали, свернули и превратили всё это в одну оценку. И этих оценок у каждого из нас штук десять – слов-то в русском языке не так и много, чтобы выразить наше состояние.
А.Г. В русском больше, чем в любом другом всё-таки.
А.Ж. Да, но не 50. От «очень плохо», от «безобразно» до «хорошо», «так себе», «прекрасно», «великолепно», вот, собственно, и всё. Примерно десяток-другой оценок. Это одна из этих функций.
Так вот, мне теперь надо понять, как влияет на эту оценку то, что вы распознаете появление того или другого образа на экране входной информации. Если каждый раз уже знакомое нам красное пятно вызывает у меня отрицательное ощущение, падение этого «хорошометра», значит, это что-то такое плохое. Значит, с помощью тех знаний, которыми я уже обладаю в своём блокнотике, в своей базе знаний, я буду каждый раз при появлении этого пятна делать что-то такое, чтобы оно исчезло, наконец, с глаз долой. А если этот объект, другой образ, для меня полезен, если он каждый раз вызывает повышение «хорошометра»? Скажем, это опять знакомая нам мама с бутылочкой молока, и я нашёл здесь какие-то кнопочки, нажав на которые, я вызову появление мамы? Сразу же поднимется мой «хорошометр», значит, я буду стараться этим пользоваться.
Я вам примерно рассказал алгоритм управления.
Подождите секундочку с этим слайдом. В целом, есть ещё один блок, который я бы сюда добавил, это блок вывода новых знаний из старых. То есть, если система такая умная, что она уже из накопленной совокупности каких-то знаний может вывести какие-то гипотезы, предположения, то этот блок тоже есть. Но, по всей видимости, вывод новых знаний тоже происходит через среду. Это отдельный разговор, потому что здесь речь идёт о языке. То есть, это связано с тем, что я должен сам испытать свою базу знаний. Я должен сам себе представить в уме: «Ага, в этой ситуации, а что если я побегу туда, а получится вот что». То есть я сам себе как бы подаю на свою базу знаний какие-то сигналы. «А что если я вот этот цилиндр рассеку плоскостью, может быть, даже нарисую получившееся сечение графически: вот что получится». То есть, я как бы разговариваю сам с собой, испытываю свою базу знаний и вывожу какие-то новые знания. Вот, пожалуй, грубое описание всех подсистем и всех основных задач, которые должна решать система управления.
И мне кажется, что…
А.Г. Простите, перебью. Здесь везде бинарная логика.
А.Ж. Да.
А.Г. Повсюду?
А.Ж. Здесь никогда нельзя что-то очень сильно утверждать.
А.Г. Потому что когда вы стали говорить про вывод новых знаний, тут вопрос…
А.Ж. Вы понимаете, нервная система дискретна. Всюду бегают однотипные сигналы. Дискретное число входов, рецепторов, дискретное число выходов. Дискретные сигнальщики. Но там есть и некоторые непрерывные величины. Например, частоты. Например, размеры синусов. Они могут иметь какие-то значения. То есть там есть нечто аналоговое, что имеет, по всей видимости, важный смысл. Я могу даже предположить – какой. Может быть, к этому просто можно будет вернуться. То есть дискретная техника не отражает природы. Это очень интересные моменты, связанные уже с немножко другими вопросами. Давайте мы их сейчас опустим. Будем предполагать, что система всё-таки дискретна.
Теперь бы хотелось показать, что можно сделать на основании такой системы управления. Можно строить вполне конкретные реальные системы. Они будут работать. И мы делаем такие системы. Мы делаем даже прикладные системы. А потом я, может быть, скажу несколько слов о том, что не все так просто, что здесь есть на самом деле проблемы. Есть проблемы математические, а есть проблемы принципиальные. Покажу на примере, может быть, близком к тому, о чём говорил Валентин Анатольевич: на примере с мобильным роботом.
Предположим, что существует робот – он пока виртуальный. Но он сделан так, что его можно превратить в железный. Пусть у него есть минимальное количество датчиков. Это три визуальных датчика. Он может видеть наличие препятствия в трех секторах. Робот получает бинарный сигнал: есть препятствие или нет. Три тактильных датчика спереди, один тактильный датчик сзади. Робот – это тележка с управляемым колесом, у него есть очень простой привод, он может ехать вперёд, назад, либо поворачивать влево, вправо.
Покажите, пожалуйста, следующий слайд.
Поместим мы этого робота в среду, в которой случайным образом расположены препятствия. Препятствия стандартные. И попробуем смоделировать очень простую ситуацию. Вот «хорошометр», как я говорил, который сделан таким образом, чтобы робот испытывал неприятные ощущения при соприкосновении тактильных датчиков с препятствием.
Запустим робота в это пространство, пусть он обучается и ползает. Мы с вами тем самым смоделируем ситуацию, когда ребёнок учится ползать по квартире, натыкаясь на препятствия. Он их видит, но он не понимает опасности столкновения и может удариться о предмет, испытав неприятные ощущения. Со временем этот ребёнок поймёт, что препятствие лучше обходить, чем на него натыкаться. И этот процесс мы попробуем смоделировать. Сейчас здесь на этом клипе показано, как почему-то он остановился. Показаны начальные движения робота, он ещё совершенно ничего не знает и совершает какие-то случайные такие движения в пространстве.
Что должен робот понять? Он должен понять сам, самостоятельно, что соударяться с препятствием – это плохо, потому что это больно. Мы ему этого не говорим, он должен это понять сам.
Второе, что препятствие лучше обходить, чем на них натыкаться. То есть от него надо отворачивать, когда я его вижу. И он ещё должен понять, как же ему это делать. У него есть 7 вариантов действия, но он не знает, какое из них надо применять. И он это тоже находит сам. Вот эти задачи он должен решить.
Если бы мы наблюдали за этим роботом достаточно долго (у нас просто нет сейчас этой возможности), мы бы увидели, как постепенно число соударений становится меньше и меньше. Покажите, пожалуйста, следующий клип. Я просто покажу уже следующую фазу поведения робота.
А.Г. Научившегося уже…
А.Ж. Вот здесь мы видим уже, когда он достаточно поумнел для того, чтобы не ударяться лбом в препятствие. Вы видите, что он видит препятствие: сектор, изображённый впереди робота – это его поле зрения. И он вовремя отворачивает от препятствия, как только его заметил. То есть он решил эти задачи, он понял, что ударяться – это больно. Второе, он понял, что надо поворачивать. И третье, он понял, как это надо делать, где надо сдавать задним ходом, где надо поворачивать руль вправо, где надо поворачивать руль влево. То есть он учится у нас на глазах.
Я вам могу эту программу запустить, она достаточно долго работает. Он у нас на глазах выработал такой способ поведения. На самом деле это достаточно интересно.
Если мы будем ставить перед этим роботом другие задачи (из этого угла переехать в тот, или, скажем, найти какие-то полезные батарейки, чтобы подзарядиться и т.д.), эти задачи можно будет решать на базе этого робота. Спасибо, оставьте, пожалуйста, эту картинку. На этом графике показано число соударений робота с препятствиями в единицу времени. Видно, что это число уменьшается со временем. То есть по мере того, как робот обучается, число соударений уменьшается до нуля.
Хотелось бы ещё два слова сказать о том, что (пожалуйста, следующий слайд покажите), эта система управления построена на специальных нейроноподобных элементах. Потому что мы пытались всё-таки до конца идти этим путём и смоделировать нервную систему не только по её функциям, но и по её устройству. Разработали несколько специальных моделей нейронов. Это не те нейроны, которые используются в современных искусственных нейросетях. Это такие нейроны, которые ищут корреляцию входных сигналов, причём обучаются без учителя, самостоятельно. И самый простой из этих нейронов показан на этой картинке. Из этих нейронов можно собрать все подсистемы управляющей системы, о которой я говорил. И блок формирования распознавания образа, и базу знаний, и принятие решений, и аппарат эмоций. То есть можно собрать всю эту систему управления.
Это не есть система распознавания, как в обычных нейросетях. Эта система, о которой я говорю, есть система управления, которая адаптивно управляет роботом. Там есть блок распознавания, но это только один из блоков.
А.Г. Увеличение количества нейронов ведёт к уменьшению времени эксперимента или нет?
А.Ж. Ну, конечно. Безусловно, здесь очень много зависит от количества этих нейронов. Минуточку, ещё назад, пожалуйста, вернитесь, не забегайте. Вот здесь показан кусочек базы знаний, в данном случае – это трехмерная матрица, где каждый нейрон получает информацию об условии, которое было, о действии, которое он совершил, и о результатах, которые из этого получились. И некоторые нейроны, те, которые как бы поймали закономерные эти троечки – условия, действие и результат – они обучились, я их там выделил жёлтым светом.
В.Н. А они способны переучиваться?
А.Ж. Это зависит от того, как вы этот нейрон устроите. Я считаю, что биологические нейроны в своём зрелом возрасте плохо переучиваются.
В.Н. То есть получается, что число всякого рода форм поведения, которое ваша система способна выучить, определяется числом нейронов в ней. Пока есть свободные нейроны, до тех пор она учится?
А.Ж. Даже не совсем так. В каком-то смысле так, но не все нейроны будут обучены к концу жизни. И тут, как ни странно, на основании такой схемы можно устроить практически полезные системы. Вот на этом слайде показан прототип системы управления для активной подвески автомобиля, где система адаптируется к свойствам этого автомобиля. Предполагается, что эта подвеска оснащена некоторым активным элементом, который может автомобиль подталкивать вверх-вниз, при этом управляющая система со временем понимает, как это делать. Внизу нарисована база знаний, которую эмпирическая система получила, она отражает свойства данного конкретного автомобиля: как этот автомобиль реагирует на то или другое воздействие. Пользуясь этими знаниями, система может так аккуратно управлять этой подвеской, что она сглаживает нежелательные колебания и заставляет автомобиль двигаться так, как вам надо.
Вот слева график: это сильные колебания автомобиля, обычного автомобиля при наезде, скажем, на препятствие. Справа мы видим гораздо более гладкую кривую. Очень интересная, такая практически полезная вещь.
В.Н. А можно вам вопрос? С какой скоростью она учится? Скажем, можно сопоставить её скорость обучения со скоростью обучения водителя: вот человек купил новый автомобиль, и он к нему приспосабливается. И ваша система…
А.Ж. Наверное, можно сопоставить. Конечно, здесь очень много зависит от процессора, от различных деталей, и т.д. Можно обучаться с нуля, можно заставить переучивать некую среднюю базу знаний, заранее, скажем, накопленную. Тут очень много различных вариантов. Но в принципе, естественно, есть период, когда она учится, больше учится, чем управляет. Но постепенно доля управления становится больше, чем доля обучения.
Покажите, пожалуйста, следующую картинку. Примерно похожая адаптивная система управляет угловым движением спутника. Я хочу обратить внимание, что в эту систему не закладывается математическая модель объектов в том виде, как это обычно делается. Там нет системы дифференциальных уравнений, где какие-то коэффициенты надо было бы уточнить. Тут совсем нет этой системы. Здесь знание – это, скорее, некоторое отображение из множества в другое множество. Из множества образов, множества действий, множества образов, которые отражают результаты. Это ещё связано с оценками. И вот эти отношения элементов этих множеств система и находит. База знаний имеет именно такой смысл.
В данном случае, очень полезная система, потому что точную математическую модель космического аппарата, его углового движения, построить очень трудно, потому что вы не можете на Земле очень точно померить различные коэффициенты, которые входят в эту модель, потому что вы не можете воспроизвести вакуум, не можете произвести невесомость на Земле. Не можете воспроизвести перепады температуры, ещё что-то.
В конце концов, что-то может сломаться в космосе, или заклинить, и реакция этого объекта на то или другое воздействие будет не такой, как вы заложили в модель. И качество будет другое.
А вот эта системка может прямо по ходу дела адаптироваться именно к тому объекту, который вы ей дали.
А.Г. У нас очень мало времени. Я прошу прощения, я бы хотел, чтобы вы напоследок задали те вопросы, на которые у вас пока нет ответов. Для того чтобы понять, куда вместе вы можете идти дальше. Я имею в виду две науки.
А.Ж. Если вы запустите третий клип в это время, я сейчас покажу связь. Здесь видно, как на верхнем графике объект, который должен выправляться, становится глаже по мере того, как база знаний справа заполняется. Обратите внимание, внизу – действие. Вы видите эти две моды: поисковый режим, небольшой разброс пробных действий. Он сменяется резкими широкими скачками.
Посмотрите, как этот поиск постепенно будет сходиться, и по мере того как знаний становится всё больше и больше, верхняя кривая, в конце концов, станет другой: посмотрите, как аккуратно он управляет отдельными слабыми толчками. Это похоже на то, как ребёнок учится ездить на велосипеде. Вначале есть какие-то грубые, несуразные движения, он падает. Но постепенно он находит правильные манёвры. И вот он ещё едет, дёргая руль, и потом вдруг он едет уже ровно.
А.Г. И всё-таки…
В.Н. И собственно, тогда вопрос: возвращаясь к ручейнику, можно ли на основе этой системы управления создать робота, который выработал бы такую же или похожую, столь же эффективную или столь же неэффективную систему поиска, как у ручейника? Как вам это представляется на основании моего рассказа, который ничего не говорит о механизмах, а говорит только о правилах поведения?
В.Н. Например, разрыв может быть в воде: турбулентность воды или какое-то течение вызывает…
А.Г. Ну, или ветер в другую сторону…
В.Н. Если в воздухе – то это ветер.
Когда наша инфузория сориентирована примерно на источник, естественно, активность динамической системы подавлена и поворот не осуществляется. Поэтому, если разрыв узкий, она его просто пролетает. Если же он широкий, инфузория переходит к блужданию. Но блуждание приводит её либо по ту сторону разрыва, которая удалена от источника, либо на ту сторону, которая к источнику ближе. В последнем случае всё хорошо…
А.Ж. То есть, если бы она решения принимала постоянно, она бы в этой полосе запуталась бы сразу…
В.Н. Она бы не знала, что там делать.
А.Г. А так, маршем её берёт.
В.Н. Либо она должна знать карту местности, которой у неё нет, либо пользоваться каким-то другим алгоритмом. А как действовать на пустом месте, собственно…
А.Ж. Разумно.
А.Г. Более чем…
В.Н. Для инфузории даже очень разумно. И, наконец, её поведение оказывается ещё богаче, если приделать ещё один сенсор, который подавляет повороты при касании с твёрдой поверхностью, с препятствием. Препятствие пропускает запах, но не пропускает инфузорию. Происходит очень интересная вещь, которая поразила даже нас – тех, кто делал эту модель: повороты происходят реже. И кончается тем, что инфузория скользит вдоль этого препятствия в ту или в другую сторону, пока его не обойдёт.
А.Г. Потому что она чувствует постоянный сигнал?
В.Н. Она чувствует сигнал, который не даёт ей уйти в другую сторону. И кроме того, поскольку она скользит по стенке, повороты происходят с небольшой вероятностью. Поэтому она, грубо говоря, не мельтешит вдоль стенки, не теряет время, чтобы ходить туда-сюда, и, в конце концов, обходит это препятствие, если оно не бесконечно длинное. Опять-таки, это поведение наблюдается у простых животных: и червей и инфузорий.
А.Ж. Не только у простых, я вам скажу. Я примерно так же тоже обхожу препятствие.
В.Н. Особенно, когда задумаешься над какой-нибудь научной проблемой, это так…
А.Ж. Или забор высокий.
В.Н. Ещё раз скажу, что, конечно, это – простая модель. Какой бы продуктивной она не казалась в качестве аналогии, она не может объяснить поведение животных, решающих более сложные задачи. Здесь нужна исследовательская работа с роботами. Получается, собственно говоря, взаимодействие между этологией – наукой о поведении, и робототехникой. Если я говорю, что я умею делать радиоприёмники, то мне могут сказать: возьми да и сделай. Если я говорю, что понимаю, как ведёт себя животное, то разумно потребовать, чтобы я запрограммировал робота. Но тут-то и выясняется, что наши теории недостаточны для этого, хотя этология существует уже 50 лет, а поведение животных изучается больше ста лет. На самом деле существующие теории поведения очень ограничены. Они не позволяют воспроизвести адаптивное поведение животных в роботе, и отсюда сразу видно, что наши знания ограничены. Это приходится признать.
Получается, что работа с роботами оказывается, с точки зрения биолога, новым инструментом исследований, который позволяет проверять наши знания.
А.Г. Это, в общем, довольно идеальный инструмент. Это в каком-то смысле лучше, чем знаменитая дрозофила. Потому что здесь можно плодить популяции, если говорить об эволюции этих искусственных объектов, как у нас шла речь в одной из программ. То есть у исследователя время не ограничено…
А что же с аниматами? Я просто хочу напомнить, что здесь, у нас, время программы ограничено, как время поиска у ручейника.
А.Ж. Я бы хотел здесь поговорить, дополнить рассказ Валентина Анатольевича о том, что интересен вопрос: а как же вырабатывается эта стратегия поведения у организма? Это то, о чём думали мы. И здесь, мне кажется, что многие ответы можно найти вот каким путём. Если встать на место нервной системы организма и оказаться в тех условиях, в которых находится она, то из этих условий просто логически вынужденно будет следовать и структура, и функция, и алгоритмы, по которым должна работать эта система. Я и хочу рассказать о результатах попытки такого вывода, это то, чем мы занимаемся. Покажите, пожалуйста, первый слайд.
Представим себя на месте управляющей системы. Что это такое? Вот есть любой организм – это некоторое тело, или некоторый объект, который является, по сути, частью среды. Если мы говорим о том, что этот организм управляем, значит, внутри него есть управляющая система, которая является частью этого организма. Причём будем рассматривать только такие организмы и такие объекты, где управляющая система лежит именно внутри организма, а не руководит им по телеметрии.
Из этой картинки сразу же следуют цели управления, то есть те цели, которые старается достигнуть система управления. Мне кажется, что здесь существуют две главные цели. Первая цель – это обеспечить выживание организма. Иначе, если этого нет, не о чем говорить, всё разваливается, и как такового этого тела не существует.
И вторая цель – это накопить знания, потому что управляемый организм, управляемый объект препятствует разрушению агрессивным воздействиям среды не за счёт своей твёрдости, как алмаз: «Вот стою тут и буду сопротивляться». Он препятствует разрушению за счёт того, что ведёт себя активно, он совершает некоторое воздействие на среду. И через эту среду к организму возвращается реакция совершенно другого типа. Например, если ребёнок хочет есть, то он кричит, и приходит мама с бутылочкой молока. Или, скажем, мы что-то бросаем вверх, а в результате падает плод с дерева. Организму надо ещё найти и понять эти реакции на его собственные действия.
Значит, для того чтобы обеспечить выживание, нужно знание: как это действие сопряжено с этим результатом? Поэтому я бы здесь выделил эти две цели управления. Может быть, даже цель накопления знания первична. Если мы хотим исследовать какое-то неизвестное пространство и сделаем для этого такого робота, который бы накопил знания, нам надо подумать о том, как он выживет, нам надо обеспечить его выживание.
Из этой же картинки сразу, наверное, следует (в грубом виде) алгоритм такого поиска. Нервная система должна найти обратные связи через среду. Это очень хорошая мысль, которую петербургский учёный Владимир Левченко когда-то красиво сформулировал. Среди всех действий, которые может совершать организм, есть такие, которые уходят в бесконечность и никуда не возвращаются, никогда к нам не вернутся. Надо найти те воздействия, которые через среду к нам вернутся, на наши датчики. И вот этот поисковый алгоритм нам надо найти.
Вы помните, как Максвелл в своё время предложил своего демона, которого помещал внутрь чёрного ящика и, пользуясь этим приёмом, он логически рассуждал, что же там должно происходить. Давайте мы сейчас с вами, подобно этому демону, погрузимся внутрь этого кружка нервной системы и посмотрим, что же она должна делать, если она находится в этих условиях.
Покажите, пожалуйста, следующий слайд. Исходное условие – это автономность системы управления, как я уже сказал. То есть мы находимся внутри тела. Второе условие – это дискретность, то есть у нас есть дискретные входы. Вот эти канальчики, по которым поступает дискретная информация. И есть дискретные выходы. Может быть, их много. Но это дискретные кнопочки, которые мы можем нажать. То есть, то, что является выходом нервной системы – это пучок волокон, через которые идут бинарные сигналы, точно так же, как и через вход. Их может быть много, миллионы рецепторов, но через них поступают бинарные сигналы.
И вот перед нами есть экран с входящей информацией, на котором мы видим входящие сигналы. И есть целый, так сказать, набор кнопочек, на которые нужно нажимать.
Представим себя внутри, в этой чёрной комнате с экраном, на который нам проецируется информация из окружающего мира. Первая задача, которую система должна решить – как в этом потоке входной информации научиться узнавать что-то знакомое. Например, сказать: «Ага, вот это красное пятно я уже когда-то видел». И когда этот момент произойдёт, тем самым произойдёт некое формирование образа (вот этого пятна) и акт его распознавания – «я его распознал». Теперь система его будет узнавать всегда, когда она его увидит, она его распознает. Это первое. Поэтому на этой схеме, которая сейчас видна, первый блок в нервной системе – это формирование и распознавание образов.
А.Г. Для того чтобы распознать, всё-таки надо каким-то образом повлиять на это красное пятно для того, чтобы сделать заключение о том, что это такое. Ведь недостаточно просто сенсорно считать.
А.Ж. Вы правильно говорите, но задачу: «Узнать это пятно» – можно решить, как бы не влияя на него в некотором смысле слова. То есть, если у вас несколько раз повторяется эта конфигурация, вы можете даже не воздействовать на неё, но узнавать: «Вот это лицо я уже видел неоднократно в толпе».
А.Г. Но кто это, я не знаю.
А.Ж. Я пока не знаю. Второе. Теперь надо найти, как я могу своими выходными воздействиями повлиять на это красное пятно. Ну, естественно, если у вас никаких знаний нет, вы начинаете что-то случайно перебирать. Наконец, вы находите, что вот это действие позволяет это пятно убрать. А вот это действие позволяет его вызвать. Это то, вообще говоря, с чего начинает ребёнок. Какие действия он находит первыми? Как игрушку взять, а следующее действие, он что находит? Как её бросить. Как маму вызвать? Как маму отогнать. Как это получить? Как от этого избавиться? Потому что он имеет дело с бинарными сигналами и бинарными объектами, и бинарными действиями. Либо я вызываю этот образ, либо я его вытесняю.
Эта связь образов, наших действий и обратной реакции на них уже есть знания. И если эти знания статистически достоверны, то есть связи не первый раз повторяются, если я понимаю, что, видимо, всегда это действие вызывает такой-то эффект, то я должен запомнить это, мне нужна память. Мы это называем базой знаний. В базе знаний записываются сведения о том, как действия влияют на образы. Естественно, для того чтобы хранить образы, нужна ещё память образа, где хранится эта конструкция, эти найденные мною образы.
Хорошо. Предположим, у меня эти знания накапливаются, то есть, сидя в этой чёрной комнате, наблюдая за входами и выходами я себе в блокноте, в конце концов, записываю, как эти действия влияют на эти образы. Предположим, у меня этих знаний накопилось много. Могу ли я управлять теперь ими? Могу, но я не знаю – зачем. Что здесь хорошо? Что здесь плохо? Мне нужны какие-то качественные критерии. Для этого в каждом организме есть такой блок или подсистема, которую мы назвали аппаратом эмоций. Может быть, мы ошибаемся, и биологи нас поправят, но такая вещь должна быть.
А.Г. Она и есть.
А.Ж. Она, в общем-то, есть, судя по всему. Это аппарат, который задаёт качественную окраску этим образам. Это очень хитрый, очень сложный, очень многофункциональный аппарат, который на самом деле решает много задач. Одна из них – это соотнести эти сформированные образы с теми целевыми функциями. Это происходит примерно так. Видимо, есть некоторая шкала, напоминающая термометр, и указатель на этой шкале. Один из моих студентов удачно назвал это штуку «хорошометром». То, что она есть, я могу сейчас доказать.
Если я сейчас спрошу: Валентин Анатольевич, вам сейчас как? Вы скажите, да так, ничего. На четвёрку, может быть, с плюсом. То есть на огромный комплекс распознанных в этот момент образов вы как-то отреагировали, сжали, свернули и превратили всё это в одну оценку. И этих оценок у каждого из нас штук десять – слов-то в русском языке не так и много, чтобы выразить наше состояние.
А.Г. В русском больше, чем в любом другом всё-таки.
А.Ж. Да, но не 50. От «очень плохо», от «безобразно» до «хорошо», «так себе», «прекрасно», «великолепно», вот, собственно, и всё. Примерно десяток-другой оценок. Это одна из этих функций.
Так вот, мне теперь надо понять, как влияет на эту оценку то, что вы распознаете появление того или другого образа на экране входной информации. Если каждый раз уже знакомое нам красное пятно вызывает у меня отрицательное ощущение, падение этого «хорошометра», значит, это что-то такое плохое. Значит, с помощью тех знаний, которыми я уже обладаю в своём блокнотике, в своей базе знаний, я буду каждый раз при появлении этого пятна делать что-то такое, чтобы оно исчезло, наконец, с глаз долой. А если этот объект, другой образ, для меня полезен, если он каждый раз вызывает повышение «хорошометра»? Скажем, это опять знакомая нам мама с бутылочкой молока, и я нашёл здесь какие-то кнопочки, нажав на которые, я вызову появление мамы? Сразу же поднимется мой «хорошометр», значит, я буду стараться этим пользоваться.
Я вам примерно рассказал алгоритм управления.
Подождите секундочку с этим слайдом. В целом, есть ещё один блок, который я бы сюда добавил, это блок вывода новых знаний из старых. То есть, если система такая умная, что она уже из накопленной совокупности каких-то знаний может вывести какие-то гипотезы, предположения, то этот блок тоже есть. Но, по всей видимости, вывод новых знаний тоже происходит через среду. Это отдельный разговор, потому что здесь речь идёт о языке. То есть, это связано с тем, что я должен сам испытать свою базу знаний. Я должен сам себе представить в уме: «Ага, в этой ситуации, а что если я побегу туда, а получится вот что». То есть я сам себе как бы подаю на свою базу знаний какие-то сигналы. «А что если я вот этот цилиндр рассеку плоскостью, может быть, даже нарисую получившееся сечение графически: вот что получится». То есть, я как бы разговариваю сам с собой, испытываю свою базу знаний и вывожу какие-то новые знания. Вот, пожалуй, грубое описание всех подсистем и всех основных задач, которые должна решать система управления.
И мне кажется, что…
А.Г. Простите, перебью. Здесь везде бинарная логика.
А.Ж. Да.
А.Г. Повсюду?
А.Ж. Здесь никогда нельзя что-то очень сильно утверждать.
А.Г. Потому что когда вы стали говорить про вывод новых знаний, тут вопрос…
А.Ж. Вы понимаете, нервная система дискретна. Всюду бегают однотипные сигналы. Дискретное число входов, рецепторов, дискретное число выходов. Дискретные сигнальщики. Но там есть и некоторые непрерывные величины. Например, частоты. Например, размеры синусов. Они могут иметь какие-то значения. То есть там есть нечто аналоговое, что имеет, по всей видимости, важный смысл. Я могу даже предположить – какой. Может быть, к этому просто можно будет вернуться. То есть дискретная техника не отражает природы. Это очень интересные моменты, связанные уже с немножко другими вопросами. Давайте мы их сейчас опустим. Будем предполагать, что система всё-таки дискретна.
Теперь бы хотелось показать, что можно сделать на основании такой системы управления. Можно строить вполне конкретные реальные системы. Они будут работать. И мы делаем такие системы. Мы делаем даже прикладные системы. А потом я, может быть, скажу несколько слов о том, что не все так просто, что здесь есть на самом деле проблемы. Есть проблемы математические, а есть проблемы принципиальные. Покажу на примере, может быть, близком к тому, о чём говорил Валентин Анатольевич: на примере с мобильным роботом.
Предположим, что существует робот – он пока виртуальный. Но он сделан так, что его можно превратить в железный. Пусть у него есть минимальное количество датчиков. Это три визуальных датчика. Он может видеть наличие препятствия в трех секторах. Робот получает бинарный сигнал: есть препятствие или нет. Три тактильных датчика спереди, один тактильный датчик сзади. Робот – это тележка с управляемым колесом, у него есть очень простой привод, он может ехать вперёд, назад, либо поворачивать влево, вправо.
Покажите, пожалуйста, следующий слайд.
Поместим мы этого робота в среду, в которой случайным образом расположены препятствия. Препятствия стандартные. И попробуем смоделировать очень простую ситуацию. Вот «хорошометр», как я говорил, который сделан таким образом, чтобы робот испытывал неприятные ощущения при соприкосновении тактильных датчиков с препятствием.
Запустим робота в это пространство, пусть он обучается и ползает. Мы с вами тем самым смоделируем ситуацию, когда ребёнок учится ползать по квартире, натыкаясь на препятствия. Он их видит, но он не понимает опасности столкновения и может удариться о предмет, испытав неприятные ощущения. Со временем этот ребёнок поймёт, что препятствие лучше обходить, чем на него натыкаться. И этот процесс мы попробуем смоделировать. Сейчас здесь на этом клипе показано, как почему-то он остановился. Показаны начальные движения робота, он ещё совершенно ничего не знает и совершает какие-то случайные такие движения в пространстве.
Что должен робот понять? Он должен понять сам, самостоятельно, что соударяться с препятствием – это плохо, потому что это больно. Мы ему этого не говорим, он должен это понять сам.
Второе, что препятствие лучше обходить, чем на них натыкаться. То есть от него надо отворачивать, когда я его вижу. И он ещё должен понять, как же ему это делать. У него есть 7 вариантов действия, но он не знает, какое из них надо применять. И он это тоже находит сам. Вот эти задачи он должен решить.
Если бы мы наблюдали за этим роботом достаточно долго (у нас просто нет сейчас этой возможности), мы бы увидели, как постепенно число соударений становится меньше и меньше. Покажите, пожалуйста, следующий клип. Я просто покажу уже следующую фазу поведения робота.
А.Г. Научившегося уже…
А.Ж. Вот здесь мы видим уже, когда он достаточно поумнел для того, чтобы не ударяться лбом в препятствие. Вы видите, что он видит препятствие: сектор, изображённый впереди робота – это его поле зрения. И он вовремя отворачивает от препятствия, как только его заметил. То есть он решил эти задачи, он понял, что ударяться – это больно. Второе, он понял, что надо поворачивать. И третье, он понял, как это надо делать, где надо сдавать задним ходом, где надо поворачивать руль вправо, где надо поворачивать руль влево. То есть он учится у нас на глазах.
Я вам могу эту программу запустить, она достаточно долго работает. Он у нас на глазах выработал такой способ поведения. На самом деле это достаточно интересно.
Если мы будем ставить перед этим роботом другие задачи (из этого угла переехать в тот, или, скажем, найти какие-то полезные батарейки, чтобы подзарядиться и т.д.), эти задачи можно будет решать на базе этого робота. Спасибо, оставьте, пожалуйста, эту картинку. На этом графике показано число соударений робота с препятствиями в единицу времени. Видно, что это число уменьшается со временем. То есть по мере того, как робот обучается, число соударений уменьшается до нуля.
Хотелось бы ещё два слова сказать о том, что (пожалуйста, следующий слайд покажите), эта система управления построена на специальных нейроноподобных элементах. Потому что мы пытались всё-таки до конца идти этим путём и смоделировать нервную систему не только по её функциям, но и по её устройству. Разработали несколько специальных моделей нейронов. Это не те нейроны, которые используются в современных искусственных нейросетях. Это такие нейроны, которые ищут корреляцию входных сигналов, причём обучаются без учителя, самостоятельно. И самый простой из этих нейронов показан на этой картинке. Из этих нейронов можно собрать все подсистемы управляющей системы, о которой я говорил. И блок формирования распознавания образа, и базу знаний, и принятие решений, и аппарат эмоций. То есть можно собрать всю эту систему управления.
Это не есть система распознавания, как в обычных нейросетях. Эта система, о которой я говорю, есть система управления, которая адаптивно управляет роботом. Там есть блок распознавания, но это только один из блоков.
А.Г. Увеличение количества нейронов ведёт к уменьшению времени эксперимента или нет?
А.Ж. Ну, конечно. Безусловно, здесь очень много зависит от количества этих нейронов. Минуточку, ещё назад, пожалуйста, вернитесь, не забегайте. Вот здесь показан кусочек базы знаний, в данном случае – это трехмерная матрица, где каждый нейрон получает информацию об условии, которое было, о действии, которое он совершил, и о результатах, которые из этого получились. И некоторые нейроны, те, которые как бы поймали закономерные эти троечки – условия, действие и результат – они обучились, я их там выделил жёлтым светом.
В.Н. А они способны переучиваться?
А.Ж. Это зависит от того, как вы этот нейрон устроите. Я считаю, что биологические нейроны в своём зрелом возрасте плохо переучиваются.
В.Н. То есть получается, что число всякого рода форм поведения, которое ваша система способна выучить, определяется числом нейронов в ней. Пока есть свободные нейроны, до тех пор она учится?
А.Ж. Даже не совсем так. В каком-то смысле так, но не все нейроны будут обучены к концу жизни. И тут, как ни странно, на основании такой схемы можно устроить практически полезные системы. Вот на этом слайде показан прототип системы управления для активной подвески автомобиля, где система адаптируется к свойствам этого автомобиля. Предполагается, что эта подвеска оснащена некоторым активным элементом, который может автомобиль подталкивать вверх-вниз, при этом управляющая система со временем понимает, как это делать. Внизу нарисована база знаний, которую эмпирическая система получила, она отражает свойства данного конкретного автомобиля: как этот автомобиль реагирует на то или другое воздействие. Пользуясь этими знаниями, система может так аккуратно управлять этой подвеской, что она сглаживает нежелательные колебания и заставляет автомобиль двигаться так, как вам надо.
Вот слева график: это сильные колебания автомобиля, обычного автомобиля при наезде, скажем, на препятствие. Справа мы видим гораздо более гладкую кривую. Очень интересная, такая практически полезная вещь.
В.Н. А можно вам вопрос? С какой скоростью она учится? Скажем, можно сопоставить её скорость обучения со скоростью обучения водителя: вот человек купил новый автомобиль, и он к нему приспосабливается. И ваша система…
А.Ж. Наверное, можно сопоставить. Конечно, здесь очень много зависит от процессора, от различных деталей, и т.д. Можно обучаться с нуля, можно заставить переучивать некую среднюю базу знаний, заранее, скажем, накопленную. Тут очень много различных вариантов. Но в принципе, естественно, есть период, когда она учится, больше учится, чем управляет. Но постепенно доля управления становится больше, чем доля обучения.
Покажите, пожалуйста, следующую картинку. Примерно похожая адаптивная система управляет угловым движением спутника. Я хочу обратить внимание, что в эту систему не закладывается математическая модель объектов в том виде, как это обычно делается. Там нет системы дифференциальных уравнений, где какие-то коэффициенты надо было бы уточнить. Тут совсем нет этой системы. Здесь знание – это, скорее, некоторое отображение из множества в другое множество. Из множества образов, множества действий, множества образов, которые отражают результаты. Это ещё связано с оценками. И вот эти отношения элементов этих множеств система и находит. База знаний имеет именно такой смысл.
В данном случае, очень полезная система, потому что точную математическую модель космического аппарата, его углового движения, построить очень трудно, потому что вы не можете на Земле очень точно померить различные коэффициенты, которые входят в эту модель, потому что вы не можете воспроизвести вакуум, не можете произвести невесомость на Земле. Не можете воспроизвести перепады температуры, ещё что-то.
В конце концов, что-то может сломаться в космосе, или заклинить, и реакция этого объекта на то или другое воздействие будет не такой, как вы заложили в модель. И качество будет другое.
А вот эта системка может прямо по ходу дела адаптироваться именно к тому объекту, который вы ей дали.
А.Г. У нас очень мало времени. Я прошу прощения, я бы хотел, чтобы вы напоследок задали те вопросы, на которые у вас пока нет ответов. Для того чтобы понять, куда вместе вы можете идти дальше. Я имею в виду две науки.
А.Ж. Если вы запустите третий клип в это время, я сейчас покажу связь. Здесь видно, как на верхнем графике объект, который должен выправляться, становится глаже по мере того, как база знаний справа заполняется. Обратите внимание, внизу – действие. Вы видите эти две моды: поисковый режим, небольшой разброс пробных действий. Он сменяется резкими широкими скачками.
Посмотрите, как этот поиск постепенно будет сходиться, и по мере того как знаний становится всё больше и больше, верхняя кривая, в конце концов, станет другой: посмотрите, как аккуратно он управляет отдельными слабыми толчками. Это похоже на то, как ребёнок учится ездить на велосипеде. Вначале есть какие-то грубые, несуразные движения, он падает. Но постепенно он находит правильные манёвры. И вот он ещё едет, дёргая руль, и потом вдруг он едет уже ровно.
А.Г. И всё-таки…
В.Н. И собственно, тогда вопрос: возвращаясь к ручейнику, можно ли на основе этой системы управления создать робота, который выработал бы такую же или похожую, столь же эффективную или столь же неэффективную систему поиска, как у ручейника? Как вам это представляется на основании моего рассказа, который ничего не говорит о механизмах, а говорит только о правилах поведения?