Нейросимуляция

VAN

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

 

Многочисленные золотоискатели, отправившиеся на поиски нейросетевого счастья лет 10 с лишним тому назад, быстро смекнули, на чем надо делать деньги. Зачем самому искать золото, когда постоянно прут свеженькие толпы страждущих, но без инструментов и знаний? Гораздо проще продавать все новые и новые инструменты и чуть-чуть собственного опыта! Сегодня рынок программного обеспечения представлен нейросимуляторами на любой вкус и цвет. Вот и списочек (спасибо добрым людям) имеется без претензий на полноту [1].

Распространяемые как условно бесплатные (shareware) продукты не в почете у маститых нейро-заводчиков, а бесплатные самоделки, щедро выложенные на университетских сайтах, частенько работают через пень колоду и имеют жалкое подобие пользовательского интерфейса. Студенты и аспиранты, защитившись, с легким сердцем дарят миру свои первые инструменты, изначально предназначенные для быстрого решения одной задачки исключительно самим автором. В отличие от вышеупомянутых могуч и универсален Штутгартовский симулятор под UNIX, к которому приложили руку и профессионалы. Толковый нейросимулятор легко приспособить для решения практических задач на персональном компьютере, когда нет необходимости производить вычисления как можно быстрее. Вообще-то, нейронные сети (далее по тексту НС) только при обучении прожорливы на вычислительные ресурсы, а обученные работают очень шустро. Тем не менее, существуют симуляторы, поддерживающие нейроускорители - пока дороговатые платы с процессорами цифровой обработки сигналов (DSP), вставляемые в ISA/PCI слоты. Признак добротного симулятора: подробное описание по применению с вводным курсом в теорию НС, плюс техническая поддержка. Чем совершеннее симулятор, тем все услуги дороже. Самые продвинутые симуляторы позволяют конструировать НС с экзотическими архитектурами и применять алгоритмы обучения, разработанные пользователем, а так же обеспечивают мощное графическое отображение поведения НС при обучении (важно!) и, наконец, если верить рекламе, генерируют исходный код на Си++. У "продвинутых", как и следовало ожидать, единственный недостаток - заоблачная цена.

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

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

Неужели преимущества нейросетей перед традиционно используемыми устройствами и алгоритмами столь сильны, что весьма немалые затраты с лихвой окупаются? Или "шум" вокруг нейросетей это просто очередной способ выманивания денег под вуалью радужных перспектив новой эры "интеллектуализации"? Честный ответ будет кратким: И то и другое имеет место, причем трудно сказать, чего больше! Все зависит от того, с кем поведешься. Вокруг любого живого дела толкутся прихлебатели и паразиты. Так что избегайте случайных связей и не покупайтесь на клятвенные заверения мигом "горы свернуть".

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

NeuralWorks Pro II/Plus (Aspen Technology, Inc., www.neuralware.com)

Цена от 1995 до 4995 $ в зависимости от платформы (Dos, Windows, NT, Sun, RS6000, SGI) плюс 1,500 - 3,000 $ за консультации, обучение и поддержку. Судя по описанию, один из самых крутых. Все известные типы нейросетей и алгоритмов обучения, включая разрабатываемые пользователем с использованием средств симулятора. Обеспечивается автоматическая оптимизация спрятанного слоя нейронов. Графическое отображение функционирования нейросетей и средства диагностики. Профессиональный вариант (9995 - 14995 $), выполненный в виде специализированной среды разработки, позволяет генерировать исходный Си код и использовать программирование на Си, т.е. разрабатывать любые новые нейросети, а так же включает дополнительные пакеты для применений в реальном времени в совокупности с нечеткой логикой и генетическими алгоритмами. К сожалению, демо версии не доступны из Интернета. Про стоимость и говорить нечего, "по нашему - это шок". Эх, "хороша Маша, да не наша".

NeuroSolution (NeuroDimension, Inc., www.nd.com)

