в себя очень мощную архитектуру,


Подробнее о программе NeuroShell 2 включает в себя очень мощную архитектуру, называемую Методом группового учета аргумента (МГУА) или полиномиальными сетями. На самом деле, сеть МГУА не похожа на обычные сети с прямой связью, и изначально эта архитектура обычно не представлялась в виде сети. Сеть МГУА содержит в связях полиномиальные выражения и использует в некотором смысле аналогичный генетическим алгоритмам механизм принятия решения о том, сколько слоев необходимо построить. Результатом тренировки является возможность представить выход как полиномиальную функцию всех или части входов. Замечание: В нижеследующей документации запись X^2 означает X в квадрате. X^3 означает X в кубе и т.д. К несчастью, в литературе практически нельзя найти конкретного ответа на вопрос о том, как успешно применять МГУА. Причиной этого является тот факт, что МГУА использует множество разнообразных параметров, и "стандартного" набора этих параметров не существует. Ниже будут даны некоторые объяснения МГУА и его реализации в NeuroShell 2. Основная идея МГУА заключается в том, что алгоритм пытается построить функцию (называемую полиномиальной моделью), которая вела бы себя таким образом, чтобы предсказанное значение выхода было как можно ближе к его действительному значению. Для многих пользователей очень удобно иметь такую модель, способную осуществлять предсказания с использованием знакомых и легких для понимания полиномиальных формул. В NeuroShell 2 МГУА сформулирован в терминах нейросетевой архитектуры, называемой полиномиальной сетью. Тем не менее, получаемая модель представляет собой стандартную полиномиальную функцию. Наиболее традиционный подход для решения задачи построения таких моделей заключается в использовании регрессионного анализа. Первый шаг состоит в принятии решения о типе полинома, который должен быть построен с помощью регрессии.

что означает ум, рассудок, разум;


Термин интеллект (intelligence) происходит от латинского intellectus — что означает ум, рассудок, разум; мыслительные способности человека. Соответственно искусственный интеллект (artificial intelligence) — ИИ (AI) обычно толкуется как свойство автоматических систем брать на себя отдельные функции интеллекта человека, например, выбирать и принимать оптимальные решения на основе ранее полученного опыта и рационального анализа внешних воздействий. Мы, в нашем курсе, интеллектом будем называть способность мозга решать (интеллектуальные) задачи путем приобретения, запоминания и целенаправленного преобразования знаний в процессе обучения на опыте и адаптации к разнообразным обстоятельствам. В этом определении под термином "знания" подразумевается не только та информация, которая поступает в мозг через органы чувств. Такого типа знания чрезвычайно важны, но недостаточны для интеллектуальной деятельности. Дело в том, что объекты окружающей нас среды обладают свойством не только воздействовать на органы чувств, но и находиться друг с другом в определенных отношениях. Ясно, что для того, чтобы осуществлять в окружающей среде интеллектуальную деятельность (или хотя бы просто существовать), необходимо иметь в системе знаний модель этого мира. В этой информационной модели окружающей среды реальные объекты, их свойства и отношения между ними не только отображаются и запоминаются, но и, как это отмечено в данном определении интеллекта, могут мысленно "целенаправленно преобразовываться". При этом существенно то, что формирование модели внешней среды происходит "в процессе обучения на опыте и адаптации к разнообразным обстоятельствам". Мы употребили термин интеллектуальная задача. Для того, чтобы пояснить, чем отличается интеллектуальная задача от просто задачи, необходимо ввести термин "алгоритм" — один из краеугольных терминов кибернетики. Под алгоритмом понимают точное предписание о выполнении в определенном порядке системы операций для решения любой задачи из некоторого данного класса (множества) задач. Термин "алгоритм" происходит от имени узбекского математика Аль-Хорезми, который еще в IX веке предложил простейшие арифметические алгоритмы. В математике и кибернетике класс задач определенного типа считается решенным, когда для ее решения установлен алгоритм. Нахождение алгоритмов является естественной целью человека при решении им разнообразных классов задач. Отыскание алгоритма для задач некоторого данного типа связано с тонкими и сложными рассуждениями, требующими большой изобретательности и высокой квалификации. Принято считать, что подобного рода деятельность требует участия интеллекта человека. Задачи, связанные с отысканием алгоритма решения класса задач определенного типа, будем называть интеллектуальными.

к построению систем ИИ. Это


Существуют различные подходы к построению систем ИИ. Это разделение не является историческим, когда одно мнение постепенно сменяет другое, и различные подходы существуют и сейчас. Кроме того, поскольку по-настоящему полных систем ИИ в настоящее время нет, то нельзя сказать, что какой-то подход является правильным, а какой-то ошибочным. Для начала кратко рассмотрим логический подход. Почему он возник? Ведь человек занимается отнюдь не только логическими измышлениями. Это высказывание конечно верно, но именно способность к логическому мышлению очень сильно отличает человека от животных. Основой для данного логического подхода служит Булева алгебра. Каждый программист знаком с нею и с логическими операторами с тех пор, когда он осваивал оператор IF. Свое дальнейшее развитие Булева алгебра получила в виде исчисления предикатов — в котором она расширена за счет введения предметных символов, отношений между ними, кванторов существования и всеобщности. Практически каждая система ИИ, построенная на логическом принципе, представляет собой машину доказательства теорем. При этом исходные данные хранятся в базе данных в виде аксиом, правила логического вывода как отношения между ними. Кроме того, каждая такая машина имеет блок генерации цели, и система вывода пытается доказать данную цель как теорему. Если цель доказана, то трассировка примененных правил позволяет получить цепочку действий, необходимых для реализации поставленной цели. Мощность такой системы определяется возможностями генератора целей и машиной доказательства теорем. Конечно можно сказать, что выразительности алгебры высказываний не хватит для полноценной реализации ИИ, но стоит вспомнить, что основой всех существующих ЭВМ является бит — ячейка памяти, которая может принимать значения только 0 и 1. Таким образом было бы логично предположить, что все, что возможно реализовать на ЭВМ, можно было бы реализовать и в виде логики предикатов. Хотя здесь ничего не говорится о том, за какое время. Добиться большей выразительности логическому подходу позволяет такое сравнительно новое направление, как нечеткая логика. Основным ее отличием является то, что правдивость высказывания может принимать в ней кроме да/нет (1/0) еще и промежуточные значения — не знаю (0.5), пациент скорее жив, чем мертв (0.75), пациент скорее мертв, чем жив (0.25). Данный подход больше похож на мышление человека, поскольку он на вопросы редко отвечает только да или нет. Хотя правда на экзамене будут приниматься только ответы из разряда классической булевой алгебры. Для большинства логических методов характерна большая трудоемкость, поскольку во время поиска доказательства возможен полный перебор вариантов. Поэтому данный подход требует эффективной реализации вычислительного процесса, и хорошая работа обычно гарантируется при сравнительно небольшом размере базы данных.

Нейросети - Понятие образа


Образ, класс — классификационная группировка в системе классификации, объединяющая (выделяющая) определенную группу объектов по некоторому признаку.

Образное восприятие мира — одно из загадочных свойств живого мозга, позволяющее разобраться в бесконечном потоке воспринимаемой информации и сохранять ориентацию в океане разрозненных данных о внешнем мире. Воспринимая внешний мир, мы всегда производим классификацию воспринимаемых ощущений, т. е. разбиваем их на группы похожих, но не тождественных явлений. Например, несмотря на существенное различие, к одной группе относятся все буквы А, написанные различными почерками, или все звуки, соответствующие одной и той же ноте, взятой в любой октаве и на любом инструменте, а оператор, управляющий техническим объектом, на целое множество состояний объекта реагирует одной и той же реакцией. Характерно, что для составления понятия о группе восприятий определенного класса достаточно ознакомиться с незначительным количеством ее представителей. Ребенку можно показать всего один раз какую-либо букву, чтобы он смог найти эту букву в тексте, написанном различными шрифтами, или узнать ее, даже если она написана в умышленно искаженном виде. Это свойство мозга позволяет сформулировать такое понятие, как образ.

Образы обладают характерным свойством, проявляющимся в том, что ознакомление с конечным числом явлений из одного и того же множества дает возможность узнавать сколь угодно большое число его представителей. Примерами образов могут быть: река, море, жидкость, музыка Чайковского, стихи Маяковского и т. д. В качестве образа можно рассматривать и некоторую совокупность состояний объекта управления, причем вся эта совокупность состояний характеризуется тем, что для достижения заданной цели требуется одинаковое воздействие на объект. Образы обладают характерными объективными свойствами в том смысле, что разные люди, обучающиеся на различном материале наблюдений, большей частью одинаково и независимо друг от друга классифицируют одни и те же объекты. Именно эта объективность образов позволяет людям всего мира понимать друг друга.

Способность восприятия внешнего мира в форме образов позволяет с определенной достоверностью узнавать бесконечное число объектов на основании ознакомления с конечным их числом, а объективный характер основного свойства образов позволяет моделировать процесс их распознавания. Будучи отражением объективной реальности, понятие образа столь же объективно, как и сама реальность, а поэтому это понятие может быть само по себе объектом специального исследования.

В литературе, посвященной проблеме обучения распознавания образов (ОРО), часто вместо понятия образа вводится понятие класса.

Одним из самых интересных свойств


Одним из самых интересных свойств человеческого мозга является способность отвечать на бесконечное множество состояний внешней среды конечным числом реакций. Может быть, именно это свойство позволило человеку достигнуть высшей формы существования живой материи, выражающейся в способности к мышлению, т. е. активному отражению объективного мира в виде образов, понятий, суждений и т. д. Поэтому проблема ОРО возникла при изучении физиологических свойств мозга. Рассмотрим пример задач из области ОРО. Здесь представлены 12 задач, в которых следует отобрать признаки, при помощи которых можно отличить левую триаду картинок от правой. Решение данных задач требует моделирования логического мышления в полном объеме.

с незнакомыми задачами, появляется естественное


Каждый раз, когда сталкиваются с незнакомыми задачами, появляется естественное желание представить их в виде некоторой легко понимаемой модели, которая позволяла бы осмыслить задачу в таких терминах, которые легко воспроизводятся нашим воображением. А так как мы существуем в пространстве и во времени, наиболее понятной для нас является пространственно-временная интерпретация задач. Любое изображение, которое возникает в результате наблюдения какого-либо объекта в процессе обучения или экзамена, можно представить в виде вектора, а значит и в виде точки некоторого пространства признаков. Если утверждается, что при показе изображений возможно однозначно отнести их к одному из двух (или нескольких) образов, то тем самым утверждается, что в некотором пространстве существует две (или несколько) области, не имеющие общих точек, и что изображения — точки из этих областей. Каждой такой области можно приписать наименование, т. е. дать название, соответствующее образу. Проинтерпретируем теперь в терминах геометрической картины процесс обучения распознаванию образов, ограничившись пока случаем распознавания только двух образов. Заранее считается известным лишь только то, что требуется разделить две области в некотором пространстве и что показываются точки только из этих областей. Сами эти области заранее не определены, т. е. нет каких-либо сведений о расположении их границ или правил определения принадлежности точки к той или иной области. В ходе обучения предъявляются точки, случайно выбранные из этих областей, и сообщается информация о том, к какой области принадлежат предъявляемые точки. Никакой дополнительной информации об этих областях, т. е. о расположении их границ, в ходе обучения не сообщается. Цель обучения состоит либо в построении поверхности, которая разделяла бы не только показанные в процессе обучения точки, но и все остальные точки, принадлежащие этим областям, либо в построении поверхностей, ограничивающих эти области так, чтобы в каждой из них находились только точки одного образа. Иначе говоря, цель обучения состоит в построении таких функций от векторов-изображений, которые были бы, например, положительны на всех точках одного и отрицательны на всех точках другого образа. В связи с тем, что области не имеют общих точек, всегда существует целое множество таких разделяющих функций, а в результате обучения должна быть построена одна из них. Если предъявляемые изображения принадлежат не двум, а большему числу образов, то задача состоит в построении по показанным в ходе обучения точкам поверхности, разделяющей все области, соответствующие этим образам, друг от друга. Задача эта может быть решена, например, путем построения функции, принимающей над точками каждой из областей одинаковое значение, а над точками из разных областей значение этой функции должно быть различно. На первый взгляд кажется, что знание всего лишь некоторого количества точек из области недостаточно, чтобы отделить всю область.

