Нейронные сети. Введение.                           
                                                                              
   Нейронные сети - это нулевое приближение в воспроизведении работы          
человеческого мозга. Исследования проводившиеся в этой области позволили      
сделать следующую модель (повторяю - 0 приближение) : имеется множество       
нейронов (в реальных сетях от 10.000 и выше, в мозгу ~10^12) которые обладают 
способностью накапливать нервный импульс. Все нейроны соединены друг с другом 
связями (наз. синапсы) Эти связи направленные - т.е. есть как-бы "входные     
синапсы" и "выходные". Нервный импульс передается от возбужденного нейрона    
через его "выходные" синапсы к другим нейронам. Условием возбуждения нейрона в
простейшем случае является пороговая функция - т.е. если сумма превышает      
некоторое (пороговое) значение - нейрон возбуждается (выдает по своим синапсам
сигнал). Такая модель нейрона названа персептрон. Далее начинаются усложнения.
Вместо пороговой функции берется активационная функция - некое преобразование 
над накопленной суммой (частным случаем активационной функции является и      
пороговая функция). В основном работают с сигмоидом : 1 / ( 1 + exp(-x) ) или 
с тангенсом.                                                                  
                                                                              
   Самым привлекательным свойством нейронной сети является ее способность к   
обучению. Математически это означает следующее : наши связи - это какие-то    
коэффициенты (наз. веса), на которые умножаются выходы нейронов. В            
алгебраическом виде это означает                                              
                                  X * A = Y                                   
где столбец X-начальное состояние нейронов, A-матрица весов (связи между      
нейронами), строка Y-конечное состояние нейронов. Очевидно, что меняя нашу    
матрицу весов (а точнее ее элементы) мы получим другой выход Y. На этом и     
основано обучение сети. На вход X последовательно подаются некоторые входные  
векторы (например битовый образ) - на выходе получаем выходной вектор, смотрим
что нас не устраивает, меняем коэффициенты матрицы (для этого придумана масса 
алгоритмов) и далее повторяем это для следующей пары входной-выходной векторы.
Через некоторое время сеть сойдется к какому-то решению (а может и не вовсе не
сойтись :-( ). Тут требуются строгие доказательства сходимости алгоритма      
обучения для сети конкретного вида (к счастью математики это делают :-)       
   Пока это на пальцах  - все понятно. Ну а дальше начинается темный лес.     
Нейронная сеть описывается системой неоднородных линейных дифференциальных    
уравнений, которую решать не имеет смысла (для указанных мной масштабов       
реальных сетей). Есть куча методов (в основном эвристических) построения сети.
Вся загвоздка в том, что нейронная сеть - это система с большим               
(неограниченным) количеством степеней свободы - тут играет роль и как         
соединить нейроны, и как построить обучающую выборку (пары входных-выходных   
векторов) и т.д.                                                              
Igor Pivovarov, 2:5020/492.17                                                 
   См.: Frequently Asked Questions (FAQ) on Neural Networks                   
                                                                              


HyperText/CGI-HTML, v. 3.6.4 (C)1994-2000 M.Zakharov