Перейти к содержанию
    

Функция активации нейрона

Падскажите пожалуйста как на языке проектирования (желательно AHDL или Verilog) описать функцию активации нейрона в виде сигмоиды

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Падскажите пожалуйста как на языке проектирования (желательно AHDL или Verilog) описать функцию активации нейрона в виде сигмоиды

 

при помощи дифференциальной интерференции в бинарной парадигме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

при помощи дифференциальной интерференции в бинарной парадигме.

А Вы не знаете - и молчите! © 8)

 

Падскажите пожалуйста как на языке проектирования (желательно AHDL или Verilog) описать функцию активации нейрона в виде сигмоиды

Вопрос сложный. Вы уверены, что это нужно делать именно на программируемой логике? Тогда понадобятся числа real - а насчёт различных проблем с ними тут уже неоднократно упоминалось в соседних темах. Ведь есть же специализированные нейропроцессоры - кажется, НТЦ "Модуль" совместно с японцами занимался чем-то подобным (серия процессоров NM...)

 

Для несведущих:

Sigma=1.0/(exp(-a*x)+1.0)

Следовательно, вам понадобятся, по меньшей мере, ДВА множитиля, ОДИН алу, и один очень хороший делитель. А ведь нейрон, я полагаю, наверняка не один... И ещё нельзя забывать и про входные веса и сумматор... А всё это - только лишь на одном слое....

 

И, плюс к этому, надо учитывать ведь ещё и то, какие у сигмоида должны быть зоны насыщения - для этого же Вам понадобятся просто бешеные, иного слова не подберу, разрядности! Вы уверены, что Ваша железка потянет всё это ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы уверены, что это нужно делать именно на программируемой логике? Ведь есть же специализированные нейропроцессоры...
А кто мешает вмонтировать этот самый нейропроцессор в ПЛИС как soft-ядро? Вот здесь - http://electronix.ru/forum/index.php?showtopic=15811 нечто подобное уже обсуждалось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос сложный. Вы уверены, что это нужно делать именно на программируемой логике? Тогда понадобятся числа real - а насчёт различных проблем с ними тут уже неоднократно упоминалось в соседних темах. Ведь есть же специализированные нейропроцессоры - кажется, НТЦ "Модуль" совместно с японцами занимался чем-то подобным (серия процессоров NM...)

 

Для несведущих:

Sigma=1.0/(exp(-a*x)+1.0)

Следовательно, вам понадобятся, по меньшей мере, ДВА множитиля, ОДИН алу, и один очень хороший делитель. А ведь нейрон, я полагаю, наверняка не один... И ещё нельзя забывать и про входные веса и сумматор... А всё это - только лишь на одном слое....

 

И, плюс к этому, надо учитывать ведь ещё и то, какие у сигмоида должны быть зоны насыщения - для этого же Вам понадобятся просто бешеные, иного слова не подберу, разрядности! Вы уверены, что Ваша железка потянет всё это ?

 

Так вот хочу и попробовать потянет ли StratixII и на какой частоте. Пробовал реализовывать сигмоиды, работающие с целыми числами в виде обычной ROM на встроенных блоках памяти. Т.е. в начале рассчитал точки графика а затем их и записал в файл инициализации памяти. Но при таком подходе приходится каждый раз рассчитывать точки, чтобы поменять сигмоиду. Вроде бы фирма Скан Иженеринг Телеком разработала нейроны с различными функциями активации и различного быстродействия…но в итернете не встречал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Именно это и сделал Скан (могу прислать статью)

 

Но при таком подходе приходится каждый раз рассчитывать точки, чтобы поменять сигмоиду. Вроде бы фирма Скан Иженеринг Телеком разработала нейроны с различными функциями активации и различного быстродействия…но в итернете не встречал.

Самый простой метод для реализации такой возможности - ввести отдельную схему пересчёта по упрощённой формуле (если в ПЛИС, то избегая делений) или загружать ИЗВНЕ (например PCI, RS232 и т.п.). Если вариантов немного, то можно все их записать в память и выбирать по индексам.

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не могли бы дать ссылки на статьи? Весьма интересуюсь темой.

По поводу интерполяции - нашёл.

SET'овскую статью пока не нашёл в завалах. Кратко, смысл сводился к выбору оптимальной разрядности активационной функции, которую зашивали в BRAM.

tc05_dul98.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за статейку. Пока прочитал резюме и бегло просмотрел в целом. Кажется, весьма интересно.

Если будет время найти вторую - останусь очень признателен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за статейку. Пока прочитал резюме и бегло просмотрел в целом. Кажется, весьма интересно.

Если будет время найти вторую - останусь очень признателен.

Со второй сложнее - я её "повзаимствовал" с компьютера автора :). и наверное всё-таки удалил :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А "компьютер автора" где-нибудь в Интернете? Может, вспомните какие-то ключевые слова? Я бы попытался найти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А "компьютер автора" где-нибудь в Интернете? Может, вспомните какие-то ключевые слова? Я бы попытался найти.

Компьютер автора у нас в локалке радиотехнического института :)

Автора зовут Алексей Логовский.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, в вашу локалку я точно не попаду :) . В любом случае спасибо за предыдущую статью.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, в вашу локалку я точно не попаду :) . В любом случае спасибо за предыдущую статью.

Могу отсканировать старенькую статью "Перспективы разработок нейрокомпьютеров на ПЛИС xilinx & altera" из книги Галушкина "НЕЙРОКОМПЬЮТЕРЫ".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отсканируйте, если не сложно. Книга-то у меня скорее всего есть, но вот найти ее... :wacko:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...