Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 1, 2011 01:28:30

bekabaka
От:
Зарегистрирован: 2011-10-01
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Нейронные сети

Огромное спасибо за библиотеку, очень помогла в в составлении учебного курса, после того, как в университете запретили МАТЛАБ! Не знаю, что бы и делал без вашего проекта.
Скажите, не реализован ли на данный момент алгоритм Левенберга - Марквардта для многослойного персептрона (trainlm в NN Toolbox)? Очень сильный алгоритм, хотелось бы увидеть его. В пакете пока не нашёл, может, в планах?



Офлайн

#2 Окт. 2, 2011 16:59:02

comm
От:
Зарегистрирован: 2010-02-26
Сообщения: 23
Репутация: +  1  -
Профиль   Отправить e-mail  

Нейронные сети

bekabaka
Спасибо! Рад, что вы используете neurolab в учебном процессе (хоть для этого и пришлось запретить МАТЛАБ).

Что касается trainlm, то пока в планах он не стоял. Разрабатывать подобные алгоритмы на чистом питоне, наверное, не очень правильно. На данный момент реализован схожий квазиньютонов алгоритм BFGS. И пока это наиболее эффективный (из поддерживаемых) алгоритм обучения многослойных перцептронов (см. example/ff_train_race.py). В neurolab он реализован как обертка для scipy.optimize.fmin_bfgs. Как оказалось, метод Левенберга - Марквардта в пакете scipy.optimize тоже присутствует, в виде функции leastsq. И теоретически можно и для него написать обертку по аналогии с BFGS, но тут не так все гладко. Например leastsq оптимизирует только сумму квадратов ошибок, в то время как в neurolab возможны и иные функции ошибок.
В общем обещать не буду, но если все пойдет хорошо, возможно я его добавлю. Интересно сравнить его эффективность с тем же BFGS.



Отредактировано (Окт. 2, 2011 17:15:53)

Офлайн

#3 Окт. 2, 2011 23:13:10

bekabaka
От:
Зарегистрирован: 2011-10-01
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Нейронные сети

Справедливости ради, запретили не МАТЛАБ, а ПО без лицензии, что скорее хорошо, чем плохо. Плохо, что на лицензию МАТЛАБа средств не выделили.
Большое спасибо за наводки на конкретные функции из scipy.optimize, я только знакомлюсь с окружением Питона и это очень ценно. Возможно, я и сам смогу что-то сделать после этих подсказок.
ЛМ интересует именно потому, что в МАТЛАБе он демонстрирует несколько даже ненормальную эффективность - какая-нибудь учебная аппроксимация делается буквально за 3-4 эпохи, а тот же BFGS (он ведь тоже в МАТЛАБе есть) - справляется ну минимум за 15. Некоторые студенты только после этого и верят, что персептроны на что-то годны =)

Ещё раз огромное спасибо за вашу работу. Это действительно востребованный труд. Я-то энтузиаст, но когда коллеги узнали, что в новом окружении можно решать старые задачи именно так, как они привыкли - они резко поменяли отношения и к изменениям учебного плана, и к перспективе освоения новых технологий =) Учитывая, что переход на OpenSource в учебном процессе - это политика даже не вуза, а всего города, уверен, пакет быстро распространится.



Офлайн

#4 Окт. 15, 2011 16:30:41

Andrew Kondratovich
От:
Зарегистрирован: 2011-10-15
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Нейронные сети

comm
1 сентября вышла версия 0.2.0

