Нейронные сети
Данная глава является введением в теорию нейронных сетей и нейроинформатику (наука о нейронных сетях). Материал данной главы подготовлен на основе [19].
К идее использования нейронных сетей подтолкнули неудачи в моделировании мыслительного процесса. Развивалась гипотеза, что способность человека к мышлению определяется структурой мозга, и следует создать модель представления знаний, сходную со структурой мозга. Так возникла идея нейронной сети, которое однако не принесло ощутимых результатов для решения проблемы.
Второй бум популярности нейронных сетей приходится уже на конец 20–начало 21 века, но нейронная сеть все чаще воспринимается как средство для решения конкретных задач (например построения ЭС с лучшими характеристиками, нежели при использовании продукционных и логических моделей, распознавания образов и т.д.). Тем не менее, некоторые специалисты в области нейроинформатики (науке о нейронных сетях) склонны верить в возможность моделирования мышления, и построения универсального метода для решения любой задачи с помощью нейронных сетей. Различают нейроинформатику, как комплекс всех знаний о нейронных сетях и нейрокибернетику, рассматривающую вопросы, связанные с их аппаратной реализацией. Аппаратная реализация нейронных сетей приводит к идее нейрокомпьютера. Именно, с нейрокомпьютерами часто связываются надежды на истинный искусственный разум, но на самом деле доказана алгоритмическая сводимость нейрокомпьютера к все той же машине Тьюринга.
Так или иначе, нейронные сети – исключительно мощный метод моделирования, позволяющий воспроизводить чрезвычайно сложные зависимости. В частности, нейронные сети нелинейны по своей природе. На протяжение многих лет линейное моделирование было основным методом моделирования в большинстве областей, поскольку для него хорошо разработаны процедуры оптимизации. В задачах, где линейная аппроксимация неудовлетворительна (а таких достаточно много), линейные модели работают плохо. Кроме того, нейронные сети справляются с "проклятием размерности", которое не позволяет моделировать линейные зависимости в случае большого числа переменных.
Немаловажную роль играет и простота использования для конечного пользователя (но не для программиста). Нейронные сети учатся на примерах. Пользователь нейронной сети подбирает представительные данные, а затем запускает алгоритм обучения, который автоматически воспринимает структуру данных. При этом от пользователя, конечно, требуется какой-то набор эвристических знаний о том, как следует отбирать и подготавливать данные, выбирать нужную архитектуру сети и интерпретировать результаты, однако уровень знаний, необходимый для успешного применения нейронных сетей, гораздо скромнее, чем, например, при использовании традиционных методов статистики.