Нейросети - Гипотеза компактности


Если предположить, что в процессе обучения пространство признаков формируется исходя из задуманной классификации, то тогда можно надеяться, что задание пространства признаков само по себе задает свойство, под действием которого образы в этом пространстве легко разделяются. Именно эти надежды по мере развития работ в области распознавания образов стимулировали появление гипотезы компактности, которая гласит: образам соответствуют компактные множества в пространстве признаков. Под компактным множеством пока будем понимать некие "сгустки" точек в пространстве изображений, предполагая, что между этими сгустками существуют разделяющие их разряжения.

Однако эту гипотезу не всегда удавалось подтвердить экспериментально, но, что самое главное, те задачи, в рамках которых гипотеза компактности хорошо выполнялась (Рис. 2а), все без исключения находили простое решение. И наоборот, те задачи, для которых гипотеза не подтверждалась (Рис. 2б), либо совсем не решались, либо решались с большим трудом с привлечением дополнительных ухищрений. Этот факт заставил по меньшей мере усомниться в справедливости гипотезы компактности, так как для опровержения любой гипотезы достаточно одного отрицающего ее примера. Вместе с этим, выполнение гипотезы всюду там, где удавалось хорошо решить задачу обучения распознаванию образов, сохраняло к этой гипотезе интерес. Сама гипотеза компактности превратилась в признак возможности удовлетворительного решения задач распознавания.

Формулировка гипотезы компактности подводит вплотную к понятию абстрактного образа. Если координаты пространства выбирать случайно, то и изображения в нем будут распределены случайно. Они будут в некоторых частях пространства располагаться более плотно, чем в других. Назовем некоторое случайно выбранное пространство абстрактным изображением. В этом абстрактном пространстве почти наверняка будут существовать компактные множества точек. Поэтому в соответствии с гипотезой компактности множества объектов, которым в абстрактном пространстве соответствуют компактные множества точек, разумно назвать абстрактными образами данного пространства.

Нейросети - Обучение и самообучение


Все картинки, представленные на Рис. 1, характеризуют задачу обучения. В каждой из этих задач задается несколько примеров (обучающая последовательность) правильно решенных задач. Если бы удалось подметить некое всеобщее свойство, не зависящее ни от природы образов, ни от их изображений, а определяющее лишь их способность к разделимости, то наряду с обычной задачей обучения распознаванию, с использованием информации о принадлежности каждого объекта из обучающей последовательности тому или иному образу можно было бы поставить иную классификационную задачу — так называемую задачу обучения без учителя. Задачу такого рода на описательном уровне можно сформулировать следующим образом: системе одновременно или последовательно предъявляются объекты без каких-либо указаний об их принадлежности к образам. Входное устройство системы отображает множество объектов на множество изображений и, используя некоторое заложенное в нее заранее свойство разделимости образов, производит самостоятельную классификацию этих объектов. После такого процесса самообучения система должна приобрести способность к распознаванию не только уже знакомых объектов (объектов из обучающей последовательности), но и тех, которые ранее не предъявлялись. Процессом самообучения некоторой системы называется такой процесс, в результате которого эта система без подсказки учителя приобретает способность к выработке одинаковых реакций на изображения объектов одного и того же образа и различных реакций на изображения различных образов. Роль учителя при этом состоит лишь в подсказке системе некоторого объективного свойства, одинакового для всех образов и определяющего способность к разделению множества объектов на образы.

Оказывается, таким объективным свойством является свойство компактности образов. Взаимное расположение точек в выбранном пространстве уже содержит информацию о том, как следует разделить множество точек. Эта информация и определяет то свойство разделимости образов, которое оказывается достаточным для самообучения системы распознаванию образов.

Большинство известных алгоритмов самообучения способны выделять только абстрактные образы, т. е. компактные множества в заданных пространствах. Различие между ними состоит, по-видимому, в формализации понятия компактности. Однако это не снижает, а иногда и повышает ценность алгоритмов самообучения, так как часто сами образы заранее никем не определены, а задача состоит в том, чтобы определить, какие подмножества изображений в заданном пространстве представляют собой образы. Хорошим примером такой постановки задачи являются социологические исследования, когда по набору вопросов выделяются группы людей. В таком понимании задачи алгоритмы самообучения генерируют заранее не известную информацию о существовании в заданном пространстве образов, о которых ранее никто не имел никакого представления.

Кроме того, результат самообучения характеризует пригодность выбранного пространства для конкретной задачи обучения распознаванию. Если абстрактные образы, выделяемые в процессе самообучения, совпадают с реальными, то пространство выбрано удачно. Чем сильнее абстрактные образы отличаются от реальных, тем "неудобнее" выбранное пространство для конкретной задачи.

Обучением обычно называют процесс выработки в некоторой системе той или иной реакции на группы внешних идентичных сигналов путем многократного воздействия на систему внешней корректировки. Такую внешнюю корректировку в обучении принято называть "поощрениями" и "наказаниями". Механизм генерации этой корректировки практически полностью определяет алгоритм обучения. Самообучение отличается от обучения тем, что здесь дополнительная информация о верности реакции системе не сообщается.

Адаптация — это процесс изменения параметров и структуры системы, а возможно, и управляющих воздействий на основе текущей информации с целью достижения определенного состояния системы при начальной неопределенности и изменяющихся условиях работы.

Обучение — это процесс, в результате которого система постепенно приобретает способность отвечать нужными реакциями на определенные совокупности внешних воздействий, а адаптация — это подстройка параметров и структуры системы с целью достижения требуемого качества управления в условиях непрерывных изменений внешних условий.

Исторически сложились три основных направления


Исторически сложились три основных направления в моделировании ИИ. В рамках первого подхода объектом исследований являются структура и механизмы работы мозга человека, а конечная цель заключается в раскрытии тайн мышления. Необходимыми этапами исследований в этом направлении являются построение моделей на основе психофизиологических данных, проведение экспериментов с ними, выдвижение новых гипотез относительно механизмов интеллектуальной деятельности, совершенствование моделей и т. д. Второй подход в качестве объекта исследования рассматривает ИИ. Здесь речь идет о моделировании интеллектуальной деятельности с помощью вычислительных машин. Целью работ в этом направлении является создание алгоритмического и программного обеспечения вычислительных машин, позволяющего решать интеллектуальные задачи не хуже человека. Наконец, третий подход ориентирован на создание смешанных человеко-машинных, или, как еще говорят, интерактивных интеллектуальных систем, на симбиоз возможностей естественного и искусственного интеллекта. Важнейшими проблемами в этих исследованиях является оптимальное распределение функций между естественным и искусственным интеллектом и организация диалога между человеком и машиной. Самыми первыми интеллектуальными задачами, которые стали решаться при помощи ЭВМ были логические игры (шашки, шахматы), доказательство теорем. Хотя, правда здесь надо отметить еще кибернетические игрушки типа "электронной мыши" Клода Шеннона, которая управлялась сложной релейной схемой. Эта мышка могла "исследовать" лабиринт, и находить выход из него. А кроме того, помещенная в уже известный ей лабиринт, она не искала выход, а сразу же, не заглядывая в тупиковые ходы, выходила из лабиринта. Американский кибернетик А. Самуэль составил для вычислительной машины программу, которая позволяет ей играть в шашки, причем в ходе игры машина обучается или, по крайней мере, создает впечатление, что обучается, улучшая свою игру на основе накопленного опыта. В 1962 г. эта программа сразилась с Р. Нили, сильнейшим шашистом в США и победила. Каким образом машине удалось достичь столь высокого класса игры?

это компьютерная программа, имитирующая способность


NeuroShell 2 - это компьютерная программа, имитирующая способность человеческого мозга классифицировать примеры, делать предсказания или принимать решения, основываясь на опыте прошлого. Работа человеческого мозга основана на возбуждении нейронов, в то время как нейронная сеть использует наборы данных. NeuroShell 2 позволяет Вам строить приложения для решения конкретных сложных задач, не занимаясь программированием. Вы сообщаете сети, что именно Вы пытаетесь предсказать или классифицировать, а NeuroShell 2 сможет "выучить" примеры из тренировочного набора данных и затем самостоятельно осуществлять классификацию, давать предсказания или принимать решения при предъявлении новых данных. NeuroShell 2, как и человеческий мозг, способен решать задачи, которые не могут быть решены обычными компьютерными программами, предусматривающими пошаговое выполнение. Однако нейронные сети, как и мозг, не могут гарантировать всегда абсолютно "правильный" ответ, особенно если примеры являются в каком-либо смысле неполными или противоречивыми. Результаты следует оценивать в терминах процента совпадения ответов с ответами, которые дал бы эксперт. Как пользоваться NeuroShell 2 Запуск NeuroShell 2 Щелкните по значку "мозга" NeuroShell 2, который должен был быть помещен в группу программ NeuroShell 2, когда Вы устанавливали программу. Появится Главное меню NeuroShell 2. Обратите внимание на то, что это меню представляет собой очень узкую полосу в верхней части экрана, отделенную от заставки. Выберите меню Файл из Главного меню и либо задайте новое имя задачи, либо откройте уже существующую задачу, указав ее имя. Имена задач Каждой задаче соответствует приложение на основе нейронной сети. На разных этапах работы с задачей NeuroShell 2 создает различные файлы, связанные с этим приложением. Имена всех таких файлов начинаются с имени задачи (8 символов максимум) и заканчиваются различными подходящими расширениями. Новая задача: Введите имя задачи в верхней части над полем списка. Расширение .DSC (description - описание) будет добавлено автоматически. Файл .DSC представляет собой текстовый файл, который Вы можете использовать для записи краткого описания задачи, отображаемого на экране при открывании задачи. Введите свое собственное описание в текстовом поле, появляющемся на экране. Открыть задачу: Выберите .DSC файл с именем задачи из поля списка. Если ранее Вы ввели описание этой задачи, оно будет отображено в текстовом поле. Вы можете ввести описание задачи при любом появлении этого поля.

Нейросети - Как построить приложение


Ниже приводится список основных шагов, необходимых для создания приложения на основе нейронной сети:

Принятие решения о том, что именно Вы хотите предсказывать или классифицировать

Познакомившись с нейронными сетями, Вы поймете, что они могут помочь Вам в решении множества разнообразных задач. Из опыта Вы также знаете, что к решению каждой задачи может существовать несколько подходов.

