roboforum.ru

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

Что такое хорошо, а что такое плохо?

Обсуждаем рождающиеся мысли и результаты экспериментов.

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 28 авг 2012, 19:05

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

Re: Что такое хорошо, а что такое плохо?

Сообщение Fayras » 28 авг 2012, 19:12

esisl писал(а):Реализация нейросети на Фон-Неймановской машине параллелить не позволяет.

чето странные у вас какие-то представления о параллелизме..
Fayras
 
Сообщения: 118
Зарегистрирован: 15 дек 2010, 16:43
Откуда: Тверь
прог. языки: С++

Re: Что такое хорошо, а что такое плохо?

Сообщение esisl » 28 авг 2012, 21:36

Я наверно коряво выразился.
Алгоритм работы нейросети, нельзя разбить на куски, дать нескольким компьютерам и попросить их посчитать отдельно.
На каждом шаге обучения задействованы все нейроны. А связи между слоями "все-ко-всем".
Там бы шины данных "распараллелить" :) Например, каждый нейрон - отдельный специальный процессор, но мне в нейросети 25Х25Х1 нейрон надо передавать единовременно 25 цифр отдельно одновременно.
Можете себе представить, как оно будет выглядеть аппаратно?! :crazy:
esisl
 
Сообщения: 1480
Зарегистрирован: 23 июл 2012, 15:24

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 28 авг 2012, 21:55

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

Re: Что такое хорошо, а что такое плохо?

Сообщение esisl » 28 авг 2012, 22:21

А внутри слоя ничего параллелить смысла нет. Там тех вычислений с гулькин нос. И даже если представить себе гипотетическую картину, процессор на каждый нейрон, то посчитав, нужно результат передать одновременно на все нейроны следующего слоя. КАК? Там даже специальный аппарат не так просто сгородить.

Специализированные "нейропроцессоры", например NM40 - это самые обычные процессоры, просто со специализированными функциями. Там аппаратное умножение и прошиты таблицы нескольких вариантов переходной функции. Предназначены кстати, только для работы. Рассчитывать веса - будьте добры на универсальных компьютерах.
esisl
 
Сообщения: 1480
Зарегистрирован: 23 июл 2012, 15:24

Re: Что такое хорошо, а что такое плохо?

Сообщение Fayras » 29 авг 2012, 00:04

esisl писал(а):Я наверно коряво выразился.

нда, есть немного..
вообще немного таких задач которые можно попилить на куски и они не потребуют связи друг с другом, а связи это еще не криминал, а явление вполне обыденное в многопоточном программировании
Fayras
 
Сообщения: 118
Зарегистрирован: 15 дек 2010, 16:43
Откуда: Тверь
прог. языки: С++

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 29 авг 2012, 01:50

esisl писал(а):А внутри слоя ничего параллелить смысла нет. Там тех вычислений с гулькин нос.

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

Re: Что такое хорошо, а что такое плохо?

Сообщение gar_anat » 29 авг 2012, 03:08

(не умею часть цитаты вставить, поэтому ctrl+C=>ctrl+V)

«И да, если вы говорите "ослабить весовое значение", значит вы уже считаете, что это "плохо".
Просто не хотите себе в этом признаться»

=>Пересчитал на бумажке еще раз – признаюсь, немного неверно расценил результаты.

«Когда мой коллега экспериментировал с софтовым роботом на нейронах (биржевой игрок), то понятно, что было мерилом добра и зла - капуста. Видите, как всё просто»

=>Тоже согласен, бытие определяет сознание :)
Дорогу осилит идущий.
gar_anat
 
Сообщения: 11
Зарегистрирован: 16 окт 2009, 02:57
Откуда: Биробиджан

Re: Что такое хорошо, а что такое плохо?

Сообщение kran » 29 авг 2012, 03:25

gar_anat писал(а):
kran писал(а):Когда мой коллега экспериментировал с софтовым роботом на нейронах (биржевой игрок), то понятно, что было мерилом добра и зла - капуста. Видите, как всё просто.
=>Тоже согласен, бытие определяет сознание :)
Да нет же, вы не со мной согласились, а с кем-то другим, с собой похоже. :)
Я имел ввиду, что создатель определяет сознание.

Когда создатель это бытие, природа, эволюция - тогда действует принцип "жизнь - хорошо; смерть - плохо" (напоминаю, речь идёт о выживании вида иногда, а не индивидуума)
Когда создатель это вы сами - тогда закладывайте свои собственный принципы. На фига вам "живой" робот? Да он вас ночью заколбасит, колбасу продаст и батарейки купит.

P.S.
gar_anat писал(а):(не умею часть цитаты вставить, поэтому ctrl+C=>ctrl+V)
Вроде работает с зажатым шифтом клик по кнопке "цитата" при выделенном фрагменте. Вставлял из панели "обзор темы", она внизу под редактируемым текстом. Хотя по-моему легче один раз разобраться с синтаксисом, и потом править его руками как угодно - быстрее, чем на кнопки нажимать. Кому как, конечно.
Аватара пользователя
kran
 
Сообщения: 220
Зарегистрирован: 13 июл 2012, 05:07
Откуда: Челябинск
прог. языки: C++
ФИО: Дмитрий Толмачёв

Re: Что такое хорошо, а что такое плохо?

Сообщение gar_anat » 29 авг 2012, 03:26

ALV писал(а):
gar_anat писал(а):моя цель сделать сеть из нескольких штук нейронов, не более 10.

Немого странно: обычно рассматривают сеть нейронов. Сам по себе нейрон - это некий триггер с определенным пороговым значением. И интересен результат срабатывания именно сети (комбинации), причем из довольно большого количества нейронов.
Если вы имеете в виду другое - используйте, пожалуйста, иную терминологию.


