open source нейросетевые пакеты (ищутся ныне живущие)

Модератор: Модераторы разделов

allchemist
Сообщения: 55
ОС: Gentoo, Arch

Re: open source нейросетевые пакеты

Сообщение allchemist »

gcc писал(а):
18.06.2009 00:26
еще есть квантовая логика, я использовать по статье на opennet.ru где-то было

http://www.opennet.ru/docs/RUS/perl_obzor/...s/quantium.html
Это?

Любопытная ссылка...
А не могли бы Вы скинуть ссылочку на теорию квантовых вычислений?
(не про квантовые компьютепы, а как раз про их моделирование на классических)

По теме - взялся перечитывать Саимона Хайкина (Нейронные сети. Полный курс). Потом таки начну писать нейросетевой пакет, естессно, open source.
Просьба высказать пожелания по поводу возможностей и прочих фич =)
Russian Lisp Community: http://lisper.ru
made with secret alien technology
Спасибо сказали:
Warlornhor
Сообщения: 428
ОС: openSUSE 12.3

Re: open source нейросетевые пакеты

Сообщение Warlornhor »

А на чем писать собрались?
Спасибо сказали:
allchemist
Сообщения: 55
ОС: Gentoo, Arch

Re: open source нейросетевые пакеты

Сообщение allchemist »

Warlornhor писал(а):
18.06.2009 19:20
А на чем писать собрались?

Мой любимый язык - лисп. Думалку (ядро) буду писать на нем.
У лиспа имхо есть только один недостаток - не самый быстрый. Однако, хороший компилятор (типа sbcl) не намного отстает по скорости от С.
Но, если производительность будет недостаточной, возможно, перепишу на forth, еще одном любимом языке =)
Для интерфейса и прочих прибамбасов - м.б. bash или perl.
Russian Lisp Community: http://lisper.ru
made with secret alien technology
Спасибо сказали:
Warlornhor
Сообщения: 428
ОС: openSUSE 12.3

Re: open source нейросетевые пакеты

Сообщение Warlornhor »

А конечная цель если не секрет? Область применения?
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: open source нейросетевые пакеты

Сообщение frp »

Если у вас проблема с обратным распространением, можете написать ГА (это просто).

А как это "просто" применить к нейронным сетям?
По-моему оно просто только для очень простых задач.
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: open source нейросетевые пакеты

Сообщение frp »

Уже сам придумал.
Спасибо сказали:
Аватара пользователя
gcc
Сообщения: 526
ОС: FreeBSD 8.0 CURRENT

Re: open source нейросетевые пакеты

Сообщение gcc »

allchemist писал(а):
18.06.2009 18:42
Любопытная ссылка...
А не могли бы Вы скинуть ссылочку на теорию квантовых вычислений?


не знаю, не занимаюсь

я видел это в веб программироании использовалось для быстродействия
Спасибо сказали:
allchemist
Сообщения: 55
ОС: Gentoo, Arch

Re: open source нейросетевые пакеты

Сообщение allchemist »

Конкретной задачи, решаемой с помощью ИНС, сейчас не стоит.
Так, на будущее...
Да и практика лишняя не помешает.
Russian Lisp Community: http://lisper.ru
made with secret alien technology
Спасибо сказали:
allchemist
Сообщения: 55
ОС: Gentoo, Arch

Re: open source нейросетевые пакеты

Сообщение allchemist »

gcc писал(а):
19.06.2009 01:45
не знаю, не занимаюсь
я видел это в веб программироании использовалось для быстродействия


Вот нарыл интересную работу: Дж. Прескилл. "Квантовые вычисления и квантовая информация".
На основе соотв. курса в КАЛТЕХе.
Russian Lisp Community: http://lisper.ru
made with secret alien technology
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: open source нейросетевые пакеты

Сообщение frp »

УРА! Наконец нейронная сеть научилась распознавать морды!
Спасибо сказали:
allchemist
Сообщения: 55
ОС: Gentoo, Arch

Re: open source нейросетевые пакеты

Сообщение allchemist »

frp писал(а):
20.06.2009 19:45
УРА! Наконец нейронная сеть научилась распознавать морды!

поздравления...
=)
Russian Lisp Community: http://lisper.ru
made with secret alien technology
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: open source нейросетевые пакеты

Сообщение frp »

Какая вероятность кроссовера и мутации наиболее оптимальна?

Как толком реализовать достойный генератор случайных дробных чисел?
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: open source нейросетевые пакеты

Сообщение Portnov »

iУведомление от модератора

frp
1. Это уже не относится к нейросетям никак
2. Это тем более.
У нас правило: один вопрос - одна тема. Создавайте отдельные темы.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Warlornhor
Сообщения: 428
ОС: openSUSE 12.3

