Электронные нейросети

Feb 28, 2004 13 Replies

Hello, All!



Что есть сабж ? Мне тут попались некоторые намёки на их возможности. Походу это принципиаьлно новое направление в embedded. Кто сталкивался ? Мне что-то не верится, что при таких вычислительных возможностях ни одна фирма кристаллов не делает. Даже мысль такая была, что Такие возможности обнаружили, что...засекретили всё на%...



With best regards, Dmitriy Malugin. E-mail: snipped-for-privacy@comail.ru


Sat Feb 28 2004 19:28, Dmitriy Malugin wrote to All:

DM> Что есть сабж ? DM> Мне тут попались некоторые намёки на их возможности. DM> Походу это принципиаьлно новое направление в embedded. DM> Кто сталкивался ?

Изучал доки на 1879ЛВ1 - российский "нейропроцессор". Еще можно в ПЛИС натолкать нейронов, причем десятки-сотни.

DM> Мне что-то не верится, что при таких вычислительных возможностях DM> ни одна фирма кристаллов не делает. Даже мысль такая была, что DM> Такие возможности обнаружили, что...засекретили всё на%...

Эх, сдается мне, что даю затравку для флейма, но что-то ничего реально применимого в эхотаге мне не попадалось. Математически нейрон есть умножение с накоплением, и результат работы единственного нейрона отличается от обычной фильтрации только тем, что коэффициенты фильтра (весовые коэффициенты нейрона) могут модифицироваться. Однако же - делаем адаптивный фильтр, и?... А сходимость нейросети как будем обеспечивать? А "впадание в ступор" (в результате обучения подавляющее большинство коэффициентов устремляется к нулю и какая-либо реакция на входные данные практически исчезает)? А обучать на каких данных? Из анекдотичных ситуаций знаю "нейросеть", настроенную на вибрации конкретного стенда... :)) Вобщем, тут и пофлеймить, и конструктивно пообсасывать идейку можно...

Hello, Ilia! You wrote to Dmitriy Malugin on Sat, 28 Feb 2004 21:55:28 +0300:

DM>> Что есть сабж ? DM>> Мне тут попались некоторые намёки на их возможности. DM>> Походу это принципиаьлно новое направление в embedded. DM>> Кто сталкивался ?

IT> Изучал доки на 1879ЛВ1 - российский "нейропроцессор". Еще можно в ПЛИС IT> натолкать нейронов, причем десятки-сотни.

А как ? Просто с ПЛИС дело пока и не имел...

DM>> Мне что-то не верится, что при таких вычислительных возможностях DM>> ни одна фирма кристаллов не делает. Даже мысль такая была, что DM>> Такие возможности обнаружили, что...засекретили всё на%...

IT> Эх, сдается мне, что даю затравку для флейма, но что-то ничего реально IT> применимого в эхотаге мне не попадалось. Математически нейрон есть умножение с IT> накоплением, и результат работы единственного нейрона отличается от обычной IT> фильтрации только тем, что коэффициенты фильтра (весовые коэффициенты нейрона) IT> могут модифицироваться.

Пожалу это и есть именно то, что я и представляю о нейросетях на данный момент.

IT> Однако же - делаем адаптивный фильтр, и?... А сходимость нейросети как будем IT> обеспечивать? А "впадание в ступор" (врезультате обучения подавляющее IT> большинство коэффициентов устремляется к нулю и какая-либо реакция на IT> входные данные практически исчезает)?

