Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
xcont Пользователь 1ого уровня
Репутация: +2
Зарегистрирован: 11.01.2012 Сообщения: 119 Откуда: Аккаунт изъят администрацией форума Награды: Нет
|
Добавлено: Вт Июн 12, 2012 3:07 pm Заголовок сообщения: Однослойный персептрон на PHP (10 нейронов). Работает :))) |
|
|
Какаю бабочками :)))
Для тех, кому похуй, как работает, можете попробовать его обучить распознавать все цифры:
http://xcont.com/perc/newperceptron/ очень интересное занятие :)))))
Каждая новая цифра сбивает нейрон с толку, и некоторые цифры приходится учить повторно :)))
Ну а работает оно так:
15 входов, слой на 10 нейронов, 10 выходов.
Последний раз редактировалось: xcont (Вт Июн 12, 2012 3:14 pm), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
xcont Пользователь 1ого уровня
Репутация: +2
Зарегистрирован: 11.01.2012 Сообщения: 119 Откуда: Аккаунт изъят администрацией форума Награды: Нет
|
Добавлено: Вт Июн 12, 2012 3:14 pm Заголовок сообщения: |
|
|
Прежде, чем его обучать - поставьте галочку, чтобы очистить предыдущее обучение. Или можете не ставить :))) |
|
Вернуться к началу |
|
|
xcont Пользователь 1ого уровня
Репутация: +2
Зарегистрирован: 11.01.2012 Сообщения: 119 Откуда: Аккаунт изъят администрацией форума Награды: Нет
|
Добавлено: Вт Июн 12, 2012 3:15 pm Заголовок сообщения: |
|
|
Надо будет потом сделать, чтобы ему можно было некорректные картинки скармливать |
|
Вернуться к началу |
|
|
xcont Пользователь 1ого уровня
Репутация: +2
Зарегистрирован: 11.01.2012 Сообщения: 119 Откуда: Аккаунт изъят администрацией форума Награды: Нет
|
Добавлено: Вт Июн 12, 2012 3:30 pm Заголовок сообщения: |
|
|
По поводу обучения. Если вы обучите сеть распознавать 0 (надо ввести "0" и нажать на кнопочку "Поехали!"), сеть потом безошибочно будет угадывать 0. Но если потом обучите сеть распознавать 1 - она временно забудет 0. Поочередно обучая 0 и 1 - сеть научится их безошибочно распознавать. Но потом если обучить 2 - она опять будет тормозить на 0 и 1. Но в этот раз 0 и 1 она вспоминать будет значительно быстрее. |
|
Вернуться к началу |
|
|
Gruz Мастер-Флудер I
Репутация: +29/–8
Зарегистрирован: 17.11.2011 Сообщения: 4264 Откуда: Kiev Награды: Нет
|
Добавлено: Вт Июн 12, 2012 3:32 pm Заголовок сообщения: |
|
|
а границы цифер лучше четкие (т е black-white), или с градиентным переходом? _________________ -=- infinity-=- |
|
Вернуться к началу |
|
|
xcont Пользователь 1ого уровня
Репутация: +2
Зарегистрирован: 11.01.2012 Сообщения: 119 Откуда: Аккаунт изъят администрацией форума Награды: Нет
|
Добавлено: Вт Июн 12, 2012 3:36 pm Заголовок сообщения: |
|
|
Границы цифер - четкие. размеры 3х5. Но растянуты до 30х50 пикселей в браузере, чтобы их было видно. Нечеткость добавляет сам браузер.
Для самой же нейронной сети до пизды градиент - там жесткое стоит правило:
Код: | $rgb = imagecolorat($im, $x, $y);
$color=imagecolorsforindex($im, $rgb);
if($color['red']>127){
$color=0;
}else{
$color=1;
} |
то-есть, любые оттенки округляет до 0 или 1
В принципе, можно и разноцветные картинки скармливать, но как я уже писал где-то, с такой пороговой функцией она много не выучит. Поэтому для тестов выбрал цвета черный или белый. Когда разберусь, как туда сигмоиду влепить и убрать этот порог - сделаю с разноцветными картинками. |
|
Вернуться к началу |
|
|
xcont Пользователь 1ого уровня
Репутация: +2
Зарегистрирован: 11.01.2012 Сообщения: 119 Откуда: Аккаунт изъят администрацией форума Награды: Нет
|
Добавлено: Вт Июн 12, 2012 3:41 pm Заголовок сообщения: |
|
|
xcont писал(а): | Прежде, чем его обучать - поставьте галочку, чтобы очистить предыдущее обучение. Или можете не ставить :))) |
Надо наверное как-то с cookie еще прохоботиться, чтобы друг-другу не очищали. |
|
Вернуться к началу |
|
|
xcont Пользователь 1ого уровня
Репутация: +2
Зарегистрирован: 11.01.2012 Сообщения: 119 Откуда: Аккаунт изъят администрацией форума Награды: Нет
|
Добавлено: Вт Июн 12, 2012 4:00 pm Заголовок сообщения: |
|
|
PS. Чем выше порог активации - тем умнее сеть, и тем дольше ее обучать.
Это-же касается и весов, которые мы отнимаем (прибавляем) на каждом этапе обучения. Чем больше отнимем (прибавим) - тем глупее становится сеть. Если отнимать (прибавлять) входные сигналы - сеть получается довольно глупой. Чтобы сеть поумнела, надо перед корректировкой весов умножать входные сигналы на какой-то положительный дробный коэффициент (чем меньше - тем умнее сеть) |
|
Вернуться к началу |
|
|
xcont Пользователь 1ого уровня
Репутация: +2
Зарегистрирован: 11.01.2012 Сообщения: 119 Откуда: Аккаунт изъят администрацией форума Награды: Нет
|
Добавлено: Вт Июн 12, 2012 4:04 pm Заголовок сообщения: |
|
|
Самые проблемные цифры - 8 и 9, иногда 4 и 5 шалят. 1 2 и 0 узнает безошибочно.
Если повысить порог активации до 1000 - сеть становится умнее. Но повышать не буду, чтобы мне сайт не угробили. |
|
Вернуться к началу |
|
|
Rasty Crackpot
Репутация: +89/–10
Зарегистрирован: 23.05.2006 Сообщения: 24422
Награды: Нет
|
Добавлено: Вт Июн 12, 2012 6:01 pm Заголовок сообщения: |
|
|
Кстати, можно какой-то примитивный генетический алгоритм попробовать на этом персептроне соорудить.
На поверхности клеточного автомата |
|
Вернуться к началу |
|
|
xcont Пользователь 1ого уровня
Репутация: +2
Зарегистрирован: 11.01.2012 Сообщения: 119 Откуда: Аккаунт изъят администрацией форума Награды: Нет
|
Добавлено: Ср Июн 13, 2012 4:09 pm Заголовок сообщения: |
|
|
Мяу писал(а): | примитивный генетический алгоритм |
Не совсем ГА, но что-то интересное должно получится.
Скажем, есть у нас черные и красные "бактерии", черные у нас агрессивные и пытаются слопать красные. Все это происходит на поверхности (скажем 500х500) клеточного автомата с периодическими граничными условиями (без них не интересно). Каждая бактерия видит вокруг область диаметром 3-4 клетки. Бактериями управляет свой персептрон с 8 нейронами (каждый из которых определяет, куда бактерия переместится в следующий момент времени). Если это красные бактерии - они ищут вокруг себя черные бактерии и пытаются от них съебаться. Чем ближе черные и чем их больше - тем больше опасность. Если бактерия неправильно съебалась - уменьшаем веса нейрона, который сказал ей неправильно съебаться. (черные делают то-же самое, только с точностью да наоборот) Ну и в какой-то рандомный момент времени бактерия может размножиться передав нейронам потомков свои весовые коэффициенты.
Можно попробовать два варианта:
1. каждой бактерией управляет свой персептрон. Если бактерий 1000 - то и персептронов соответственно не меньше
2. Бактериями управляют только два персептрона, один черными, другой - красными. |
|
Вернуться к началу |
|
|
xcont Пользователь 1ого уровня
Репутация: +2
Зарегистрирован: 11.01.2012 Сообщения: 119 Откуда: Аккаунт изъят администрацией форума Награды: Нет
|
Добавлено: Ср Июн 13, 2012 4:15 pm Заголовок сообщения: |
|
|
Область, которую видит каждая бактерия:
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
стало быть, у каждого из 8 нейронов должен быть 81 вход.
8 нейронов, который выдал на входе больше порог - тот и определяет, куда сдвинется бактерия:
1 1 1
1 0 1
1 1 1
Если опасность увеличилась - нейрон ошибся и мы его наказываем (понижая коэффициенты)
Ну а если он так и не обучился - его слопают. Да и хуй с ним - лучше учиться надо было. |
|
Вернуться к началу |
|
|
xcont Пользователь 1ого уровня
Репутация: +2
Зарегистрирован: 11.01.2012 Сообщения: 119 Откуда: Аккаунт изъят администрацией форума Награды: Нет
|
Добавлено: Ср Июн 13, 2012 4:20 pm Заголовок сообщения: |
|
|
72 |
|
Вернуться к началу |
|
|
Gruz Мастер-Флудер I
Репутация: +29/–8
Зарегистрирован: 17.11.2011 Сообщения: 4264 Откуда: Kiev Награды: Нет
|
Добавлено: Ср Июн 13, 2012 7:32 pm Заголовок сообщения: |
|
|
Цитата: | Если бактерия неправильно съебалась - уменьшаем веса нейрона, который сказал ей неправильно съебаться |
ну ты и пишешь... читать очень даже интересно
Последний раз редактировалось: Gruz (Ср Июн 13, 2012 10:58 pm), всего редактировалось 3 раз(а) |
|
Вернуться к началу |
|
|
кроль да кефир уши
Репутация: +104/–11
Зарегистрирован: 03.06.2009 Сообщения: 10467 Откуда: пришел пиздец? Награды: Нет
|
Добавлено: Ср Июн 13, 2012 8:56 pm Заголовок сообщения: |
|
|
Круто сижу подрачиваю
Цитата: | Но повышать не буду, чтобы мне сайт не угробили. |
Gruz |
|
Вернуться к началу |
|
|
|