roboforum.ru

Технический форум по робототехнике.
Текущее время: 03 дек 2024, 13:52

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 31 дек 2009, 00:11 
Не в сети

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


Вложения:
Комментарий к файлу: Джо
pic01_1.jpg
pic01_1.jpg [ 573.82 КиБ | Просмотров: 3527 ]
Комментарий к файлу: Джо сзади
pic02_1.jpg
pic02_1.jpg [ 550.3 КиБ | Просмотров: 3527 ]
Комментарий к файлу: Начальная модель сети
сеть.PNG
сеть.PNG [ 5.82 КиБ | Просмотров: 4846 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 31 дек 2009, 00:14 
Не в сети
Аватара пользователя

Зарегистрирован: 29 окт 2007, 18:11
Сообщения: 1866
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript
а как его обучать? константы щелкать?

_________________
Tomorrow will be. Better


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 31 дек 2009, 00:32 
Не в сети

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 31 дек 2009, 02:10 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Прикольно. Причесать бы их :D

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 31 дек 2009, 12:26 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2008, 14:41
Сообщения: 997
Откуда: СПб
прог. языки: C,Python
а видео ? :oops:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 31 дек 2009, 12:52 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
А поучаствовать в оффлайн-заезде? :oops:

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 31 дек 2009, 14:49 
Не в сети
Аватара пользователя

Зарегистрирован: 08 фев 2009, 10:13
Сообщения: 700
Откуда: Воротынск
прог. языки: C,C++,C#,Java
ФИО: Дмитрий
У меня возникли вопросы:
1) Какая функция активации используется?
2) Как определены весовые коэффциенты на начальном этапе?
3) По какой формуле они потом пересчитываются?
4) Что представляет собой нейрон программно?
5) Как программно представлены и реализованы связи?
6) Почему число нейронов входного и скрытого слоев одинаково?

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

_________________
Язык Ада - официально был признан министерством обороны США для создания ПО военной техники


Последний раз редактировалось D1mcon 31 дек 2009, 15:06, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 31 дек 2009, 14:59 
Не в сети

Зарегистрирован: 17 ноя 2009, 11:12
Сообщения: 7
Откуда: Хмельницкий
Самое первое мое видео, моя маленькая радость «ОНО» передумало ехать под кровать, а это означает, что нейронная сеть пытаеться учиться.



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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 31 дек 2009, 15:05 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Так соревнования не закончились, это просто был отдельный приз - вот народ сейчас от НГ праздников отойдёт и объявим следующие призы :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 31 дек 2009, 15:51 
Не в сети

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

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

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

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 31 дек 2009, 17:30 
Не в сети
Аватара пользователя

Зарегистрирован: 08 фев 2009, 10:13
Сообщения: 700
Откуда: Воротынск
прог. языки: C,C++,C#,Java
ФИО: Дмитрий
JoHn_Syber писал(а):
1) Мотонейроны : двигатель «вперед» и «поворотный» двигатель – имеют два режима (вкл/выкл) – пороговая функция , внутренние нейроны – линейная, а для сервы извращенно моя – выход формируется импульс от 1мс до 2мс.
тоже ложиться в еепром, чтоб когда выключить все не пропало, и к тому же для размножения . Стартовые весовые – это была целая баталия, пробовал с нулевых и с рандомайза, но в процессе «оНо» их выровняло и поехало, криво правда.
3) Формула – просто прохожу массив нейронов суммируя и на выход.
3. Буду малость переделывать всю сеть (НС), хочу добавить слои которые будут активироваться на подобные сегменты трассы, потому что такая линейная модель СН которую я пытался обучить похоже не эффективна.
6. А .. чуть не забыл крутиться в голове идея отслеживать отмирающие связи между нейронами, чтоб на них не тратить время..

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

_________________
Язык Ада - официально был признан министерством обороны США для создания ПО военной техники


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 01 янв 2010, 20:20 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июл 2006, 20:42
Сообщения: 650
Откуда: Москва
прог. языки: C/C++, Python
Обобщу вопросы D1mcon'а - можно код в студию?=)
Тоже очень интересны нейронные сети, сам их мучаю, потому интересна уже готовая реализация.

_________________
[[Использование библиотеки OpenCV]]
Я в LiveJournal


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 01 янв 2010, 21:42 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
А как узнать, научается ли "оно" ездить по линии, или именно только по этой трассе?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 01 янв 2010, 23:20 
Не в сети
Аватара пользователя

Зарегистрирован: 29 окт 2007, 18:11
Сообщения: 1866
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript
этот вопрос можно поставить даже более широко: а не получится ли так, что участники соревнований будут подстраивать свои машины именно под каждую трассу (можно даже забить её в память, наподобие 10 сек влево, 50 щелчков энкодера и т.д.)?

_________________
Tomorrow will be. Better


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Мой первый Line Tracer c нейронной сетью «Неуловимый Джо»
СообщениеДобавлено: 01 янв 2010, 23:25 
Не в сети
Аватара пользователя

Зарегистрирован: 08 фев 2009, 10:13
Сообщения: 700
Откуда: Воротынск
прог. языки: C,C++,C#,Java
ФИО: Дмитрий
Ну тогда это уже не нейронная сеть :)

_________________
Язык Ада - официально был признан министерством обороны США для создания ПО военной техники


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO