Возможности нейронных сетей с самого момента появления были, пожалуй, излишне разрекламированы. Поэтому достаточно легко не принимать во внимание мои соображения насчет ИИ, ИЖ и нейронных сетей, собственно, как делают это многие в течение ряда лет. Хотя, правда и то, что появление «человекоподобного» интеллекта было предсказано.
Если развитие будет идти теми же темпами, что и в последние 50 лет, то, как я надеюсь, через полвека появятся системы ИИ, сравнимые с возможностями человеческого мозга.
Что такое нейронные сети?
Я описывал нейронные сети без точного определения. Сейчас я дам это определение. Нейронными сетями называются искусственные компьютерные системы (на базе аппаратного и программного обеспечения), которые функционируют и «обучаются» на основе моделей, созданных по аналогии с биологическими системами человеческого мозга. Такие сети могут быть созданы на базе аппаратно/программного обеспечения или быть чисто аппаратными. Моделирование по образцу биологических мозговых структур привело к успешному решению некоторых частных проблем, необходимых для создания ИИ, таких как машинное зрение, распознавание речи и вокализация. Нейронные сети могут быть «обучены» для осуществления распознавания образов. Они могут быть научены чтению или проверке качества продукции через визуальный контроль изделий. Одним таким примером является система Papnet, описанная в главе 1. Другие сети могут быть обучены распознаванию звуковых команд (распознавание речи) и речевому синтезу. Сети, использующие статистические методы, могут предсказывать поведение и вероятности событий в сложных нелинейных системах, основываясь на данных прошлого опыта. Такие системы способны давать динамику нефтяных цен, обеспечивать контроль электронных устройств самолета и предсказывать погоду. Нейронные системы могут также успешно применяться в анализе состояния рынка, оценивать кандидатов на ипотечные кредиты и страхование жизни, показывая лучшие результаты, чем традиционно используемые экспертные системы на основе стандартных решающих правил.
Что такое искусственный интеллект?
Законный вопрос, не правда ли? Безусловно, развитие нейронных сетей приведет сперва к появлению «интеллекта», а потом уже – «сознания». В попытке создания сетей, которые интеллектуальны или демонстрируют интеллект, каким критерием нужно руководствоваться, чтобы понять, что цель уже достигнута?
Британский математик Алан Тьюринг предложил интересную процедуру, которая, в общем, считается достоверной для определения того, имеет ли машина интеллект. Человек и машина вступают в беседу, посылая сообщения по телетайпу. Если машина может поддерживать общение таким образом, что человек не в состоянии определить – кто находится на другом конце линии телетайпа: человек или машина, то машина определяется как «мыслящая». Эта процедура называется тестом Тьюринга и является одним из критериев определения ИИ.
Хотя тест Тьюринга является общепринятым, он не является окончательной процедурой определения ИИ. Существует ряд совершенно «тупых» языковых программ, которые практически способны пройти эту процедуру. Наиболее известной из них является программа ELIZA, разработанная Джозефом Вейценбаумом в Массачусетском технологическом институте. ELIZA имитирует работу психолога, и вы можете с ней побеседовать. Например, если вы послали ELIZA сообщение, что вы потеряли своего отца, она может ответить: «Почему вы потеряли своего отца» или «Расскажите мне больше о своем отце». Эти ответы могут вас заставить вас поверить в то, что ELIZA понимает вашу речь. Это не так, конечно. Ответы есть хитро сконструированные утверждения на основе ваших сообщений.
Таким образом, если мы хотим, то можем отбросить критерий Тьюринга и взять что-то еще. Возможно, лучшим указанием на существование интеллекта будет наличие сознания или самосознания. Машина, осознающая себя, будет точно знать, что она разумна. Другим возможным критерием, более прямым и простым, может служить способность обучения на основе опыта. Этот критерий использован в данной книге.
Конечно, мы можем отбросить все логические основания и утверждать, что интеллект свойственен системам, имеющим развитое чувство юмора. Насколько мне известно, человекообразные являются единственными существами, способными смеяться. Возможно, наличие чувства юмора и эмоций будет лучшим критерием и поставит точку в его поисках.
Использование нейронных сетей в роботах
Итак, каким образом нейронные сети сегодня используются в робототехнике? Да, мы еще далеки от создания достаточно «разумного» ИИ, не говоря уже о том, чтобы снабдить им одного из наших роботов. Тем не менее, во многих случаях использование технологии нейросетей позволяет создавать системы контроля функций роботов, превосходящих возможности стандартных ЦПУ и программного обеспечения. Использование нейросетей в наших роботах позволит им совершать маленькие «чудеса» без использования стандартных компьютеров, процессоров и программ. В главе 6 мы построим систему с нечеткой логикой, состоящую из двух нейронов, способную отслеживать направление источника света. Подвижный робот, снабженный такой системой, оказывается в состоянии следовать за источником света в любом направлении. Также в главе 6 мы обсудим технологию BEAM и идеи Марка Тилдена, создавшего транзисторные схемы (нейронные сети), которые обеспечивают движение и иные функции роботам, имеющим «ноги». Большой прогресс достигнут в применении другого нейронного процесса, названного предикативной архитектурой, использующего метод предикативной (условной) реакции на стимул.
Микросети
Небольшие программы нейронных сетей могут быть осуществлены через микроконтроллеры. Более полную информацию о микроконтроллерах» можно найти в главе 6.
Нейронная поведенчески-ориентированная архитектура
Принцип построения поведенчески-ориентированной архитектуры устройства, разработанный Вальтером Греем, показывает, что относительно простые стимульно-реактивные нейронные системы, вмонтированные в робота, демонстрируют высокоорганизованную, сложную систему поведения. Устройства предикативной архитектуры, как частного случая поведенчески-ориентированной архитектуры, разрабатывались доктором Родни Бруксом (MIT) и будут также более подробно рассмотрены в главах 6 и 8.
Глава 3
Системы питания
Для обеспечения функционирования роботам необходимо питание – большинство роботов используют для этого электричество. Для обеспечения мобильных роботов автономным питанием служат два источника: электрические батареи и фотоэлектрические элементы. В ближайшем будущем для питания роботов появится третий источник – топливные элементы.
Фотоэлектрические элементы
Фотоэлектрические элементы, известные обычно как солнечные элементы, вырабатывают электрическую энергию под действием солнечного света. Стандартные солнечные элементы являются крайне маломощными: при разности потенциалов порядка 0,7 В они дают ток в несколько миллиампер. Для получения приемлемого уровня мощности элементы соединяют вместе в солнечные панели (батареи). В робототехнике для обеспечения непосредственного питания роботов используют последовательное и параллельное соединение солнечных элементов.
Чтобы обеспечить функционирование робота от солнечных батарей, его размеры должны быть минимальны при сохранении необходимого спектра функций. Соответственно, должны использоваться легкие и высокопрочные материалы и электронные схемы, потребляющие незначительную энергию.
Чем меньше вес конструкции и потребление электрической энергии, тем более перспективным представляется использование солнечных батарей. Однако небольшой вес и экономичное энергопотребление являются важными при изготовлении любого робота. Такие легкие, маломощные роботы способны проработать дольше при заданной емкости источника питания, чем их более тяжелые и энергетически «прожорливые» собратья.
Солнечные элементы могут служить для робота источником вторичного электропитания, подзаряжая его аккумуляторы. Такой комбинированный источник питания снижает требования к мощности солнечных элементов по сравнению с непосредственным питанием робота от солнечных батарей. Однако в этом случае робот будет активно функционировать только часть времени, а в остальное подзаряжать свои аккумуляторы.
Также мы можем использовать солнечные элементы комбинированно: как источники непосредственного и вторичного питания. Мы попробуем изготовить устройство, которое обычно называют солнечным двигателем. Функциональная схема очень проста. Основными компонентами ее являются: солнечная батарея, накопительный конденсатор и триггерная схема. Солнечная батарея под действием света начинает заряжать накопительный конденсатор большой емкости. Система «батарея/конденсатор» обеспечивают электроэнергией остальную часть схемы. По мере заряда конденсатора напряжение на нем возрастает и в какой-то момент начинает превышать заданный порог срабатывания триггерной схемы. Как только триггер сработал – конденсатор начинает разряжаться через основную нагрузку. Затем цикл повторяется. Устройства типа солнечного двигателя могут быть использованы в различных робототехнических конструкциях.
Строим солнечный двигатель
Солнечный двигатель часто используется в качестве бортового источника тока, применяемого в BEAM-роботах, которых часто называют «живущими» роботами (см. обсуждение BEAM-роботов в главе 8). Свое распространение солнечные двигатели получили благодаря работам Марка Тилдена, который сконструировал первый подобный двигатель. Другим изобретателем был Дэйв Хранкив из Канады, который построил свою версию солнечного двигателя для питания «танцующего» робота. Мне так понравились эти разработки, что я решил сделать свой вариант солнечного двигателя. В процессе работы мне удалось придумать новый вариант схемы, который увеличил его эффективность по сравнению с оригинальным вариантом.
На рис. 3.1 изображена электрическая схема солнечного двигателя. Рассмотрим ее работу. Солнечная батарея заряжает конденсатор емкостью 4700 мкФ. По мере заряда конденсатора, напряжение на нем возрастает. Однопереходный транзистор входит в режим колебаний и посылает импульс, отпирающий тиристор. Когда тиристор открыт, вся запасенная в конденсаторе энергия разряжается через двигатель с высоким КПД. Во время разряда конденсатора двигатель вращается. Потом происходит остановка и цикл повторяется.
Рис. 3.1. Схема солнечного двигателя
Схема солнечного двигателя проста и некритична к используемым деталям. Она может быть собрана на макетной плате, выводы элементов при этом соединены проводниками. Для желающих собрать двигатель на печатной плате – чертеж платы представлен на рис. 3.2. Печатная плата входит в набор для создания солнечного двигателя. На рис. 3.3 показана схема расположения деталей на печатной плате. На рис. 3.4 помещена фотография двигателя в сборе.
Рис. 3.2. Чертеж печатной платы
Рис. 3.3. Размещение деталей на печатной плате
Рис. 3.4. Солнечный двигатель в сборе
Список деталей солнечного двигателя
• транзистор 2N2646 (1)
• тиристор 2N5060 (1)
• конденсатор электролитический 22 мкФ (1)
• конденсатор электролитический 4700 мкФ (1)
• двигатель постоянного тока
• элемент солнечной батареи (2)
• печатная плата
• резистор 200 кОм 0,25 Вт
• резистор 15 кОм 0,25 Вт
• резистор 2,2 кОм 0,25 Вт
Двигатель с высоким КПД
Далеко не все электродвигатели имеют высокий КПД. Например, небольшие моторчики постоянного тока из радионаборов, как правило, имеют низкий КПД. Для определения этого существует простая процедура. Повращайте пальцами ось двигателя. Если ротор вращается плавно и продолжает вращение, когда вы отпустите ось, то, возможно, это двигатель с высоким КПД. Если ось ротора поворачивается рывками, и вы чувствуете сопротивление, то, скорее всего, КПД такого двигателя невелик.
Особенности конструкции солнечного двигателя
Солнечные элементы, использованные в устройстве, имеют высокий КПД и высокое выходное напряжение. Для солнечных элементов типично выходное напряжение в пределах 0,5–0,7 В при различных токах, которые зависят от размеров элемента. Солнечный элемент, использованный в данной схеме, дает паспортное напряжение порядка 2,5 В, но без нагрузки он заряжает конденсатор до уровня 4,3 В.
Я уверен, что некоторые из тех, кто захочет построить подобную схему, уже думают о возможности более быстрого заряда емкости через увеличение количества солнечных элементов. Данной вещи делать не следует. Дополнительные элементы действительно увеличат ток заряда и, соответственно, сократят его время, но только в первом цикле. Для того чтобы тиристор закрылся и начался новый цикл, необходимо, чтобы ток, протекающий через тиристор, прекратился (или стал очень малым). А в случае, если солнечная батарея будет отдавать достаточно большой ток, то тиристор «залипнет» в открытом состоянии. Соответственно, вся энергия батареи будет через открытый тиристор рассеиваться на подключенной нагрузке. Конденсатор не будет заряжаться, и схема выйдет из циклического режима.
Для правильной работы детали схемы специальным образом подобраны. Единственный компонент, допускающий вариации в значительных пределах, это накопительный конденсатор. Меньшие значения емкости приведут к более быстрому циклу «заряд-разряд». Большие значения емкости или использование нескольких конденсаторов приведут к запасанию большего количества энергии и, соответственно, совершению большей работы, однако следует помнить, что при использовании подобных емкостей цикл «заряд-разряд» может сильно удлиниться.