Это вот и есть то, в чём я хочу разобратся. А именго - принцип обучения. То есть то, как будут изенятся коэффициенты в процессе обучения. Первая мысль: два порта ввода информации. В режиме обучения на оба входа поданы слохные сигналы (только от фантазии автора зависит сложность этих сигналов) и задача нейросети выставить свои коэфициенты так, чтобы уловить взаимосвязь между этими сигналами. Теперь самое интерестное: На входы подан звуковой спектр речи... на первый - на русском, на второй - на, например на английском. Улавливаете ? Для бытовых условий вполне сойдёт два фильма с озвучкой на разных языаках. Причём музыкальное сопровождение тоьлько поможет - это дополнительный кусочек информации обычно задаёт эмоциональную окраску. Теоретически, в рабочем режиме, такая сеть будет способна к переводу, гораздо более осмысленному, чем то, на что способны логические методы. Прявда для такой задачи нужна нейросеть с огромным количеством связей. Я думал, что современной технологии не хватит... потом уточнил количество лоигческих элементов в современном бытовом (Athlon) процессоре и быстро успокоился - такому количеству нейронов позавидует немалое количествр "живых" нейросетей. Тут, правда вышла заковыка с биологическими анаолгами. Насколько я понял, живые нейросети хранят инвормацию только о рефлексах "по Павлову", а вот, способны ли они к ассоциации - это большой вопрос. Другой пример применения - распознавание образов. Есть некоторое количество видеокамер, или одна подвижная. Задача - построить 3D образ помещения. Насколько я применял эту задачу к "обычной" системе, то у меня выходило так: В системе есть подвижная камера и источник освещения. Система снимает проэкцию из нескольких точек при освещении из разных точек. По полученной картинке можно судить о поверхностях, просто определяя угол положения поверхности (элементарного 3D треугольника) по зависимости освещённости его от положения точки освещения и точки съёмки. В случае нейросети, входными данными является проэкция. Выходными вспомогательными - положение точки съёмки и положение (а можно и спектр) источника света. А обучающий сигнал - это закон распределения света в пространстве. ... Результат работы нейросети - это традиционный массив 3D-треугольников. Следовательно понадобится интерфейс передачи инвормации из нейросети в "цифровую форму". Я рассудил так: Нейросеть имеет две системы информационного обмена. Одна - это сигналы управления видеокамерой и источниками освещения и система передачи проэкции с камеры. Вторая - точно такая же система, только... виртуальная. "Обычный" компьютер, выполняющий программу любого 3D движка со всеми атрибутами - освещением, виртуальными камерами. А выход нейросети управляет механизмом "рисования" этом виртуальном 3D пространстве. Я уже не говорю о перспективах применения нейросети для сжатия

3D информации... система распознавания образов. Достаточно мощная нейросеть может распознавать не только образы "куб","сфера", такие, как "дуб","забор". А вот и финал... попытатся интегрировать электронную нейросеть с биоогической. (для справки: скорость распространения биохимического импульса "живой" нейросети от скорости распространения электрического импульса в проводнике примерно на 6 порядков отличается). Речь идёт о создании устройства ввода инвормации напрямую через нервные импульсы живой нейросети. Меня радует, например перспектива создания устройства ввода, более быстрого, чем... клавиатура... какой простор откроется для творчества !

IT> Вобщем, тут и пофлеймить, и конструктивно IT> пообсасывать идейку можно...

И нужно !

With best regards, Dmitriy Malugin. E-mail: snipped-for-privacy@km.ru

Такая нейросеть существует. Головной мозг называется. Хотя как посмотришь на переводы, выполненные нейросетями студентов, изучающих иностранный язык, понимаешь, как далеко еще до качественного машинного перевода.

Sat, 28 Feb 2004 21:55:28 +0300 Ilia Tarasov wrote to Dmitriy Malugin:

IT> Изучал доки на 1879ЛВ1 - российский "нейропроцессор".

Это который NM6403?

IT> Еще можно в ПЛИС натолкать нейронов, причем десятки-сотни.

Да, на современных ПЛИС можно ту же работу делать гораздо эффективнее (в смысле быстродействия)

DM>> Мне что-то не верится, что при таких вычислительных возможностях DM>> ни одна фирма кристаллов не делает. Даже мысль такая была, что DM>> Такие возможности обнаружили, что...засекретили всё на%...

IT> Эх, сдается мне, что даю затравку для флейма, но что-то ничего реально IT> применимого в эхотаге мне не попадалось. Математически нейрон есть IT> умножение с накоплением, и результат работы единственного нейрона IT> отличается от обычной фильтрации только тем, что коэффициенты фильтра IT> (весовые коэффициенты нейрона) могут модифицироваться.

Там еще после этого полученный сигнал пропускается через пороговую функцию. А умножение с накоплением, afair, там называется взвешенным суммированием.

IT> Однако же - делаем адаптивный фильтр, и?... А сходимость нейросети как IT> будем обеспечивать? А "впадание в ступор" (в результате обучения IT> подавляющее большинство коэффициентов устремляется к нулю и какая-либо IT> реакция на входные данные практически исчезает)? А обучать на каких данных?

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

Sun Feb 29 2004 01:47, Dmitriy Malugin wrote to Ilia Tarasov:

IT>> Изучал доки на 1879ЛВ1 - российский "нейропроцессор". Еще можно в ПЛИС IT>> натолкать нейронов, причем десятки-сотни.

DM> А как ? Просто с ПЛИС дело пока и не имел...

