roboforum.ru

Технический форум по робототехнике.

Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

JoHn_Syber » 31 дек 2009, 00:11

После долгих шастаний по форуме, решил собрать махенького робота который будет иметь способность обучаться и предсказывать маршрут, то есть направление черной линии. И заодно победить в онлайн конкурсе. Второе пролетел по времени за полторы недели еще до нового года на коленках, тяжеловато собирать, но вот что на данный момент получилось.
Конструкция проста, теоретически, но! Так как я планировал, что эта штука будет пролетать трассу за 4 сек. Оно летает со скоростью 2 м/с, из-за этого на переднем колесе пришлось добавить мотор для маневренности.
Конструкция :
at90s8515, 2 ключа на irz48 (что было под рукой), фото барьер классик lm311, 2 мотора и одна серва.
Нейронная сеть :
4 – входных сенсорных нейрона (они же фотодатчики)
3 – выходных мотонейрона (1-й мотор прямого хода, 2-й на рулевом колесе, 3-й серводвигатель).
Сама нейронная сеть 16 нейронов, пока играюсь с 8-мю.
Самое прикольное: целую ночь отучал «Неуловимого Джо» от вредной привычки «оНо» разгоняясь заезжало под кровать и там сидело. Только под утро удалось это «оно» отучить от этого.
Вложения
pic01_1.jpg
Джо
pic02_1.jpg
Джо сзади
сеть.PNG
Начальная модель сети
сеть.PNG (5.82 КиБ) Просмотров: 4839

Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

MiBBiM » 31 дек 2009, 00:14

а как его обучать? константы щелкать?

Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

JoHn_Syber » 31 дек 2009, 00:32

Обучение проходит, ставлю на стартовую позицию :
Кнопки для управления: 1-я старт – начало заезда и обучения.
Успешное Завершение – это езда по линии, с максимальным временем слета не более 0,1сек (пока так планирую), траса пишется в еепром и методом минимальных квадратов пересчитываются. Сейчас прорабатываю внутреннюю структуру нейронной сети и пробую оптимальный метод обучения. Конечно просто автомат было б проще .
2-я кнопка : пересчет весовых коэффициентов.

Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

avr123.nm.ru » 31 дек 2009, 02:10

Прикольно. Причесать бы их :D

Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

ALHIMIK » 31 дек 2009, 12:26

а видео ? :oops:

Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

=DeaD= » 31 дек 2009, 12:52

А поучаствовать в оффлайн-заезде? :oops:

Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

D1mcon » 31 дек 2009, 14:49

У меня возникли вопросы:
1) Какая функция активации используется?
2) Как определены весовые коэффциенты на начальном этапе?
3) По какой формуле они потом пересчитываются?
4) Что представляет собой нейрон программно?
5) Как программно представлены и реализованы связи?
6) Почему число нейронов входного и скрытого слоев одинаково?

Если такой упор делается на нейроподобоные структуры, то зачем писать в еепром? Ведь в теории нейрокомпьютеринга для таких вещей использую двунаправленную ассоциативную память.
Сейчас у Вас не все нейроны использованы, следовательно когла сеть обучится так просто задействовать остальные не получится - придется перестраивать все связи, переситывать весовые коэффициенты, значит либо сейчас избавиться от ненужных нейронов или использовать. :)
Последний раз редактировалось D1mcon 31 дек 2009, 15:06, всего редактировалось 2 раз(а).

Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

JoHn_Syber » 31 дек 2009, 14:59

Самое первое мое видео, моя маленькая радость «ОНО» передумало ехать под кровать, а это означает, что нейронная сеть пытаеться учиться.



А оффлайн заезд похоже уже есть победитель кажись в 20-х числах объявили, я конечно расстроился, что не успел, но это я делаю потому что надо уже переходить на более серьезный уровень роботостроения, а не простые автоматы.

Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

=DeaD= » 31 дек 2009, 15:05

Так соревнования не закончились, это просто был отдельный приз - вот народ сейчас от НГ праздников отойдёт и объявим следующие призы :)

Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

JoHn_Syber » 31 дек 2009, 15:51

D1mcon » Сегодня, 12:49
У меня возникли вопросы:
1) Какая функция активации используется?
2) Как определены весовые коэффциенты на начальном этапе?
3) По какой формуле они потом пересчитываются?

Если такой упор делается на нейроподобоные структуры, то зачем писать в еепром? Ведь в теории нейрокомпьютеринга для таких вещей использую двунаправленную ассоциативную память.
Сейчас у Вас не все нейроны использованы, следовательно когла сеть обучится так просто задействовать остальные не получится - придется перестраивать все связи, переситывать весовые коэффициенты.

