Возможности перцептрона Розенблатта/Решение для "стрелка" и "самолётик"
Детальные инструкции
[править]Вначале нужно:
- Изображение нашего перцептрона
- Заполнить таблицу исходных данных входы-выходы.
- Рассчитать 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 колонках и как поступать со вторым стимулом, представления о котором вообще пока что не имею...
- Эти w1,w2,w3 - это связи между A1-R, A2-R, A3-R. Вначале они нули. Первый стимул ничего не меняет - ответ правильный коррекции нет. Далее читаем : При этом некоторые A-элементы возбудятся. Коэффициенты , соответствующие этим возбуждённым элементам, увеличиваем на 1., сколько будет ? Какие А-элементы возбудились при втором стимуле мы знаем из А-матрицы ...
- Как я понял моя проблема состоит в том что я не знаю весовых коэффициентов Р, так как не посчитал их.. :D Наверно именно это заставило меня подумать от куда взялось три нуля и вообще откуда взялись эти w1,w2,w3.. Но как их собственно получить? тем же способом у меня как-то не получается ?
- Вначале размерность, у нас только два стимула. Показываем стрелку - ошибки нет веса не изменяются. Следующий столбик, показываем самолетик, на выходе 0 вместо 1, как изменятся веса ?
- первый слой мы УЖЕ рассчитали, НЕ ПУТАЙТЕ его сюда. Мы сейчас считаем ВТОРОЙ слой. Вначале там нету связей - нули! Затем мы их изменяем, чтобы получить требуемый нам выход. Я написал ответ. Второй стимул активировал все А-элементы (теперь А-элементы являются входами), значит к тому чтобы было (нулям) прибавляем 1, получаем все единицы, идем на вторую итерацию, снова показываем первый стимул - получаем ошибку - на выходе дает 1, а нужно ноль, активирован только второй А элемент - уменьшаем вес на единицу. Ответ получен, теперь на первый стимул - выход 0, на второй 1.
- Но тут только нули, которые как видно идут от первого стимула, и не одного "возбуждённого элемента" как видно они равны нулю а значит в состоянии покоя. - ВОТ грубая ошибка, смотрите на А-матрицу , как это не одного возбужденного элемента ? Там что в А-матрице есть строка из нулей !?
- а почему итерации четыре? И почему единицы добавили к w1, w3 а к w2 не добавили? Если мы уже имеем на выходе 0 и 1, то что делать с оставшимися столбиками?
- Число итераций не известно - до отсутствия ошибок, 4 - это просто заготовка места. Вы не внимательны, вначале единицы добавили ко всем, а лишь затем отняли от w2.
- теперь кажется всё понятно.. Хотелось бы как-нибудь закрепить материал.
- Число итераций не известно - до отсутствия ошибок, 4 - это просто заготовка места. Вы не внимательны, вначале единицы добавили ко всем, а лишь затем отняли от w2.
- а почему итерации четыре? И почему единицы добавили к w1, w3 а к w2 не добавили? Если мы уже имеем на выходе 0 и 1, то что делать с оставшимися столбиками?