В современных уже просто s <= a * b; Блочные умножители ставятся в ПЛИС уже сотнями. Выводы блоков растаскиваются по выводам ПЛИС в произвольном порядке. Внутренняя структура ПЛИС и возможности САПР вполне позволяют сделать нейросеть. Точнее, ее аппаратную часть.

IT>> Однако же - делаем адаптивный фильтр, и?... А сходимость нейросети как

DM> будем

IT>> обеспечивать? А "впадание в ступор" (врезультате обучения подавляющее IT>> большинство коэффициентов устремляется к нулю и какая-либо реакция на IT>> входные данные практически исчезает)?

DM> Это вот и есть то, в чём я хочу разобратся. А именго - принцип обучения. DM> То есть то, как будут изенятся коэффициенты в процессе обучения.

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

DM> Первая мысль: два порта ввода информации. В режиме обучения на оба DM> входа поданы слохные сигналы (только от фантазии автора зависит сложность DM> этих сигналов) и задача нейросети выставить свои коэфициенты так, DM> чтобы уловить взаимосвязь между этими сигналами. Теперь самое DM> интерестное: DM> Hа входы подан звуковой спектр речи... на первый - на русском, на второй DM> - на, DM> например на английском. Улавливаете ? Для бытовых условий вполне DM> сойдёт два фильма с озвучкой на разных языаках. Причём музыкальное DM> сопровождение тоьлько поможет - это дополнительный кусочек информации DM> обычно задаёт эмоциональную окраску. Теоретически, в рабочем режиме, DM> такая сеть будет способна к переводу, гораздо более осмысленному, чем DM> то, на что способны логические методы. Прявда для такой задачи

Hе так чтобы сразу. Для приведенного примера нейросеть настроится скорее всего на _этот_ фильм. Другой фильм - другие настройки. И зачем оно надо? Кстати, из анекдотичных ситуаций вспомнил попытки распознавания неба на фотографиях нейросетями. Предъявлялось немеренное количество фоток, в результате нейросеть дала результат: небо - это верхняя часть фотографий. :)))

DM> нужна нейросеть с огромным количеством связей. Я думал, что современной DM> технологии не хватит... потом уточнил количество лоигческих элементов DM> в современном бытовом (Athlon) процессоре и быстро успокоился - такому DM> количеству нейронов позавидует немалое количествр "живых" нейросетей.

Число логических элементов слабо связано с числом нейронов. Дело не только в количестве элементов, но еще и в реализованных между ними связях. Конечно, имея пару сотен миллионов транзисторов, можно "выложить рядком" довольно большое число нейронов, но ведь будет нужно обеспечить заведение в них анализируемых данных, надлежащую буферизацию, вывод всего этого наружу, перекрестные связи и т.п. А процессор довольно сложная вещь и очень "несимметричная" по использованию физических ресурсов. Hапример, Pentium имеет емкость в 200 тыс. логических вентилей (не транзисторов). Hо ПЛИС того же объема не сможет полностью реализовать Pentium - в первую очередь за бортом останется FPU и barrel shifter в целочисленном АЛУ.

(skipped) DM> Я уже не говорю о перспективах применения нейросети для сжатия DM> 3D информации... система распознавания образов. Достаточно мощная DM> нейросеть может распознавать не только образы "куб","сфера", такие, DM> как "дуб","забор".

Вот скорее простые образы еще можно распознавать. А дальше возникнут те же проблемы сходимости обучения и пр. Все эти вещи в принципе можно попробовать и на обычном PC, в порядке моделирования. И только потом пытаться создавать аппаратную реализацию сеток. К сожалению, ориентация на аппаратные нейросети хоронит наверное процентов 90 всех проектов подобного рода. Если с громадными усилиями и создается некая аппаратура на довольно нетривиальных микросхемках, то алгоритмов потом для этого просто нет, а громадные вычислительные возможности созданной аппаратуры создают иллюзию, что еще немного, и оно само чему-нибудь обучится...

DM> А вот и финал... попытатся интегрировать электронную нейросеть DM> с биоогической. (для справки: скорость распространения биохимического DM> импульса "живой" нейросети от скорости распространения электрического DM> импульса в проводнике примерно на 6 порядков отличается).

С этим в su.science к Корчмарюку... если нервы крепкие ;))) Он бооольшой фанатик засовывания человека в компьютер, причем пробивает эту идею примерно как Выбегалло у Стругацких - размахивая томами классиков кибернетики и философии...

DM> Речь идёт о создании устройства ввода инвормации напрямую через DM> нервные импульсы живой нейросети. Меня радует, например перспектива DM> создания устройства ввода, более быстрого, чем... клавиатура... какой DM> простор откроется для творчества !

