Зависимости выходного значения нейрона от синаптических коэффициентов

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

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

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

Искусственные нейронные сети

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

S = W0 + sum(WiXi)

Функция активации преобразует состояние нейрона в значение в форме и масштабе выходного сигнала:

Y = F(S)

Сигмоидная логистическая функция:

F(S) = 1 / (exp(-a(S-T) + 1)

Параметр a влияет на степень нелинейности изменения переменной в нормализуемом виде.

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

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

Практическая часть. Моделирование работы искусственного нейрона

Средой разработки стала Qt. Qt - кросс платформенный инструментарий разработки ПО на языке программирования C++. Для вывода графиков использовалась сторонняя библиотека "qcustomplot".

Графическая зависимость выходного значения нейрона от каждой из входных переменных в отдельности показан на следующем графике:

Графическая зависимость выходного значения нейрона от каждой из входных переменных

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

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

Графические зависимости выходного значения нейрона от каждого из синаптических коэффициентов

Как видно по графику при изменение коэффициентов w1 и w2 выходное значение нейрона изменяется примерно одинаково и стремится к значение ~0.6. Большое влияние на выходное значение оказывает коэффициент смещения, при увеличении W0 выходное значение стремится к 1, т.к. W0 является весом фиктивного единичного входа, что и является причиной такого влияния.

Графические зависимости выхода нейрона от каждого из параметров активационной функции:

зависимость выходного значения нейрона от коэффициента a

зависимость выходного значения нейрона от коэффициента Т

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

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

Комментарии  

+1 # rules 18.06.2017 01:18
А где сама программа?)
Ответить | Ответить с цитатой | Цитировать
+1 # celvins 18.06.2017 10:34
Хм, просто код писался очень давно и лежал в чертогах моего компьютера :DD Код не идеален, но он работает, выложил специально для вас в репозиторий: https://github.com/celvins/neuron_graph.git ) Скоро добавлю еще одну статью с реализованной нейросетью способной обучаться тоже на c++ там код уже более менее универсальный )
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий


Защитный код
Обновить