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

Нейрокомпьютер, или Аналоговый ренессанс

Прежде мне не довелось узнать, как сильно действуют на авторов читательские письма. В ответ на научные публикации обычно получаешь лишь открытки с просьбой прислать оттиски, и не известно, чем же привлекла читателя твоя статья: то ли очень нужна для работы, то ли пригодится для коллекции курьезов... Иное дело — публикация в журнале «Мир ПК». Первые же письма, полученные в ответ на нашу статью («Новая игрушка человечества», авторы А. Н. Горбань, В. И. Фридман, «Мир ПК», № 9/93, с. 111.), сильно порадовали, а когда их число перевалило за сотню, стало ясно: тема вызвала интерес, информации явно не хватает и необходимо ответить хотя бы на часть вопросов.

Заранее прошу у читателей прощения — на все вопросы я ответить не смогу: что-то не сумею популярно и коротко объяснить, а некоторых ответов просто не знаю.

Игрушка ли нейрокомпьютер?

Это часто скорее не вопрос, а крик души: «Нейрокомпьютеры — не игрушка! Они находят серьезное применение — неужели вы не знаете?!»

Знаю и готов перечислить наиболее важные и типичные области их использования.

Управление в реальном времени:

  • самолетами и ракетами,
  • технологическими процессами непрерывного производства (металлургического, химического и др.).

Распознавание образов:

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

Прогнозы:

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

Оптимизация — поиск наилучших вариантов:

  • при конструировании технических устройств,
  • при выборе экономической стратегии,
  • при подборе команды (от сотрудников предприятия до спортсменов и участников полярных экспедиций),
  • при лечении больного.

Обработка сигналов при наличии больших шумов.

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

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

В чем истинные преимущества нейрокомпьютеров?

Верный своему подходу (нейрокомпьютер — игрушка), я могу ответить так: давайте поиграем, а там видно будет; ведь не сразу же мы узнали, к чему приведет распространение персональных компьютеров. Однако... Так-то оно так, но все же кое-что можно определить тут же (миллиард нейронов в нашей голове тоже иногда способен предсказывать!).

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

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

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

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

Попробуем разобраться по порядку.

В каких областях преимущества нейронных систем наиболее очевидны?

Поясню этот вопрос. Самообучающиеся системы известны давно. Теория адаптивных регуляторов хорошо разработана, они широко применяются в технике. Зачем, казалось бы, огород городить: называть старые вещи новыми именами, добавляя «всего-навсего» лишние ограничения — специальную «нейроподобную» структуру?

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

Если же нас интересует производительность вычислительных машин, то в этом контексте нейронная структура становится чрезвычайно важной. Хорошо известна гипотеза Минского[1]: реальная производительность параллельной системы из n процессоров растет как lg n (т. е. производительность системы из 100 процессоров выше производительности 10-процессорной системы всего вдвое: процессоры дольше ждут своей очереди, чем собственно вычисляют). Однако если вы сконструировали для решения задачи нейронную сеть, то параллелизм может быть использован практически полностью — и производительность растет почти пропорционально n (числу нейронов в сети).

Традиционная схема формального нейрона изображена на рисунке.

Сумматор Е получает скалярное произведение вектора входных сигналов на вектор весовых коэффициентов {ai} и передает полученный сигнал А нелинейному преобразователю, который вычисляет f(А) и передает этот сигнал дальше — на выход или, через точку ветвления, другим нейронам. Конкретный вид функции f не очень важен (можно использовать и sin, и многочлены). В наших программах обычно f(А) = A/(const+|A|).

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

Задача реализации нейронной сети на параллельной вычислительной системе намного проще, чем задача «распараллеливания» произвольного алгоритма. Главное преимущество нейронных сетей в том, что они хорошо приспособлены для параллельных вычислений, успешно опровергая гипотезу Минского (это их маленькая месть пессимисту).

Избыточность — это хорошо или плохо?

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

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