Например, если Вы строите нейронную сеть для предсказания курса акций или опционов, Вы можете предсказывать несколько вещей: курс акций, индекс цен, изменения курса акций или опционов, степень изменчивости курса акций и т.д. Вы также могли бы классифицировать состояние рынка как рынок с тенденцией повышения (рынок "быков") или как рынок с тенденцией понижения (рынок "медведей"), либо же Вы могли бы создать сеть для принятия решения о том, следует ли купить, продать или держать акции. В каждом из описанных вариантов Вы также имеете возможность выбора того, на какой срок вперед Вы хотите получать предсказания. Переменные, которые Вы хотите предсказывать или классифицировать, и будут выходами сети.

о качестве каждой модели должно


Решение о качестве каждой модели должно приниматься на основе некоторого численного критерия. Самым простым критерием (одна из форм которого используется в линейном регрессионном анализе) является сумма (по всем примерам) квадратов разностей между действительным выходом и предсказанием модели, деленная на сумму квадратов действительных выходов. Этот критерий называется Нормированная средняя квадратичная ошибка или Норм. СКО (в литературе также часто используется название TSE - Training Squared Error, квадратичная ошибка тренировки.). Впрочем, если Вы попытаетесь использовать только Норм. СКО на реальных данных (или даже на модельных данных с некоторым добавлением шума), Вы увидите, что значение Норм. СКО становится все меньше и меньше по мере добавления к модели новых членов. Чем сложнее модель, тем она точнее. Это всегда так, если используется лишь критерий Норм. СКО, определяющий качество модели на основании той же информации, которая уже использовалась для построения модели. Результатом этого является переусложненная или "переученная" модель, что означает, что модель плохо обобщает, так как обращает слишком много внимания на шум в тренировочных данных. Это очень похоже на переучивание других нейронных сетей. Чтобы избежать этой опасности, необходимо применять более мощный критерий, основанный на информации, отличной от той, которая использовалась при построении оцениваемой модели. Существует ряд способов определения таких критериев, называемых Критериями отбора. Например, можно вычислить квадратичную сумму отклонений между известными значениями выхода и предсказаниями модели по какому-либо другому набору экспериментальных данных (тестовому набору). В МГУА такой критерий называется Регулярность. Это Калибровка, примененная в МГУА. Другим способом избежать переучивания является введение штрафа за сложность модели. Так работает, например, критерий PSE (Prediction Squared Error - Квадратичная ошибка предсказания), предложенный А.Р.Барроном. Теоретическое рассмотрение показывает, что следует прекратить усложнение модели, когда критерий отбора достигнет минимума. Величина этого минимума является мерой надежности модели. Метод поиска лучшей модели, основанный на переборе всех возможных моделей, обычно называют Комбинаторным алгоритмом МГУА. Он иногда используется для решения простых задач или в ситуациях, когда у пользователя есть некая априорная информация о том, как должны выглядеть опорные функции. Впрочем, ясно, что полный перебор для задачи с большим количеством входов и большим набором опорных функций практически невозможен, так как он потребовал бы слишком длительного времени. В NeuroShell 2 реализован другой вариант МГУА.

Основы проектирования систем ИИ" сложилась


С курсом " Основы проектирования систем ИИ" сложилась ситуация, которая роднит его с коммунизмом — изучается то, чего еще нет. И если этого не будет в течение ближайших 100 лет, то очень может быть, что эпоха ИИ на этом окончится. Исходя из сказанного выше, вытекает основная философская проблема в области ИИ — возможность или не возможность моделирования мышления человека. В случае если когда-либо будет получен отрицательный ответ на этот вопрос, то все остальные вопросы курса не будут иметь не малейшего смысла. Следовательно, начиная исследование ИИ, мы заранее предполагаем положительный ответ. Попробуем привести несколько соображений, которые подводят нас к данному ответу. Первое доказательство является схоластическим, и доказывает непротиворечивость ИИ и Библии. По-видимому, даже люди далекие от религии, знают слова священного писания: "И создал Господь человека по образу и подобию своему …". Исходя из этих слов, мы можем заключить, что, поскольку Господь, во-первых, создал нас, а во-вторых, мы по своей сути подобны ему, то мы вполне можем создать кого-то по образу и подобию человека. Создание нового разума биологическим путем для человека дело вполне привычное. Наблюдая за детьми, мы видим, что большую часть знаний они приобретают путем обучения, а не как заложенную в них заранее. Данное утверждение на современном уровне не доказано, но по внешним признакам все выглядит именно так. То, что раньше казалось вершиной человеческого творчества — игра в шахматы, шашки, распознавание зрительных и звуковых образов, синтез новых технических решений, на практике оказалось не таким уж сложным делом (теперь работа сводится не к исследованию уровня возможности или невозможности реализации перечисленного, а к нахождению наиболее оптимального алгоритма). Теперь зачастую данные проблемы даже не относят к проблемам ИИ. Есть надежда, что и полное моделирование мышления человека окажется не таким уж и сложным делом. С проблемой воспроизведения своего мышления тесно смыкается проблема возможности самовоспроизведения.

Для того, чтобы человек сознательно


Для того, чтобы человек сознательно воспринял информацию (для примера возьмем чертеж), она должна пройти довольно длительный цикл предварительной обработки. Вначале свет попадает в глаз. Пройдя через всю оптическую систему фотоны в конце концов попадают на сетчатку — слой светочувствительных клеток — палочек и колбочек. Уже здесь — еще очень далеко от головного мозга, происходит первый этап обработки информации, поскольку, например, у млекопитающих, сразу за светочувствительными клетками обычно находятся два слоя нервных клеток, которые выполняют сравнительно несложную обработку. Теперь информация поступает по зрительному нерву в головной мозг человека, в так называемые "зрительные бугры". То, что именно сюда приходит видеоинформация для дальнейшей обработки, показывают многочисленные опыты над людьми во время различных операций, в ходе которых производилась трепанация черепа. При этом пациентам раздражали область зрительных бугров слабым электрическим полем, что вызывало у них различные световые галлюцинации. Причем, что интересно, при изменении места раздражения, пропорционально смещению, смещались и места галлюцинаций, т. е. на зрительные бугры как бы проецируется то, что мы видим. Некоторые исследователи пошли дальше, и вживляли слепым людям целую матрицу электродов, напряжения на которых соответствовали освещенности соответствующих участков видеокамеры, размещенной на голове пациента. После операции, слепые начинали различать крупные фигуры (квадрат, треугольник, круг) и даже читать текст (при вживлении матрицы 10*10). Широкому распространению данного метода лечения слепоты препятствуют как недостаточно высокий наш технический уровень, так и чрезвычайно высокая опасность операций на открытом мозге. Такого рода опыты проводятся только попутно с операцией, вызванной другими причинами. Далее зрительная информация поступает в отделы мозга, которые уже выделяют из нее отдельные составляющие — горизонтальные, вертикальные, диагональные линии, контуры, области светлого, темного, цветного. До этих пор мы можем без труда смоделировать работу мозга применяя различные графические фильтры. Постепенно образы становятся все более сложными и размытыми, но графический образ картины пройдет еще долгий путь, прежде чем достигнет уровня сознания. Причем на уровне сознания у нас будет не только зрительный образ, к нему примешаются еще и звуки, запахи (если картина представляет собой натюрморт) и вкусовые ощущения. Дальнейшие ассоциации каждый может додумать сам. Смысл всего сказанного заключается в том, чтобы показать, что в системах ИИ имеются подсистемы, которые мы уже сейчас можем реализовать даже не зная о том, как они реализованы у человека. Причем можем это сделать не хуже, чем у прототипа, а зачастую и лучше. Например, искусственный глаз (а равно и блок первичной обработки видеоинформации, основанные на простейших фильтрах или др. сравнительно несложных устройствах) не устает, может видеть в любом диапазоне волн, легко заменяется на новый, видит при свете звезд.

Выбор того, какие переменные включить


Выбор того, какие переменные включить в рассмотрение Вашей нейронной сетью, является решающим для достижения эффективной работы Вашей нейронной сети. Эти переменные будут входами сети. "Сила" входа Нейронная сеть предполагает, что каждый вход является непрерывной переменной, интенсивность которой соответствует "силе" входа. Поэтому для числового входа сеть принимает во внимание амплитуду входа. Типы данных Нейронные сети предполагают, что на каждый конкретный вход всегда подаются данные одного и того же типа. Очевидно, что переменная, соответствующая возрасту, не должна содержать возраст в одних примерах и высоту или давление крови в других. Аналогично, если Вы подаете сигнал или кривую на несколько входов в качестве временной зависимости, будет более правильным, если измерения одного и того же участка кривой будут находиться во входном потоке данных на одном и том же месте для каждого примера или примерно на одном и том же месте. Это называется нормализацией входных данных. Если Вы не нормализуете входные данные, Вам придется предоставить сети гораздо больше примеров, в которых кривые занимали бы все возможные положения. То же справедливо и для двумерного случая. Если Вы подаете образы на вход сети, они должны всегда располагаться на одном и том же месте, например, в центре матрицы входов.

Нейросети - Сбор данных


Примите решение о том, как подобрать случаи из прошлого, которые станут для сети примерами правильной классификации или правильных предсказаний. Ваш следующий шаг - принятие решения о том, какой объем тренировочных данных (сколько случаев из прошлого) использовать. Самое важное правило, о котором следует помнить, это то, что Вам необходимо снабдить сеть достаточным количеством данных, чтобы покрыть всю область определения задачи. Хорошее практическое правило заключается в том,

чтобы использовать количество тренировочных примеров, в 10 раз превышающее количество входов.

В примере с фондовым рынком это не означает, что Вы должны иметь пример данных для каждого возможного набора переменных. Это означает, что Вы должны иметь примеры, покрывающие минимальное и максимальное значения для каждой переменной, а также достаточное количество значений в промежутке.

Включайте в тренировочный набор данные, относящиеся к делу. Данные фондового рынка 70-х годов могут не быть хорошим индикатором того, что произойдет на рынке в 90-х.

Заготовьте примеры для всех возможных предсказаний или вариантов классификации, а не только для того результата, который Вам нужен. Например, если Вас интересует только предсказание подъема на рынке, Вам тем не менее необходимо включить в тренировочный набор примеры падения на рынке, в противном случае нейронная сеть будет "сбита с толку", когда ей предъявят индикаторы для ситуации падающего рынка. Другими словами, если существуют 10 возможных результатов, Вам необходимо иметь

равное количество тренировочных примеров для каждого из результатов.

Если у Вас есть пропущенные данные, NeuroShell 2 на этапе проектирования сети предоставит Вам на выбор несколько способов обработки пропущенных данных. (За подробностями обращайтесь к описанию модуля Параметры тренировки и критерии остановки). Однако лучшее, что Вы можете сделать для заполнения пропущенных данных - это выдвинуть осознанное предположение о том, какими они должны были быть.

Нейросети - Кодирование Ваших знаний


Нейронные сети похожи на людей. Чем сильнее Вы упростите информацию, тем легче им будет ее понять. Если информация наиболее ярко выражена в отношении цены к доходу, то используйте как переменную именно это отношение. Не следует предъявлять сети две переменные, одну для цены и другую для дохода, чтобы нейронной сети не пришлось искать, что же является важным.

