Нейронные сети

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: Нейронные сети

Сообщение Duhas » 13 окт 2009, 05:05

EdGull писал(а):лучше уж тогда на генетических алгоритмах...

у меня вот препод тоже подобные фразы частенько произносит) а как рассказать можете ? вот поиск на них я себе представляю.. а как поведенческие алгоритмы реализовать- что-то смутно-смутно...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Нейронные сети

Сообщение =DeaD= » 13 окт 2009, 07:09

Да не в поведенческих алгоритмах дело - через генетику можно любые параметры алгоритмов подбирать, дело в другом - для них популяция нужна нефиговая и куча поколений.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Нейронные сети

Сообщение Lockdog » 16 окт 2009, 17:23

А объясните, что такое синаптический вес?
Аватара пользователя
Lockdog
 
Сообщения: 650
Зарегистрирован: 06 июл 2006, 20:42
Откуда: Москва
прог. языки: C/C++, Python

Re: Нейронные сети

Сообщение repository » 16 окт 2009, 17:32

Степень влияния сигнала на входе нейрона (синапса) на значение на выходе нейрона
repository
 
Сообщения: 260
Зарегистрирован: 29 окт 2008, 18:14
Откуда: Химки МО
прог. языки: Java

Re: Нейронные сети

Сообщение Strijar » 16 окт 2009, 18:51

Полезно почитать хотя бы - http://cache.rcom.ru/~dap/nneng/nnlinks/
Аватара пользователя
Strijar
 
Сообщения: 664
Зарегистрирован: 28 авг 2006, 17:09
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов

Re: Нейронные сети

Сообщение Lockdog » 16 окт 2009, 22:40

Да я начал читать Хайкина. Извиняюсь, возможно неправильно сформулировал вопрос. Определения этого термина я знаю. А на практике как это реализуется, как показывать нейрону какой сигнал важнее?
Аватара пользователя
Lockdog
 
Сообщения: 650
Зарегистрирован: 06 июл 2006, 20:42
Откуда: Москва
прог. языки: C/C++, Python

Re: Нейронные сети

Сообщение GlassEagle » 16 окт 2009, 23:09

Lockdog писал(а):...Возможно робота обучить, например, ездить, объезжать прпятствия и не падать с края стола? (естественно соответствующие датчики стоят)
Элементарно!! Наличие препятствия (сигнал от дальномера или какого-нить QRD1114) - 1, отсутствие - 0, есть сигнал от датчика поверхности - 1, нет сигнала, т.е. обрыв - 0. Число входов равно числу датчиков (в наиболее простом случае). Выходы - ожидаемая реакция робота на набор входных сигналов.

Но, как показывает суровая реальность, лучше не связываться с аналоговыми сигналами на входе непосредственно нейросети (сигналы от датчиков - это ужЕ другое дело). Для надёжности сигналы должны как следует отличаться друг от друга (т.е. иметь большое расстояние по Хэммингу), иначе сеть может обучиться как-бы не совсем тому, чего от неё ждут. (254 мало отличается от 255, и помехозащищённость хреновая.) И тогда может получиться, что каждый вход будет не 1-битовым, а, например, 8-битовым (11111111 - есть препятствие, 00000000 - нет, остальные комбинации могут быть либо чё-нить типа 00111100 - препятствие есть, но не слишком близко, либо 11101111 (и т.п.) - ошибка в одном бите, легко компенсируемая обученной сетью (на то она и нейросеть!!)). В итоге получится сеть не 4 входа (или сколько там датчиков) х 4 выхода (или сколько реакций или исполнительных механизмов), а 32х4. Как следствие, рост числа весовых коэффициентов в синаптических связях, как следствие, рост требований к объёму памяти.
Lockdog писал(а):А объясните, что такое синаптический вес?