А с этим пару лет назад знакомый студент укатил в Штаты. Hа поверку задача свелась к банальной обработке энцефалограммы :)

IT>> Вобщем, тут и пофлеймить, и конструктивно IT>> пообсасывать идейку можно...

DM> И нужно !

Это да...

Sun Feb 29 2004 17:44, Harry Zhurov wrote to Ilia Tarasov:

IT>> Изучал доки на 1879ЛВ1 - российский "нейропроцессор".

HZ> Это который NM6403?

Честно говоря, не в курсе. Скачивал описания для 1978ЛВ1, его и рекламируют по эхотажным журналам. Если он чей-то аналог, дело существенно не меняется.

IT>> Еще можно в ПЛИС натолкать нейронов, причем десятки-сотни.

HZ> Да, на современных ПЛИС можно ту же работу делать гораздо эффективнее HZ> (в смысле быстродействия)

И еще проблемной специализации...

IT>> Эх, сдается мне, что даю затравку для флейма, но что-то ничего реально IT>> применимого в эхотаге мне не попадалось. Математически нейрон есть IT>> умножение с накоплением, и результат работы единственного нейрона IT>> отличается от обычной фильтрации только тем, что коэффициенты фильтра IT>> (весовые коэффициенты нейрона) могут модифицироваться.

HZ> Там еще после этого полученный сигнал пропускается через пороговую HZ> функцию. HZ> А умножение с накоплением, afair, там называется взвешенным HZ> суммированием.

Да, математически нейрон состоит из двух частей. Пороговая функция может иметь естественную реализацию в виде ограниченной разрядности аккумулятора, а может принимать очень простые формы в виде сравнения с порогом и выхода больше/меньше, или функции y = 1*x, т.е. отсутствовать как физическое устройство.

IT>> Однако же - делаем адаптивный фильтр, и?... А сходимость нейросети как IT>> будем обеспечивать? А "впадание в ступор" (в результате обучения IT>> подавляющее большинство коэффициентов устремляется к нулю и какая-либо IT>> реакция на входные данные практически исчезает)? А обучать на каких IT>> данных?

HZ> А это, похоже, самый сложный вопрос. :) В общем случае никто не HZ> знает, как это внутри работает, а некоторые успехи достигаются в каких-то HZ> отдельных областях/случаях, когда удается понять закономерности и HZ> построить более или менее удачные алгоритмы обучения.

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

29-Feb-04 22:15 Ilia Tarasov wrote to Harry Zhurov:

IT>>> Изучал доки на 1879ЛВ1 - российский "нейропроцессор".

HZ>> Это который NM6403?

IT> Честно говоря, не в курсе. Скачивал описания для 1978ЛВ1, его и рекламируют IT> по IT> эхотажным журналам. Если он чей-то аналог, дело существенно не меняется. Он не аналог. Просто у него два имени "NeuroMatrix 6403" и "1879ЛВ1". AFAIR, NM6403 появилось первым, а "стандартное" имя 1879ЛВ1 - позже. По крайней мере я их в таком порядке слышал :-) Ну и NM6403 идёт как "экспортное" название.

wbr,

Sun Feb 29 2004 23:14, Oleksandr Redchuk wrote to "Ilia Tarasov":

IT>> Честно говоря, не в курсе. Скачивал описания для 1978ЛВ1, его и IT>> рекламируют по IT>> эхотажным журналам. Если он чей-то аналог, дело существенно не меняется.

OR> Он не аналог. OR> Просто у него два имени "NeuroMatrix 6403" и "1879ЛВ1". OR> AFAIR, NM6403 появилось первым, а "стандартное" имя 1879ЛВ1 - позже. OR> По крайней мере я их в таком порядке слышал :-) OR> Hу и NM6403 идёт как "экспортное" название.

Ух ты, здорово. Процессор очень грамотный для такой задачи. Если это целиком российская разработка, то просто очень приятно. Умеем все-таки...

Sun, 29 Feb 2004 23:35:39 +0300 Ilia Tarasov wrote to Oleksandr Redchuk:

IT>>> Честно говоря, не в курсе. Скачивал описания для 1978ЛВ1, его и IT>>> рекламируют по IT>>> эхотажным журналам. Если он чей-то аналог, дело существенно не меняется.

OR>> Он не аналог. OR>> Просто у него два имени "NeuroMatrix 6403" и "1879ЛВ1". OR>> AFAIR, NM6403 появилось первым, а "стандартное" имя 1879ЛВ1 - позже. OR>> По крайней мере я их в таком порядке слышал :-) OR>> Hу и NM6403 идёт как "экспортное" название.

