open source нейросетевые пакеты (ищутся ныне живущие)
Модератор: Модераторы разделов
-
allchemist
- Сообщения: 55
- ОС: Gentoo, Arch
open source нейросетевые пакеты
Доброго времени суток.
Заинтересовался существованием пакетов для нейросетевой обработки данных, опубликованных под свободной лицензией и находящихся в активной разработке.
Гугл указал на GENESIS (http://www.genesis-sim.org/)
Очень интересный проект, но он, похоже, умер еще в 2007 (дата последнего обновления на большей части ресурсов).
Параллельная версия (pgenesis-2.3) доступна только в исходниках, которые отказались собираться.
А нормальная (не параллельнся) версия не интересна.
Подскажите, пожалуйста, есть ли что-нибудь такое же ныне в активной разработке.
Если ничего нет, возьмусь писать сам, т.к. давно уже собираюсь =)
В таком случае хотелось бы услышать, какие фичи (то бишь нейросетевые архитектуры) коммерческих пакетов (NeuroShell, Statistica, Matlab) наиболее полезны и используемы.
PS. Если вдруг окажется, что на линуксфоруме никто не интересуется нейросетями, это значит, что я ошибся адресом. В таком случае, подскажите нужный адрес. Желательно, на русском - так приятнее =)
Заинтересовался существованием пакетов для нейросетевой обработки данных, опубликованных под свободной лицензией и находящихся в активной разработке.
Гугл указал на GENESIS (http://www.genesis-sim.org/)
Очень интересный проект, но он, похоже, умер еще в 2007 (дата последнего обновления на большей части ресурсов).
Параллельная версия (pgenesis-2.3) доступна только в исходниках, которые отказались собираться.
А нормальная (не параллельнся) версия не интересна.
Подскажите, пожалуйста, есть ли что-нибудь такое же ныне в активной разработке.
Если ничего нет, возьмусь писать сам, т.к. давно уже собираюсь =)
В таком случае хотелось бы услышать, какие фичи (то бишь нейросетевые архитектуры) коммерческих пакетов (NeuroShell, Statistica, Matlab) наиболее полезны и используемы.
PS. Если вдруг окажется, что на линуксфоруме никто не интересуется нейросетями, это значит, что я ошибся адресом. В таком случае, подскажите нужный адрес. Желательно, на русском - так приятнее =)
Russian Lisp Community: http://lisper.ru
made with secret alien technology
made with secret alien technology
Спасибо сказали:
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: open source нейросетевые пакеты
Подсказать по существующим open-source проектам врядли что-то смогу - не интересовался. А вот с точки зрения необходимых функций - обучение различными методами, легкость добавления альтернативных методов (с учетом что за сеть, типов нейронов). По самим сетям - прямого распространения, рекуррентные, Кохонена, Хэмминга, Хопфилда. Это то, что требовалось.
-
allchemist
- Сообщения: 55
- ОС: Gentoo, Arch
Re: open source нейросетевые пакеты
NickLion писал(а): ↑13.06.2009 22:06Подсказать по существующим open-source проектам врядли что-то смогу - не интересовался. А вот с точки зрения необходимых функций - обучение различными методами, легкость добавления альтернативных методов (с учетом что за сеть, типов нейронов). По самим сетям - прямого распространения, рекуррентные, Кохонена, Хэмминга, Хопфилда. Это то, что требовалось.
Обучение: уже есть градиентные методы для алгоритма обратного распространения, а также генетические и роевые алгоритмы.
Про разновидности использованных сетей прямого и обратного распространения можно поподробнее?
Russian Lisp Community: http://lisper.ru
made with secret alien technology
made with secret alien technology
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: open source нейросетевые пакеты
Градиентный метод (даже с "тяжелым шариком") не очень эффективный. Как под рукой будет информация - кину какие методы получше.
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
Re: open source нейросетевые пакеты
Немного не в тему, но где взять документацию по алгоритму обратного распространения.
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: open source нейросетевые пакеты
Ну для начала сюда. Корректность всего изложения на википедии, естественно, не гарантирую. А вообще - достаточно много литературы по ИНС.
-
allchemist
- Сообщения: 55
- ОС: Gentoo, Arch
Re: open source нейросетевые пакеты
Метод сопряженных градиентов вполне хорош в для обратного распространения.
Но мне больше нравится оптимизировать веса всех нейронов сразу с помощью генетических или роевых алгоритмов. имхо намного быстрее.
Но от лишней инфы никогда не откажусь, кидайте =)
Кстати, можно поподробнее о том, как (и для каких задач) Вы применяли сети Кохонена?
Russian Lisp Community: http://lisper.ru
made with secret alien technology
made with secret alien technology
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
Re: open source нейросетевые пакеты
Нашел я очень простую статью по нейронных сетях: http://oasis.peterlink.ru/~dap/nneng/nnlin...doc/bp_task.htm
И решил сделать простенькую програмку на C++. Но она почему-то не работает. Помогите найти ошибки.
В исходнике, думаю, все понятно - я реализовал класс для работы с нейронной сетью и сделал для проверки программу, которая должна учит нейронную сеть определять, число больше десяти или меньше ей дали на входе.
И решил сделать простенькую програмку на C++. Но она почему-то не работает. Помогите найти ошибки.
В исходнике, думаю, все понятно - я реализовал класс для работы с нейронной сетью и сделал для проверки программу, которая должна учит нейронную сеть определять, число больше десяти или меньше ей дали на входе.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
allchemist
- Сообщения: 55
- ОС: Gentoo, Arch
Re: open source нейросетевые пакеты
Хорошая обзорная статья.
Однако, вышла она в 1995г, а современная теория ИНС ушла далеко вперед.
Полезную и актуальную инфу по теме можно найти, например, на http://neuroproject.ru/neuro.php или articles.php.
Ну а дальше что-нибудь "бронебойное", типа 1000-страничной книги Саймона Хайкина.
По поводу программы - к сожалению (то есть к счастью) не знаю C++.
Опишите алгоритм словестно или в псевдокоде.
Нейросеть с одним входом - плохое явление. Используйте много входов (хотя бы несколько). Задачи единичной размерности лучше решать другими методами.
Попробуйте кормить нейросеть более типичными задачами (она может быть слишком сложной или переученной на простых задачах типа >10), например, научите программу распознавать веселые и грустные лица, то бишь, смайлики, нарисованные на поле 5х5
_ _ _ _ _
| 8|8|_|8|8 |
| _|_|8|_|_ |
| _|_|8|_|_ |
| 8|_|_|_|8 |
| _|8|8|8|_ | (веселая)
_ _ _ _ _
| _|8|_|8|_ |
| 8|_|8|_|8 |
| _|_|8|_|_ |
| _|8|8|8|_ |
| 8|_|_|_|8 | (грустная)
PS. Это задача, на которую я натравил свою первую нейросеть =)
Однако, вышла она в 1995г, а современная теория ИНС ушла далеко вперед.
Полезную и актуальную инфу по теме можно найти, например, на http://neuroproject.ru/neuro.php или articles.php.
Ну а дальше что-нибудь "бронебойное", типа 1000-страничной книги Саймона Хайкина.
По поводу программы - к сожалению (то есть к счастью) не знаю C++.
Опишите алгоритм словестно или в псевдокоде.
Нейросеть с одним входом - плохое явление. Используйте много входов (хотя бы несколько). Задачи единичной размерности лучше решать другими методами.
Попробуйте кормить нейросеть более типичными задачами (она может быть слишком сложной или переученной на простых задачах типа >10), например, научите программу распознавать веселые и грустные лица, то бишь, смайлики, нарисованные на поле 5х5
_ _ _ _ _
| 8|8|_|8|8 |
| _|_|8|_|_ |
| _|_|8|_|_ |
| 8|_|_|_|8 |
| _|8|8|8|_ | (веселая)
_ _ _ _ _
| _|8|_|8|_ |
| 8|_|8|_|8 |
| _|_|8|_|_ |
| _|8|8|8|_ |
| 8|_|_|_|8 | (грустная)
PS. Это задача, на которую я натравил свою первую нейросеть =)
Russian Lisp Community: http://lisper.ru
made with secret alien technology
made with secret alien technology
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
Re: open source нейросетевые пакеты
allchemist писал(а): ↑14.06.2009 23:06Попробуйте кормить нейросеть более типичными задачами (она может быть слишком сложной или переученной на простых задачах типа >10), например, научите программу распознавать веселые и грустные лица, то бишь, смайлики, нарисованные на поле 5х5
Попробовал - то же самое (если нейронной сети подсунуть первую морду, то она разучится распознавать вторую и так далее). Пробовал менять структуру сети (количество слоев, количество нейронов в слоях).
Также заметил одну странную вещь - если смайлик задать в виде нулей и единиц, то на всех выходах получается 0 (пока причину не выяснил, но, думаю, найду дебаггером).
allchemist писал(а): ↑14.06.2009 23:06PS. Это задача, на которую я натравил свою первую нейросеть =)
А можно получить исходник, ее реализовывающий? (на любом языке, но желательно Pascal, C++, C#, Java).
-
allchemist
- Сообщения: 55
- ОС: Gentoo, Arch
Re: open source нейросетевые пакеты
если нейронной сети подсунуть первую морду, то она разучится распознавать вторую и так далее
Попробуйте предъявлять сети примеры не последовательно, а одновременно (минимизировать сразу два отклонения)
А можно получить исходник, ее реализовывающий? (на любом языке, но желательно Pascal, C++, C#, Java).
Lisp пойдет?
Да и все равно потерял, ибо давно было. Но могу набросать идею в псевдокоде.
В вашем случае можно подботать теорию, т.к. в практическом использовании ИНС много тонкостей.
И да, хотелось бы услышать ответа по теме...
Russian Lisp Community: http://lisper.ru
made with secret alien technology
made with secret alien technology
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
Re: open source нейросетевые пакеты
allchemist писал(а): ↑15.06.2009 23:35Попробуйте предъявлять сети примеры не последовательно, а одновременно (минимизировать сразу два отклонения)
Не понял.
Буду очень благодарен.
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
Re: open source нейросетевые пакеты
Кстати насчет нейросимуляторов есть еще SNNS, вроде не мертвый.
-
Warlornhor
- Сообщения: 428
- ОС: openSUSE 12.3
Re: open source нейросетевые пакеты
У меня диплом был в на тему распознавания речи с помощью нейросетевой модели. Писал все на Java. Метод обучения нестандартный (редко используемый алгоритм отжига.) Исходники после небольшого рефакторинга и при наличии времени возможно скоро выложу, например, на kenai. Также планирую активную разработку как в области оптимизации кода (скорость выполнения), так и проектирование более сложных сетей.
Обучение сети дело тонкое. То что писали про последовательное и параллельное предоставление образов сети, немного не понял, у меня был набор пар вход--выход, при этом все обучилось, но критерий обучения был опять таки не очень стандартный --- процент правильных вариантов, а обычно используют суммарную ошибку.
Градиентный метод обучить правильно сеть почти 100% не сможет.
Обучение сети дело тонкое. То что писали про последовательное и параллельное предоставление образов сети, немного не понял, у меня был набор пар вход--выход, при этом все обучилось, но критерий обучения был опять таки не очень стандартный --- процент правильных вариантов, а обычно используют суммарную ошибку.
Градиентный метод обучить правильно сеть почти 100% не сможет.
-
allchemist
- Сообщения: 55
- ОС: Gentoo, Arch
Re: open source нейросетевые пакеты
Warlornhor писал(а): ↑16.06.2009 10:56У меня диплом был в на тему распознавания речи с помощью нейросетевой модели. Писал все на Java. Метод обучения нестандартный (редко используемый алгоритм отжига.) Исходники после небольшого рефакторинга и при наличии времени возможно скоро выложу, например, на kenai. Также планирую активную разработку как в области оптимизации кода (скорость выполнения), так и проектирование более сложных сетей.
Обучение сети дело тонкое. То что писали про последовательное и параллельное предоставление образов сети, немного не понял, у меня был набор пар вход--выход, при этом все обучилось, но критерий обучения был опять таки не очень стандартный --- процент правильных вариантов, а обычно используют суммарную ошибку.
Градиентный метод обучить правильно сеть почти 100% не сможет.
Алгоритм моделируемого отжига (Метрополиса)? ну почему же нестандартный. Обычная глобальная оптимизация, но не лучше ГА.
Про параллельное обучение - не встречал в литературе, по ходу сам придумал =)
Идея такая: при последовательном обучении веса сети подстраиваются по очереди для каждого примера. Для этого лучше использовать градиентные методы, которые находят локальные минимумы. Если применять глобальную оптимизацию сразу всех весов, то после предъявления сети примера она забудет (почти) пример, предъявленный ранее, т.к. веса будут подстроены так, что дадут глобальный минимум ошибки для данного примера. Выход - прекращать обучение при достижении относительно большой ошибки (например, 5-10%). Другой выход - то самое параллельное обучение, когда ищутся такие веса, которые дали бы наименьшую суммарную ошибку для всех примеров, т.е. ищем минимум функции
F (веса) = ошибка (веса, пример1) + ошибка (веса, пример2) + ... + ошибка (веса, примерN).
В целом, дает хорошие результаты, а главное - быстро.
Кстати насчет нейросимуляторов есть еще SNNS, вроде не мертвый.
Спасибо. Хотя, последний релиз - 2008.
Буду очень благодарен.
Как будет время - кину в ПМ.
Russian Lisp Community: http://lisper.ru
made with secret alien technology
made with secret alien technology
-
Warlornhor
- Сообщения: 428
- ОС: openSUSE 12.3
Re: open source нейросетевые пакеты
Вы задумывались о том сколько локальных экстремумов у функции ошибки для, например, 2-х слойной сети с 18 нейронами на первом слое и 6 на втором, где каждый нейрон следующего слоя связан со всеми нейронами предыдущего? Ответ --- ОЧЕНЬ много. При этом для использования градиентных методов функция ошибки должна иметь производную на всей области применения, а если например функция не гладкая? Использование градиентных методов не целесообразно (мое мнение).
При поиске глобального экстремума с помощью отжига ранее выученные образы не забываются, а просто выучиваются следующие. Я ставил эксперименты и могу утверждать что это действительно так. Правда есть один недостаток, очень долгое обучение может быть, особенно для больших сетей, но это также связано и с моей реализацией НС --- она не использует многопоточные вычисления.
Ошибка в любом случае при обучении должна учитывать все ошибки пар вход -- выход.
При поиске глобального экстремума с помощью отжига ранее выученные образы не забываются, а просто выучиваются следующие. Я ставил эксперименты и могу утверждать что это действительно так. Правда есть один недостаток, очень долгое обучение может быть, особенно для больших сетей, но это также связано и с моей реализацией НС --- она не использует многопоточные вычисления.
Ошибка в любом случае при обучении должна учитывать все ошибки пар вход -- выход.
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: open source нейросетевые пакеты
Warlornhor писал(а): ↑16.06.2009 13:46При этом для использования градиентных методов функция ошибки должна иметь производную на всей области применения, а если например функция не гладкая? Использование градиентных методов не целесообразно (мое мнение).
Для обычной многослойной ИНС, если использовать гладкие активационные функции, то результирующая функция будет гладкой. Градиент целесообразен, когда затраты на написание чего-то более мощного превышают конечную полезность
2 allchemist
Про разновидности использованных сетей прямого и обратного распространения можно поподробнее?
Рекуррентные сети с задержками по входу и выходу были. Выход - управляющие сигналы для устройства. Прямого распространения в моем случае себя недостаточно хорошо проявили или динамического характера процесса.
Кстати, можно поподробнее о том, как (и для каких задач) Вы применяли сети Кохонена?
Это было только в учебных целях
Но от лишней инфы никогда не откажусь, кидайте =)
По поводу методов обучения - неплохой метод Levenberg-Marquardt - но требует достаточно большой матрицы при вычислениях. Есть правда модификация, позволяющая урезать матрицу вдвое, при этом увеличив вдвое время расчета
-
allchemist
- Сообщения: 55
- ОС: Gentoo, Arch
Re: open source нейросетевые пакеты
2 Warlornhor
Насчет градиентных методов - несмотря на очевидные недостатки в данном случае у них есть столь же очевидные преимущества.
При использовании гладкой сигмоидной пороговой функции f(x) = 1/(1+exp(-kx)) очень легко вычислить производную, которая выражается через саму функцию как
f'(x)=f(x) (1-f(x)), и в этом случае градиентные методы крайне быстры. Для обхода части локальных минимумов можно посмотреть в сторону алгоритма Розенброка.
Мне приходилось работать с функцией, которая имеет порядка 10^140 (!) локальных минимумов, и правильное сочетание методов только локальной оптимизации давало неплохие результаты.
PS. я не сторонник только локальной оптимизации, просто сочетание разных методов обычно дает хорошие результаты.
2 NickLion
Метод Левенберга-Марквардта сочетает градиентный спуск и метод Ньютона, т.е. использует гессиан (матрицу вторых производных). Возможно, если вместо градиентного спуска применить метод сопряженных градиентов, а вместо метода Ньютона - какой-нибудь квазиньютоновский метод (а-ля BFGS), то должно получиться нечто убойное =)
Надо будет попробовать.
Насчет градиентных методов - несмотря на очевидные недостатки в данном случае у них есть столь же очевидные преимущества.
При использовании гладкой сигмоидной пороговой функции f(x) = 1/(1+exp(-kx)) очень легко вычислить производную, которая выражается через саму функцию как
f'(x)=f(x) (1-f(x)), и в этом случае градиентные методы крайне быстры. Для обхода части локальных минимумов можно посмотреть в сторону алгоритма Розенброка.
Вы задумывались о том сколько локальных экстремумов у функции ошибки для, например, 2-х слойной сети с 18 нейронами на первом слое и 6 на втором, где каждый нейрон следующего слоя связан со всеми нейронами предыдущего? Ответ --- ОЧЕНЬ много
Мне приходилось работать с функцией, которая имеет порядка 10^140 (!) локальных минимумов, и правильное сочетание методов только локальной оптимизации давало неплохие результаты.
PS. я не сторонник только локальной оптимизации, просто сочетание разных методов обычно дает хорошие результаты.
2 NickLion
Метод Левенберга-Марквардта сочетает градиентный спуск и метод Ньютона, т.е. использует гессиан (матрицу вторых производных). Возможно, если вместо градиентного спуска применить метод сопряженных градиентов, а вместо метода Ньютона - какой-нибудь квазиньютоновский метод (а-ля BFGS), то должно получиться нечто убойное =)
Надо будет попробовать.
Russian Lisp Community: http://lisper.ru
made with secret alien technology
made with secret alien technology
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
Re: open source нейросетевые пакеты
Я выяснил дебаггером, в чем проблема в моей программе - на вход нейронной сети почему-то (я пока не выяснил, почему) поступают не те данные, которые я ввожу (проблема в работе с указателями). При этом сеть учится распознавать именно эти данные, а не смайлики, потом если я выбираю второй смайлик, то сеть опять распознает эти данные.
Нашел и исправил, это не единственная проблема. Всеравно нейронная сеть не обучается.
Нашел и исправил, это не единственная проблема. Всеравно нейронная сеть не обучается.
-
allchemist
- Сообщения: 55
- ОС: Gentoo, Arch
Re: open source нейросетевые пакеты
Вот.
Описал концепцию.
Псевдокод решил не присылать, т.к.мне не нравится сама реализация, а придумывать новую накладно.
Описал концепцию.
Псевдокод решил не присылать, т.к.мне не нравится сама реализация, а придумывать новую накладно.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Russian Lisp Community: http://lisper.ru
made with secret alien technology
made with secret alien technology
-
Warlornhor
- Сообщения: 428
- ОС: openSUSE 12.3
Re: open source нейросетевые пакеты
С родителями и потомками у каждого нейрона --- это интересная идея, тогда можно будет делать полносвязные цепи с обратными связями. Я правильно понял, что такое отношение было взято для определения направления вычисления?
-
allchemist
- Сообщения: 55
- ОС: Gentoo, Arch
Re: open source нейросетевые пакеты
Warlornhor писал(а): ↑17.06.2009 11:10С родителями и потомками у каждого нейрона --- это интересная идея, тогда можно будет делать полносвязные цепи с обратными связями. Я правильно понял, что такое отношение было взято для определения направления вычисления?
Такая концепция обладает универсальностью, т.к. позволяет моделировать довольно много разных архитектур, в т.ч. неполносвязные и с обратными связями.
Также думаю над матричным представлением сети.
Russian Lisp Community: http://lisper.ru
made with secret alien technology
made with secret alien technology
-
Warlornhor
- Сообщения: 428
- ОС: openSUSE 12.3
Re: open source нейросетевые пакеты
Матричное могу сегодня вечером выложить, работает на ура.
-
allchemist
- Сообщения: 55
- ОС: Gentoo, Arch
Re: open source нейросетевые пакеты
Буду очень благодарен, т.к. мои мысли по этому поводу пока крутятся возле одного места
Russian Lisp Community: http://lisper.ru
made with secret alien technology
made with secret alien technology
-
Warlornhor
- Сообщения: 428
- ОС: openSUSE 12.3
Re: open source нейросетевые пакеты
Вечер.
Как и обещал вот пакет с нейронной сетью. Там есть лишнее, но суть реализации видна. Комментариев не много, если что спрашивайте.
Как и обещал вот пакет с нейронной сетью. Там есть лишнее, но суть реализации видна. Комментариев не много, если что спрашивайте.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
allchemist
- Сообщения: 55
- ОС: Gentoo, Arch
Re: open source нейросетевые пакеты
Warlornhor писал(а): ↑17.06.2009 18:33Вечер.
Как и обещал вот пакет с нейронной сетью. Там есть лишнее, но суть реализации видна. Комментариев не много, если что спрашивайте.
Спасибо, конечно, но совсем не знаю джаву. Попытался почитать код, но как-то все грустно.
Если бы вы описали идею в двух словах - было б здорово
Russian Lisp Community: http://lisper.ru
made with secret alien technology
made with secret alien technology
-
Warlornhor
- Сообщения: 428
- ОС: openSUSE 12.3
Re: open source нейросетевые пакеты
Основная идея примерно такая:
- имеем массив с нейронами вида
1 1 1 1
1 1 1 1
1 0 1 0
1 0 0 0
где 1 --- это нейрон, 0 --- пустое место. Каждый нейрон связан со всеми нейронами предыдущего слоя (об этом знает только сеть, нейрон ничего не знает о своих соседях). Причем 1-цы не должны прерываться нулями, а потом опять продолжаться.
- из соотношения количества нейронов в слоях и вычисляется количество весов
- количество входов задается до задания сети, чтобы определить веса в первом слое
- есть возможность добавить нейрон на пустое место и заменить уже существующий нейрон
Алгоритм расчета примерно такой:
для каждого нейрона сверху вниз вычисляем значение выхода, после этого полученный вектор подаем на вход следующему слою и так далее. По идее при правильном использовании многопоточности можно добиться существенного увеличения скорости вычисления, например если вычислять выход слоя в несколько потоков, однако пока я получал только отрицательные результаты ее использования.
- имеем массив с нейронами вида
1 1 1 1
1 1 1 1
1 0 1 0
1 0 0 0
где 1 --- это нейрон, 0 --- пустое место. Каждый нейрон связан со всеми нейронами предыдущего слоя (об этом знает только сеть, нейрон ничего не знает о своих соседях). Причем 1-цы не должны прерываться нулями, а потом опять продолжаться.
- из соотношения количества нейронов в слоях и вычисляется количество весов
- количество входов задается до задания сети, чтобы определить веса в первом слое
- есть возможность добавить нейрон на пустое место и заменить уже существующий нейрон
Алгоритм расчета примерно такой:
для каждого нейрона сверху вниз вычисляем значение выхода, после этого полученный вектор подаем на вход следующему слою и так далее. По идее при правильном использовании многопоточности можно добиться существенного увеличения скорости вычисления, например если вычислять выход слоя в несколько потоков, однако пока я получал только отрицательные результаты ее использования.
-
allchemist
- Сообщения: 55
- ОС: Gentoo, Arch
Re: open source нейросетевые пакеты
Warlornhor писал(а): ↑17.06.2009 23:28Каждый нейрон связан со всеми нейронами предыдущего слоя (об этом знает только сеть, нейрон не знает о своих соседях)
Интересная идея.
Однако такое представление сети слишком узкое, т.к. ограничивается только полносвязными сетями прямого распространения.
Или я чего-то не понял?
Про матричное представление сети - я имел ввиду более математизированное понятие.
Чтобы можно было, например, иметь отдельно матрицу весов, синаптических связей и т.д., и для "решения" сети просто проводить с ними операции сложения/умножения. Это давало бы хороший уровень абстракции.
Russian Lisp Community: http://lisper.ru
made with secret alien technology
made with secret alien technology
-
gcc
- Сообщения: 526
- ОС: FreeBSD 8.0 CURRENT
Re: open source нейросетевые пакеты
вот ради интереса посмотрел
http://search.cpan.org/search?query=neural&mode=all
оно?
а что вы именно хотите делать?
еще есть квантовая логика, я использовать по статье на opennet.ru где-то было
http://search.cpan.org/search?query=neural&mode=all
оно?
а что вы именно хотите делать?
еще есть квантовая логика, я использовать по статье на opennet.ru где-то было
-
Warlornhor
- Сообщения: 428
- ОС: openSUSE 12.3
Re: open source нейросетевые пакеты
allchemist писал(а): ↑17.06.2009 23:59Warlornhor писал(а): ↑17.06.2009 23:28Каждый нейрон связан со всеми нейронами предыдущего слоя (об этом знает только сеть, нейрон не знает о своих соседях)
Интересная идея.
Однако такое представление сети слишком узкое, т.к. ограничивается только полносвязными сетями прямого распространения.
Или я чего-то не понял?
Вы правильно поняли, но у меня было не сильно много времени думать, и этот вариант как самый простой и был реализован, в скором времени попробую сделать связи емнно между нейронами и посмотрим что можно соорудить.