Возможности перцептрона Розенблатта/Решение для "стрелка" и "самолётик"

## Детальные инструкции

Вначале нужно:

- Изображение нашего перцептрона
- Заполнить таблицу исходных данных входы-выходы.
- Рассчитать w:A-матрица перцептрона



Вход 1 (X1) | Вход 2 (X2) | Вход 3 (X3) | Вход 4 (X4) | Вход 5 (X5) | Вход 6 (X6) | Выход | |
---|---|---|---|---|---|---|---|

Стимул 1 (стрелка) | |||||||

Стимул 2 (самолетик) |



*Подсказка:* дело в том, что перцептрон описывает только битами, если у нас один выходной элемент R, то выход 0 будет скажем "стрелка", а 1 - "самолетик". Теперь коррекция весов делается если произошла ошибка на выходе, вместо 0 получили 1, или наоборот. Делается так, +1 к весу всех активных А-элементов, если на выходе нужна 1, и -1 если на выходе нужно 0.

## Ход решения

### Рисунок и входы-выходы



- Уже кое что. Но рисунок не правильный. Входов так много нету, от того, что мы подаем два образа, число входов не увеличивается подаем на те же самые. Т.е. половину входов и их связей с рисунка удаляйте. Далее каждая связь между точками имеет свой вес, для первого слоя выбирается случайно +1 или -1. Поэтому задайте их на рисунке ! Для второго слоя будем искать, но вначале они =0.

*Вопрос студента:* не понятно каким принципом придаётся +1 или -1. Зачем? Не могу понять как ставится +1 или на что нужно основываться?

- Уже хорошо. +1 и -1 - это т.н. возбуждающие и тормозящие связи (чтобы определить возбужден ли А-элемент, надо сложить все связи, которые были активированы входами, если будет +1 и -1, то даже при наличии входов реакции не будет! это позволяет избавляться от черезмерной активности на входах, а в А-элементах среднее стабильная активация.
*каким принципом?*- в первом слое**случайность**), если были бы только +1 то более сложные примеры не могли бы решится. Но данный пример простой, поэтому пускай будут все +1.



Вход 1 | Вход 2 | Вход 3 | Вход 4 | Вход 5 | Вход 6 | Выход | |
---|---|---|---|---|---|---|---|

Стимул 1 (стрелка) | 0 | 1 | 0 | 0 | 0 | 0 | 0 |

Стимул 2 (самолетик) | 0 | 1 | 1 | 1 | 1 | 0 | 1 |


### А - матрица

*Студент:* Получается что А* будет равна суммированию умноженных (ради упрощения решения и только в данном задаче) на +1 входов (Х1,Х2,Х3...), и в одной строчке этой матрицы значений должно быть столько сколько используется А-элем. в перцепртроне, а стимулы в данный момент это фигурки? У меня выходят большие числа, превышающие 2 и 3, да и сама формула

;

тоже немного удлиняется, и не выглядит такой короткой как тут, это нормально?

- Типа того, w - все будут 1. Стимулы - это фигурки.
*числа, привышающие 2 и 3*это нормально для A*, не забудьте перейти к A, там только 0 и 1. Порог по умолчанию , вы не теряйтесь - показывайте ход вашего решения, и если нужно поправим.

;

;

,

где элемент матрицы A*;

.

*Студент:*Что не так?- Вы уверены, что Стимул №1 - у Вас стрелка ? (перепутано). Откуда начинаете нумеровать А элементы сверху вниз ? Откуда взялись -1 если мы договорились, что все веса +1 ? Правильный ответ (найдите свою ошибку, и поясните в чем она была):



.

- совсем забыл про плюсы .. Если повсюду ставить +1 то во втором стимуле что-то изменится, но в первом (стрелка, где активным является только один вход, а остольные 0) как не складываю всё-равно в порядке А сверху вниз получается (1.1.1). В самолётике (4.4.4) и в итоге =




. Что-то у меня явно не так как надо..

- Вы подумайте чисто логически, стрелка "зажигает" только один S2 элемент, от него есть только одна связь к A2, который и активируется. Как же у вас активируются и A1 и A3 ? Вы складываете нули и получаете 1 :) ((4.4.4) - тоже не верно)
- О !!! Я понял почему Вы ошибаетесь,
**там где нет связи**нужно умножать не на -1, и не на +1, а на**ноль**.- упс, теперь кажется дошло что значит формула и как она работает... Пытаясь разобрать эти минусы и плюсы совсем забыл про логику.. :D Позже для полного усвоения постараюсь написать А-матрицу других фигур а пока полностью соглашусь что .
- Но это чисто логически, а как это должно выглядеть по формуле?






;

; Так?

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







### Весовые коэффициенты второго слоя

Теперь отталкиваемся от матрицы А, и по той же самой логике определяем, что на выходе R, когда подаем стрелку - дает 0, ошибки нет, подаем второй стимул самолетик - ошибка, как изменятся весовые коэффициенты w1, w2 и w3 ?

- Теоритически: показываем перцептрону объект первого класса. При этом некоторые A-элементы возбудятся. Коэффициенты , соответствующие этим возбуждённым элементам,
*увеличиваем*на 1.




Веса | Итерации | |||||||
---|---|---|---|---|---|---|---|---|

1 | 2 | 3 | 4 | |||||

w1 | 0 | 1 | 1 | х | х | х | х | х |

w2 | 0 | 1 | 0 | х | х | х | х | х |

