roboforum.ru

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

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

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

=DeaD= » 28 авг 2012, 19:05

Вроде OpenCL / CUDA не совсем фон-наймановские?

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

Fayras » 28 авг 2012, 19:12

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

чето странные у вас какие-то представления о параллелизме..

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

esisl » 28 авг 2012, 21:36

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

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

=DeaD= » 28 авг 2012, 21:55

Зато внутри 1 слоя вполне себе параллелится всё. Не?

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

esisl » 28 авг 2012, 22:21

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

Специализированные "нейропроцессоры", например NM40 - это самые обычные процессоры, просто со специализированными функциями. Там аппаратное умножение и прошиты таблицы нескольких вариантов переходной функции. Предназначены кстати, только для работы. Рассчитывать веса - будьте добры на универсальных компьютерах.

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

Fayras » 29 авг 2012, 00:04

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

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

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

=DeaD= » 29 авг 2012, 01:50

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

Пусть имеем K-слойную сетку на каждом уровне N нейронов, связей между уровнями N*N. В общем случае самая куча вычислений идёт в связях, там и надо параллелить. Соответственно разделяем между вычислительными узлами хранение связей и их расчет, а состояния нейронов храним в общей памяти.

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

gar_anat » 29 авг 2012, 03:08

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

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

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

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

=>Тоже согласен, бытие определяет сознание :)

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

kran » 29 авг 2012, 03:25

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

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

P.S.
gar_anat писал(а):(не умею часть цитаты вставить, поэтому ctrl+C=>ctrl+V)
Вроде работает с зажатым шифтом клик по кнопке "цитата" при выделенном фрагменте. Вставлял из панели "обзор темы", она внизу под редактируемым текстом. Хотя по-моему легче один раз разобраться с синтаксисом, и потом править его руками как угодно - быстрее, чем на кнопки нажимать. Кому как, конечно.

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

gar_anat » 29 авг 2012, 03:26

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

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


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

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

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

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

Fayras » 29 авг 2012, 04:30

нейронов опробовано много, формальных и не очень, да и ограничений на размеры сети никто вроде не вводил.. дело вкуса..
а вот матчасть за пределы википедии расширить лишнем не будет

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

kran » 29 авг 2012, 05:44

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

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

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

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

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

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

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

esisl » 29 авг 2012, 16:57

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

Причём сеточка 25Х25Х1 - это так... Полуигрушка в сущности.

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

=DeaD= » 29 авг 2012, 17:09

Причем тут проводочки? Я имел в виду использование GPU.

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

Dimitri » 29 авг 2012, 17:20

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

Странно что это вас удивляет. Одновременный доступ к памяти, в рамках x86, решенная задача.
PS. в природе используется не ШИМ, а ЧИМ(чистотно-импульсная модуляция).


Rambler\'s Top100 Mail.ru counter