В задаче предсказания фондового рынка, вероятно, лучше предсказывать средний курс за неделю или за месяц, а не ежедневный курс, так как для ценовых индикаторов, рассматриваемых на ежедневной основе, характерен высокий уровень шума.

Качество работы сети может также повыситься при удалении входов, не имеющих отношения к выходу. Обратитесь к описанию модуля Показатели важности, чтобы больше узнать о возможности NeuroShell 2, которая может помочь Вам определить, есть ли существенная зависимость между входами и выходами. За дальнейшей информацией о выборе входов обратитесь также к разделам Обучение ВНС с генетическим поиском, Обучение НСОР с генетическим поиском и Обучение сетей МГУА. В частности, если у Вас

большое количество входов, очень хорошим методом выбора входов могут оказаться сети МГУА. Причина состоит в том, что сети МГУА вначале рассматривают одиночные входы, затем наилучшие пары, затем наилучшие тройки и т.д. Другие сети рассматривают все входы разом. МГУА может потратить некоторое время на перебор всех входов, однако отобранный набор входов может быть очень полезен. Даже если сеть МГУА не даст наилучших результатов, отобранные входы могут использоваться другими

сетями.

Если Вы имеете дело с числами нескольких разных порядков в одной переменной, попробуйте вместо чисел использовать их логарифмы.

Существуют множество других путей упрощения данных. Любой примененный Вами способ предобработки или нормализации данных может оказаться полезным.

Нейросети - Проектирование сети


Трехслойная сеть с обратным распространением ошибки является, вероятно, эффективной для большинства приложений. Согласно некоторым источникам, этот тип сети используется в 95 процентах работающих приложений на основе нейронной сети и тренируется гораздо быстрее, чем 4- или 5-слойные сети. При использовании Калибровки эта сеть будет также хорошо обобщать.

NeuroShell 2 предлагает специальный тип сети с обратным распространением ошибки, называемый рекуррентной сетью. Рекуррентные сети отлично подходят для данных, представляющих собой временные зависимости.

Если Ваши тренировочные данные "рыхлые" и Вы хотите разделить тренировочные примеры на категории, используйте Вероятностную Нейронную Сеть (ВНС), известную своей способностью тренироваться очень быстро и работать на "рыхлых" данных.

Как и сети ВНС, Нейронные Сети с Общей Регрессией (НСОР) известны своей способностью быстро тренироваться на "рыхлых" наборах данных. Однако вместо классификации данных, как для ВНС, приложения на основе НСОР способны давать непрерывные выходы. В процессе проверки мы обнаружили, что для многих типов задач (но не для всех) НСОР ведут себя гораздо лучше, чем сети с обратным распространением ошибки. Они особенно полезны при аппроксимации непрерывных функций.

Самоорганизующаяся карта Кохонена полезна для кластеризации данных. Поскольку этот тип сети не требует обучения с учителем, всё, что от Вас требуется, это сообщить сети желаемое количество категорий.

Нейросети - Тренировка и тестирование сети


Сколько должна продолжаться тренировка сети? До тех пор, пока она продолжает хорошо обобщать, т.е., пока она способна давать наилучшие возможные результаты на независимых данных.

Большинство экспертов сходятся во мнении, что основная причина неудачной работы нейросетей состоит в их перетренировке. Такая сеть запоминает тренировочный набор, но неспособна дать хороший ответ на новых данных, прежде незнакомых для нее.

Где же выход? Давайте рассмотрим два типа задач.

В задачах первого типа сеть тренируется на всем множестве возможных примеров. Вы хотите, чтобы сеть выучила тренировочные примеры как можно лучше. В этом случае следует продолжать тренировку сети, пока результаты на тренировочном наборе не перестанут улучшаться.

Для задач второго типа количество возможных тренировочных примеров бесконечно или очень велико, а тренировочный набор является лишь представителем этого огромного количества тренировочных примеров. В задачах такого типа сети справляются с тренировочными примерами, но терпят неудачу на новых данных.

Однако решение существует. Оно реализовано в NeuroShell 2 под названием Калибровка. При Калибровке создается полностью независимый набор примеров, называемый тестовым набором, который используется для оценки того, насколько хорошо сеть предсказывает или классифицирует. Обычно мы используем тестовый набор, составляющий примерно 20 процентов от величины тренировочного набора.

Калибровка работает по-разному в зависимости от используемого Вами типа нейронной сети. Для сетей с обратным распространением ошибки Калибровка использует данные из тренировочного и тестового наборов для определения оптимальной точки сохранения сети в тот момент, когда она хорошо обобщает на новых данных. Для сетей ВНС и НСОР Калибровка используется для определения оптимального параметра сглаживания.

За дальнейшей информацией по поводу использования Калибровки обращайтесь к разделам Сети с обратным распространением - Калибровка, Обучение НСОР и Обучение ВНС.

Часто хорошей идеей является создание


Часто хорошей идеей является создание третьего набора данных, называемого экзаменационным или верификационным набором. Этот набор данных содержит примеры, которые не входят ни в тренировочный, ни в тестовый наборы. Вы можете сравнить известные Вам правильные ответы с ответами сети. Если Ваша сеть не дает хороших результатов, возможно, Вы захотите прислушаться к следующим советам. Пробуйте выполнять рекомендации по одной, всякий раз давая сети обучаться заново. А. Установка минимумов и максимумов вплотную к данным Убедитесь, что минимумы и максимумы установлены достаточно близко к Вашим данным. Эти значения могут быть установлены автоматически в модуле Выбор входов и выходов, или Вы можете ввести в этом модуле свои собственные значения, если Вы хотите слегка расширить границы на случай возможного появления данных в более широком диапазоне при применении сети к новым примерам. Б. Добавление нейронов в скрытом слое При добавлении нейронов в скрытый слой нейронной сети с обратным распространением ошибки Вы увеличиваете число степеней свободы, и сеть становится способной к запоминанию более сложных образов. Время обучения при этом, однако, возрастает, так как значительно увеличивается количество необходимых вычислений. (Есть ситуации, когда добавление скрытых нейронов сокращает время обучения. Если количество скрытых нейронов недостаточно для запоминания всех сложных примеров, содержащихся в данных, сеть будет осциллировать и никогда не сможет запомнить эти примеры. Добавление скрытых нейронов позволит сети сделать это.) Помимо увеличения времени обучения, увеличение количества нейронов в скрытом слое сети может нести в себе еще одну опасность. По мере добавления нейронов к сети Вы будете получать все более и более точные приближения к данным. Другими словами, "кривые", которые нейронная сеть пытается "провести" через точки, соответствующие данным, становятся все ближе и ближе к этим точкам, пока сеть не перейдет к фактическому выучиванию примеров. Когда это происходит, обобщение на новых данных становится плохим. Однако нам хотелось бы подчеркнуть, что это не было проблемой для большинства приложений, построенных нами с умеренным количеством скрытых нейронов, особенно при использовании Калибровки. Основным критерием качества является не то, насколько хорошо сеть выучила тренировочный набор примеров, а то, насколько хорошо сеть предсказывает ответы для экзаменационного или верификационного набора, который она никогда не видела прежде. В. Изменение скорости обучения и момента или использование TurboProp При использовании сетей с обратным распространением ошибки наилучшие результаты для некоторых задач могут быть получены с низкими скоростью обучения и моментом. Для других задач лучшие результаты дают высокие скорость обучения и момент. TurboProp - это модель, которая совсем не требует от Вас установки скорости обучения и момента.

в качестве потенциальных членов полинома


Например, хорошей идеей является выбор в качестве потенциальных членов полинома (т.н. опорных функций) степеней входных переменных, а также их парных и тройных произведений (ковариаций): {X1, X2, X3, ..., X1^2, X2^2, X3^2, ..., X1X2, X1X3, ..., Xn-1Xn, X1X2X3, ...} Следующим шагом является построение линейной комбинации всех опорных функций с переменными коэффициентами. Алгоритм определяет значения этих коэффициентов путем минимизации квадратичной суммы (по всем примерам) отклонений между действительными выходами и предсказаниями модели. Описание линейной и нелинейной регрессии можно легко найти в любом справочнике по математике, поэтому здесь мы ограничимся лишь описанием основ метода, необходимых для понимания работы МГУА. Главной проблемой при использовании регрессии является правильный выбор множества опорных функций. Насколько сложными они должны быть? Например, если Вы строите модель, являющуюся функцией одной переменной, какой должна быть максимальная степень полинома? Должна ли она быть равна 10, или модель должна оценивать члены такие как X^13, или можно ограничить рассмотрение членами порядка X^5 и ниже? МГУА работает лучше, чем регрессия, отвечая на эти вопросы без перебора всех возможных вариантов.

в NeuroShell 2) Чтобы сократить


Многослойный алгоритм МГУА (реализованный в NeuroShell 2) Чтобы сократить время вычислений, следует уменьшить количество опорных функций (и количество входных переменных), используемых для построения оцениваемых моделей. Чтобы сделать это, необходимо перейти от одноступенчатой процедуры отбора моделей к многослойной процедуре. Как это делается? Для начала, возьмем первые две входные переменные и создадим на их основе простой набор опорных функций. Например, если первые две входные переменные обозначить как X1 и X2, то набор опорных функций мог бы выглядеть так: {1, X1, X2, X1*X2} (1 соответствует константе). Теперь проверим все возможные модели, составленные из этих функций, и выберем наилучшую. (Любую из проверяемых моделей называют Кандидатом в призеры.) На следующем шаге возьмем другую пару входных переменных и повторим процедуру, получая другого кандидата в призеры со своим собственным значением критерия отбора. Сделав то же самое для всех возможных пар из n входных переменных, получим n*(n-1)/2 кандидатов в призеры, каждый со своим собственным значением критерия отбора. Теперь сравним эти значения и выберем несколько кандидатов в призеры, обеспечивающих наилучшую аппроксимацию выходной переменной. Обычно выбирают заранее оговоренное число F наилучших кандидатов в призеры, которые хранятся в первом слое сети и сохраняются для следующего слоя. Эти F отобранных кандидатов называют Призерами. Призеры используются в качестве входных переменных для построения следующего слоя сети. Первоначальные входные переменные первого слоя также могут быть использованы в качестве входов этого нового слоя. В построении следующего слоя участвуют полиномы с этим расширенным набором входов. Заметим, что так как некоторые входы уже представляют собой полиномы, следующий слой может содержать очень сложные полиномы. Процедура построения нового слоя в МГУА повторяется, пока критерий отбора продолжает уменьшаться. Вариант алгоритма МГУА, реализованный в NeuroShell 2, проверяет, так ли это, и продолжает либо прекращает тренировку. Могут быть также и другие условия, влияющие на то, когда тренировка будет остановлена. За дальнейшей информацией обратитесь к разделам Параметры тренировки Простого МГУА и Параметры тренировки Расширенного МГУА. Работа этого алгоритма имеет прямые аналогии с работой садовника в процессе селекции нового гибрида. Садовник высевает семена, ждет, пока растения вырастут, и выбирает несколько растений, для которых желаемое свойство является наиболее ярко выраженным. Затем он собирает семена у выбранных растений и высевает их вновь, выращивая второе поколение. Затем он выбирает несколько растений из этого поколения, собирает семена, снова высевает их и т.д., пока не получит растение, обладающее желаемым свойством в полной мере.

Что же касается задач, алгоритмы


