2009-12-09 2 views
6

Я пытаюсь определить для артикулярного нейрона, показанного ниже значений (0 или 1) для входов i1, i2 и i3, для которых он срабатывает (i0 - вход для веса смещения и всегда будет -1).Как определить, для чего будет срабатывать искусственный нейрон?

Веса

W0 = 1,5

W1 = -1

W2 = 1, и W3 = 2.

Предположим функцию активации, изображенной на рисунке.

Просьба уточнить ваш ответ, как я сделал несколько примеров и до сих пор я не в состоянии полностью понять теорию :(

Большое спасибо,

Mary J.

PS. изображение ниже:

image

ответ

3

Вы в основном имеют следующее уравнение для выхода нейрона, где i1, i2 и i3 может каждый имеют значение 0 или 1:

2*i3 + i2 - i1 - 1.5 >= 0 

Прежде всего, давайте посмотрим на наивысшее положительно взвешенное значение. Если i3 равно 0, наибольшее количество вы можете получить для левой стороны - -0,5, поэтому i3 должно быть 1, чтобы получить ненулевой вывод. Затем уравнение становится следующим:

i2 - i1 + 0.5 >= 0 

Теперь взгляните на отрицательно взвешенное значение. Если i1 равно 0, выход всегда будет больше нуля, независимо от того, что i2. Если i1 равен 1, i2 должен быть равен 1, чтобы там был ненулевой вывод.

поэтому у вас есть эти комбинации, которые создают ненулевую выход:

i1 i2 i3 

0  0  1 
0  1  1 
1  1  1 
+0

спасибо gnovice, мне интересно, можете ли вы ответить на мой другой вопрос? если я применил алгоритм псевдокода http://en.wikipedia.org/wiki/Artificial_neuron, к примеру, результат будет таким же, как и ваш ответ? –

+0

@mary: Да, этот псевдокод показывает, как вы вычислили значение вывода (с пороговым значением 0). Он по существу использует приведенную выше формулу I: если формула имеет значение true (т. Е. Сумма взвешенных входов на левой стороне больше порога), то из нейрона получается ненулевой вывод. Единственная проблема, которую вам следует учитывать, - использовать ли «>» или «> =» (т. Е. Если сумма 0 для взвешенных входов дает выход 0 или 1). – gnovice

+0

Спасибо за дополнительное разъяснение, гновиц. Я не был уверен в этом. Большое спасибо за ваш ответ! –

3

Казалось бы, как это просто я atter суммирования in * Wn и определения того, какие комбинации i1,2,3 дают положительный результат. Есть только 8 перестановок, поэтому просто запустите его вручную.

2

У меня есть беглое знание ИИ, но, насколько я знаю:

Суммы входов (Sigma i_n * W_n) должен быть больше, чем порог стрельбы. на втором снимке указывается порог срабатывания, на первом снимке отображаются входы и их вес.

Вы просто должны выяснить, какие суммы (не забудьте смещения) приведет к желаемому пороговому/интенсивности

3

Чтобы решить эту проблему в более общем смысле, первый взгляд на какие переменные и каковы фиксированные параметры.

В основном вы получаете на вход взвешивает вектор ж= [1.5, -1, 1, 2] и функция передачиg(x) = (sign(x)+1)/2, и вы хотите найти вход вектор в так, что: g(ж*в) = +1 (как произведение строки и вектора колонки), поэтому:

g(sum_over_i(w_i*in_i)) = 1    # product of vectors 
g(w0*in0 + w1*in1 + w2*in2 + w3*in3) = 1  # roll out the sum 
g(-1.5 - in1 + in2 + 2*in3) = 1    # replace the values of w and in 
0.5*(sign(-1.5 - in1 + in2 + 2*in3)+1) = 1  # definition of g(x) 
sign(-1.5 - in1 + in2 + 2*in3) = 1    # simplify 
-1.5 - in1 + in2 + 2*in3 >= 0     # by def: [sign(x)=1 iff x>=0] 

Обычно вы бы решить это уравнение с помощью вычисления производных, но так как входы в может принимать только значения 0 или 1, мы можем просто перечислить все случаи (есть 2^n или 8 случаев):

in1 in2 in3 -1.5-in1+in2+2*in3 
----------------------------------- 
0 0 0   -1.5 
0 0 1   0.5 * 
0 1 0   -0.5 
0 1 1   1.5 * 
1 0 0   -2.5 
1 0 1   -0.5 
1 1 0   -1.5 
1 1 1   0.5 * 

Следовательно, мы получаем значения в, для которых указанное выражение положительно.

Смежные вопросы