Во-вторых, увеличение избыточности нейронной системы повышает ее надежность. Приведу пример. Обучаю нейроимитатор EYE (10 нейронов, 100 связей) распознавать четыре японских иероглифа (солнце, собака, мужчина, женщина). Весовые коэффициенты связей распределились в установленных пределах: от -1 до 1. Добавляю к весовым коэффициентам связей случайные числа, равномерно распределенные между -0,1 и 0,1. Распознавание нарушилось. Доучиваю сеть и снова добавляю случайные возмущения — пока не появятся ошибки, потом снова доучиваю и т. д. Через несколько циклов устойчивость сети к возмущениям становится фантастической, даже подозрительно фантастической — если человек впервые наблюдает этот эффект, ему хочется проверить: а нет ли здесь какого-нибудь надувательства? Но нет, все чисто, а сеть выдерживает случайные возмущения весовых коэффициентов связей до 50-80%, и это — благодаря избыточности.

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

Вспомним АВМ — аналоговые вычислительные машины. Точность у них была небольшая, зато быстродействие отменное, и параллелизм достигался высокий. Да и возраст у них почтенный — еще в 1876 году (да-да, одна тысяча восемьсот... — это не опечатка) в трудах Королевского Научного общества Томпсоном были описаны параллельные аналоговые системы с обратной связью.

Старые АВМ были неуниверсальны — они умели решать только дифференциальные уравнения, да и то не любые, а лишь те, для которых удавалось собрать систему интеграторов. А что если на аналоговых элементах реализовать нейронные сети? Универсальность и устойчивость к ошибкам обеспечит нейросетевая технология, а быстродействием эти элементы уже обладают. Кроме того, они очень дешевы. Почему бы не попробовать? Люди и попробовали. В Японии и России, в США и Бразилии и много еще где. Результаты вдохновляют. Быстродействие аналоговых нейронных сетей лимитируется лишь скоростью света. Нейронные сети обычно решают задачи за несколько тактов, поэтому в целом решение даже сложных задач обученной сетью занимает малое время — наносекунды. А это уже — новые горизонты технологии.

Какие задачи под силу только нейрокомпьютеру?

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

Успехи человечества в удержании термоядерной плазмы пока невелики. Элементарные возбуждения (неустойчивости) развиваются за несколько наносекунд, а за микросекунды — приводят к убеганию плазменного шнура от системы регулирования (да простят мне специалисты столь поверхностное изложение сложной проблемы.) Число степеней свободы возможных неустойчивостей очень велико, и пока не удается сконструировать физический авторегулятор, который смог бы их подавить. Возникает вопрос: а нельзя ли сделать это кибернетическим путем? Представьте себе: характерное время вашей реакции — наносекунда, а руки не боятся плазменных температур. Смогли бы вы удержать плазму?

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

Чем занимается НейроКомп?

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

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

Исследования по нейроинформатике начались в Красноярске с открытия В. А. Охониным (Институт биофизики СО РАН) принципа двойственности для обучения нейронных сетей (опубликовано в 1986 г.)[2]. Описание этого принципа заслуживает отдельной статьи. Если же говорить коротко, то его суть состоит в следующем. При обучении нейронной сети необходимо вычислять поправки к ее параметрам — весовым коэффициентам связей. Фактически решается задача оптимизации в пространстве очень большой размерности. Эта размерность долго была проклятием для разработчиков: нетрудно реализовать нейронную сеть так, чтобы все нейроны работали параллельно, однако для ее обучения приходится использовать другие системы и решать задачу оптимизации обычным — очень длительным — путем. Принцип двойственности позволяет вычислять поправки к параметрам с помощью той же системы связей, но имеющей обратную ориентацию (сигналы меняют направление движения). Если к возможностям нейронной сети добавить двойственное функционирование (с обращением движения сигнала и некоторыми другими дополнениями), то нейронная сеть начинает сама себя учить!

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

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

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

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