Re: open source нейросетевые пакеты

Сообщение Warlornhor »

Буду рад помощи и светлым идеям. Нейронные сети и распознавание речи. Пока там довольно пусто, но после выходных если все будет хорошо начну писать свои идеи. Исходники там уже есть (грязные, таки без рефакторинга, но есть :) ).
Спасибо сказали:
allchemist
Сообщения: 55
ОС: Gentoo, Arch

Re: open source нейросетевые пакеты

Сообщение allchemist »

Небольшой отчет.
Реализовал многослойный перцептрон и алгоритм обратного распространения.
Переписывал все заново 5 или 6 раз, пока код не начал нравиться. За это время размер кода сократился примерно в 5-10 раз, а производительность во столько же раз возрасла.

На основе этой реализации поднял распознавалку образов. Перепишу ее пару раз, и она тоже начнет нравиться =)
На вход подается png-картинка с буквой размером 15x15 (225 входных переменных, которые ринимают значения от 0 до 255, - довольно много, поэтому для ускорения работы придется подвергать их грубой предварительной обработке)

На выходе получаю одну из букв.

Нарисовал 240 картинок, 24 латинские заглавные буквы, по 10 примеров. Добился того, чтобы на обучающем множестве (8 из 10, 192 буквы) не было ошибок, а на тестовом (2 из 10, 48 букв) - 4-5 ошибок.

Далее планирую сделать "антикаптчу" - автоматическое считывание последовательности символов с картинки (напр. защиту от автоматической регистрации)
Однако, вдруг почему-то перестала компилиться моя среда разработки (slime, под sbcl на emacs) - хороший повод забить на все и потестить freebsd 8.0 beta =)
Russian Lisp Community: http://lisper.ru
made with secret alien technology
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: open source нейросетевые пакеты

Сообщение frp »

А как вы сделали разделение на символы?
Я делал распознавалку, способную распознавать символы заданные в виде изображения фиксированного размера.

allchemist писал(а):
21.07.2009 18:49
Далее планирую сделать "антикаптчу" - автоматическое считывание последовательности символов с картинки (напр. защиту от автоматической регистрации)

Вот здесь самое сложное разделить на символы.

Кстати, а как реализовать распознавание символов, которые могут быть повернуты, перевернуты и т.п. более-менее нормальным способом? Ведь сложно и неэффективно учить нейронную сеть распознавать каждый символ со всеми возможными положениями и размерами.
Спасибо сказали:
Warlornhor
Сообщения: 428
ОС: openSUSE 12.3

Re: open source нейросетевые пакеты

Сообщение Warlornhor »

Кстати, а как реализовать распознавание символов, которые могут быть повернуты, перевернуты и т.п. более-менее нормальным способом? Ведь сложно и неэффективно учить нейронную сеть распознавать каждый символ со всеми возможными положениями и размерами.


На сколько я знаю, существуют так же градиентные методы распознавания символов, правда видел я их только на картинках. Общий смысл в том, что символ можно обойти по контуру, а этот контур, что повернутый, что нет, одинаковый.
Спасибо сказали:
allchemist
Сообщения: 55
ОС: Gentoo, Arch

Re: open source нейросетевые пакеты

Сообщение allchemist »

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

По поводу вращения символа - есть такая архитектура со страшным названием 'когнитрон' (ну и неокогнитрон туда же). Моделирует строение зрительной коры.
На обычных перцептронах тоже можно сделать, но для этого придется как-то закодировать исходное представление в представление, не зависящее от угла поворота (фактически - извлечь признаки, инвариантные к поворотам).
Как это сделать конкретно - не знаю, пока не думал.
Russian Lisp Community: http://lisper.ru
made with secret alien technology
Спасибо сказали:
Warlornhor
Сообщения: 428
ОС: openSUSE 12.3

Re: open source нейросетевые пакеты

Сообщение Warlornhor »

Еще картинку символа можно крутить по кругу с некоторым шагом и взять максимально похожий символ из распознанных за правду.
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: open source нейросетевые пакеты

Сообщение frp »

А где найти подробную инфу по когнитрону?

Warlornhor писал(а):
23.07.2009 11:02
Еще картинку символа можно крутить по кругу с некоторым шагом и взять максимально похожий символ из распознанных за правду.

Можно, но возникает один вопрос - распознает ли такая OCR страницу текста за час?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: open source нейросетевые пакеты

Сообщение NickLion »

Как вариант - детектировать строки и распознавать символы только перпендикулярно направлению строки.
Спасибо сказали:
Warlornhor
Сообщения: 428
ОС: openSUSE 12.3

Re: open source нейросетевые пакеты

Сообщение Warlornhor »

