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

 

Технология нейронных сетей перестала быть нечетко определенной областью искусственного интеллекта и стала ценным дополнением к обычным инструментам программирования.

Пакет построения нейросетей NeuralWorks Professional II /Plus компании NeuralWare сконструировал ассоциативную сеть (верхний экран), решающую сложные деловые задачи. Одна из таких задач состоит в прогнозировании по временным рядам, решенная программой Intelligent Business Systems’ NeuroForecaster/GA компании NewWave

 

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

 

Подобные технологии помогут клиентам компании Source Informatics/PMSI (Феникс, шт. Аризона) организовать продажу лекарств при помощи ПО извлечения данных из информации компании Trajecta (Остин, шт. Техас).

 

Это только некоторые приложения, которыми ранее пользовались ученые и профессионалы в вычислительной технике и которые теперь можно купить в магазине. Такие пакеты можно приобрести не только у компании Trajecta, но и у других известных поставщиков, таких, как компания NeuralWare из Питсбурга. Диапазон выпускаемых ею продуктов простирается от мощного NeuralWorks Professional II/Plus до простого в использовании Predict.

 

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

 

Тестовый центр PC Week Labs изучил теоретические и практические различия между нейросетевыми и обычными технологиями программирования и готов объяснить, как нейросети могут ускорить работу сложных приложений.

 

Когда проблема не ясна

 

Нейропрограмма отличается от обычной программы тем, что при обычном программировании приложение описывается в виде последовательности операций, т. е. является алгоритмом или “рецептом”, причем последовательность выполнения определяется путем проверок.

 

Вне зависимости от того, на каком языке программирования пишется программа (COBOL, C++, Smalltalk или Java) и имеются ли в ней объекты, такая программа является процедурой. Процедурное программирование применимо в тех случаях, когда эксперт может точно описать необходимые для выполнения задачи действия.

 

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

 

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

 

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

 

Программы, которые обучаются

 

Нейросети изменили принципы разработки программного обеспечения. Нейросеть не требует от пользователей или разработчиков программ, чтобы они предусмотрели все возможные ситуации и указали, как действовать в каждой из них, а обучается на наборе примеров, которые в совокупности охватывают как можно больше возможных ситуаций, например: “Если случился такой-то вариант, результат должен быть вот таким”.

 

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

 

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

 

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

 

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

 

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

 

Лучше отладки

 

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

 

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

 

Аппаратура для нейронных сетей

 

Разве из того, что нейросетевые программы обрабатывают много параллельных входных данных, не следует, что они должны выполняться на аппаратуре с возможностями параллельной обработки, а не на стандартных платформах? “Аппаратная реализация важна” -к такому выводу приходят Перри Мориленд и Эмили Фейслер в своей книге Neural Computation. (Издание компании IOP Publishing Ltd. совместно с Oxford University Press; Кроме того, книгу можно почитать на Web-узле: http://www.oup-usa/org:9200/9204/ index.htm.)

 

Тем не менее большинство исследований в области нейронных сетей было выполнено на обычных компьютерах. Как считают Мориленд и Фейслер, это привело к возникновению методов, “не вполне подходящих” для получения оптимальных результатов на специализированных машинах.

 

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

 

Информация о платах ускорителей для ПК, использующих обычные микропроцессоры и оптимизированные “нейропроцессоры”, находится на базовой странице misa02.msi.se:80/~lindsey/elba2html/section3_4.html.

 

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

 

Нейросети справляются со сложностью и даже с содержательной частью многих решений. Они идеальны в ситуациях, когда требуется правильное решение всегда, а не решение по идеальному алгоритму “почти всегда”, c иногда (хотя и редко) непредсказуемыми результатами.

 

         Питер Коффи (PC Week Labs)

 

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

 

Извлечение информации из данных, инструменты моделирования и примеры www.trajecta.com/index.html

 

     Отслеживание жульничества с кредитными карточками при помощи нейросетей www.towergroup.com/NONCUST/NOTES/V2/HIGH/V2_017.HTM

 

     Нейросетевые технологии и примеры их использования www.singapore.com/products/nfga/ intronn.htm

 

     Нейросетевые инструменты построения прогнозов www.singapore.com/products/nfga/

 

     Применение нейросетей в промышленности www.neuralware.com/products/prod.html