Что же касается задач, алгоритмы решения которых уже установлены, то, как отмечает известный специалист в области ИИ М. Минский, "излишне приписывать им такое мистическое свойства, как "интеллектуальность". В самом деле, после того, как такой алгоритм уже найден, процесс решения соответствующих задач становится таким, что его могут в точности выполнить человек, вычислительная машина (должным образом запрограммированная) или робот, не имеющие ни малейшего представления о сущности самой задачи. Требуется только, чтобы лицо, решающее задачу, было способно выполнять те элементарные операции, из которых складывается процесс, и, кроме того, чтобы оно педантично и аккуратно руководствовалось предложенным алгоритмом. Такое лицо, действуя, как говорят в таких случаях, чисто машинально, может успешно решать любую задачу рассматриваемого типа. Поэтому представляется совершенно естественным исключить из класса интеллектуальных такие задачи, для которых существуют стандартные методы решения. Примерами таких задач могут служить чисто вычислительные задачи: решение системы линейных алгебраических уравнений, численное интегрирование дифференциальных уравнений и т. д. Для решения подобного рода задач имеются стандартные алгоритмы, представляющие собой определенную последовательность элементарных операций, которая может быть легко реализована в виде программы для вычислительной машины. В противоположность этому для широкого класса интеллектуальных задач, таких, как распознавание образов, игра в шахматы, доказательство теорем и т. п., напротив это формальное разбиение процесса поиска решения на отдельные элементарные шаги часто оказывается весьма затруднительным, даже если само их решение несложно. Таким образом, мы можем перефразировать определение интеллекта как универсальный сверхалгоритм, который способен создавать алгоритмы решения конкретных задач. Еще интересным замечанием здесь является то, что профессия программиста, исходя из наших определений, является одной из самых интеллектуальных, поскольку продуктом деятельности программиста являются программы — алгоритмы в чистом виде. Именно поэтому, создание даже элементов ИИ должно очень сильно повысить производительность его труда. Деятельность мозга (обладающего интеллектом), направленную на решение интеллектуальных задач, мы будем называть мышлением, или интеллектуальной деятельностью. Интеллект и мышление органически связаны с решением таких задач, как доказательство теорем, логический анализ, распознавание ситуаций, планирование поведения, игры и управление в условиях неопределенности. Характерными чертами интеллекта, проявляющимися в процессе решения задач, являются способность к обучению, обобщению, накоплению опыта (знаний и навыков) и адаптации к изменяющимся условиям в процессе решения задач. Благодаря этим качествам интеллекта мозг может решать разнообразные задачи, а также легко перестраиваться с решения одной задачи на другую. Таким образом, мозг, наделенный интеллектом, является универсальным средством решения широкого круга задач (в том числе неформализованных) для которых нет стандартных, заранее известных методов решения.

по А. Н. Колмогорову, любая


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

к самовоспроизведению долгое время считалась


Способность к самовоспроизведению долгое время считалась прерогативой живых организмов. Однако некоторые явления, происходящие в неживой природе (например, рост кристаллов, синтез сложных молекул копированием), очень похожи на самовоспроизведение. В начале 50-х годов Дж. фон Нейман занялся основательным изучением самовоспроизведения и заложил основы математической теории "самовоспроизводящихся автоматов". Так же он доказал теоретически возможность их создания.
Существуют также различные неформальные доказательства возможности самовоспроизведения, но для программистов самым ярким доказательством, пожалуй, будет существование компьютерных вирусов. Принципиальная возможность автоматизации решения интеллектуальных задач с помощью ЭВМ обеспечивается свойством алгоритмической универсальности. Что же это за свойство? Алгоритмическая универсальность ЭВМ означает, что на них можно программно реализовывать (т. е. представить в виде машинной программы) любые алгоритмы преобразования информации, — будь то вычислительные алгоритмы, алгоритмы управления, поиска доказательства теорем или композиции мелодий. При этом мы имеем в виду, что процессы, порождаемые этими алгоритмами, являются потенциально осуществимыми, т. е. что они осуществимы в результате конечного числа элементарных операций. Практическая осуществимость алгоритмов зависит от имеющихся в нашем распоряжении средств, которые могут меняться с развитием техники. Так, в связи с появлением быстродействующих ЭВМ стали практически осуществимыми и такие алгоритмы, которые ранее были только потенциально осуществимыми. Однако свойство алгоритмической универсальности не ограничивается констатацией того, что для всех известных алгоритмов оказывается возможной их программная реализация на ЭВМ. Содержание этого свойства имеет и характер прогноза на будущее: всякий раз, когда в будущем какое-либо предписание будет признано алгоритмом, то независимо от того, в какой форме и какими средствами это предписание будет первоначально выражено, его можно будет задать также в виде машинной программы. Однако не следует думать, что вычислительные машины и роботы могут в принципе решать любые задачи. Анализ разнообразных задач привел математиков к замечательному открытию. Было строго доказано существование таких типов задач, для которых невозможен единый эффективный алгоритм, решающий все задачи данного типа; в этом смысле невозможно решение задач такого типа и с помощью вычислительных машин. Этот факт способствует лучшему пониманию того, что могут делать машины и чего они не могут сделать. В самом деле, утверждение об алгоритмической неразрешимости некоторого класса задач является не просто признанием того, что такой алгоритм нам не известен и никем еще не найден. Такое утверждение представляет собой одновременно и прогноз на все будущие времена о том, что подобного рода алгоритм нам не известен и никем не будет указан или, и иными словами, что он не существует.

Как же действует человек при


Как же действует человек при решении таких задач? Похоже, что он просто-напросто игнорирует их, что, однако не мешает ему жить дальше. Другим путем является сужение условий универсальности задачи, когда она решается только для определенного подмножества начальных условий. И еще один путь заключается в том, что человек методом "научного тыка" расширяет множество доступных для себя элементарных операций (например, создает новые материалы, открывает новые месторождения или типы ядерных реакций). Следующим философским вопросом ИИ является цель создания. В принципе все, что мы делаем в практической жизни, обычно направлено на то, чтобы больше ничего не делать. Однако при достаточно высоком уровне жизни (большом количестве потенциальной энергии) человека на первые роли выступает уже не лень (в смысле желания экономить энергию), а поисковые инстинкты. Допустим, что человек сумел создать интеллект, превышающий свой собственный (пусть не качеством, так количеством). Что теперь будет с человечеством? Какую роль будет играть человек? Для чего он теперь нужен? Не станет ли он тупой и жирной свиньей? И вообще, нужно ли в принципе создание ИИ? По-видимому, самым приемлемым ответом на эти вопросы является концепция "усилителя интеллекта" (УИ). Я думаю, что здесь уместна аналогия с президентом государства — он не обязан знать валентности ванадия или языка программирования Java для принятия решения о развитии ванадиевой промышленности. Каждый занимается своим делом — химик описывает технологический процесс, программист пишет программу; в конце концов, экономист говорит президенту, что вложив деньги в промышленный шпионаж, страна получит 20%, а в ванадиевую промышленность — 30% годовых. Думаю, что при такой постановке вопроса даже самый последний бомж (правда находящийся в сознании) сможет сделать правильный выбор. В данном примере президент использует биологический УИ — группу специалистов с их белковыми мозгами. Но уже сейчас используются и неживые УИ — например мы не могли бы предсказать погоду без компьютеров, при полетах космических кораблей с самого начала использовались бортовые счетно-решающие устройства. Кроме того, человек уже давно использует усилители силы (УС) — понятие, во многом аналогичное УИ. В качестве усилителей силы ему служат автомобили, краны, электродвигатели, прессы, пушки, самолеты и многое-многое другое. Основным отличием УИ от УС является наличие воли. Ведь мы не сможем себе представить, чтобы вдруг серийный "Запорожец" взбунтовался, и стал ездить так, как ему хочется. Не можем представить именно потому, что ему ничего не хочется, у него нет желаний. В тоже время, интеллектуальная система, вполне могла бы иметь свои желания, и поступать не так, как нам хотелось бы. Таким образом перед нами встает еще одна проблема — проблема безопасности.

Данная проблема будоражит умы человечества


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

Согласно многочисленным опытам, несмотря на


Согласно многочисленным опытам, несмотря на то, что мы не знаем точно, за что отвечает каждый отдельный нейрон в человеческом мозге, многим из наших эмоций обычно соответствует возбуждение группы нейронов (нейронный ансамбль) во вполне предсказуемой области. Были также проведены обратные эксперименты, когда раздражение определенной области вызывало желаемый результат. Это могли быть эмоции радости, угнетения, страха, агрессивности. Это наводит на мысль, что в принципе мы вполне могли бы вывести степень "довольности" организма наружу. В то же время, практически все известные механизмы адаптации и самонастройки (в первую очередь имеются в виду технические системы), базируются на принципах типа "хорошо" — "плохо". В математической интерпретации это сведение какой-либо функции к максимуму или к минимуму. Теперь представим себе, что наш УИ в качестве такой функции использует измеренную прямо или косвенно, степень удовольствия мозга человека-хозяина. Если принять меры, чтобы исключить самодеструктивную деятельность в состоянии депрессии, а так же предусмотреть другие особые состояния психики, то получим следующее. Поскольку предполагается, что нормальный человек, не будет наносить вред самому себе, и, без особой на то причины, другим, а УИ теперь является частью данного индивидуума (не обязательно физическая общность), то автоматически выполняются все 3 закона роботехники. При этом вопросы безопасности смещаются в область психологии и правоохранения, поскольку система (обученная) не будет делать ничего такого, чего бы не хотел ее владелец. И теперь осталась еще одна тема — а стоит ли вообще создавать ИИ, может просто закрыть все работы в этой области? Единственное, что можно сказать по этому поводу — если ИИ возможно создать, то рано или поздно он будет создан. И лучше его создавать под контролем общественности, с тщательной проработкой вопросов безопасности, чем он будет создан лет через 100-150 (если к тому времени человечество еще не уничтожит само себя) каким-нибудь программистом-механиком-самоучкой, использующим достижения современной ему техники. Ведь сегодня, например, любой грамотный инженер, при наличии определенных денежных ресурсов и материалов, может изготовить атомную бомбу.

Под структурным подходом мы подразумеваем