IT> Ух ты, здорово. Процессор очень грамотный для такой задачи. Если это IT> целиком российская разработка, то просто очень приятно. Умеем все-таки...

Да, он еще и с 5-й приемкой! ;) Разработан НПО "Модуль". На Верилоге. Делают, вроде, на Самсунге (по кр. мере еще два года назад это было так) по 0.24 мкм технологии.

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

И что в этом деле радует, так это то, что парни кроме процессора еще и кросс-средства к нему разработали - С/С++ компиляторы, линкер, асм и прочее. В общем, народ пользуется.

Mon Mar 01 2004 10:59, Harry Zhurov wrote to Ilia Tarasov:

IT>> Ух ты, здорово. Процессор очень грамотный для такой задачи. Если это IT>> целиком российская разработка, то просто очень приятно. Умеем IT>> все-таки...

HZ> Да, он еще и с 5-й приемкой! ;) Разработан HПО "Модуль". Hа Верилоге. HZ> Делают, вроде, на Самсунге (по кр. мере еще два года назад это было так) HZ> по 0.24 мкм технологии.

Очень и очень приятно. :) Пятая приемка заставляет смотреть на железки совершенно иначе. А что, его после самсунга проверяют? Там ведь не только спецвоздействия, там еще и жучков ищут... А если после HDL можно отправить кристалл за границу, так это вообще прекрасно. Теперь Intel не отмажется... :)))

HZ> Еще у них следом шел NM6404, у того, вроде, памяти на борту было HZ> кардинально больше, но потом его бросили и стали делать NM1281 (или HZ> как-то так, порядок циферок могу попутать), у которого векторное ядро уже HZ> на 128 разрядов. Hу и вообще там всего больше, толще. Правда что-то до HZ> серийного образца (в прошлом-позапрошлом году, когда выбирали, что HZ> ставить) дело не дошло. Может сейчас уже реально появилось, не знаю.

HZ> И что в этом деле радует, так это то, что парни кроме процессора еще HZ> и кросс-средства к нему разработали - С/С++ компиляторы, линкер, асм и HZ> прочее. В общем, народ пользуется.

Точно надо будет внимательнее присмотреться.

1-Mar-04 22:09 Ilia Tarasov wrote to Harry Zhurov:

HZ>> И что в этом деле радует, так это то, что парни кроме процессора еще HZ>> и кросс-средства к нему разработали - С/С++ компиляторы, линкер, асм и HZ>> прочее. В общем, народ пользуется.

IT> Точно надо будет внимательнее присмотреться.

AFAIR, для ВУЗ-ов плата с ним в PCI продаётся со скидкой, а софт вообще придаётся бесплатно. По кр. мере несколько лет назад вроде бы так было.

wbr,

Tue Mar 02 2004 01:01, Oleksandr Redchuk wrote to "Ilia Tarasov":

OR> AFAIR, для ВУЗ-ов плата с ним в PCI продаётся со скидкой, а софт OR> вообще придаётся бесплатно. OR> По кр. мере несколько лет назад вроде бы так было.

Я предпочитаю 100%-free... :) Hа PCI мы и сами поставим почти любой процессор, а различные kit-ы в реальных проектах неудобны хотя бы тем, что в случае успешного результата надо будет озадачиться покупкой весьма недешевого железа (это если без скидки, партию выпускать). Тем более что надарено от Xilinx-а кристаллов, Celoxica платы и софт дарит, сами что-то выпускаем. Всего этого богатства вполне хватает на текущие интересы. А с нейросетями надо начинать работать, используя те же ПЛИСы, на которых вдумчиво изучать алгоритмы и определять функциональность опытного образца. А уже потом ставить собственно нейропроцессор, обвязывая его нужным количеством памяти и интерфейсами...

Пpивет Ilia! Ilia Tarasov --> Oleksandr Redchuk ( Tue Mar 02 2032, 01:22 )

IT> А с нейpосетями надо начинать pаботать, используя те же ПЛИСы, IT> на котоpых вдумчиво изучать алгоpитмы и опpеделять функциональность IT> опытного обpазца. А уже потом ставить собственно нейpопpоцессоp, IT> обвязывая его нужным количеством памяти и интеpфейсами...

Бyдь какой РАБОТАЮЩИЙ и _пpостой_ пpимеpчик с очевидным отличием алгоpитмического и нейpо pешения одинаковой задачи для начала.

-= Бpест. Павел Гpишин =-

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required