Ответы
1) Мотонейроны : двигатель «вперед» и «поворотный» двигатель – имеют два режима (вкл/выкл) – пороговая функция , внутренние нейроны – линейная, а для сервы извращенно моя – выход формируется импульс от 1мс до 2мс.

2) Этот вопрос как раз пересекается с вопросом про еепром. Когда «оНо» просыпается весовые коэффициенты загружаются с еепрома , пересчет и обучение происходит в оперативке. Еепром еще применяю, чтоб анализировать данные для обучения. После удачного заезда тоже ложиться в еепром, чтоб когда выключить все не пропало, и к тому же для размножения :). Стартовые весовые – это была целая баталия, пробовал с нулевых и с рандомайза, но в процессе «оНо» их выровняло и поехало, криво правда.
3) Формула – просто прохожу массив нейронов суммируя и на выход.

Проблемы пока такого типа :
1. Мало памяти, все микроконтроллер – буду еще упрощать методы пересчетов.
2. Нужна индикация – счас припаял дисплей – чтоб посмотреть что оно делает .
3. Буду малость переделывать всю сеть (НС), хочу добавить слои которые будут активироваться на подобные сегменты трассы, потому что такая линейная модель СН которую я пытался обучить похоже не эффективна.
4. Улучшить метод обучения – совместить с учителем и без, гибрид.
5. И «ОнО» вчера с разгона налетело но стену – отбило себе рулевое колесо и датчик линии, придется сделать прочнее корпус и усе остальное.
6. А .. чуть не забыл крутиться в голове идея отслеживать отмирающие связи между нейронами, чтоб на них не тратить время..
7. Трассу нормальную склеить надо :)

Прогу пишу на AVR Basice - простой зараза

Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

D1mcon » 31 дек 2009, 17:30

JoHn_Syber писал(а):1) Мотонейроны : двигатель «вперед» и «поворотный» двигатель – имеют два режима (вкл/выкл) – пороговая функция , внутренние нейроны – линейная, а для сервы извращенно моя – выход формируется импульс от 1мс до 2мс.
тоже ложиться в еепром, чтоб когда выключить все не пропало, и к тому же для размножения . Стартовые весовые – это была целая баталия, пробовал с нулевых и с рандомайза, но в процессе «оНо» их выровняло и поехало, криво правда.
3) Формула – просто прохожу массив нейронов суммируя и на выход.
3. Буду малость переделывать всю сеть (НС), хочу добавить слои которые будут активироваться на подобные сегменты трассы, потому что такая линейная модель СН которую я пытался обучить похоже не эффективна.
6. А .. чуть не забыл крутиться в голове идея отслеживать отмирающие связи между нейронами, чтоб на них не тратить время..

1) В сети должна быть одна функция активации.
3) Про формулу - почему при рассчете весов не используется функция активации?
Весовые коеффициенты не могут быть нулевыми.
3. Зачем изменять? - Ваша задача научить робота определить это линия или нет, а для таких целей хватит и одного нейрона с сигмоидальной функцией активации. В сети не может быть слоев которые отключаются. :)
6. Почему связи отмирают? У вас в сети уже наступил паралич? Тогда попробуйте поменять трассу. Структура сети, обычно, задается, ее поведение определяют весовые коэффициенты, связи если "отмирают" или каким-то образом добавляют новые приводят к небходимости перерасчета всех весовых коэффициентов.
Но все жы вы не ответили, как программно представлен нейрон и организованны связи между ними. Особенно меня интересует последнее. :)

Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

Lockdog » 01 янв 2010, 20:20

Обобщу вопросы D1mcon'а - можно код в студию?=)
Тоже очень интересны нейронные сети, сам их мучаю, потому интересна уже готовая реализация.

Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

Michael_K » 01 янв 2010, 21:42

А как узнать, научается ли "оно" ездить по линии, или именно только по этой трассе?

Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

MiBBiM » 01 янв 2010, 23:20

этот вопрос можно поставить даже более широко: а не получится ли так, что участники соревнований будут подстраивать свои машины именно под каждую трассу (можно даже забить её в память, наподобие 10 сек влево, 50 щелчков энкодера и т.д.)?

Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»

D1mcon » 01 янв 2010, 23:25

Ну тогда это уже не нейронная сеть :)


Rambler\'s Top100 Mail.ru counter