Под структурным подходом мы подразумеваем здесь попытки построения ИИ путем моделирования структуры человеческого мозга. Одной из первых таких попыток был перцептрон Френка Розенблатта. Основной моделируемой структурной единицей в перцептронах (как и в большинстве других вариантов моделирования мозга) является нейрон. Позднее возникли и другие модели, которые в простонародье обычно известны под термином "нейронные сети" (НС). Эти модели различаются по строению отдельных нейронов, по топологии связей между ними и по алгоритмам обучения. Среди наиболее известных сейчас вариантов НС можно назвать НС с обратным распространением ошибки, сети Хопфилда, стохастические нейронные сети. НС наиболее успешно применяются в задачах распознавания образов, в том числе сильно зашумленных, однако имеются и примеры успешного применения их для построения собственно систем ИИ, это уже ранее упоминавшийся ТАИР. Для моделей, построенных по мотивам человеческого мозга характерна не слишком большая выразительность, легкое распараллеливание алгоритмов, и связанная с этим высокая производительность параллельно реализованных НС. Также для таких сетей характерно одно свойство, которое очень сближает их с человеческим мозгом — нейронные сети работают даже при условии неполной информации об окружающей среде, то есть как и человек, они на вопросы могут отвечать не только "да" и "нет" но и "не знаю точно, но скорее да". Довольно большое распространение получил и эволюционный подход. При построении систем ИИ по данному подходу основное внимание уделяется построению начальной модели, и правилам, по которым она может изменяться (эволюционировать). Причем модель может быть составлена по самым различным методам, это может быть и НС и набор логических правил и любая другая модель. После этого мы включаем компьютер и он, на основании проверки моделей отбирает самые лучшие из них, на основании которых по самым различным правилам генерируются новые модели, из которых опять выбираются самые лучшие и т. д. В принципе можно сказать, что эволюционных моделей как таковых не существует, существует только эволюционные алгоритмы обучения, но модели, полученные при эволюционном подходе имеют некоторые характерные особенности, что позволяет выделить их в отдельный класс. Такими особенностями являются перенесение основной работы разработчика с построения модели на алгоритм ее модификации и то, что полученные модели практически не сопутствуют извлечению новых знаний о среде, окружающей систему ИИ, то есть она становится как бы вещью в себе. Еще один широко используемый подход к построению систем ИИ — имитационный. Данный подход является классическим для кибернетики с одним из ее базовых понятий — "черным ящиком" (ЧЯ). ЧЯ — устройство, программный модуль или набор данных, информация о внутренней структуре и содержании которых отсутствуют полностью, но известны спецификации входных и выходных данных. Объект, поведение которого имитируется, как раз и представляет собой такой "черный ящик". Нам не важно, что у него и у модели внутри и как он функционирует, главное, чтобы наша модель в аналогичных ситуациях вела себя точно так же. Таким образом здесь моделируется другое свойство человека — способность копировать то, что делают другие, не вдаваясь в подробности, зачем это нужно. Зачастую эта способность экономит ему массу времени, особенно в начале его жизни. Основным недостатком имитационного подхода также является низкая информационная способность большинства моделей, построенных с его помощью.

С ЧЯ связана одна очень


С ЧЯ связана одна очень интересная идея. Кто бы хотел жить вечно? Я думаю, что почти все ответят на этот вопрос "я". Представим себе, что за нами наблюдает какое-то устройство, которое следит за тем, что в каких ситуациях мы делаем, говорим. Наблюдение идет за величинами, которые поступают к нам на вход (зрение, слух, вкус, тактильные, вестибулярные и т. д.) и за величинами, которые выходят от нас (речь, движение и др.). Таким образом человек выступает здесь как типичный ЧЯ. Далее это устройство пытается отстроить какую-то модель таким образом, чтобы при определенных сигналах на входе человека, она выдавала на выходе те же данные, что и человек. Если данная затея будет когда-нибудь реализована, то для всех посторонних наблюдателей такая модель будет той же личностью, что и реальный человек. А после его смерти она, будет высказывать те мысли, которые предположительно высказывал бы и смоделированный человек. Мы можем пойти дальше и скопировать эту модель и получить брата близнеца с точно такими же "мыслями". Можно сказать, что "это конечно все интересно, но при чем тут я? Ведь эта модель только для других будет являться мной, но внутри ее будет пустота. Копируются только внешние атрибуты, но я после смерти уже не буду думать, мое сознание погаснет (для верующих людей слово "погаснет" необходимо заменить на "покинет этот мир") ". Что ж это так. Но попробуем пойти дальше. Согласно философским представлениям автора данного курса, сознание представляет собой сравнительно небольшую надстройку над нашим подсознанием, которая следит за активностью некоторых центров головного мозга, таких как центр речи, конечной обработки зрительных образов, после чего "возвращает" эти образы на начальные ступени обработки данной информации. При этом происходит повторная обработка этих образов, мы как бы видим и слышим, что думает наш мозг. При этом появляется возможность мысленного моделирования окружающей действительности при нашем "активном" участии в данном процессе. И именно наш процесс наблюдения за деятельностью этих немногих центров является тем, что мы называем сознанием. Если мы "видим" и "слышим" наши мысли, мы в сознании, если нет, то мы находимся в бессознательном состоянии. Если бы мы смогли смоделировать работу именно этих немногих "сознательных" нервных центров (работа которых правда основана на деятельности всего остального мозга) в качестве одного ЧЯ, и работу "супервизора" в качестве другого ЧЯ, то можно было бы с уверенностью говорить, что "да, данная модель думает, причем так же, как и я". Здесь я ничего не хочу говорить о том, как получить данные о работе этих нервных центров, поскольку на мой взгляд сегодня нет ничего такого, что позволило бы следить за мозгом человека годами и при этом не мешало бы его работе и жизни. И заканчивая беглое ознакомление с различными методами и подходами к построению систем ИИ, хотелось бы отметить, что на практике очень четкой границы между ними нет. Очень часто встречаются смешанные системы, где часть работы выполняется по одному типу, а часть по другому.

Устройства обработки звука позволяют улавливать


Устройства обработки звука позволяют улавливать девиацию голоса человека в 1-2 Герца. Данное изменение частоты происходит при повышенном возбуждении вегетативной нервной системы, которое в свою очередь часто обусловлено волнением человека. На данном принципе основаны современные детекторы лжи, которые позволяют обнаружить с высокой вероятностью даже записанные на пленку много лет назад ложные высказывания. Современные системы управления электродвигателем позволяют с высокой точностью держать заданные координаты даже при ударном изменении нагрузки. А ведь это примерно тоже, что держать на длинной палке баскетбольный мяч, по которому то слева, то справа кидают теннисные мячи. За одно и тоже время, компьютер произведет гораздо больше арифметических операций и с большей точностью, чем человек. Антиблокировочная система на автомобилях позволяет держать тормоза на грани заклинивания колеса, что дает наибольшее трение с дорогой, а это без АБС по силам только очень опытным водителям. В принципе такие примеры, где техника оказывается ничуть не хуже человека, можно продолжать до бесконечности. Общий же смысл сказанного в том, что при конструировании ИИ, мы не связаны одним набором элементарных составляющих, как природа. В каждом конкретном случае желательно применять то, что даст самый большой эффект. В той области, где у человека господствуют рефлексы (чихание, быстрое напряжение быстро растягиваемой мышцы, переваривание пищи, регулировка температуры), мы вообще можем применить жесткие системы управления, с раз и навсегда заданным алгоритмом функционирования. При этом вполне можно ожидать увеличения точности и уменьшение времени обучения их до нуля. При этом ядро нашей системы ИИ будет решать уже не настолько глобальные задачи. Данный принцип разбиения задачи на подзадачи уже давно используется природой. К примеру, мы далеко не полностью используем все возможности наших мышц в области разнообразия движений. Мы не можем заставить наши глаза смотреть в разные стороны, не говоря уже о том, чтобы делать это на разном уровне (левый глаз — влево-вверх, правый — вправо-вниз). При ходьбе мы часто используем далеко не оптимальный набор движений и далеко не все сочетания вариантов напряжения мышц мы опробуем. Попробуйте к примеру сделать волну животом. В принципе здесь нет ничего сложного, поскольку каждый пучок мышц пресса иннервируется отдельно, но если Вы этого не делали ранее, то получить необходимый результат будет не просто — в повседневной жизни это действие ненужно, а значит его нет и в "словаре движений", а на обучение необходимо определенное время. А по поводу оптимальности походки существуют расчеты, что если бы человек всегда рассчитывал оптимально траекторию движения в которой существует более 200 степеней свобод, то он бы не ходил, а в основном бы только думал о том, как надо ходить.

На самом деле наша система


На самом деле наша система управления построена по иерархическому принципу, когда задача распределяется между несколькими уровнями. Высший уровень нервной системы (связанный с большими полушариями мозга) ставит лишь общую задачу, скажем, переложить книгу на стол. Этот уровень вообще не контролирует действие отдельных двигательных единиц, направленных на решение поставленной задачи. Здесь уместна аналогия: командующий армией, ставя перед своими войсками некую общую задачу, отнюдь не предписывает каждому солдату и офицеру, что именно он должен делать в каждый момент операции. Детализация построения движений у человека происходит на уровнях более низких, чем командный уровень коры больших полушарий. Более того, в некоторых случаях (когда мы отдергиваем руку, прикоснувшись к горячему предмету, даже не успев осознать ситуацию) все управление формируется на нижележащих уровнях, связанных с различными отделами спинного мозга. В общем ситуация схожа с той, когда программист использует библиотеку подпрограмм. При этом ему не важно, какой алгоритм они используют, если программа работает нормально. А на написание своей библиотеки тратится драгоценное время. Кроме того, еще не известно, будет ли она работать так же хорошо. Общий вывод данной лекции состоит в том, что в настоящее время существуют методы, алгоритмы и устройства, которые позволяют нам довольно неплохо смоделировать нижние уровни человеческого интеллекта, причем совсем не обязательно на таком же физическом принципе. И если бы это была не лекция, а тост, то я бы закончил его: " …так выпьем же за протестированные, правильно работающие и бесплатные библиотеки подпрограмм".

В целом проблема распознавания образов


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

можно указать бесчисленное количество различных


Действительно, можно указать бесчисленное количество различных областей, которые содержат эти точки, и как бы ни была построена по ним поверхность, выделяющая область, всегда можно указать другую область, которая пересекает поверхность и вместе с тем содержит показанные точки. Однако известно, что задача о приближении функции по информации о ней в ограниченном множестве точек, существенно более узкой, чем все множество, на котором функция задана, является обычной математической задачей об аппроксимации функций. Разумеется, решение таких задач требует введения определенных ограничений на классе рассматриваемых функций, а выбор этих ограничений зависит от характера информации, которую может добавить учитель в процессе обучения. Одной из таких подсказок является гипотеза о компактности образов. Интуитивно ясно, что аппроксимация разделяющей функции будет задачей тем более легкой, чем более компактны и чем более разнесены в пространстве области, подлежащие разделению. Так, например, в случае, показанном на Рис. 2а, разделение заведомо более просто, чем в случае, показанном на Рис. 2б. Действительно, в случае, изображенном на Рис. 2а, области могут быть разделены плоскостью, и даже при больших погрешностях в определении разделяющей функции она все же будет продолжать разделять области. В случае же на Рис. 2б, разделение осуществляется замысловатой поверхностью и даже незначительные отклонения в ее форме приводят к ошибкам разделения. Именно это интуитивное представление о сравнительно легко разделимых областях привело к гипотезе компактности. Наряду с геометрической интерпретацией проблемы обучения распознаванию образов существует и иной подход, который назван структурным, или лингвистическим. Поясним лингвистический подход на примере распознавания зрительных изображений. Сначала выделяется набор исходных понятий — типичных фрагментов, встречающихся на изображениях, и характеристик взаимного расположения фрагментов — "слева", "снизу", "внутри" и т. д. Эти исходные понятия образуют словарь, позволяющий строить различные логические высказывания, иногда называемые предположениями. Задача состоит в том, чтобы из большого количества высказываний, которые могли бы быть построены с использованием этих понятий, отобрать наиболее существенные для данного конкретного случая. Далее, просматривая конечное и по возможности небольшое число объектов из каждого образа, нужно построить описание этих образов. Построенные описания должны быть столь полными, чтобы решить вопрос о том, к какому образу принадлежит данный объект. При реализации лингвистического подхода возникают две задачи: задача построения исходного словаря, т. е. набор типичных фрагментов, и задача построения правил описания из элементов заданного словаря. В рамках лингвистической интерпретации проводится аналогия между структурой изображений и синтаксисом языка. Стремление к этой аналогии было вызвано возможностью использовать аппарат математической лингвистики, т. е. методы по своей природе являются синтаксическими. Использование аппарата математической лингвистики для описания структуры изображений можно применять только после того, как произведена сегментация изображений на составные части, т. е. выработаны слова для описания типичных фрагментов и методы их поиска. После предварительной работы, обеспечивающей выделение слов, возникают собственно лингвистические задачи, состоящие из задач автоматического грамматического разбора описаний для распознавания изображений. При этом проявляется самостоятельная область исследований, которая требует не только знания основ математической лингвистики, но и овладения приемами, которые разработаны специально для лингвистической обработки изображений.

