10" г
10° г
о о о. о
1С? г
1С? г 1С? г
"1.......1......1 ......1 ......1.......1......1
Человек
Таракан .Пчела CNAPS
„„ SYNAPSE 1 Муха
Червь " Пиявка
1С? Ю" 1С? 10 10 10 10 10°10Чо1010
Кол-во синапсов
Рисунок 1 Сравнение современных нейрокомпьютеров с естественными нейросистемами
Вспомним, однако, искусство маневра, характерное для полета мухи, и возможности современных нейрокомпьютеров уже не покажутся такими уж скромными.
Сравнение стоимости обычных и нейро- вычислений
Производительность современных персональных компьютеров составляет примерно 10 операций с плавающей точкой в секунду (при тактовой частоте системной шины 66 МГц, положив в среднем 6 тактов на одну операцию). Итак, при стоимости всего на порядок больше обычных PC, нейроускоритель в несколько сот раз превосходит их в бьютродействии. Таким образом, удельная стоимость современных нейровычислений примерно на порядок ниже, чем у традиционных компьютеров. Это всего лишь следствие специализации матричных процессоров (DSP), имеющих ту же элементную базу, что и универсальные микропроцессоры.
Однако, выигрыш на один порядок в стоимости вычислений редко когда способен стать решающим аргументом для использования специализированной аппаратуры, сопряженным с дополнительными затратами, в том числе на обучение персонала. Поэтому реально нейрокомпьютеры используются в специализированных системах, когда требуется обучать и постоянно переобучать сотни нейросетей, объединенных в единые информационные комплексы, или в системах реального времени, где скорость обработки данных критична.
& Например, при обработке экспериментов на современных ускорителях элементарных частиц скорость поступления событий достигает десятков МГц, тогда как конечная информация записывается на ленту со скоростью десятки Гц. Т.е. требуется отбор одного события из миллиона - причем в реальном масштабе времени. Для этого используют несколько каскадов фильтрации событий. Здесь-то вычислительные возможности параллельных нейрокомпьютеров оказываются весьма кстати. Так, в эксперименте HI на ускорителе HERA всю аппаратную часть фильтрации событий планируется реализовать на основе нейрогшат CNAPS (данные 1994 г.).
Большинство же прикладных систем нейросетевой обработки данных использует эмуляцию нейросетей на обычных компьютерах, в частности на PC. Такие програмы называются нейро-эмуляторами.
Нейро-эмуляторы
Доступность и возросшие вычислительные возможности современных компьютеров привели к широкому распространению программ, использующих принципы нейросетевой обработки данных, о которых мы поговорим подробнее в следующих разделах, но исполняемых на последовательных компьютерах. Этот подход не использует преимуществ присущего нейро-вычислениям параллелизма, ориентируясь исключительно на способность нейросетей решать неформализуемые задачи.
Преимущества нейро-эмуляторов
Преимущества таких "виртуальных" нейрокомпьютеров для относительно небольших задач очевидны:
Во-первых, не надо тратиться на новую аппаратуру, если можно загрузить уже имеющиеся компьютеры общего назначения.
Во-вторых, пользователь не должен осваивать особенности программирования на спецпроцессорах и способы их сопряжения с базовым компьютером.
Наконец, универсальные ЭВМ не накладывают никаких ограничений на структуру сетей и способы их обучения, тогда как спец-процессоры зачастую имеют ограниченный набор "зашитых" в них функций активации и достигают пиковой производительности лишь на определенном круге задач.
В общем, если речь идет не о распознавании изображений в реальном времени или других приложениях такого рода, а, скажем, об обработке и анализе обычных баз данных, не имеет особого смьюла связываться с нейро-ускорителями. Скорее всего, производительности хорошей PC окажется вполне достаточно. Поскольку большинство финансовых применений относится пока имено к этому классу задач, мы будем ориентировать нашего читателя на использование нейро-эмуляторов. Несколько условно нейро-software можно разделить на готовые нейро-пакеты общего назначения, более дорогие системы разработки нейроприложений, обладающие большими возможностями, но требующие и больших знаний, и, наконец, готовые комплексные решения с элементами нейросетевой обработки информации, обычно скрытыми от глаз пользователя.
Готовые нейро-пакеты
Это законченные независимые программные продукты, предназначенные для широкого класса задач, в основном - для предсказаний и статистической обработки данных. Большинство из имеющихся на рынке нейропакетов имеет дружественный интерфейс пользователя, не требующий знакомства с языками программирования.
& Множество нейро-эмуляторов начального уровня можно найти в Internet как shareware или freeware. Это, обычно, многослойные персептроны с одним или несколькими правилами обучения. Исключение составляет вполне профессиональный Штутгартский симулятор с большим набором возможностей, работающий, правда, только на UNIX-машинах.
Некоторые нейро-пакеты, впрочем, предусматривают возможность использования специальных нейро-ускорителей.
Инструменты разработки нейроприложений
Главное, что отличает этот класс программного обеспечения - способность генерировать "отчуждаемые" нейросетевые продукты, т.е. генерировать программный код, использующий обученные нейросети для обработки данных. Такой код может быть встроен в качестве подсистемы в любые сколь угодно сложные информационные комплексы.
& Примерами подобных систем, способных генерировать исходные тексты программ являются NeuralWorks Professional II Plus (стоимостью от $3000) фирмы NeuralWare и отечественный Neural Bench (нейро-верстак). Последний интересен, кроме прочего, тем, что может генерировать коды на многих языках, включая Java. Такие Java-апплеты могут использоваться для организация различного рода сервисов в глобальных и локальных сетях. Удобным инструментом разработки сложных нейросистем является MATLAB с прилагаюш;имся к нему нейросетевым инструментарием, органично вписавшимся в матричную идеологию этой системы. MATLAB предоставляет удобную среду для синтеза нейросетевых методик с прочими методами обработки данных (wavelet-анализ, статистика, финансовый анализ и т.д.). Разработанные в системе MATLAB приложения могут быть затем перетранслированы в С++.
Подобные средства разработки используются фирмами, в частности, для создания основанных на нейросетевой обработке данных готовых решений в различных областях.
Готовые решения на основе нейросетей
Это - конечный результат. Здесь нейросети спрятаны от пользователя в недрах готовых автоматизированных комплексов, предназначенных для решения конкретных производственных задач. Например, уже упоминавшийся продукт Falcon встраивается в банковскую автоматизированную систему обслуживания платежей по пластиковым карточкам. В другом случае это будет автоматизированная система управления заводом или реактором. Конечного пользователя, как правило, не интересует способ достижения результата, ему важно лишь качество продукта. Поскольку многие такие готовые решения обладают уникальными возможностями (пока специалисты по нейрокомпьютингу еще в дефиците) и обеспечивают
Известно сравнение нейросетей с изюмом, который хорош не столько сам по себе, сколько как добавка, например, в булочки.
Коммерческие пакеты отличаются от свободно распространяемых большим набором средств импорта и предобработки данных, дополнительными возможностями по анализу значимости входов и оптимизации структуры сети. Стоимость коммерческих эмуляторов - масштаба $1000. Как правило, такие пакеты (BrainMaker Professional, NeuroForecaster, Hopa-IQSOO) имеют собственный встроенный блок предобработки данных, хотя иногда для этой цели удобнее использовать стандартные электронные таблицы. Так, нейро-продукты группы нейрокомпьютинга ФИАН встраивается непосредственно в Microsoft Excel в качестве специализированных функций обработки данных. При этом всю предобработку данных и визуализацию результатов можно проводить стандартными средствами Excel, который, кроме того, имеет богатый и расширяемый набор конверторов для импорта и экспорта данных.
Такие пакеты нацелены на решение информационных задач в диалоговом режиме - при непосредственном участии пользователя. Они не применимы в условиях потоковой обработки данных. Кроме того, они не приспособлены для разработки сложных систем обработки данных, состоящих из многих блоков, содержащих, скажем, сотни нейросетей, адаптивно настраивающихся и дообучающихся на вновь поступающих данных. Разработка таких "серьезных" систем требует специального инструментария.