repository писал(а):Степень влияния сигнала на входе нейрона (синапса) на значение на выходе нейрона
Да можно проще - коэффициент усиления сигнала на входе синаптического контакта между нейронами (т.е. между выходом одного нейрона и входом другого (а может и того же самого)), может быть, как больше 1, так и меньше, как положительный, так и отрицательный.
=DeaD= писал(а):Ездить не падая, избегая препятствий конечно можно научить - вопрос только в том - есть ли смысл всё обучение проводить в реале? Там же итераций 200 может понадобиться, например? ...
А зачем в реале? Можно сымитировать входные сигналы на обычном компе, обучить сеть, а в контроллер загружать ужЕ весовые коэффициенты (если влезут в память). Как тут ужЕ кто-то сказал, нейросеть, в сущности, это всего лишь набор массивов коэффициентов. И при обучении может получиться как 200 итераций, так и 150, и 2000.
=DeaD= писал(а):...
2. Некролинк - статье уже 10 лет скоро, наверняка за эти годы что-то поменялось :wink:
Скорее не поменялось, а добавилось. Но, увы, почему-то в новых толстых книгах обычно теорию приводят (классическую), а если что новое и есть, так это надо искать в буржуйских статьях на английском (а эти статьи ещё найти надо). Как ни странно, вполне нормальная книга есть двух голландцев (на английском) - кажись, 14-летней давности. Однако они там пишут такое, чего в новейших книгах какого-нить Осовскего или Пилиньскего и т.п. и в помине нет (не говоря уж про нижние ссылки).

А классическую теорию на русском более-менее доходчиво почитать можно на http://algolist.manual.ru или на http://www.intuit.ru (но, кажется, они либо друг у друга, либо у кого-то третьего передрали).

Добавлено спустя 6 минут 9 секунд:
Lockdog писал(а):... А на практике как это реализуется, как показывать нейрону какой сигнал важнее?
Табличкой. Чё-нить типа:
Входы
Передний датчик Левый датчик Правый датчик
1 0 0
0 1 0
0 0 1
... ... ...
Желаемые выходы
Левый двигатель Правый двигатель
0 0
1 0
0 1

Только не нейрону, а всей сети сразу. Одному нейрону показывать бессмысленно (по крайней мере, так получается на практике).
Когда я слышу слова "Первый закон робототехники", я вспоминаю анекдот про ноусэров.
GlassEagle
 
Сообщения: 160
Зарегистрирован: 14 окт 2009, 11:46
Откуда: Самара

Re: Нейронные сети

Сообщение repository » 16 окт 2009, 23:12

Ну на счет преимущества цифры перед аналоговыми я бы не согласился.
Многие аналоговые схемы на операциониках решают задачи, которые вычислять в булевской среде очень долго. Точность, скорость, массивная параллельность (реальная!).
Есть готовые процессоры фаззи лоджик, кстати.
по сути нейрон - микшер на операционике.

Кстати кто знает чем отличаются нейроны насекомых от теплокровнх?
Слышал, что они эфективнее, но деталей найти не смог.
На них какая то схема позиционирования микроспутников работала.
repository
 
Сообщения: 260
Зарегистрирован: 29 окт 2008, 18:14
Откуда: Химки МО
прог. языки: Java

Re: Нейронные сети

Сообщение GlassEagle » 16 окт 2009, 23:26

Кстати кто знает чем отличаются нейроны насекомых от теплокровнх?
Слышал, что они эфективнее, но деталей найти не смог.
На них какая то схема позиционирования микроспутников работала.

"- А по краям дороги мёртвые с косами стоят. И тишина...
- Брэхня-я-я-я".
Может, в нейрофизиологии нейроны чем-нить и отличаются, а в теории ИСКУССТВЕННЫХ нейронных сетей есть только один нейрон - "формальный нейрон МакКаллоха-Питтса" (для любителей, МакКаллока). Активационные функции и архитектуры сетей можно подобрать по своему усмотрению. Ну ещё, как пишут в одной статье на ругаемом тут "майроботе.ру", в машинках Брайтенберга стоЯт нейроны, генерирующие импульсы. И это вроде как даже ближе к нейрофизиологии, чем у МакКаллоха с Питтсом.
Когда я слышу слова "Первый закон робототехники", я вспоминаю анекдот про ноусэров.
GlassEagle
 
Сообщения: 160
Зарегистрирован: 14 окт 2009, 11:46
Откуда: Самара

Пред.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 15