w3 | 0 | 1 | 1 | х | х | х | х | х |

№ стимула | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 |


- вновь ничего не понял... Как туда вставить полученные коэффициенты и каким методом их уровнить или применить ту теорию?
- Вначале размерность, у нас только два стимула. Показываем стрелку - ошибки нет веса не изменяются. Следующий столбик, показываем самолетик, на выходе 0 вместо 1, как изменятся веса ?
- Как я понял моя проблема состоит в том что я не знаю весовых коэффицентов Р, так как не пощитал их.. :D Наверно именно это заставило меня подумать от куда взялось три нуля и вообще откуда взялись эти w1,w2,w3.. Но как их собственно получить? темже способом у меня как-то не получается ?
- Эти w1,w2,w3 - это связи между A1-R, A2-R, A3-R. Вначале они нули. Первый стимул ничего не меняет - ответ правильный коррекции нет. Далее читаем :
*При этом некоторые A-элементы возбудятся. Коэффициенты , соответствующие этим возбуждённым элементам,*увеличиваем*на 1.*, сколько будет ? Какие А-элементы возбудились при втором стимуле мы знаем из А-матрицы ...- Я понимаю всё что там написанно, но три нуля, они меня убивают... Я два дня бился головой об стенку чтобы достать от кудо-то 0.1.0 и 1.1.1, после ещё один день чтобы понять от куда я их достал.. В это время вы утверждаете что там должно быть три нуля.. как? от куда? 2 входа, 3 "А" один выход он даёт два сигнала если правельно распредилить весы.. веса +1 0 и -1 мы используем только +1, чтобы что? и тогда как можно использовать -1? Меня путают три нуля, если от первого стимула которым я считал 0.1.0 получился 0.0.0. то что получится от 1.1.1. или почему если изменился первый стимул также может не изменится второй..
*При этом некоторые A-элементы возбудятся. Коэффициенты , соответствующие этим возбуждённым элементам,*увеличиваем*на 1.*Но тут только нули, которые как видно идут от первого стимула, и не одного "возбуждённого элемента" как видно они равны нулю а значит в состоянии покоя. Тогда что увеличивать? Или увеличить все сразу записав их в первом стимуле второй колонки? Но тогда что делать в следующих 2 колонках и как поступать со вторым стимулом, предстовления о котором вообще покачто не имею...

- Я понимаю всё что там написанно, но три нуля, они меня убивают... Я два дня бился головой об стенку чтобы достать от кудо-то 0.1.0 и 1.1.1, после ещё один день чтобы понять от куда я их достал.. В это время вы утверждаете что там должно быть три нуля.. как? от куда? 2 входа, 3 "А" один выход он даёт два сигнала если правельно распредилить весы.. веса +1 0 и -1 мы используем только +1, чтобы что? и тогда как можно использовать -1? Меня путают три нуля, если от первого стимула которым я считал 0.1.0 получился 0.0.0. то что получится от 1.1.1. или почему если изменился первый стимул также может не изменится второй..

- Эти w1,w2,w3 - это связи между A1-R, A2-R, A3-R. Вначале они нули. Первый стимул ничего не меняет - ответ правильный коррекции нет. Далее читаем :

- Как я понял моя проблема состоит в том что я не знаю весовых коэффицентов Р, так как не пощитал их.. :D Наверно именно это заставило меня подумать от куда взялось три нуля и вообще откуда взялись эти w1,w2,w3.. Но как их собственно получить? темже способом у меня как-то не получается ?

- Вначале размерность, у нас только два стимула. Показываем стрелку - ошибки нет веса не изменяются. Следующий столбик, показываем самолетик, на выходе 0 вместо 1, как изменятся веса ?

- первый слой мы УЖЕ рассчитали, НЕ ПУТАЙТЕ его сюда. Мы сейчас считаем ВТОРОЙ слой. Вначале там нету связей - нули! Затем мы их изменяем, чтобы получить требуемый нам выход. Я написал ответ. Второй стимул активировал все А-элементы (теперь А-элементы являются входами), значит к тому чтобы было (нулям) прибавляем 1, получаем все единицы, идем на вторую итерацию, снова показываем первый стимул - получаем ошибку - на выходе дает 1, а нужно ноль, активирован только второй А элемент - уменьшаем вес на единицу. Ответ получен, теперь на первый стимул - выход 0, на второй 1.
*Но тут только нули, которые как видно идут от первого стимула, и не одного "возбуждённого элемента" как видно они равны нулю а значит в состоянии покоя.*- ВОТ грубая ошибка, смотрите на А-матрицу , как это не одного возбужденного элемента ? Там что в А-матрице есть строка из нулей !?- а почему итерации четыре? И почему единицы добавили к w1, w3 а к w2 не добавили? Если мы уже имеем на выходе 0 и 1, то что делать с оставшимися столбиками?
- Число итераций не известно - до отсутствия ошибок, 4 - это просто заготовка места. Вы не внимательны, вначале единицы добавили ко всем, а лишь затем отняли от w2.
- теперь кажется всё понятно.. Хотелось бы как-нибудь закрепить материал.


- Число итераций не известно - до отсутствия ошибок, 4 - это просто заготовка места. Вы не внимательны, вначале единицы добавили ко всем, а лишь затем отняли от w2.

- а почему итерации четыре? И почему единицы добавили к w1, w3 а к w2 не добавили? Если мы уже имеем на выходе 0 и 1, то что делать с оставшимися столбиками?