Цена версий как для Windows так и для других систем зависит от уровня. Первый уровень (Educator) 195$ - освоение MLP нейросетей. Второй уровень (Users) 495 $ - рапознавание статических образов. Третий уровень (Consultants) 995$ - распознавание динамических образов и предсказание. Четвертый уровень (Professional) 1495$ - генерация Visual Basic кода для применения в своем программном обеспечении. Пятый уровень (Developers) 1995$ - якобы включает исходные библиотеки на Си++. Лицензия для коммерческого использования созданных продуктов - еще 1995$. Дополнительная программа (195 - 1495$ в зависимости от уровня) генерирует DLL библиотеки нейросетей, созданных в NeuroSolution. Удовольствие работать непосредственно из Exel обойдется ко всему прочему в 195$. Приятный сюрприз: из Интернета можно скачать (около 11 Mб) ознакомительную версию и одну главу из "электронной" книги по применению НС (вся книга - 30 $).

Широкий набор типов нейросетей (MultyLayerPerceptron, модульные MLP, симбиоз IIR фильтров с MLP, гибридные нейросети, нейросети анализа главных компонент - PCA, адаптивный фильтр, нейросети с обратными связями, Кохонен, LVQ и т.д.). Наборчик алгоритмов обучения не огорчает: BPE, Momentum, QuickProp а так же Sanger и Oja для PCA. Общее количество весовых коэффициентов - до 1000000. Симулятор достаточно легок в освоении, хорошая помощь, прекрасный графический интерфейс. Последний, правда, несколько перегружен украшениями, но выглядит под стать дорогой новогодней елке, задорно подмигивающей огоньками. Принцип работы с этим нейросимулятором сродни конструктору Lego. Создать НС можно 4-мя путями. Так называемый "волшебник" (wizard) очень полезен для начинающих, по ходу дела будет выводить на экран много полезной информации о выбранной НС и окажет реальную помощь по созданию нейросети с запланированной архитектурой. Другой путь - модифицировать прилагаемые демо макросы. Третий путь - модифицировать макеты нейросети из электронного руководства. Наконец, можно собирать (макетировать) НС "ручками", используя меню и пиктограмки.

Чтобы осуществить ввод данных (форматы: ASCII, двоичный, BitMap) достаточно подцепить картинку (объект) ввода к картинке (объекту) входа нейросети и, щелкнув правой кнопкой мыши, сделать необходимые настроечки в свойствах объекта ввода. Из приятных мелочей следует отметить объекты вычисления FFT (до 4096 точек) и генератора сигналов (синус, 2 пилы, прямоугольник). Объекты различной индикации и графиков можно наплодить по своему усмотрению и наблюдать за поведением любого выхода в процессе обучения (см. рис.1). Причем программа сама подсказывает всплывающим мастерком-штампиком к какому из существующих объектов макета допускается подцепить новый объект.

Рис.1

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

Симулятору далеко до hi-end, но на приличный hi-fi тянет. Рекомендовать его российским пользователям совесть не позволяет, больно цена кусается, но решившимся на первые серьезные шаги с целью быстрого применения разных нейросетей на практике это ПО стоит взять на заметку.

MatLab + Neural Network Toolbox (MathWorks, Inc., www.mathworks.com)

Основные преимущества: "все в одном ..." (для цивилизованных странн) и "горбушечная" псевдо-доступность (для России). При покупке цивилизованным способом за каждый компонент этого "флакончика" пришлось бы отваливать немалые деньги: за один нейросетевой "тулбокс" - под 2000$, и за сам MatLab под 3500$. Для образовательных заведений подешевле будет, может кто и сподобится. Данный ПО имеет тяжелое наследство, доставшееся от предыдущих версий: командно-строковый интерфейс, украшенный "виндовым" обрамлением. Запомнить все функции и их параметры - все равно что выучить от корки до корки новый язык. Положительные качества "языка" MatLab начинают ощущаться по мере терпеливого освоения этого языка.

Набор типов нейросетей стандартен. В версии 3.0 появилась возможность гибкого конструирования НС, а так же были добавлены вероятностные и регрессионные нейросети. Несколько веселее с алгоритмами обучения: современный джентльменский набор и упомянутый выше LM личной персоной.