Ну и еще есть здравый смысл, кто будет писать текст сначала одним боком, потом другим? Также можно просто больше времени потратить на обучение сети различным поворотам букв и все.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: open source нейросетевые пакеты

Сообщение NickLion »

Повороты букв, скорее всего, повысят число неверных срабатываний. Буквы определять как перпендикулярные с направлению слова. И только в случае, если такой алгоритм дал сбой включить побуквенное чтение. Первый алгоритм отработает в 95% случаев. А остальные 5% будут обрабатываться медленным алгоритмом.
Спасибо сказали:
Warlornhor
Сообщения: 428
ОС: openSUSE 12.3

Re: open source нейросетевые пакеты

Сообщение Warlornhor »

NickLion писал(а):
24.07.2009 14:20
Повороты букв, скорее всего, повысят число неверных срабатываний. Буквы определять как перпендикулярные с направлению слова. И только в случае, если такой алгоритм дал сбой включить побуквенное чтение. Первый алгоритм отработает в 95% случаев. А остальные 5% будут обрабатываться медленным алгоритмом.

Хм, вот буква квадратная (шрифт такой) и как определить что она перпендикулярна слову?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: open source нейросетевые пакеты

Сообщение NickLion »

Warlornhor писал(а):
24.07.2009 14:24
NickLion писал(а):
24.07.2009 14:20
Повороты букв, скорее всего, повысят число неверных срабатываний. Буквы определять как перпендикулярные с направлению слова. И только в случае, если такой алгоритм дал сбой включить побуквенное чтение. Первый алгоритм отработает в 95% случаев. А остальные 5% будут обрабатываться медленным алгоритмом.

Хм, вот буква квадратная (шрифт такой) и как определить что она перпендикулярна слову?

По определению. Алгоритм первого уровня будет считать, что буквы в слове всегда перпендикулярны слову. А если его уверенность в распознавании будет низка, тогда пытаться проанализировать с учетом поворотов.
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: open source нейросетевые пакеты

Сообщение frp »

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

А все таки где взять инфу по когнитрону?
Спасибо сказали:
Warlornhor
Сообщения: 428
ОС: openSUSE 12.3

Re: open source нейросетевые пакеты

Сообщение Warlornhor »

На первой странице в гугле Лекция по когнитрону
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: open source нейросетевые пакеты

Сообщение NickLion »

frp писал(а):
24.07.2009 19:38
Если делать OCR для нормальных людей, то алгоритм вполне нормальный, но если делать программу для чтения отсканированых текстов, которые сканировал типичный ламер, то там всякое возможно.
А еще сложнее антикапча - там в слове буквы могут быть повернуты как угодно (здесь, правда, можно использовать и медленный алгоритм - символов обычно не больше десятка).

А все таки где взять инфу по когнитрону?

А не важно, кто сканировал:
1. Детектировать строки текста
2. Распознавать буквы, считая, что они перпендикулярны строкам.
3. Если не вышло, тогда медленно перебираем различные повороты.
Этот алгоритм и по файнридеру заметен - он поворачивает картинку так, чтобы строки были горизонтальны.

Ну, а антикапча - другой разговор, там не текст на несколько тысяч знаков, а всего-то 4-20 символов. Тут задача совсем другая и подход к ней нужен другой. Пересекающиеся буквы, буквы из точек, пунктирных линий, объемные контурные буквы... В общем, задача совсем другая.
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: open source нейросетевые пакеты

Сообщение frp »

NickLion писал(а):
25.07.2009 13:35
А не важно, кто сканировал:
1. Детектировать строки текста
2. Распознавать буквы, считая, что они перпендикулярны строкам.
3. Если не вышло, тогда медленно перебираем различные повороты.
Этот алгоритм и по файнридеру заметен - он поворачивает картинку так, чтобы строки были горизонтальны.

Вот у меня знакомые есть такие, что ложат в сканер даже загнутую бумагу, ну и в месте изгиба меняеться направление строк и приходиться либо найти этот изгиб (что довольно сложно), либо использовать медленный алгоритм.
Warlornhor писал(а):
24.07.2009 13:57
Также можно просто больше времени потратить на обучение сети различным поворотам букв и все

Да, но я спрашивал о более простых способах (потому, что для более-менее нормальной точности распознавания понадобится большая нейронная сеть, в результате скорость обучения и распознавания будет довольно мелкой).
Спасибо сказали:
Warlornhor
Сообщения: 428
ОС: openSUSE 12.3

Re: open source нейросетевые пакеты

Сообщение Warlornhor »

frp писал(а):
25.07.2009 16:17
Да, но я спрашивал о более простых способах (потому, что для более-менее нормальной точности распознавания понадобится большая нейронная сеть, в результате скорость обучения и распознавания будет довольно мелкой).

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