в машину были программно заложены


Естественно, что в машину были программно заложены правила игры так, что выбор очередного хода был подчинен этим правилам. На каждой стадии игры машина выбирала очередной ход из множества возможных ходов согласно некоторому критерию качества игры. В шашках (как и в шахматах) обычно невыгодно терять свои фигуры, и, напротив, выгодно брать фигуры противника. Игрок (будь он человек или машина), который сохраняет подвижность своих фигур и право выбора ходов и в то же время держит под боем большое число полей на доске, обычно играет лучше своего противника, не придающего значения этим элементам игры. Описанные критерии хорошей игры сохраняют свою силу на протяжении всей игры, но есть и другие критерии, которые относятся к отдельным ее стадиям — дебюту, миттэндшпилю, эндшпилю. Разумно сочетая такие критерии (например в виде линейной комбинации с экспериментально подбираемыми коэффициентами или более сложным образом), можно для оценки очередного хода машины получить некоторый числовой показатель эффективности — оценочную функцию. Тогда машина, сравнив между собой показатели эффективности очередных ходов, выберет ход, соответствующий наибольшему показателю. Подобная автоматизация выбора очередного хода не обязательно обеспечивает оптимальный выбор, но все же это какой-то выбор, и на его основе машина может продолжать игру, совершенствуя свою стратегию (образ действия) в процессе обучения на прошлом опыте. Формально обучение состоит в подстройке параметров (коэффициентов) оценочной функции на основе анализа проведенных ходов и игр с учетом их исхода. По мнению А. Самуэля, машина, использующая этот вид обучения, может научиться играть лучше, чем средний игрок, за относительно короткий период времени. Можно сказать, что все эти элементы интеллекта, продемонстрированные машиной в процессе игры в шашки, сообщены ей автором программы. Отчасти это так. Но не следует забывать, что программа эта не является "жесткой", заранее продуманной во всех деталях. Она совершенствует свою стратегию игры в процессе самообучения. И хотя процесс "мышления" у машины существенно отличен оттого, что происходит в мозгу играющего в шашки человека, она способна у него выиграть. Ярким примером сложной интеллектуальной игры до недавнего времени являлись шахматы. В 1974 г. состоялся международный шахматный турнир машин, снабженных соответствующими программами. Как известно, победу на этом турнире одержала советская машина с шахматной программой "Каисса".

в том, что недавние события


Почему здесь употреблено "до недавнего времени"? Дело в том, что недавние события показали, что несмотря на довольно большую сложность шахмат, и невозможность, в связи с этим произвести полный перебор ходов, возможность перебора их на большую глубину, чем обычно, очень увеличивает шансы на победу. К примеру, по сообщениям в печати, компьютер фирмы IBM, победивший Каспарова, имел 256 процессоров, каждый из которых имел 4 Гб дисковой памяти и 128 Мб оперативной. Весь этот комплекс мог просчитывать более 100'000'000 ходов в секунду. До недавнего времени редкостью был компьютер, могущий делать такое количество целочисленных операций в секунду, а здесь мы говорим о ходах, которые должны быть сгенерированы и для которых просчитаны оценочные функции. Хотя с другой стороны, этот пример говорит о могуществе и универсальности переборных алгоритмов. В настоящее время существуют и успешно применяются программы, позволяющие машинам играть в деловые или военные игры, имеющие большое прикладное значение. Здесь также чрезвычайно важно придать программам присущие человеку способность к обучению и адаптации. Одной из наиболее интересных интеллектуальных задач, также имеющей огромное прикладное значение, является задача обучения распознавания образов и ситуаций. Решением ее занимались и продолжают заниматься представители различных наук — физиологи, психологи, математики, инженеры. Такой интерес к задаче стимулировался фантастическими перспективами широкого практического использования результатов теоретических исследований: читающие автоматы, системы ИИ, ставящие медицинские диагнозы, проводящие криминалистическую экспертизу и т. п., а также роботы, способные распознавать и анализировать сложные сенсорные ситуации. В 1957 г. американский физиолог Ф. Розенблатт предложил модель зрительного восприятия и распознавания — перцептрон. Появление машины, способной обучаться понятиям и распознавать предъявляемые объекты, оказалось чрезвычайно интересным не только физиологам, но и представителям других областей знания и породило большой поток теоретических и экспериментальных исследований. Перцептрон или любая программа, имитирующая процесс распознавания, работают в двух режимах: в режиме обучения и в режиме распознавания. В режиме обучения некто (человек, машина, робот или природа), играющий роль учителя, предъявляет машине объекты и о каждом их них сообщает, к какому понятию (классу) он принадлежит. По этим данным строится решающее правило, являющееся, по существу, формальным описанием понятий. В режиме распознавания машине предъявляются новые объекты (вообще говоря, отличные от ранее предъявленных), и она должна их классифицировать, по возможности, правильно. Проблема обучения распознаванию тесно связана с другой интеллектуальной задачей — проблемой перевода с одного языка на другой, а также обучения машины языку. При достаточно формальной обработке и классификации основных грамматических правил и приемов пользования словарем можно создать вполне удовлетворительный алгоритм для перевода, скажем научного или делового текста. Для некоторых языков такие системы были созданы еще в конце 60-г. Однако для того, чтобы связно перевести достаточно большой разговорный текст, необходимо понимать его смысл. Работы над такими программами ведутся уже давно, но до полного успеха еще далеко. Имеются также программы, обеспечивающие диалог между человеком и машиной на урезанном естественном языке.

Что же касается моделирования логического


Что же касается моделирования логического мышления, то хорошей модельной задачей здесь может служить задача автоматизации доказательства теорем. Начиная с 1960 г., был разработан ряд программ, способных находить доказательства теорем в исчислении предикатов первого порядка. Эти программы обладают, по словам американского специалиста в области ИИ Дж. Маккатти, "здравым смыслом", т. е. способностью делать дедуктивные заключения. В программе К. Грина и др., реализующей вопросно-ответную систему, знания записываются на языке логики предикатов в виде набора аксиом, а вопросы, задаваемые машине, формулируются как подлежащие доказательству теоремы. Большой интерес представляет "интеллектуальная" программа американского математика Хао Ванга. Эта программа за 3 минуты работы IBM-704 вывела 220 относительно простых лемм и теорем из фундаментальной математической монографии, а затем за 8.5 мин выдала доказательства еще 130 более сложных теорем, часть их которых еще не была выведена математиками. Правда, до сих пор ни одна программа не вывела и не доказала ни одной теоремы, которая бы, что называется "позарез" была бы нужна математикам и была бы принципиально новой. Очень большим направлением систем ИИ является роботехника. В чем основное отличие интеллекта робота от интеллекта универсальных вычислительных машин? Для ответа на этот вопрос уместно вспомнить принадлежащее великому русскому физиологу И. М. Сеченову высказывание: "… все бесконечное разнообразие внешних проявлений мозговой деятельности сводится окончательно лишь к одному явлению — мышечному движению". Другими словами, вся интеллектуальная деятельность человека направлена в конечном счете на активное взаимодействие с внешним миром посредством движений. Точно так же элементы интеллекта робота служат прежде всего для организации его целенаправленных движений. В то же время основное назначение чисто компьютерных систем ИИ состоит в решении интеллектуальных задач, носящих абстрактный или вспомогательный характер, которые обычно не связаны ни с восприятием окружающей среды с помощью искусственных органов чувств, ни с организацией движений исполнительных механизмов. Первых роботов трудно назвать интеллектуальными. Только в 60-х годах появились очуствленные роботы, которые управлялись универсальными компьютерами. К примеру в 1969 г. в Электротехнической лаборатории (Япония) началась разработка проекта "промышленный интеллектуальный робот". Цель этой разработки — создание очуствленного манипуляционного робота с элементами искусственного интеллекта для выполнения сборочно-монтажных работ с визуальным контролем.

Манипулятор робота имеет шесть степеней


Манипулятор робота имеет шесть степеней свободы и управляется мини-ЭВМ NEAC-3100 (объем оперативной памяти 32000 слов, объем внешней памяти на магнитных дисках 273000 слов), формирующей требуемое программное движение, которое отрабатывается следящей электрогидравлической системой. Схват манипулятора оснащен тактильными датчиками. В качестве системы зрительного восприятия используются две телевизионные камеры, снабженные красно-зелено-синими фильтрами для распознавания цвета предметов. Поле зрения телевизионной камеры разбито на 64*64 ячеек. В результате обработки полученной информации грубо определяется область, занимаемая интересующим робота предметом. Далее, с целью детального изучения этого предмета выявленная область вновь делится на 4096 ячеек. В том случае, когда предмет не помещается в выбранное "окошко", оно автоматически перемещается, подобно тому, как человек скользит взглядом по предмету. Робот Электротехнической лаборатории был способен распознавать простые предметы, ограниченные плоскостями и цилиндрическими поверхностями при специальном освещении. Стоимость данного экспериментального образца составляла примерно 400000 долларов. Постепенно характеристики роботов монотонно улучшались, Но до сих пор они еще далеки по понятливости от человека, хотя некоторые операции уже выполняют на уровне лучших жонглеров. К примеру удерживают на лезвии ножа шарик от настольного тенниса. Еще пожалуй здесь можно выделить работы киевского Института кибернетики, где под руководством Н. М. Амосова и В. М. Глушкова (ныне покойного) ведется комплекс исследований, направленных на разработку элементов интеллекта роботов. Особое внимание в этих исследованиях уделяется проблемам распознавания изображений и речи, логического вывода (автоматического доказательства теорем) и управления с помощью нейроподобных сетей. К примеру можно рассмотреть созданный еще в 70-х годах макет транспортного автономного интегрального робота (ТАИР). Конструктивно ТАИР представляет собой трехколесное шасси, на котором смонтирована сенсорная система и блок управления. Сенсорная система включает в себя следующие средства очуствления: оптический дальномер, навигационная система с двумя радиомаяками и компасом, контактные датчики, датчики углов наклона тележки, таймер и др. И особенность, которая отличает ТАИР от многих других систем, созданных у нас и за рубежом, это то, что в его составе нет компьютера в том виде, к которому мы привыкли. Основу системы управления составляет бортовая нейроподобная сеть, на которой реализуются различные алгоритмы обработки сенсорной информации, планирования поведения и управления движением робота.

В конце данного очень краткого