Предусмотрен демонстрационный режим, воспользовавшись которым заценим как работает пресловутая НС с обратными связями (Elman). Здесь нейросеть должна предсказать периодические прямоугольные импульсы. На первый взгляд задачка никчемная, но служит хорошей проверкой на работоспособность НС подобной архитектуры. Не меняя настроечки, загружаю готовый "матлабовский" файл, и обучение начинается. За изменением ошибки можно наблюдать в отдельном окне прямо по ходу обучения. Согласно замыслу авторов демонстрашки, ошибка должна достичь величины 0.01. После предусмотренных 500-ста повторов ошибка опустилась только до 1.00 (см. рис. 2). Сколько не бился, начиная обучение заново, желаемого результата не последовало, зато выдавалось сообщение: пытайтесь продолжить обучение или добавить спрятанных нейронов. Других подсказок не видать. Да-а, демо режим сделан с чувством юмора. Фирма настолько уверена в своей могущественности, что не сподобилась выставить товар во всей красе.

Рис.2

Настораживает заявление фирмы, что количество нейронов и весовых коэффициентов - не ограничено. И это при 16 Мб минимально требуемой памяти, если верить описанию. Сколько на самом деле понадобится памяти, чтобы компьютер не впадал в прострацию, например для нейросети с таким то и таким то числом нейронов и весов, фирма скромно умалчивает. Молчание не есть золото в этом случае. Запавшим на "матлабовские" прелести и желающим не ограничиваться школьными задачками советую основательно запастись памятью. 128 мегобайт для него - семечки.

MatLab чрезвычайно распространен в университетах США. Кто подумывает срулить туда на "постдок", тот просто обязан загодя хорошо овладеть данным инструментом.

BrainMaker (California Scientific Software, Inc., www.calsci.com)

Цена в Штатах от 195 для обычной версии до 795$ для профессиональной (95/98/NT/2000). Реализована только MLP нейросеть: до 512 нейронов в каждом слое, до 8 слоев, до 32К весов между слоями нейронов. В профессиональной версии: до 32К нейронов при якобы неограниченном количестве весов. Обеспечивается работа с форматами: Excel, Lotus, dBase, ASCII, binary. В профи версии добавлены "финансовые" форматы (CompuTrack, MetaStock, CSI), а так же отображение тренда весов во времени, прунинг и генерация Си кода. Задействовано 32 битное ускорение вычислений за счет использования MMX команд. Поддерживаются нейросетевые платы-ускорители, в частности производства Adaptive Solutions, Inc. Любопытная деталь: фирма не предлагает модные алгоритмы ускорения обучения, делая ставку на аппаратное ускорение, благо дешевеющие в цене, но шустрые в векторно-матричных вычислениях DSP справляются с MLP отменно. Скромно, но со вкусом. Прямо в яблочко. Бьет рекорды по популярности благодаря грамотному маркетингу. Демо версии не доступны с калифорнийского сайта, зато фирма готова прислать свой продукт по почте хоть "к черту на рога" при оплате карточкой. В Москве частично русифицированный BrainMaker продвигается "ТОРА-Центр"ом за 795 у.е. (на май 2002). Кстати, в "Тора-Центр"е можно найти "сборник исходных текстов основных 20 нейронных сетей на языке С" всего лишь за 1500 у.е. Демонстрашка BrainMaker сделана в лучших традициях черно-белого кино (рис.3), поиграться можно только рэндомизацией весовых коэффициентов. Утверждение, что нейросетевой пакет Brain Maker завоевал симпатии российских финансистов, став идеальным "оружием" для "поражения целей" в условиях, максимально приближенных к "боевым", оставлю на совести фирмы. Замечу только, что классический по архитектуре MLP не является идеальным предсказателем в сравнении со специализированными нейросетями.

Рис.3

NeuroPro (Институт вычислительного моделирования СО РАН, tsar@ksc.krasn.ru )