Основным изменением данной версии является поддержка (из коробки, косвенно работать с ними можно было и ранее - http://python.su/forum/viewtopic.php?pid=70948#p70948) рекуррентных сетей Элмана и Хопфилда.
Другим стимулом обновиться является исправление некоторых багов.

Пример использования сети Элмана: http://packages.python.org/neurolab/ex_newelm.html
Пример использования сети Хопфилда: http://packages.python.org/neurolab/ex_newhop.html
А можно увидеть пример работы сети Элмана для предсказания числовых последовательностей ?
Обучив сеть на последовательности , и подав на вход, я хочу чтобы она предсказала следующий элемент (11) ? Пробежавшись по диагонали по исходникам не смог найти ответа - step() требует элемент и возвращает примерно его же.



Офлайн

#5 Дек. 22, 2011 20:31:23

ks
От:
Зарегистрирован: 2009-05-20
Сообщения: 61
Репутация: +  0  -
Профиль   Отправить e-mail  

Нейронные сети

Проект стоящий и нужный, безусловно. А что послужило причиной создания данного проекта?



Офлайн

#6 Дек. 25, 2011 18:09:24

comm
От:
Зарегистрирован: 2010-02-26
Сообщения: 23
Репутация: +  1  -
Профиль   Отправить e-mail  

Нейронные сети

James
А что послужило причиной создания данного проекта?
Даже не знаю что и сказать! По-моему, каких-либо скрытых намерений не было. Изначально было немного обидно, что в такой перспективной среде не нашлось аналога NNT, так уж сложилось, что для многих это эталонная реализация ИНС. Это на самом деле очень продуманный и удобный пакет и своих денег он безусловно стоит (правда в довесок к нему придется взять MATLAB). После работы с ним уже откровенно не хотелось терять в удобстве и функциональности.
Ну а затем постарался реализовать собственные знания ИНС в новой для меня среде Python/Numpy. В общем Just for fun…



Офлайн

#7 Дек. 25, 2011 21:22:02

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Нейронные сети

Небольшая ложка дегтя.

comm
что в такой перспективной среде не нашлось аналога NNT
У меня есть гипотеза почему это так.
http://ru.wikipedia.org/wiki/:
С точки зрения машинного обучения, нейронная сеть представляет собой частный случай методов распознавания образов, дискриминантного анализа, методов кластеризации и т. п. С математической точки зрения, обучение нейронных сетей — это многопараметрическая задача нелинейной оптимизации.
Во всех случаях применения нейронных сетей с которыми я встречался - решение задачи было либо в десятки раз менее эффективно по сравнению с обычными методами минимизации, либо это была их переформулировка в нейронных терминах. Гораздо чаще встречался первый вариант.

Поэтому сообщество больше обращает внимания на классические методы оптимизации кластеризации и т.п.



Отредактировано (Дек. 25, 2011 21:30:14)

Офлайн

#8 Дек. 26, 2011 10:45:34

comm
От:
Зарегистрирован: 2010-02-26
Сообщения: 23
Репутация: +  1  -
Профиль   Отправить e-mail  

Нейронные сети

doza_and
ИНС это один основных методов машинного обучения. Для каких-то задач он подходит лучше, для каких-то хуже. Некоторые ИНС представляют лишь академический интерес, некоторые успешно используются на практике. Одно время наблюдалось падение интереса к ИНС, но сейчас они опять актуальны (http://yaroslavvb.blogspot.com/2011/04/neural-networks-making-come-back.html).



Офлайн

#9 Фев. 4, 2012 18:17:39

ks
От:
Зарегистрирован: 2009-05-20
Сообщения: 61
Репутация: +  0  -
Профиль   Отправить e-mail  

Нейронные сети

Планируется ли Неокогнитрон, в библиотеке?
http://packages.python.org/neurolab/ex_newc.html -

# Create net with 2 inputs and 4 neurons
net = nl.net.newc([[0.0, 1.0],[0.0, 1.0]], 4)
Что здесь подается на вход - размерность пространства: x,y? ,
Если бы было x,y,z то нужно было бы писать: ? ,
Что за параметр show, в
error = net.train(inp, epochs=200, show=20)
? ,
И
w = net.layers[0].np['w']
-
train centers?



Отредактировано (Фев. 5, 2012 21:06:45)

Офлайн

#10 Фев. 9, 2012 18:27:15

comm
От:
Зарегистрирован: 2010-02-26
Сообщения: 23
Репутация: +  1  -
Профиль   Отправить e-mail  

Нейронные сети

Планируется ли Неокогнитрон, в библиотеке?
Нет. Пока не приходилось с ним встречаться.

Что здесь подается на вход - размерность пространства: x,y?
Да. 0.0 - минимальное значение для данного входа; 1.0 - максимальное.

Что за параметр show
Период вывода информации о процессе обучения в консоль (в примере - каждые 20 эпох).

train centers?
Не уверен, что правильно понял. net.layers.np - веса обученных нейронов, после обучения они стремятся к центрам распределений обучающей выборки.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version