Интересной оказалась работа с политическими предсказаниями. Мы набрались смелости и опубликовали прогноз последних президентских выборов в США до их проведения. Логика этого поступка проста: если мы предлагаем нейросетевых советчиков врачам, то должны доверить и свою репутацию нейропредсказателю. Наш прогноз оправдался: выбрали Клинтона.

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

Что читать? (очень важный вопрос!)

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

Отечественная литература

  1. Вавилов Е. И. и др. Синтез схем на пороговых элементах. — М.: Советское радио, 1970.
  2. Веденов А. А. Моделирование элементов мышления. — М.: Наука, 1988.
  3. Галушкин А. И. Синтез многослойных схем распознавания образов. — М.: Энергия, 1974.
  4. Горбань А. Н. Обучение нейронных сетей. — М.: СП «ПараГраф», 1990.
  5. Гутчин И. Б., Кузичев А. С. Бионика и надежность. — М.: Наука, 1967.
  6. Дискуссия о нейрокомпьютерах / Под ред. В. И. Крюкова. — Пущино, 1988.
  7. Дунин-Барковский В. Л. Информационные процессы в нейронных структурах. — М.: Наука, 1978.
  8. Ивахненко А. Г. Персептроны. — Клев: Наукова думка, 1974.
  9. Итоги науки и техники: Сер. «Физ. и матем. модели нейронных сетей» / Под ред. А. А. Веденова. Т. 1-5. 1990-1992.
  10. Крайзмер Л. П. и др. Память кибернетических систем. — М.: Советское радио, 1971.
  11. Мкртчян С. О. Проектирование логических устройств ЭВМ на нейронных элементах. — М.: Энергия, 1977.
  12. Позин И. В. Моделирование нейронных структур. — М.: Наука, 1970.
  13. Степанян А. А., Архангельский С. В. Построение логических схем на пороговых элементах. — Куйбышевское книжное изд-во, 1967.
  14. Транспьютерные и нейронные ЭВМ / Под ред. В. К. Левина и А. И. Галушкина. — Российский дом знаний, 1992.
  15. Фролов А. А., Муравьев И. П. Информационные характеристики нейронных сетей. — М.: Наука, 1988.
  16. Фролов А. А., Муравьев И. П. Нейронные модели ассоциативной памяти. — М.: Наука, 1987.
  17. Цыганков В. Д. Нейрокомпьютер и его применение. — М.: «Сол Систем», 1993.

Зарубежная литература

  1. Дертоузос М. Пороговая логика. — М.: Мир, 1967.
  2. Кохонен Т. Ассоциативная память. — М.: Мир, 1980.
  3. Кохонен Т. Ассоциативные запоминающие устройства. — М.: Мир, 1982.
  4. Минский М., Пайперт С. Персептроны. — М.: Мир, 1971.
  5. Нильсен Н. Обучающиеся машины. — М.: Мир, 1967.
  6. Розенблатт Ф. Принципы нейродинамики. — М.: Мир, 1964.
  7. Уоссермен Ф. Нейрокомпьютерная техника. — М.: Мир, 1992.

Начал выходить журнал «Нейрокомпьютер». Адрес для переписки с редакцией: 107078, Москва, а/я 133; тел.: (095) 154-01-51.

Вот, собственно, и все, о чем я хотел сказать в этой статье. Спасибо за письма. Пишите, приезжайте на семинар. Наш адрес: 660036, Красноярск-36, ВЦ СО РАН, НейроКомп.

Примечания

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

2. Одновременно и независимо сообщение о частном случае принципа двойственности было опубликовано американскими исследователями и он стал известен под названием «обратное распространение ошибки».

Об авторе: Александр Николаевич Горбань — докт. физ. -мат. наук, профессор, заведующий кафедрой НейроЭВМ Красноярского государственного технического университета, заведующий лабораторией ВЦ СО РАН.

Статья опубликована в журнале «Мир ПК» № 10, 1994 г., стр. 126.
Перепечатывается с разрешения автора.