Рис. 1. Однослойный персептрон на базе нейрона
Если вес i-го входа положительный (wi>0), то вход - возбуждающий, если отрицательный (wi<0), - вход тормозящий. Так как выход искусственного нейрона может находиться в двух состояниях, то он может разделять объекты только на два класса. Чтобы симмитировать работу нейрона (рис. 1), достаточно найти взвешенную сумму его входов и использовать оператор условного перехода. Так работает программа ПР-1: формальному нейрону последовательно предъявляются 6 объектов, образующих два класса: K1={10000, 11000, 11100} и K2={00111, 00111, 00010}. Вес входов подобран так: wi=(1,1,1,-1,-1), порог срабатывания равен h=0,2. После запуска программы получаем: Объект 1: S= 1.0; y= 1 Объект 2: S= 2.0; y= 1 Объект 3: S= 3.0; y= 1 Объект 4: S= -1.0; y= 0 Объект 5: S= -1.0; y= 0 Объект 6: S= -1.0; y= 0 Программа ПР-1.
Рис. 2. Схема нейросети с 2 входами и 4 нейронами.
Программа ПР-2.
Рис. 3. Схема персептрона с 8 входами.
Программа ПР-3.
Рис. 4. Объекты для распознования.
Необходимо последовательно предъявлять нейросети (рис. 5) объекты o[1], o[2],... , o[8] и изменять вес в соответствии с правилом: 1) если вход x[i] и выход y[j] одновременно возбуждены, то вес связи w[i,j] увеличивается; 2) если вход x[i] возбужден, а выход y[j] невозбужден, то вес связи w[i,j] уменьшается. Порог срабатывания для всех нейронов будем считать равным 0. Используется программа ПР-4. В результате расчетов получается матрица весов: w[i,1]:=(1, 1, 1, -1, -0.5, 0, 0, -1, 0); w[i,2]:=(-1, 1, 1, 1, -0.5, 2, -2, -1, 0); w[i,3]:=(1, 1, -1, 1, -1.5, 0, 0, 1, -2); w[i,4]:=(1, -1, 1, 1, 0.5, 0, 0, -1, 0). Программа ПР-4.
Рис. 6. Схема трехслойного персептрона.
Рассмотрим трехслойный персептрон (рис. 6), состоящий из слоя сенсоров или датчиков Di (i = 1, 2... 9), слоя ассоциативных элементов Aj (j = 1, 2, 3) и слоя реагирующих элементов Rk (k = 1, 2). Если уровень воздействия на датчик превышает некоторое пороговое значение h, то на его выходе появляется 1, а иначе - 0. Ассоциативный элемент работает как формальный нейрон: на выходе 1, когда сумма всего веса возбужденных входов превышает порог срабатывания; в противном случае на выходе 0. Вес входов wi,j принимают значения -1, 0 или 1. Реагирующий R-элемент работает так: когда сумма всего веса возбужденных входов положительна, на выходе 1, а когда отрицательна - на выходе - 0. Вес входов vj,k реагирующего элемента могут принимать произвольные значения. Выход реагирующего элемента имеет два состояния 0 и 1, поэтому персептрон с двумя решающими элементами может классифицировать объекты на четыре класса (22=4), соответствующие выходным сигналам 00, 01, 10, 11. Создать персептрон не просто, зато его можно сравнительно легко промоделировать на компьютере. Рассмотрим программу ПР-5, моделирующую работу трехслойного персептрона, изображенного на рис. 6. Допустим, персептрон должен различать четыре объекта, представленные ниже. Учитывая расположение датчиков Di (i = 1, 2, ..., 9), предъявляемые персептрону объекты кодируются так: O1=(0,1,0,0,1,0,0,1,0), O2=(0,0,0,1,1,1,0,0,0), O3=(1,0,0,1,0,0,1,1,1), O4=(1,1,1,0,0,1,0,0,1)). Чтобы персептрон правильно классифицировал объекты, необходимо задать вес связей, соединяющих датчики с ассоциативными элементами, и ассоциативные элементы с реагирующими элементами, следующим образом: Порог срабатывания ассоциативных элементов h равен 0,5. Программа ПР-5. Результат работы программы представлен ниже. Из распечатки видно, какие значения принимают величины Sj, Tk, а также выходы yj и zk в случае, когда персептрону предъявляются объекты O1, O2, O3, O4. Объекту O1 соответствуют состояния z1=0, z2=0, объекту O2 - состояния z1=1, z2=0 и т. д. Таким образом, наша компьютерная модель персептрона распознает рассмотренные выше объекты. Вы можете дальше поэкспериментировать: изменить вес связей, предъявить персептрону другие объекты, промоделировать персептрон с тремя реагирующими элементами. ====== ОБЪЕКТ 1 j= 1 | S= -2.0 | y= 0.0 j= 2 | S= 0.0 | y= 0.0 j= 3 | S= -1.0 | y= 0.0 k= 1 | T= 0.0 | Выход z= 0 k= 2 | T= 0.0 | Выход z= 0 ====== ОБЪЕКТ 2 j= 1 | S= 2.0 | y= 1.0 j= 2 | S= 0.0 | y= 0.0 j= 3 | S= -1.0 | y= 0.0 k= 1 | T= 2.0 | Выход z= 1 k= 2 | T= -2.0 | Выход z= 0 ====== ОБЪЕКТ 3 j= 1 | S= -1.0 | y= 0.0 j= 2 | S= -3.0 | y= 0.0 j= 3 | S= 1.0 | y= 1.0 k= 1 | T= -2.0 | Выход z= 0 k= 2 | T= 2.0 | Выход z= 1 ====== ОБЪЕКТ 4 j= 1 | S= 1.0 | y= 1.0 j= 2 | S= 3.0 | y= 1.0 j= 3 | S= 3.0 | y= 1.0 k= 1 | T= 2.0 | Выход z= 1 k= 2 | T= 2.0 | Выход z= 1 Тексты программ находятся в zip-архиве, файл gl-16.pas. ВВЕРХ
Майер, Р. В. Задачи, алгоритмы, программы / Р. В. Майер [Электронный ресурс]. - Глазов: ГГПИ, 2012 // Web-site http://maier-rv.glazov.net . |