Хотелось бы, если бы я владел "иной" терминологией :) Но у меня нет в этой сфере никакого образования. О формальном нейроне я знаю только то, что мне дала википедия (т.е. я думаю, что формальный нейрон срабатывает в том случае, если сумма весов синапсов >= некому пороговому значению).

Так что с Вашей стороны, можете забить меня камнями, со своей стороны, я ни в коем случае не буду с Вами спорить.

И потом, так как я не знаю теории с одной стороны, и не смог "применить" формальный нейрон с другой, я в начале поста указал, что делаю нечто отличное от формального нейрона. Возможно изобретаю велосипед, зато как интересно :)
Дорогу осилит идущий.
gar_anat
 
Сообщения: 11
Зарегистрирован: 16 окт 2009, 02:57
Откуда: Биробиджан

Re: Что такое хорошо, а что такое плохо?

Сообщение Fayras » 29 авг 2012, 04:30

нейронов опробовано много, формальных и не очень, да и ограничений на размеры сети никто вроде не вводил.. дело вкуса..
а вот матчасть за пределы википедии расширить лишнем не будет
Fayras
 
Сообщения: 118
Зарегистрирован: 15 дек 2010, 16:43
Откуда: Тверь
прог. языки: С++

Re: Что такое хорошо, а что такое плохо?

Сообщение kran » 29 авг 2012, 05:44

gar_anat писал(а):Хотелось бы, если бы я владел "иной" терминологией :) Но у меня нет в этой сфере никакого образования. О формальном нейроне я знаю только то, что мне дала википедия (т.е. я думаю, что формальный нейрон срабатывает в том случае, если сумма весов синапсов >= некому пороговому значению).
Даже в википедии больше написано. Только статья называется искусственный нейрон.

gar_anat писал(а):И потом, так как я не знаю теории с одной стороны, и не смог "применить" формальный нейрон с другой, я в начале поста указал, что делаю нечто отличное от формального нейрона. Возможно изобретаю велосипед, зато как интересно :)
Если вы не знаете теорию формального нейрона, как вы можете утверждать, что делаете нечто отличное от формального нейрона? :)

Ничего "отличного" вы по-моему не делаете. Ваш "адаптивный нейрон" - самый обычный обучаемый нейрон. Собственно, если нейроны не стимулировать, как вы выразились, то как их иначе обучать? Нейрон потому и нейрон, что он не программируется, а обучается - основа теории.

Я сам профан, хоть мой приятель (игрок) и пытался мне кое-что в голову вбить, засели в ней только слова "сети", "слои" и "перцептрон". Так что я прямо сейчас, вот только что, порылся в википедии на эти примерно темы (см. ИНС, перцептрон, метод обратного распространения ошибки). Да, ещё вспомнил, что писать самому такие вещи не надо, есть куча софта для моделирования нейронных сетей.

Собственно, прочитанное заставляет усомниться в стимуле "хорошо". Раз обратно распространяются только ошибки, вроде достаточно одного только "плохо". "Плохо=0" - уже хорошо, и ничего никуда не распространяется. Возможно, именно в этом будет ваше "ноу-хау", что у вас будет ещё и "хорошо" распространяться с противоположным знаком (хотя последовательность 100...0 от -100...0...100 по-моему ничем не отличается принципиально). Но лично я бы сначала использовал стандартные методики, а потом отличные от них. Иначе как понять, чем ваша методика лучше или хуже?

И кстати, у меня сложилось впечатление, что обучают не сами нейроны, а связи между нейронами. Т.е. подкручивают коэффициенты, веса связей. Хотя наверное можно считать эти входящие связи аналогом дендритов биологического нейрона, и, следовательно, частью нейрона.
Аватара пользователя
kran
 
Сообщения: 220
Зарегистрирован: 13 июл 2012, 05:07
Откуда: Челябинск
прог. языки: C++
ФИО: Дмитрий Толмачёв

Re: Что такое хорошо, а что такое плохо?

Сообщение esisl » 29 авг 2012, 16:57

Вот то-то и косяк, что нейронам нужен доступ к памяти одновременно. Тогда всё прекрасно параллелится. Но представьте себе такое даже просто по количеству шин :( 25 нейронов, хотя бы по 8 проводов к каждому... :))) В общем понятно :)))
Разве что пойти дальше и скопировать у природы передачу данных ШИМом, тогда можно одним проводом обойтись. Но всё равно. между слоями по 25 нейронов, получаем 225 проводочков :( Представимо конечно, но... Не для самодельщика.

Причём сеточка 25Х25Х1 - это так... Полуигрушка в сущности.
esisl
 
Сообщения: 1480
Зарегистрирован: 23 июл 2012, 15:24

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 29 авг 2012, 17:09

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

Re: Что такое хорошо, а что такое плохо?

Сообщение Dimitri » 29 авг 2012, 17:20

esisl писал(а):Вот то-то и косяк, что нейронам нужен доступ к памяти одновременно. Тогда всё прекрасно параллелится...

Странно что это вас удивляет. Одновременный доступ к памяти, в рамках x86, решенная задача.
PS. в природе используется не ШИМ, а ЧИМ(чистотно-импульсная модуляция).
Дорогу осилит идущий.
Аватара пользователя
Dimitri
 
Сообщения: 144
Зарегистрирован: 26 ноя 2008, 16:44
Откуда: Москва
Skype: wayfarerdimitri
прог. языки: VC++, немного asm, php, jScript,XSLT,LUA

Пред.След.

Вернуться в Идеи

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

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