Номер продегустированной версии символичен: 0.25. Помнится, в одной из веселых команд времен военно-патриотических слетов бойцы увлекались номерами (которыми с любовью украшали как свои майки-футболки, так и персональные палатки) из следующего ряда: 0.1, 0.25, 0.33, 0.5, 0.7, 1.0 и т.п. Версия с таким номером по умолчанию некоммерческая. Пока еще доступна по http://www.neuropower.de/ai/files/rusintf/neuropro.zip. Реализована лишь MLP нейросеть: до 10 слоев, до 100 нейронов в каждом слое. Судя по поведению при обучении на прилагаемых данных, действительно работает нейросеть, а не "мультяшка". Замечу, демо мультяшками не брезгуют завлекать клиента не только расплодившиеся ловкачи, но и крутые фирмы. Автор НейроПро избежал соблазна продемонстрировать псевдо феноменальные результаты. Интерфейс не балует графикой и сервисом (см. рис.4), за исключением отображения значимости входов. Назначение данного ПО: классификация и прогнозирование. Сначала надо ввести файл входных данных (форматы: dBase, FoxBase, FoxPro, Clipper, Paradox), после чего затруднений с освоением не должно возникнуть. Предусмотрено сокращение количества нейронов, весов и входов усилиями самой программы. Недостаток: нет прозрачности, как обеспечить соответствие входов (симптомов) желаемому отклику (синдромам). Есть и другие недостатки, но, как говориться, "что вы хотите"…

Рис.4

Её автор, Виктор Царегородцев, на недавний запрос о новых версиях ответил: "Последние несколько лет программа развивается только как инструмент для самого себя и как база для выполнения заказных проектов. Пользователям новые версии не раздаются ни платно, ни бесплатно."

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

Neuro Office'98 (АОЗТ "Альфа Систем", Санкт-Петербург)

Демо версия пакета со столь многообещающим названием все еще доступна по адресу: ftp://ftp.kiarchive.ru/pub/windows/programmer . Уникальность же кроется в возможности создания многослойной НС разветвленной архитектуры на усмотрение пользователя с обучением по правилу обратного распространения ошибок. Авторы называют такую НС с "ядерной организацией", хотя структурно организованная или блочная НС были бы более общеупотребительными терминами. Скорее всего, "ядерный" антураж был выбран из соображений маркетинга :)

В составе демо версии таятся 2 программы. Программа NeuroView+ предназначена для визуально-графического проектирования структурной модели и топологии нейронной сети. Утверждается, что размеры нейронной сети программно не ограничены. Другая программа, NeuroEmulator, предназначена для обучения и тестовых испытаний спроектированной нейросети, а также для редактирования "синаптической карты" и функций активации нейронов.

Рис.5

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

Главный недостаток. Поскольку каждую связь между нейронами приходится задавать вручную (см. рис.5), то соорудить большую НС очень тяжело, да и времени займет уйму. Вот если бы связи можно было тянуть (и копировать!) мышкой, как при создании рисунков в MS WinWord, а так же размножать связи на целые группы нейронов, то работа бы закипела.

Когда конструирование архитектуры закончится успешно, подтверждающего сообщения не последует. А жаль, если что то напортачил в NeuroView и пребываешь в невидении, то остается только удивляться, почему в NeuroEmulator ничего не удается сделать.

Загрузив созданный проект из NeuroEmulator, появится возможность инициализировать весовые коэффициенты, задать тип пороговой функции для каждого слоя, открыть файл входных данных (форматы Exel: CSV и BDT), предъявить эталоны на выходе и, наконец, приступить к обучению. Предусмотрена генерация тестовых входных данных (в частности, синус), но что именно предъявить для них на выходе в качестве эталона программа не подсказывает. Как раз в демо версии была бы очень уместна автоматическая загрузка всех данных, на которых демонстрировалась бы работа программы в режиме обучения. Чтобы "заценить" работоспособность самой нейросети, пришлось сочинять быстренько хоть какие то входные и эталонные данные

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

Рис.6

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

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

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

NeuralBench (версия 2.10демо, NeuarlBench Development - ВНИИГАЗ, www.neuralbench.ru )

"Нейро-верстак" является очень привлекательной программой, над которой с 1993 по 1997 год, чувствуется, старались от души. Демо версия сделана продуманно, есть несколько впечатляющих примеров (см. рис.7). Справка помощи изложена кратко, но толково, а на сайте разработчика теоретический раздел (был?) представлен достаточно подробно. В последней версии программы к MLP нейросети добавлена RBF, а так же появился помощник (wizard) по созданию нейросети. Жаль, что по-прежнему на "верстаке" можно работать только с данными в ASCII формате, но это "дело житейское". И все бы хорошо, однако на дворе 2002й год, т.е. прошло 5 лет после выпуска по многим признаком не заключительной версии. Последние пару лет не удается "достучаться" до сайта с вышеуказанным именем, и это наводит на очень грустные размышления. А не съехали ли наши кулибины в "Калифорнию, с Муриеттой, а с какою целью? С этой!"?

Но вернемся к демо версии, точнее, к тому, как она демонстрирует достижения нейрокомпьютинга. Беру готовый пример из прилагавшихся. Инициализирую весовые коээфициенты, проигнорировав вежливо-справедливое предупреждение программы о потере интеллекта у "примерной" НС, и запускаю на обучение, не изменив ни один из дозволенных параметров. Наблюдаю в отдельном окне (вызывается через Tools -> Instruments -> RMS Error) реалистичное уменьшение ошибки непосредственно в процессе обучения. В другом дополнительном окне посредством гистограммы можно наблюдать, как изменяется весовые коэффициенты. В третьем окне прорисовывается тренд во времени "корреляции теста" - весьма полезной для опытного глаза и интуитивно понятной для профи. Уже хотел петь дифирамбы, как бес попутал пообрабатывать не "учебные", а некие новые данные. Надо же как то выяснить, насколько эффективна работа обученной сети! И чтобы вы думали, в демо версии оказывается такого не предусмотрено! Обычный способ защиты демо версий от пиратства, когда в исходном листинге "убивается" сохранение весовых коэффициентов на диск. А тут шутить изволите "кино крутить"? Хо-о-роший способ продемонстрировать покупателю (причем, заморскому, судя по изысканному интерфейсу на bookish English) отсутствие каких-либо проблем у нейросетей!!!

Рис.7

