Цель лекции: Ознакомление с нейронными сетями. В каких случаях целесообразно использовать нейросети. Понятие однослойной сети. Рассмотреть пример применения нейронной сети для обработки данных.
Начало современным моделям нейронных сетей (НС) было положено в работе У. Маккаллока и У. Питтса [5]. Эти авторы сделали первую попытку эмулировать человеческие способности, классифицировать и распознавать образы. Дальнейшее развитие связано с работой Ф. Розенблатта [8]. Его модель была названа перцептроном. После некоторого затишья, с начала 1980-х годов начался и продолжается до настоящего времени новый виток развития моделей НС. Он связан с работами С. Гроссберга, Т. Кохонена, Д. Хопфилда и др. [6,7,10].
Использование принципа нейросети обязательно там, где мы получаем первичную информацию для последующих выводов: органами зрения, слуха, обоняния, осязания. На этом же уровне мы способны провести первичную классификацию и принять оперативное решение: убежать от стремительно приближающегося автомобиля, надеть противогаз и т.д.
Значит, в нашей жизнедеятельности, требующей разнообразного проявления, существует такая ниша, где решение должно быть сверхоперативным, скорее - рефлекторным, не допускающим анализа. Этому способствует высокий параллелизм сети. Именно высокий параллелизм, наряду с исключением сложных расчетов, обусловил взрыв интереса к системам искусственного интеллекта в начале 1980-х годов, когда остро встала задача разработки вычислительных средств сверхвысокой производительности [10].
Важный вопрос современной науки - актуальность аппаратной реализации нейросети или нейрокомпьютеров, т.к. программная модель на непараллельном компьютере лишена свойства высокого параллелизма мозга и ограничивает выход на "большие" нейросети.
Этот параллелизм выражается в том, что одновременно обрабатывается большое число цепочек нейронов. При этом каждый нейрон обрабатывается хотя и по одному алгоритму, но - по разным его ветвям: один, в конце концов, возбудится, другой нет; связи нейрона индивидуальны и изменяются не идентично связям других нейронов и т.д.
Ставя задачу разработки параллельного вычислительного устройства - нейрокомпьютера, способного имитировать работу нейросети с учетом ее достоинств по реализации высокой производительности, следует учесть, что:
При программной реализации нейросети перечисленные требования соответствуют SPMD-технологии ("одна программа - много потоков данных") [21], привлекательность которой обоснована для многих приложений параллельного решения задач высокой сложности.
При аппаратной реализации нейрокомпьютеров (НК) (или его аппаратной поддержке) также необходимо учесть следующее требование: один нейроподобный элемент должен делить время между имитацией многих нейронов. Жесткая аппаратная имитация нейросети, соответствующая связи "один нейроподобный элемент - один нейрон", неэффективна, т.к. ограничивает возможную размерность моделируемой сети.
Учитывая специализацию нейрокомпьютера при применении сетевых технологий в рамках построения более сложных управляющих систем, целесообразно, чтобы НК использовался как сопроцессор под управлением мощного и универсального компьютера-монитора. В рамках сегодняшних компьютерных технологий НК должен дополнять персональный компьютер как его внешнее устройство и "врезаться" в существующую основную сеть.
В литературе [12,21,22] искусственный нейрон имитирует в первом приближении свойства биологического нейрона. На вход искусственного нейрона поступает некоторое множество сигналов, каждый из которых является выходом другого нейрона. Каждый вход умножается на соответствующий вес, аналогичный синаптической силе, и все произведения суммируются, определяя уровень активации нейрона.
(рис 10.1) Определение уровня активности нейрона
На рисунке 10.1 представлена модель, реализующая эту идею. Множество входных сигналов, обозначенных $$x_1, x_2, . . . x_n$$, поступает на искусственный нейрон. Эти входные сигналы, в совокупности обозначаемые вектором $$Х$$, соответствуют сигналам, приходящим в синапсы биологического нейрона.
Каждый сигнал умножается на соответствующий вес $$u_1, u_2, . . . u_n$$, и поступает на суммирующий блок, обозначенный $$\square$$. Каждый вес соответствует "силе" одной биологической синаптической связи. (Множество весов в совокупности обозначается вектором $$W$$.) Суммирующий блок, соответствующий телу биологического элемента, складывает взвешенные входы алгебраически, создавая выход, который мы будем называть $$NET$$. В векторных обозначениях это может быть компактно записано следующим образом: $$NET = XW$$
Сигнал $$NET$$ далее, как правило, преобразуется активационной функцией $$F$$ и дает выходной нейронный сигнал $$OUT$$. Активационная функция может быть обычной линейной функцией
$$OUT = F(NET),$$
где $$F$$— константа, пороговой функцией
$$OUT=\begin{cases}
1,\text{если $NET>T$}\\
0,\text{если $NET\leqslant T$}
\end{cases}$$
где $$T$$— некоторая постоянная пороговая величина, или же функция, более точно моделирующая нелинейную передаточную характеристику биологического нейрона и предоставляющая нейронной сети большие возможности [8].
(рис 10.2) Сигмоидальная (S-образная) функция
На рисунке 10.2 блок, обозначенный $$F$$, принимает сигнал $$NET$$ и выдает сигнал $$OUT$$. Если блок $$F$$ сужает диапазон изменения величины $$NET$$ так, что при любых значениях $$NET$$ значения $$OUT$$ принадлежат не которому конечному интервалу, то $$F$$ называется "сжимающей" функцией. В качестве "сжимающей" функции часто используется логистическая или "сигмоидальная" (S-образная) функция ( см. Рисунок 10.2 ). Эта функция математически выражается как $$F(x)=1/(1+e-x)$$ Таким образом, $$OUT=\frac 1 {1+e^{-NET}}$$
По аналогии с электронными системами активационную функцию можно считать нелинейной усилительной характеристикой искусственного нейрона. Коэффициент усиления вычисляется как отношение приращения величины $$OUT$$ к вызвавшему его небольшому приращению величины $$NET$$. Он выражается наклоном кривой при определенном уровне возбуждения и изменяется от малых значений при больших отрицательных возбуждениях (кривая почти горизонтальна) до максимального значения при нулевом возбуждении и снова уменьшается, когда возбуждение становится большим положительным.
С. Гроссберг (1973) [22] обнаружил, что подобная нелинейная характеристика решает поставленную им дилемму шумового насыщения. Каким образом одна и та же сеть может обрабатывать как слабые, так и сильные сигналы? Слабые сигналы нуждаются в большом сетевом усилении, чтобы дать пригодный к использованию выходной сигнал. Однако усилительные каскады с большими коэффициентами усиления могут привести к насыщению выхода шумами усилителей (случайными флуктуациями), которые присутствуют в любой физически реализованной сети. Сильные входные сигналы, в свою очередь, также будут приводить к насыщению усилительных каскадов, исключая возможность полезного использования выхода. Центральная область логистической функции, имеющая большой коэффициент усиления, решает проблему обработки слабых сигналов, в то время как области с падающим усилением на положительном и отрицательном концах подходят для больших возбуждений. Таким образом, нейрон функционирует с большим усилением в широком диапазоне уровня входного сигнала. $$OUT=\frac 1 {1+e^{-NET}}=F(NET)$$
Другой широко используемой активационной функцией является гиперболический тангенс. По форме она сходна с логистической функцией и часто используется биологами в качестве математической модели активации нервной клетки. В качестве активационной функции искусственной нейронной сети она записывается следующим образом:
$$OUT=th(x)$$
(рис 10.3) Гиперболический тангенс
Подобно логистической функции гиперболический тангенс является S-образной функцией, но он симметричен относительно начала координат, и в точке $$ NET = 0 $$ значение выходного сигнала $$ OUT = 0 $$ (см. Рисунок 10.3). В отличие от логистической функции, гиперболический тангенс принимает значения различных знаков, и это его свойство применяется для целого ряда сетей.
Рассмотренная простая модель искусственного нейрона игнорирует многие свойства своего биологического двойника. Например, она не принимает во внимание задержки во времени, которые воздействуют на динамику системы. Входные сигналы сразу же порождают выходной сигнал. В этой модели не учитывает воздействий функции частотной модуляции или синхронизирующей функции биологического нейрона, которые ряд исследователей считают решающими в нервной деятельности естественного мозга.
Несмотря на эти ограничения, сети, построенные из таких нейронов, обнаруживают свойства, сильно напоминающие биологическую систему. Только время и исследования смогут ответить на вопрос, являются ли подобные совпадения случайными или же это следствие моделирования при котором верно отражены важнейшие черты биологического нейрона.
Хотя один нейрон и способен выполнять простейшие процедуры распознавания, но для серьезных нейронных вычислений необходимо соединять нейроны в сети. Простейшая сеть состоит из группы нейронов, образующих слой, как показано в правой части рисунка ( см. Рисунок 10.4). Вершины-круги слева служат лишь для распределения входных сигналов. Они не выполняют каких-либо вычислений, и поэтому не будут считаться слоем. Для большей наглядности обозначим их кругами, чтобы отличать их от вычисляющих нейронов, обозначенных квадратами. Каждый элемент из множества входов $$Х$$ отдельным весом соединен с каждым искусственным нейроном. $$А$$ каждый нейрон выдает взвешенную сумму входов в сеть. В искусственных и биологических сетях многие соединения могут отсутствовать, но здесь они показаны все для демонстрации общей картины. Могут существовать также соединения между выходами и входами элементов в слое [4].
(рис 10.4) Простейшая нейронная сеть
Удобно считать веса элементами матрицы W. Матрица имеет $$m$$строк и $$n$$ столбцов, где $$m$$ — число входов, а $$n$$ — число нейронов. Например, $$u_{2,3}$$— это вес, связывающий второй вход с третьим нейроном. Таким образом, вычисление выходного вектора $$N$$, компонентами которого являются выходы $$OUT$$ нейронов, сводится к матричному умножению $$N = XW$$, где $$N$$ и $$X$$— векторы-строки.
Построение универсальных моделей нейросетей в составе программного обеспечения компьютера, снабженных механизмами приспособления под задачу пользователя задача современной действительности. Еще более актуально построить набор аппаратных средств – нейросетей, сопряженных с компьютером и, по выбору пользователя, участвующих в решении сложных задач. Такие аппаратно реализованные нейросети, как приставки или внешние устройства компьютера, например, определяют специальное направление использования ПЛИС (programmable logic device программируемая интегральная схема) - интегральных схем с программируемой логикой.
Если рассматривать сеть, то необходимо принимать во внимание то, что, во-первых, предложенное решение должно учитывать текущее состояние сети, качество связи и наличие критических участков, а во-вторых, поиск оптимального решения должен осуществляться в реальном времени. Выбор маршрутов, максимизирующих степень узла в сети, предоставляет возможность планирования работы сети таким образом, чтобы время пересылки пакета по сети было бы минимальным. Степень узла определяется как сумма всех потоков, поступающих в узел и исходящих от узла. Критерий качества работы, который выбирается для задач маршрутизации, должен отражать цели, связанные с соответствующей задачей, составления плана работы линий связи. Требуется выбрать маршрут между парой источник – приемник с таким расчетом, чтобы минимизировать критерий качества работы. Показатель качества работы должен согласовываться со структурой нейронной сети.
Рассмотрим пример применения НС для предсказания прохождения пакетов по сети.
С каждой такой нейронной сетью связан потоковый граф, вершины которого соответствуют нейронам, а также входам и выходам сети, а дуги – связям. Пусть $$V$$ - множество вершин сети, тогда множество дуг $$D$$ является подмножеством $$V \times V$$, т.е. каждой дуге соответствует упорядоченная пара вершин $$V_1 , V_2$$ из первой дуга исходит, а во вторую – входит. Каждой вершине $$V$$ сопоставим активационную функцию $$\varphi_v$$, каждой дуге $$ (u,v)$$– вес $$W_{u,v}$$. Сеть прямого распространения не имеет циклов, т.е. её вершины всегда можно пронумеровать так (т.е. $$V$$ можно считать множеством натуральных чисел), что $$ u < v$$ для каждой дуги.
Обозначим $$y_v$$ вход соответствующего вершине с номером $$v$$ нейрона, а $$xv$$ - его выход. Тогда указанная нейронная сеть описывается соотношением $$y_v=\sum\limits_{u:(u,v)\in D}w_{u,v}x_u$$ т.е. суммирование производится по всем входящим в нейрон дугам $$x_v=\varphi_v (y_v)$$
Для большинства архитектур нейронных сетей отображение $$\varphi_v$$ действует покоординатно и определяется функцией активации соответствующего нейрона. Недостатком таких сетей является, невозможность рассмотрения процедуры их модификации, работающие на уровне отдельных связей.
Для исследований выбираем архитектуру сети: линейную нейронную сеть с линией задержки по входу на 4 такта, с одним входом. Алгоритм управления потоками в этой сети состоит в следующем. В течение некоторого времени гипотетический прибор собирает информацию о состоянии сети. На вход нейронной сети, с одним слоем и числом нейронов n поступает некая информация, в соответствии, с которой сеть, находит образ на выходе и устанавливается в состояние равновесия. Данные для моделирования сети возьмем из предыдущего раздела. Значения входной переменной обозначим как массив P={[1;5,4] [2;4,7] [3;2,9] [4;1,8]}, первое значение это количество переходов, второе значение это скорость передачи информации и массив цели T={1,84;1,49;0,37;0,1} время прохождения информации по сети. Обучающая последовательность time=0:0.1:1
Проектируем сеть с помощью MATLAB (см. Рисунок 10.5).
(рис 10.5) Окно управления сетью
Последовательность входов и целей представлены на Рисунке 10.4 исходя из этих данных моделируем нейронную сеть. Имитационная модель нейронной сети представлена на рисунке 10.6.
(рис 10.6) Модель нейронной сети
Имитационную модель рассмотрим в системе Simulink. Эта схема в данном пакете является в полной мере функциональной. Функциональная схема модели нейронной сети представлена на рисунке 10.7.
(рис 10.7)
Для однослойной нейронной сети рассмотрим процесс функционирования более подробно. Каждый элемент вектора входа соединен со всеми входами нейрона и это соединение задается матрицей весов W; при этом каждый $$i-й$$ нейрон включает суммирующий элемент, который формирует скалярный выход $$n(i)$$. Совокупность скалярных функций $$n(i)$$ объединяются в $$S$$ – элементный вектор входа $$n$$ функции активации слоя. Выходы слоя нейронов формируют вектор столбец а, и таким образом описание слоя нейтронов имеет вид $$a=f(W \cdot P + b)$$ и описывает одиночный маршрут. Структурная схема однослойной нейронной сети представлена на Рисунке 10.8, здесь $$P$$ – вектор входа $$R \times 1$$, $$W$$ – весовая матрица $$SxR,n,a,b$$ векторы размера $$S \times 1$$.
На данном этапе разработки аналитическим способом подобраны оптимальные значения факторов. По количеству факторов определено число нейронов в сети. Модель нейронной сети выбирает образ из набора, который содержится в её памяти.
(рис 10.8)
НС представляет собой адаптивную систему, жизненный цикл которой состоит из двух независимых фаз – обучения и работы сети.
Обучение сети состоит в поиске вектора $$w$$, для которого суммарная ошибка по всем маршрутам минимальна: $$E(w)=\sum\limits_{n-1}^N e_n=min$$ $$e_n$$ - ошибка для $$n$$ - маршрута.
Для исследования процесса маршрутизации в вычислительных сетях используем нейронные сети прямого распространения с частичной структурой связей.
Обучение — это процесс, в результате которого система постепенно приобретает способность отвечать нужными реакциями на определенные совокупности внешних воздействий, а адаптация — это подстройка параметров и структуры системы с целью достижения требуемого качества управления в условиях непрерывных изменений внешних условий.
Кроме того, результат самообучения характеризует пригодность выбранного пространства для конкретной задачи обучения распознаванию. Если абстрактные образы, выделяемые в процессе самообучения, совпадают с реальными, то пространство выбрано удачно. Чем сильнее абстрактные образы отличаются от реальных, тем "неудобнее" выбранное пространство для конкретной задачи.
Таким образом, полный алгоритм обучения НС с помощью процедуры обратного распространения строится так:
$$y^{(n)}_j=f(S^{(n)}_j),$$ где $$f()$$-сигмоиддальная функция
$$y_q(0)=I_q,$$ где $$I_q$$ - q-я компонента вектора входного образа.
Сети на шаге 1 попеременно в случайном порядке предъявляются все тренировочные образы, чтобы сеть, образно говоря, не забывала одни по мере запоминания других. Алгоритм иллюстрируется на рисунке 10.9.
(рис 10.9) Диаграмма сигналов в сети
В процессе обучения линейной сети траектория будет перемещаться из начальной точки в точку минимума критерия качества.
Рассчитаем пороговое значение качества для процесса маршрутизации.
Программа построения, поверхности функции критерия качества
P=[5,4;4,7;2,9;1,8]; % вектор входов >> T=[1,84;1,49;0,37;0,1];% вектор целей >> maxlr=0.40*maxlinlr(P,'bias'); % максимальное значение параметров обучения >> net=newlin([-2 2],1,[0],maxlr); % расчет функции критерия качества >> w_range=-1:0.2:1; b_range=-1:0.2:1; %Диапазоны значений весов и смещения >> ES=errsurf(P,T,w_range,b_range,'purelin'); >> surfc(w_range,b_range,ES); %Построение поверхности функции критерия качества
Программа построение линий уровня и траектории обучении
y(1)=net.b{1};
>> net.trainParam.goal=0.001; %Пороговое значение критерия качества
>> net.trainParam.epochs=1; %Число эпох
>> for i=2:10; %Цикл вычисления весов и смещения для одной эпохи
for i=2:10,
[net,tr]=train(net,P,T);
x(i)=net.IW{1};
y(i)=net.b{1};
end
clf, contour(w_range,b_range,ES,20), hold on; %Построение линий уровня и траектории обучении
plot(x,y,'-*'),hold off
(рис 10.10) График обучения нейронной сети
На рисунке 10.10 видно, что примерно через 10 шагов при заданной точности (порогового значения качества) 0,001 обучение закончено. В результате получим диапазон смещения весов IW = 0.880 0.408 -0.055 -0.507; b=-0.045.
Обучение считается законченным, когда сеть правильно выполняет преобразование на тестовых примерах и дальнейшее обучение не вызывает значительного изменения настраиваемых весовых коэффициентов. Преимуществом при выборе данной архитектуры сети явилось возможность преобразования ранее неизвестных данных на основе процесса обучения нелинейной модели [21].
Сеть успешно работает до тех пор, пока существенно не изменится реальная модель. Сеть может быть дообучена с учетом новой информации, причем предыдущая информация не теряется, а обобщается с вновь поступившей. При "повреждении" части весовых коэффициентов НС и ее свойства могут быть полностью восстановлены в процессе дообучения.
От того, насколько качественно будет выполнен этап обучения НС, зависит способность сети решать поставленные перед ней проблемы во время эксплуатации. Процесс обучения использует три фундаментальных свойства, связанных с обучением сети: загруженность сети, сложность маршрутов и вычислительная сложность. Под загруженностью сети понимается, сколько пакетов может пройти по сети, и какие функции, и границы принятия решений могут быть на ней сформированы. Сложность маршрута определяет числом переходов, необходимых для достижения работоспособности сети.
Краткие итоги
В лекции рассматривается нейронная сеть, правила ее построения. Построение универсальных моделей нейросетей в составе программного обеспечения компьютера, снабженных механизмами приспособления под задачу пользователя задача современной действительности.
Приведен пример построения модели нейронной сети нечеткой логики для обработки данных с применением программы MATLAB.
Вопросы для самопроверки
Цель лекции: Ознакомление с нейронными сетями. В каких случаях целесообразно использовать нейросети. Понятие однослойной сети. Рассмотреть пример применения нейронной сети для обработки данных.
Начало современным моделям нейронных сетей (НС) было положено в работе У. Маккаллока и У. Питтса [5]. Эти авторы сделали первую попытку эмулировать человеческие способности, классифицировать и распознавать образы. Дальнейшее развитие связано с работой Ф. Розенблатта [8]. Его модель была названа перцептроном. После некоторого затишья, с начала 1980-х годов начался и продолжается до настоящего времени новый виток развития моделей НС. Он связан с работами С. Гроссберга, Т. Кохонена, Д. Хопфилда и др. [6,7,10].
Использование принципа нейросети обязательно там, где мы получаем первичную информацию для последующих выводов: органами зрения, слуха, обоняния, осязания. На этом же уровне мы способны провести первичную классификацию и принять оперативное решение: убежать от стремительно приближающегося автомобиля, надеть противогаз и т.д.
Значит, в нашей жизнедеятельности, требующей разнообразного проявления, существует такая ниша, где решение должно быть сверхоперативным, скорее - рефлекторным, не допускающим анализа. Этому способствует высокий параллелизм сети. Именно высокий параллелизм, наряду с исключением сложных расчетов, обусловил взрыв интереса к системам искусственного интеллекта в начале 1980-х годов, когда остро встала задача разработки вычислительных средств сверхвысокой производительности [10].
Важный вопрос современной науки - актуальность аппаратной реализации нейросети или нейрокомпьютеров, т.к. программная модель на непараллельном компьютере лишена свойства высокого параллелизма мозга и ограничивает выход на "большие" нейросети.
Этот параллелизм выражается в том, что одновременно обрабатывается большое число цепочек нейронов. При этом каждый нейрон обрабатывается хотя и по одному алгоритму, но - по разным его ветвям: один, в конце концов, возбудится, другой нет; связи нейрона индивидуальны и изменяются не идентично связям других нейронов и т.д.
Ставя задачу разработки параллельного вычислительного устройства - нейрокомпьютера, способного имитировать работу нейросети с учетом ее достоинств по реализации высокой производительности, следует учесть, что:
При программной реализации нейросети перечисленные требования соответствуют SPMD-технологии ("одна программа - много потоков данных") [21], привлекательность которой обоснована для многих приложений параллельного решения задач высокой сложности.
При аппаратной реализации нейрокомпьютеров (НК) (или его аппаратной поддержке) также необходимо учесть следующее требование: один нейроподобный элемент должен делить время между имитацией многих нейронов. Жесткая аппаратная имитация нейросети, соответствующая связи "один нейроподобный элемент - один нейрон", неэффективна, т.к. ограничивает возможную размерность моделируемой сети.
Учитывая специализацию нейрокомпьютера при применении сетевых технологий в рамках построения более сложных управляющих систем, целесообразно, чтобы НК использовался как сопроцессор под управлением мощного и универсального компьютера-монитора. В рамках сегодняшних компьютерных технологий НК должен дополнять персональный компьютер как его внешнее устройство и "врезаться" в существующую основную сеть.
В литературе [12,21,22] искусственный нейрон имитирует в первом приближении свойства биологического нейрона. На вход искусственного нейрона поступает некоторое множество сигналов, каждый из которых является выходом другого нейрона. Каждый вход умножается на соответствующий вес, аналогичный синаптической силе, и все произведения суммируются, определяя уровень активации нейрона.
(рис 10.1) Определение уровня активности нейрона
На рисунке 10.1 представлена модель, реализующая эту идею. Множество входных сигналов, обозначенных $$x_1, x_2, . . . x_n$$, поступает на искусственный нейрон. Эти входные сигналы, в совокупности обозначаемые вектором $$Х$$, соответствуют сигналам, приходящим в синапсы биологического нейрона.
Каждый сигнал умножается на соответствующий вес $$u_1, u_2, . . . u_n$$, и поступает на суммирующий блок, обозначенный $$\square$$. Каждый вес соответствует "силе" одной биологической синаптической связи. (Множество весов в совокупности обозначается вектором $$W$$.) Суммирующий блок, соответствующий телу биологического элемента, складывает взвешенные входы алгебраически, создавая выход, который мы будем называть $$NET$$. В векторных обозначениях это может быть компактно записано следующим образом: $$NET = XW$$
Сигнал $$NET$$ далее, как правило, преобразуется активационной функцией $$F$$ и дает выходной нейронный сигнал $$OUT$$. Активационная функция может быть обычной линейной функцией
$$OUT = F(NET),$$
где $$F$$— константа, пороговой функцией
$$OUT=\begin{cases}
1,\text{если $NET>T$}\\
0,\text{если $NET\leqslant T$}
\end{cases}$$
где $$T$$— некоторая постоянная пороговая величина, или же функция, более точно моделирующая нелинейную передаточную характеристику биологического нейрона и предоставляющая нейронной сети большие возможности [8].
(рис 10.2) Сигмоидальная (S-образная) функция
На рисунке 10.2 блок, обозначенный $$F$$, принимает сигнал $$NET$$ и выдает сигнал $$OUT$$. Если блок $$F$$ сужает диапазон изменения величины $$NET$$ так, что при любых значениях $$NET$$ значения $$OUT$$ принадлежат не которому конечному интервалу, то $$F$$ называется "сжимающей" функцией. В качестве "сжимающей" функции часто используется логистическая или "сигмоидальная" (S-образная) функция ( см. Рисунок 10.2 ). Эта функция математически выражается как $$F(x)=1/(1+e-x)$$ Таким образом, $$OUT=\frac 1 {1+e^{-NET}}$$
По аналогии с электронными системами активационную функцию можно считать нелинейной усилительной характеристикой искусственного нейрона. Коэффициент усиления вычисляется как отношение приращения величины $$OUT$$ к вызвавшему его небольшому приращению величины $$NET$$. Он выражается наклоном кривой при определенном уровне возбуждения и изменяется от малых значений при больших отрицательных возбуждениях (кривая почти горизонтальна) до максимального значения при нулевом возбуждении и снова уменьшается, когда возбуждение становится большим положительным.
С. Гроссберг (1973) [22] обнаружил, что подобная нелинейная характеристика решает поставленную им дилемму шумового насыщения. Каким образом одна и та же сеть может обрабатывать как слабые, так и сильные сигналы? Слабые сигналы нуждаются в большом сетевом усилении, чтобы дать пригодный к использованию выходной сигнал. Однако усилительные каскады с большими коэффициентами усиления могут привести к насыщению выхода шумами усилителей (случайными флуктуациями), которые присутствуют в любой физически реализованной сети. Сильные входные сигналы, в свою очередь, также будут приводить к насыщению усилительных каскадов, исключая возможность полезного использования выхода. Центральная область логистической функции, имеющая большой коэффициент усиления, решает проблему обработки слабых сигналов, в то время как области с падающим усилением на положительном и отрицательном концах подходят для больших возбуждений. Таким образом, нейрон функционирует с большим усилением в широком диапазоне уровня входного сигнала. $$OUT=\frac 1 {1+e^{-NET}}=F(NET)$$
Другой широко используемой активационной функцией является гиперболический тангенс. По форме она сходна с логистической функцией и часто используется биологами в качестве математической модели активации нервной клетки. В качестве активационной функции искусственной нейронной сети она записывается следующим образом:
$$OUT=th(x)$$
(рис 10.3) Гиперболический тангенс
Подобно логистической функции гиперболический тангенс является S-образной функцией, но он симметричен относительно начала координат, и в точке $$ NET = 0 $$ значение выходного сигнала $$ OUT = 0 $$ (см. Рисунок 10.3). В отличие от логистической функции, гиперболический тангенс принимает значения различных знаков, и это его свойство применяется для целого ряда сетей.
Рассмотренная простая модель искусственного нейрона игнорирует многие свойства своего биологического двойника. Например, она не принимает во внимание задержки во времени, которые воздействуют на динамику системы. Входные сигналы сразу же порождают выходной сигнал. В этой модели не учитывает воздействий функции частотной модуляции или синхронизирующей функции биологического нейрона, которые ряд исследователей считают решающими в нервной деятельности естественного мозга.
Несмотря на эти ограничения, сети, построенные из таких нейронов, обнаруживают свойства, сильно напоминающие биологическую систему. Только время и исследования смогут ответить на вопрос, являются ли подобные совпадения случайными или же это следствие моделирования при котором верно отражены важнейшие черты биологического нейрона.
Хотя один нейрон и способен выполнять простейшие процедуры распознавания, но для серьезных нейронных вычислений необходимо соединять нейроны в сети. Простейшая сеть состоит из группы нейронов, образующих слой, как показано в правой части рисунка ( см. Рисунок 10.4). Вершины-круги слева служат лишь для распределения входных сигналов. Они не выполняют каких-либо вычислений, и поэтому не будут считаться слоем. Для большей наглядности обозначим их кругами, чтобы отличать их от вычисляющих нейронов, обозначенных квадратами. Каждый элемент из множества входов $$Х$$ отдельным весом соединен с каждым искусственным нейроном. $$А$$ каждый нейрон выдает взвешенную сумму входов в сеть. В искусственных и биологических сетях многие соединения могут отсутствовать, но здесь они показаны все для демонстрации общей картины. Могут существовать также соединения между выходами и входами элементов в слое [4].
(рис 10.4) Простейшая нейронная сеть
Удобно считать веса элементами матрицы W. Матрица имеет $$m$$строк и $$n$$ столбцов, где $$m$$ — число входов, а $$n$$ — число нейронов. Например, $$u_{2,3}$$— это вес, связывающий второй вход с третьим нейроном. Таким образом, вычисление выходного вектора $$N$$, компонентами которого являются выходы $$OUT$$ нейронов, сводится к матричному умножению $$N = XW$$, где $$N$$ и $$X$$— векторы-строки.
Построение универсальных моделей нейросетей в составе программного обеспечения компьютера, снабженных механизмами приспособления под задачу пользователя задача современной действительности. Еще более актуально построить набор аппаратных средств – нейросетей, сопряженных с компьютером и, по выбору пользователя, участвующих в решении сложных задач. Такие аппаратно реализованные нейросети, как приставки или внешние устройства компьютера, например, определяют специальное направление использования ПЛИС (programmable logic device программируемая интегральная схема) - интегральных схем с программируемой логикой.
Если рассматривать сеть, то необходимо принимать во внимание то, что, во-первых, предложенное решение должно учитывать текущее состояние сети, качество связи и наличие критических участков, а во-вторых, поиск оптимального решения должен осуществляться в реальном времени. Выбор маршрутов, максимизирующих степень узла в сети, предоставляет возможность планирования работы сети таким образом, чтобы время пересылки пакета по сети было бы минимальным. Степень узла определяется как сумма всех потоков, поступающих в узел и исходящих от узла. Критерий качества работы, который выбирается для задач маршрутизации, должен отражать цели, связанные с соответствующей задачей, составления плана работы линий связи. Требуется выбрать маршрут между парой источник – приемник с таким расчетом, чтобы минимизировать критерий качества работы. Показатель качества работы должен согласовываться со структурой нейронной сети.
Рассмотрим пример применения НС для предсказания прохождения пакетов по сети.
С каждой такой нейронной сетью связан потоковый граф, вершины которого соответствуют нейронам, а также входам и выходам сети, а дуги – связям. Пусть $$V$$ - множество вершин сети, тогда множество дуг $$D$$ является подмножеством $$V \times V$$, т.е. каждой дуге соответствует упорядоченная пара вершин $$V_1 , V_2$$ из первой дуга исходит, а во вторую – входит. Каждой вершине $$V$$ сопоставим активационную функцию $$\varphi_v$$, каждой дуге $$ (u,v)$$– вес $$W_{u,v}$$. Сеть прямого распространения не имеет циклов, т.е. её вершины всегда можно пронумеровать так (т.е. $$V$$ можно считать множеством натуральных чисел), что $$ u < v$$ для каждой дуги.
Обозначим $$y_v$$ вход соответствующего вершине с номером $$v$$ нейрона, а $$xv$$ - его выход. Тогда указанная нейронная сеть описывается соотношением $$y_v=\sum\limits_{u:(u,v)\in D}w_{u,v}x_u$$ т.е. суммирование производится по всем входящим в нейрон дугам $$x_v=\varphi_v (y_v)$$
Для большинства архитектур нейронных сетей отображение $$\varphi_v$$ действует покоординатно и определяется функцией активации соответствующего нейрона. Недостатком таких сетей является, невозможность рассмотрения процедуры их модификации, работающие на уровне отдельных связей.
Для исследований выбираем архитектуру сети: линейную нейронную сеть с линией задержки по входу на 4 такта, с одним входом. Алгоритм управления потоками в этой сети состоит в следующем. В течение некоторого времени гипотетический прибор собирает информацию о состоянии сети. На вход нейронной сети, с одним слоем и числом нейронов n поступает некая информация, в соответствии, с которой сеть, находит образ на выходе и устанавливается в состояние равновесия. Данные для моделирования сети возьмем из предыдущего раздела. Значения входной переменной обозначим как массив P={[1;5,4] [2;4,7] [3;2,9] [4;1,8]}, первое значение это количество переходов, второе значение это скорость передачи информации и массив цели T={1,84;1,49;0,37;0,1} время прохождения информации по сети. Обучающая последовательность time=0:0.1:1
Проектируем сеть с помощью MATLAB (см. Рисунок 10.5).
(рис 10.5) Окно управления сетью
Последовательность входов и целей представлены на Рисунке 10.4 исходя из этих данных моделируем нейронную сеть. Имитационная модель нейронной сети представлена на рисунке 10.6.
(рис 10.6) Модель нейронной сети
Имитационную модель рассмотрим в системе Simulink. Эта схема в данном пакете является в полной мере функциональной. Функциональная схема модели нейронной сети представлена на рисунке 10.7.
(рис 10.7)
Для однослойной нейронной сети рассмотрим процесс функционирования более подробно. Каждый элемент вектора входа соединен со всеми входами нейрона и это соединение задается матрицей весов W; при этом каждый $$i-й$$ нейрон включает суммирующий элемент, который формирует скалярный выход $$n(i)$$. Совокупность скалярных функций $$n(i)$$ объединяются в $$S$$ – элементный вектор входа $$n$$ функции активации слоя. Выходы слоя нейронов формируют вектор столбец а, и таким образом описание слоя нейтронов имеет вид $$a=f(W \cdot P + b)$$ и описывает одиночный маршрут. Структурная схема однослойной нейронной сети представлена на Рисунке 10.8, здесь $$P$$ – вектор входа $$R \times 1$$, $$W$$ – весовая матрица $$SxR,n,a,b$$ векторы размера $$S \times 1$$.
На данном этапе разработки аналитическим способом подобраны оптимальные значения факторов. По количеству факторов определено число нейронов в сети. Модель нейронной сети выбирает образ из набора, который содержится в её памяти.
(рис 10.8)
НС представляет собой адаптивную систему, жизненный цикл которой состоит из двух независимых фаз – обучения и работы сети.
Обучение сети состоит в поиске вектора $$w$$, для которого суммарная ошибка по всем маршрутам минимальна: $$E(w)=\sum\limits_{n-1}^N e_n=min$$ $$e_n$$ - ошибка для $$n$$ - маршрута.
Для исследования процесса маршрутизации в вычислительных сетях используем нейронные сети прямого распространения с частичной структурой связей.
Обучение — это процесс, в результате которого система постепенно приобретает способность отвечать нужными реакциями на определенные совокупности внешних воздействий, а адаптация — это подстройка параметров и структуры системы с целью достижения требуемого качества управления в условиях непрерывных изменений внешних условий.
Кроме того, результат самообучения характеризует пригодность выбранного пространства для конкретной задачи обучения распознаванию. Если абстрактные образы, выделяемые в процессе самообучения, совпадают с реальными, то пространство выбрано удачно. Чем сильнее абстрактные образы отличаются от реальных, тем "неудобнее" выбранное пространство для конкретной задачи.
Таким образом, полный алгоритм обучения НС с помощью процедуры обратного распространения строится так:
$$y^{(n)}_j=f(S^{(n)}_j),$$ где $$f()$$-сигмоиддальная функция
$$y_q(0)=I_q,$$ где $$I_q$$ - q-я компонента вектора входного образа.
Сети на шаге 1 попеременно в случайном порядке предъявляются все тренировочные образы, чтобы сеть, образно говоря, не забывала одни по мере запоминания других. Алгоритм иллюстрируется на рисунке 10.9.
(рис 10.9) Диаграмма сигналов в сети
В процессе обучения линейной сети траектория будет перемещаться из начальной точки в точку минимума критерия качества.
Рассчитаем пороговое значение качества для процесса маршрутизации.
Программа построения, поверхности функции критерия качества
P=[5,4;4,7;2,9;1,8]; % вектор входов >> T=[1,84;1,49;0,37;0,1];% вектор целей >> maxlr=0.40*maxlinlr(P,'bias'); % максимальное значение параметров обучения >> net=newlin([-2 2],1,[0],maxlr); % расчет функции критерия качества >> w_range=-1:0.2:1; b_range=-1:0.2:1; %Диапазоны значений весов и смещения >> ES=errsurf(P,T,w_range,b_range,'purelin'); >> surfc(w_range,b_range,ES); %Построение поверхности функции критерия качества
Программа построение линий уровня и траектории обучении
y(1)=net.b{1};
>> net.trainParam.goal=0.001; %Пороговое значение критерия качества
>> net.trainParam.epochs=1; %Число эпох
>> for i=2:10; %Цикл вычисления весов и смещения для одной эпохи
for i=2:10,
[net,tr]=train(net,P,T);
x(i)=net.IW{1};
y(i)=net.b{1};
end
clf, contour(w_range,b_range,ES,20), hold on; %Построение линий уровня и траектории обучении
plot(x,y,'-*'),hold off
(рис 10.10) График обучения нейронной сети
На рисунке 10.10 видно, что примерно через 10 шагов при заданной точности (порогового значения качества) 0,001 обучение закончено. В результате получим диапазон смещения весов IW = 0.880 0.408 -0.055 -0.507; b=-0.045.
Обучение считается законченным, когда сеть правильно выполняет преобразование на тестовых примерах и дальнейшее обучение не вызывает значительного изменения настраиваемых весовых коэффициентов. Преимуществом при выборе данной архитектуры сети явилось возможность преобразования ранее неизвестных данных на основе процесса обучения нелинейной модели [21].
Сеть успешно работает до тех пор, пока существенно не изменится реальная модель. Сеть может быть дообучена с учетом новой информации, причем предыдущая информация не теряется, а обобщается с вновь поступившей. При "повреждении" части весовых коэффициентов НС и ее свойства могут быть полностью восстановлены в процессе дообучения.
От того, насколько качественно будет выполнен этап обучения НС, зависит способность сети решать поставленные перед ней проблемы во время эксплуатации. Процесс обучения использует три фундаментальных свойства, связанных с обучением сети: загруженность сети, сложность маршрутов и вычислительная сложность. Под загруженностью сети понимается, сколько пакетов может пройти по сети, и какие функции, и границы принятия решений могут быть на ней сформированы. Сложность маршрута определяет числом переходов, необходимых для достижения работоспособности сети.
Краткие итоги
В лекции рассматривается нейронная сеть, правила ее построения. Построение универсальных моделей нейросетей в составе программного обеспечения компьютера, снабженных механизмами приспособления под задачу пользователя задача современной действительности.
Приведен пример построения модели нейронной сети нечеткой логики для обработки данных с применением программы MATLAB.
Вопросы для самопроверки
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.