В конце данного очень краткого обзора рассмотрим примеры крупномасштабных экспертных систем. MICIN — экспертная система для медицинской диагностики. Разработана группой по инфекционным заболеваниям Стенфордского университета. Ставит соответствующий диагноз, исходя из представленных ей симптомов, и рекомендует курс медикаментозного лечения любой из диагностированных инфекций. База данных состоит из 450 правил. PUFF — анализ нарушения дыхания. Данная система представляет собой MICIN, из которой удалили данные по инфекциям и вставили данные о легочных заболеваниях. DENDRAL — распознавание химических структур. Данная система старейшая, из имеющих звание экспертных. Первые версии данной системы появились еще в 1965 году во все том же Стенфордском университете. Пользователь дает системе DENDRAL некоторую информацию о веществе, а также данные спектрометрии (инфракрасной, ядерного магнитного резонанса и масс спектрометрии), и та в свою очередь выдает диагноз в виде соответствующей химической структуры. PROSPECTOR — экспертная система, созданная для содействия поиску коммерчески оправданных месторождений полезных ископаемых.

Окно Главного меню дает Вам


Окно Главного меню Окно Главного меню дает Вам возможность использовать NeuroShell 2 тремя различными способами: как Систему для начинающего, как Систему для профессионала, или как Систему автономного использования. Все три системы состоят из подпрограмм, называемых "модулями", и каждый модуль представлен значком. Большинству пользователей следует начинать с Системы для начинающего. Для вызова какого-либо модуля щелкните дважды левой кнопкой мыши по значку, представляющему этот модуль. Для получения справки по использованию модуля щелкните по значку один раз и затем выберите пункт Контекст из меню Справка. Система для начинающего Когда на экране появляется группа значков, правильный порядок работы с ними - слева направо. Если значки расположены в столбец, работайте сверху вниз. Заметим, что для создания работающего приложения на основе нейронной сети Вам могут понадобиться не все появляющиеся на экране значки. Многие модули могут быть пропущены - это зависит от типа создаваемого Вами приложения. Система для профессионала Пункты главного меню NeuroShell 2 предлагает несколько пунктов главного меню, которые позволяют Вам работать с файлами в рамках NeuroShell 2 и с внешними программами. Меню Файл: Новая задача: Позволяет Вам начать решение новой задачи в NeuroShell 2, вводя имя задачи или имя файла с описанием задачи (.DSC). Открыть задачу: Позволяет Вам выбрать существующую задачу, выбрав соответствующий файл описания. Вы можете выбрать файл или ввести его имя. Если Вы вводите имя, вводить расширение .DSC не требуется. Сохранить задачу: Сохраняет файл описания для текущей задачи под тем же именем, которое Вы ввели при создании задачи. Сохранить задачу как: Сохраняет файл описания для текущей задачи под новым именем, которое Вы вводите. Вам будет предоставлена возможность перекопировать все другие файлы в существующей задаче, давая им это новое имя.

Этот пункт позволяет Вам выбрать


Передать информацию в другую задачу: Этот пункт позволяет Вам выбрать некоторые или все файлы текущей задачи NeuroShell 2 и передать их в другую задачу. Эта возможность оказывается полезной, когда Вы желаете создать приложение, похожее на текущую задачу, и хотите использовать существующие файлы, но с другим именем задачи. После выбора этого пункта меню на экране появляется список имеющихся файлов NeuroShell 2 для существующей задачи. В качестве задачи-источника по умолчанию будет выбрана текущая задача. Для изменения имени задачи-источника воспользуйтесь меню Файл. С помощью меню Файл выберите имя задачи-приемника, той задачи, в которую Вы хотите передать файлы. Когда имена задачи-источника и задачи-приемника определены, Вы можете с помощью мыши выбрать имена файлов, которые Вы хотите передать в новую задачу. Имена файлов новой задачи будут показаны на экране. Воспользуйтесь меню Передача, чтобы начать создание файлов новой задачи. Для остановки этого процесса воспользуйтесь пунктом этого меню Прервать передачу. Меню Правка: Это меню позволяет Вам Вырезать, Копировать или Восстановить данные в текстовом поле правки, отображающем описание задачи. Меню Средства: Выполнить внешнюю программу: Вы можете захотеть использовать внешнюю программу, например, чтобы генерировать данные для использования в NeuroShell 2. Этот пункт позволяет "выйти в оболочку" для запуска другой программы по Вашему выбору. Печатать, просматривать или править внутренние файлы NeuroShell 2: Эти пункты меню вызывают использование модулей NeuroShell 2 для печати, просмотра или редактирования. Править внутренний файл в Excel, Quattro Pro или 1-2-3: Выбор любого из этих пунктов вызовет запуск выбранной программы и загрузку в нее файла NeuroShell 2. Файлы данных NeuroShell 2 (и некоторые другие внутренние файлы) записаны в формате электронной таблицы и могут загружаться любой обычной программой электронных таблиц. (За подробностями обратитесь к разделу Файлы NeuroShell 2.) Править текстовый файл в Блокноте: Это способ быстрого просмотра текстового файла. Воспользуйтесь им, например, для просмотра текстовых файлов, которые Вы собираетесь импортировать, или которые Вы экспортировали.

Воспользуйтесь этим пунктом меню, чтобы


Приписать внутренние файлы: Воспользуйтесь этим пунктом меню, чтобы объединить или "склеить" два файла вместе. Вы можете захотеть воспользоваться этой возможностью, чтобы создать единый файл, содержащий тренировочные примеры для сети (.PAT-файл) и предсказания или результаты классификации сети (.OUT-файл). Этот пункт можно также использовать для добавления новых примеров к тренировочному набору. Удалить файл: Воспользуйтесь этим пунктом меню, чтобы стереть файл. Переименовать файл: Воспользуйтесь этим пунктом меню, чтобы изменить имя файла. Вызвать Диспетчер Файлов: Воспользуйтесь этим пунктом меню, чтобы запустить Диспетчер Файлов Windows. Восстановить резервный файл данных: Прежде чем модули NeuroShell 2 Кодирование символов и Правила начнут обработку файла, создается резервная копия этого файла с расширением .OLD. Этот пункт меню позволяет восстановить исходный файл, если Вам не понравятся результаты его обработки модулями Кодирование символов или Правила. Меню Установки Свернуть, если новый модуль: В этом режиме существующие окна будут автоматически сворачиваться при двойном щелчке по значку для вызова нового модуля. Эта и другие установки данного меню при выходе из NeuroShell 2 сохраняются автоматически. Установить цвет фона: Этот пункт меню позволяет Вам выбрать другой цвет фона для окон модулей NeuroShell 2. На экране появится окно выбора цвета, которое позволит Вам либо выбрать один из базовых цветов, щелкнув по соответствующему цветному квадрату, либо задать новый цвет, щелкнув по кнопке Определение цветов и воспользовавшись мышью для перемещения по окну цветового спектра. Эта и другие установки данного меню при выходе из NeuroShell 2 сохраняются автоматически.

Этот пункт меню позволяет Вам


Выбрать электронную таблицу: Этот пункт меню позволяет Вам установить в качестве механизма ввода данных в NeuroShell 2 Вашу собственную программу электронных таблиц вместо модуля Таблица NeuroShell 2. Когда Вы выбираете этот пункт меню, появляется окно, в котором Вы выбираете каталог и .EXE-файл Вашей программы электронных таблиц. Если Вы решите пользоваться своей собственной программой электронных таблиц, Вам нужно будет сохранять файл данных в формате .WK1 или .XLS. Если в Вашем файле есть строки с названиями, которые Вы хотите использовать в качестве имен переменных в NeuroShell 2, Вам понадобится создать два имени интервалов. За подробностями обратитесь к разделу Формат электронных таблиц. Если Вы будете использовать модуль Таблица NeuroShell 2, имена интервалов будут созданы автоматически. Замечание: Таблица была создана для работы только с небольшими файлами, и для больших файлов ее работа замедляется и становится менее эффективной. Если Вы работаете с большими файлами, мы предлагаем Вам использовать Вашу обычную программу электронных таблиц. Режим тренировки (только для компьютеров, работающих под Windows 98 или NT): Если Вы используете Windows 98 или Windows NT, Вы можете щелчком по соответствующему пункту меню выбрать, в 16- или в 32-битовом режиме тренировать Ваши сети. Скорость тренировки в 32-битовом режиме зависит от того, используете ли Вы Windows 98 или Windows NT. Если Вы работаете под Windows 3.1, Вы можете тренировать сети только в 16-битовом режиме, и этот пункт меню не отображается.

создающие финансовые приложения или решающие


Переменные для рыночных предсказаний Пользователи, создающие финансовые приложения или решающие другие задачи с временными зависимостями, могут в дополнение к исходным данным о курсах использовать фундаментальные индикаторы, такие, как процентные ставки, цены на золото и т.д. Может также оказаться полезным создание дополнительных входных переменных из уже имеющихся исходных данных, таких, как задержанные или усредненные исходные данные. За более подробной информацией обращайтесь к разделу Советы по использованию, Предсказание рынка. Дополнение к NeuroShell 2, пакет Рыночных индикаторов, легко создаст для Вас эти дополнительные переменные. Принимая решение о входных переменных, обычно лучше включить лишние переменные, чем недостаточное их количество. Включайте все переменные, которые кажется разумным включить, поскольку нейронные сети в состоянии обнаруживать неуловимые различия в данных, которые не в состоянии распознать даже наш мозг. Если какая-либо переменная не влияет на выход, нейронная сеть научится игнорировать ее.

Часто использование случайного порядка предъявления


Г. Изменение порядка предъявления примеров Часто использование случайного порядка предъявления примеров дает сети возможность найти состояния с более низким значением средней ошибки, что свидетельствует о том, что найдены лучшие решения. Однако в процессе обучения сеть сильнее осциллирует. В других ситуациях медленное, но устойчиво прогрессирующее обучение с поочередным предъявлением оказывается наилучшим. Д. Увеличение или уменьшение параметра сглаживания Для сетей НСОР и ВНС Вы, возможно, получите лучшие результаты путем увеличения или уменьшения параметра сглаживания при применении сети. Для автоматического вычисления наилучшего параметра сглаживания Вы можете использовать Калибровку. За подробностями обращайтесь к разделам Обучение НСОР и Обучение ВНС. Е. Изменение Ваших переменных Наиболее вероятной причиной, по которой Ваша сеть может не давать хороших результатов, является тот факт, что Ваши переменные выбраны неверно или предъявляются сети не в самом удачном виде. В примере с предсказанием фондового рынка мы могли пропустить какую-нибудь отлично работающую техническую переменную. Пакет Рыночных индикаторов предоставляет богатый выбор и даже позволяет делать индикаторы из индикаторов. Вы можете захотеть добавить какие-либо существенные переменные, или даже какие-либо чисто субъективные переменные, отражающие "ощущение рынка". Даже Ваша личная оценка новостей дня может стать еще одной переменной, которую Вы можете использовать. Возможно, у Вас есть Ваши собственные индикаторы, или Вы хотите использовать что-либо из других программ. NeuroShell 2 может стоять на плечах гигантов и использовать для предсказаний даже мнения других экспертов. Вы можете использовать модуль Графики зависимостей для определения входных переменных, соответствующих трендам того, что Вы пытаетесь предсказать (например, в системе для предсказаний на фондовом рынке), или искать корреляции с использованием Корреляционной точечной диаграммы. Ж. Размер сети Если сеть обучается слишком долго, Вам, возможно, стоит подумать о разбиении задачи на более мелкие задачи, так, чтобы решением каждой мелкой части исходной задачи занималась отдельная сеть.