NNet (бета версия, автор господин Урманов "и сотоварищи", скачать можно с http://ai.obninsk.org )

Сознательно не акцентирую внимание на "цветущем" банковско-коммерческом нейросетевом ПО, к которому приложили руку россияне, дабы не быть уличенным в корыстных побуждениях и "заказного" характера сей статьи. Одна из "высокотехнологичных" программ, не успевшая стать коммерческой, заслуживает отдельного внимания. К огромному сожалению, её автор (секущий в С++ бывший "простой советский" аспирант) ныне, защитив phD, живет и трудится в США, посему дальнейшая судьба оставленной на память программы покрыта мраком.

NNet выделяется среди общей массы оригинальным интерфейсом (см. рис. 8), который обеспечивает легкость освоения и удобство в работе, хорошей скоростью вычислений (полностью 32-х разрядная и многонитеевая) и грандиозными возможностями. Хотя в бета версии воплощена только MLP нейросеть, зато предусмотрено функционирование в 3-х режимах (аппроксимация, фильтрация и классификация), а главное, количество нейронов до 64к в каждом слое и до 4 миллиардов весов (нетрудно прикинуть, сколько оперативной памяти не помешает добавить, если один весовой коэффициент тянет на 8 байт)! Число слоев для обыкновенного MLP делать более 5 нет большой необходимости. Но зачем так много нейронов и весовых коэффициентов? Оказывается, есть задачки, для которых без внушительного запаса по количеству нейронов не обойтись. Алгоритмы обучения: BPE, Momentum и скрытый Scaled Conjugate Gradient. Формат файлов ввода/вывода данных - double (8 байт на число), общедоступный всем, кто способен запрограммировать пару операндов.

Рис.8

Программа позволяет запустить одновременно несколько проектов и проследить изменение ошибки и выхода нейросети в процессе обучения. При объеме памяти персонального компьютера в 32 Мб прекрасно работала с 3 Мб входных данных и нейросетью с тысячами нейронов.

Другие типы нейросетей (с обратными связями, комбинированные, анализа независимых компонент, слепого разделения сигналов) не были включены в бета версию программы. Насколько мне известно, изначально предполагалось назначить цену минимальной, а то и вовсе нулевой (для России), тогда как все консультации и советы по применению на практике сделать платными. Но планам не суждено было осуществиться, и теперь NNet служит немым укором российскому бардаку.

 

Краткое лирическое отступление

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

 

"Не видать Красной армии" ?

Еще лет с десяток-пяток назад производство отечественного нейросетевого программного и аппаратного обеспечения представляло собой девственную целину. Если что и делалось, то под покровом бетонированной секретности, или на голом энтузиазме. Несмотря на продолжающуюся колоссальную утечку мозгов (порой толковый народ улетучивался аж целыми лабораториями), ощутимые сдвиги налицо. На бескрайних просторах горемыки России то там то тут упорно пробиваются нейросетевые ростки. Многим суждено зачахнуть, не добившись коммерческого успеха, т.к. большинство наших потенциальных потребителей-заказчиков либо не созрели для внедрения НС, либо сидят с пустыми карманами. Прорваться на внешний рынок архисложно, в первую очередь по причине неумолимо нарастающего отставания из-за смешного соотношения вкладываемых средств. Другая причина кроется в близости НС к двойным технологиям, тут при желании за уши притянуть можно что угодно (интересно, на камбузе подлодки кастрюли обычные или секретные?). Поэтому чтобы легально работать на забугорье, надо постоянно преодолевать тернии ада чиновничьих препонов, нагромождаемых с каждым годом с удивительной проворностью. Наконец, третья причина состоит в переманивании, прежде всего заокеанскими заправилами, наиболее способных "нейрокомпьютерщиков", которым ничего не остается, как собирать чемоданы, поломав зубы о чиновничьи пики, озверев от безденежья и впав в тоску от ощущения ненужности в своей отчизне.

Существующий в Москве Научный центр нейрокомпьютеров один не в силах "по определению" кардинально изменить положение дел, хотя вода "популяризации" точит камень косности, но это процесс небыстрый. Издаваемый им же под эгидой министерства оборонной промышленности журнал "Нейрокомпьютер" [2] выглядит золушкой в сравнении с большинством иностранных журналов, посвященных искусственному интеллекту. Например общепризнан Neural Networks - официальный журнал (с упором на теорию) 3-х столпов: международного, европейского и японского нейросетевых обществ. Статьи доступны через Интернет!. Или другой пример. Внешне хорошо смотрится Engineering Applications of Artificial Intelligence (детище IFAC), но под лаковым блеском статей кроется "дипломатичное" изложение материала. Ага, как только речь заходит о применении на практике, так сразу же накидывается "покрывало" коммерческой тайны.

Относительно недавно появился журнал "Новости ИИ" (www.ainews.ru ), распространяемый исключительно по подписке и никаких тебе free samples. На сайте только оглавления, включая прошлогодних номеров - нонсенс с точки зрения рыночной "раскрутки". В жизнь журнальчик пытается вывести Российская Ассоциация Искусственного Интеллекта (http://raai.botik.ru ). Информация для авторов, озадаченных диссертационными припарками: приглашаются все желающие, вход бесплатный. Сама жизнь у РАИИ довольно бурная, судя по набираемым темп конференциям и "партийным" съездам. Чтобы стать членом, запасись парочкой рекомендующих, запомни права-обязанности, пройди торжественное собрание, плати взносы и наслаждайся сопричастностью.

Начиная с 1995 года, в России ежегодно проводится солидная по количеству докладов конференция с многообещающим названием: "Нейрокомпьютеры и их применение". Любопытная деталь: в одном из докладов 2002 года утверждается, что "нейрокомпьютинговые" патенты и заявки в странах СНГ не превысили 1.5% от числа мировых, а о внедренных изобретениях толком ничего не говорится. Случаются тусовки и с меньшими амбициями [3], тогда как в мире ежегодно число активных интернациональных нейро сборищ зашкаливает за сотню. На заморских конференциях высокого уровня обычный студент имеет возможность задать вопрос именитому профессору и неизменно получить исчерпывающий ответ. Конструктивная критика приветствуется. Аргументированные доказательства неправоты выслушиваются не для вежливости, а для пользы дела независимо от ранга.

Главное, конечно, не в количестве и массовости научных тусовок. Тут мы весь мир переплюнем, если найдем спонсоров, пожелающих отмыть свои деньги. Главное - это полезный выход, внедрение в продукцию с целью повышения её потребительских свойств! А вот как раз этим похвастаться российские белые воротнички искусственного интеллекта и не могут. Сколько позащищали кандидатских и докторских? А сколько внедрений?.. Нет заказчиков? А-а-а, нужны капиталовложения, чтобы довести идею до ума? Короче, у нас процесс идет, мягко говоря, как всегда своеобразно.

Единственный серьезный прорыв, пожалуй, удался НТЦ “Модуль” (видать, не без пробивных заказчиков-спонсоров). В рамках НТЦ "Модуль" созданы центр теоретических исследований в области нейросетей и центр проектирования высокопараллельных и нейрокомпьютерных устройств для реализации нейросетевых алгоритмов и решения прикладных задач ( www.module.ru ). Одна из впередсмотрящих идей заключается в усовершенствованной схеме обработки потока данных и команд в рамках одного процессора. В этом случае процессор представляет собой "смесь" высокопроизводительного RISC-процессора и DSP процессора. Такой симбиоз хорош как универсальный ускоритель вычислений для: трехмерной графики, процедур обработки сигналов (например, БПФ), векторно-матричных функций и т.д. О разработанном в НТЦ “Модуль” процессоре NeuroMatrix NM6403 можно почитать в журнале "Открытые системы" [4] и на страницах "Компьютерры" [5]. “Модуль” выпускает ряд плат на базе NM6403 и TMS (в формате PCI, CompactPCI и VME), "заточенных" под нейросетевые вычисления, в частности в автономном режиме (target). Как утверждает производитель, прилагаемый базовый софт обеспечивает полный цикл разработки и отладки прикладных программ под управлением Win95, а так же имеются драйверы под WinNT и Linux, например для 4-х процессорного CPCI модуля МЦ4.04. К огромную сожалению, отсутствует нейросетевой симулятор, который позволил бы получить оптимальную архитектуру НС и верифицировать её параметры применительно к конкретной задаче, прежде чем тратить время и силы на программирование NeuroMatrix. Очевидно, продукция "Модуля" рассчитана на подкованных в нейросетевом плане клиентов. Для расширения рынка сбыта и завоевания новых клиентов "Модулю" очень не помешал бы солидный нейросимулятор, с помощью которого "каждый встречный" мог бы прикинуть, какая нейросеть нужна и насколько она эффективна в "офф-лайн", а затем выбрать и купить процессорную плату с требуемыми характеристиками для "пахоты" в реальном времени.

 

Брют резюме:

 

PS Ряд небезынтересных нейросимуляиров, как зарубежных так и российских, не был продегустирован в рамках данной статьи по тривиальным обстоятельствам. Во-первых, не смотря на неспешное написание статьи рассмотренное выше ПО не потеряло актуальности с точки зрения авторских ноу-хау, во-вторых, попавшие в руки самые свежие (и не очень) нейросимуляторы, не охваченные в данной статье, не продемонстрировали "изюминок", и в-третьих, журнал то не резиновый. Было бы откровенно несправедливым не упомянуть о впечатлившей своей честностью "нашенской" демо версии Neural Network Wizard (www.basegroup.ru , есть библиотека нейросетей в исходниках для Дельфи 4!), и о старом "буржуйском" CortexPro, поразившим в свое время продвинутой графикой под DOS, универсальностью и … ценой в фунтах стерлингах. Список без "малого" ста российских сайтов, посвященных НС и другим направлениям ИИ, можно лицезреть здесь [6], а любопытные ссылки на информационные материалы и некоторое ПО - здесь [7, 8].

 

Ссылки

  1. http://canopus.lpi.msk.su/project31/software.html
  2. http://www.glasnet.ru/~zaoiprzhr/nejrcomp.html
  3. http://neurnews.iu4.bmstu.ru/conf/index.html
  4. http://www.osp.ru/os/1999/05-06/04.htm
  5. http://www.computerra.ru/2000/4/29.html
  6. http://neurnews.iu4.bmstu.ru/sites/top100.htm
  7. http://stud.math.rsu.ru/actuar/dima/neiro.ru.html
  8. http://www.orc.ru/~stasson/neurox.html