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