Обучение нейронных сетей с учителем
1.
Веталь (27.09.2010 / 21:28)
Всем доброго времени суток. Вот почти неделю собираю различную информации нахлестываю в своем блокноте различные агоритмы которые приходят в голову на лету. погряз в работе и в раздумиях.
хотел бы поинтересоватся возможно кто то сталкивался с этой рутинной работой. сейчас я сел за комп и собрался писать класс организации нейросети на PHP и возник вопрос на сколько эффективным является учение нейрона с учителем, немогу привести конкретного примера - поскольку нейронов в целосной системе будут тысячи и лишь для управления и решения нескольких задачь.
интересует именно на сколько быстро проходит у чение...
только собрался писать скрипт как зашел сюда в приват и увидел сообщения бывшего заказчика которому все некак не могу слить поправки скрипта который я ему сдал - изеняюсь, как видишь полностью погряз в работе а когда ложусь - еле доползаю до кровати - сейчас возьмусь и все зделаю))
2.
Azzido (27.09.2010 / 21:39)
неосилил
3.
Веталь (27.09.2010 / 21:43)
нейросеть - аналог нейросетей в в мозке человека...
http://www.neuroproject.ru/neuro.php - самой понятное с чего начинал разбирать эту тему.
4.
Azzido (27.09.2010 / 21:45)
Зачем это нужно, а тем более и на php?
5.
Веталь (27.09.2010 / 21:46)
кстате буду использовать архитектуру перц***рона и алгоритм обратного распространения ошибки
6.
Веталь (27.09.2010 / 21:50)
4.
Azzido, проэкт расчитан для работы в вэб asp в моем случае этого неосилит потому чтго не осилю Я!
а разрабатывается система виртуального 2D мира и на его плоскости будут бегать глухонемые NPS для контроля котрых я буду использовать свой алгоритм самообучения построенной на архитектуре перц***рона в нейросетях.
7.
Александр (27.09.2010 / 21:53)
1, учится медленно, но в целом довольно качественно, если хочешь ускорить, обрабатывай данные убрав лишнее элементы. на пхп лучше всего юзать библу fann на офф сайте есть версия для линя ver 1.x, на форуме чел переделал её под win причём там версия уже v2.х, получилось неплохо, только иногда неведомые ошибки возникают.
8.
Максим Михалыч (27.09.2010 / 21:54)
Ппц,.. Виталь, а простыми словами как ниб про неросеть ;)
9.
Александр (27.09.2010 / 21:57)
Какая вообще задача?
10.
Веталь (27.09.2010 / 22:00)
7.
Муз-ТВ, спсибо за вразумительный ответ, про ффан слышал... но к сожалению плохие отзывы от моих знакомых(( тем более что на освоение библиотеки уйдет времени не мение чем написание собственного алгоритма - сложные цепочки мне не нужны да и нагрузка неимеет значения а вот если б ответили еще на какие ресурсы Базы данных хранения памяти расчитывать было бы полезно. на этапе данном этапе жизни моего алгоритма - все даже неверные массы (результаты с ошибками) будут писатся в БД.
11.
Веталь (27.09.2010 / 22:01)
LoneLy (27 Сентября 2010 / 21:54)
Ппц,.. Виталь, а простыми словами как ниб про неросеть ;)
я давал ссылку понятнее чем там объяснить по моему невозможно.
12.
Александр (27.09.2010 / 22:04)
10, юзал только не офф версию fann под win.
на освоение библиотеки уйдет
там чистое ооп, даже напрягаться не надо, вся нейросеть в пару строк.
Тут как раз нагрузка будет меньше нежели делать на чистом php.
Где то видел уже небольшой класс на чистом пхп, скорость- небо и земля.
13.
Веталь (27.09.2010 / 22:05)
Муз-ТВ (27 Сентября 2010 / 21:57)
Какая вообще задача?
задача. не одна будет некая система по восприятию различных объектов которые система должна будет разбивать по классам, тобишь к какому классу относится тот или иной объект...
14.
Веталь (27.09.2010 / 22:06)
Муз-ТВ (27 Сентября 2010 / 22:04)
10, юзал только не офф версию fann под win.
там чистое ооп, даже напрягаться не надо, вся нейросеть в пару строк.
Тут как раз нагрузка будет меньше нежели делать на чистом php.
Где то видел уже небольшой класс на чистом пхп, скорость- небо и земля.
ну я же и говорю - скорость для меня не главное. про класс слышал плохие отзывы, но ты меня убедил.. попробую поюзать а там посмотрю...
15.
Александр (27.09.2010 / 22:11)
Вот та самая не официальная версия под win
http://leenissen.dk/fann/forum/viewtopic.php?f=3&t=675
16.
Веталь (27.09.2010 / 22:12)
он ставится как обычное расширение?
17.
Александр (27.09.2010 / 22:17)
Давно уже не чего не делал, вот написал коментарии
<?php
require('./fann.class.php');
$fann = new fann();
$trainFile = 'train_data.txt';//тут файл для обучения
$filename = 'test.txt';//сама сеть
// train
$fann->create_standard(4, 2, 40, 49, 1);//не помню вроде 4- это тип обучения, 2 слоёв, 40-нейронов,49- скрытых слоёв,1-хз
$fann->set_activation_function_hidden(FANN_SIGMOID_SYMMETRIC);//это в дрках почитай)
$fann->set_activation_function_output(FANN_SIGMOID_SYMMETRIC);//
for($i=0;$i<10000;$i++){
$fann->train(array("$i",$i), array($i));//обучение с учителем
//array("$i",$i) вопрос array($i) ответ, обязательно массив
}
//$fann->train_on_file($trainFile, 1000, 0.01); //это обучение из файла, 1000- не помню, 0.01 скорость обучения
$fann->save($filename);// сохранение сети
// run
$fann->create_from_file($filename);
$res = $fann->run(array('8', 8));// задаём вопрос
echo $res[0];//массив ответов
?>
18.
Александр (27.09.2010 / 22:17)
16, да.
19.
Веталь (27.09.2010 / 22:23)
for($i=0;$i<10000;$i++){
$fann->train(array("$i",$i), array($i));//обучение с учителем
//array("$i",$i) вопрос array($i) ответ, обязательно массив
}
несовсем понимаю... я так понял что при обучении необходимо сравнивать результат на выходе с наибольшей массой и верным ответом?! ну и если ответ не верный - вновь учим!? тогда непойму цель использования цикла?
20.
Веталь (27.09.2010 / 22:27)
вроде бы это впорлне осилила бы функция тренинга с рекурсией?!
21.
Веталь (27.09.2010 / 22:37)
помимо класификации нейроная сеть должна будет предсказывать развертывание событий работая совместно с еще ненаписанным класом обрабатывающим некую последовательность событий.
22.
Александр (28.09.2010 / 07:46)
Сори косячный пример написал.
Править не буду лучше объясню)
$fann->train(array("$i",$i), array($i));//
(array("$i",$i)- это данные по которым сравнивается, то есть если ты распознаешь картинку длина массива будет равна её размеру, и в каждой ячейки по байту, если сравниваешь 2 числа то должен быть массив из 2 чисел.
array($i)- не верно написал, тут не 1 элемент должен быть. Если ты сравниваешь 2 числа то тебе на прямую сеть не скажет что больше что меньше, она вернет вероятность. То есть вместо array($i) как минимум должно быть 2 события отвечающие за правду и не правду, что то запутано выходит всё же исправлю пример)
23.
Александр (28.09.2010 / 07:52)
Учим мы её сколько хотим, разница лишь будет в качестве ответов.
На 1 примере нормально не научишь по этому там цикл.
Вот рабочий пример.
<?php
require('./fann.class.php');
$fann = new fann();
$trainFile = 'train_data.txt';//тут файл для обучения
$filename = 'test.txt';//сама сеть
// train
$fann->create_standard(4, 2, 4, 4, 1);//не помню вроде 4- это тип обучения, 2 слоёв, 40-нейронов,49- скрытых слоёв,1-хз
$fann->set_activation_function_hidden(FANN_SIGMOID_SYMMETRIC);//это в дрках почитай)
$fann->set_activation_function_output(FANN_SIGMOID_SYMMETRIC);//
//научим сеть находить большее из 2 чисел
$fann->train(array(7,8), array(0,1));//обучение с учителем
//$fann->train_on_file($trainFile, 1000, 0.01); //это обучение из файла, 1000- не помню, 0.01 скорость обучения
$fann->save($filename);// сохранение сети
// run
$fann->create_from_file($filename);
$res = $fann->run(array(7, 8));// задаём вопрос
var_dump($res);//массив ответов
?>
24.
Веталь (28.09.2010 / 08:16)
понял немного разобрался но я учил правда с нейронной сетью работал не на PHP а на C# - реализовать конечно легче - писал антикапчу для депосит файлэс - использовал 36 выходов (26 латинских символов + 10 знаков - числа). и при результате сравнивал у кого на выходе большая маса. Я конечно никогда не писал еще двухслойных НС но поидее в моей системе можно выло сделать тотальную проверку, при этом исключив результаты с наименьшей массой.. типа берем выход с наибольшей массой импульс которого идет дальше ко второму слою где происходит более конкретная проверка мол если в первом слое мы спрашиваем какой это символ то в друх слойной системе мы можем ее еще и спросить точно ли это такой символ. правда еще не знаю как такое организовать (говорил - это только теория (с двух-ми сетями никогда не работал)) ведь будет возвращенно два результата где нейрон скажет да это точно X символ, или нет я неуверен... но как тогда конкретезировать какой именно символ там утвержден?
25.
delete (28.09.2010 / 09:57)
#1,
что то ты Веталь куришь постоянно.. ну ладно, сейчас то на здоровую голову, можишь ответить, каково практическое применение сево чуда? (именно для тебя)
26.
Александр (28.09.2010 / 13:36)
24, Если правильно понял.
ведь будет возвращенно два результата
это почему? сколько выходов сделаешь столько и будет
да это точно X символ
точно скорее всего не будет), почти всегда вероятность выпадает.
но как тогда конкретезировать какой именно символ там утвержден?
для каждого символа нужно сделать выход.
Сеть вернёт вероятность для каждого из выходов.
27.
Веталь (28.09.2010 / 17:22)
-- дубликат --
28.
Веталь (28.09.2010 / 17:24)
25.
Денис Петрович, во первых: написание собственного класса для управления нейросетями. Втрое: сам проэкт оглошать конкретно не хочу по понятным причинам - пиши в асю)))
втретих: намой взгляд это очень хорошая практика которая помоему хорошенько потрепала мои взгляды к программированию (представь только маштабы той же эллементарной до ужаса поисковой системы если в нее включить и эллементы нейросетей?! )
29.
delete (28.09.2010 / 17:47)
28.
Вандер, хорошо, отпишусь в асю, просто я не пойму что такое эта нейросеть
отстал от жизни..
30.
delete (28.09.2010 / 17:48)
<!-- ДУБЛЬ -->
31.
Александр (28.09.2010 / 18:23)
Вот чел попытался на чистом php сделать)
http://www.realme.ru/2008/06/17/iskustvennaja-nejjronnaja-set-primer/
32.
Веталь (28.09.2010 / 19:10)
да я читал но согласись он сделал самую простую нейросеть которую только можно придумать да и напрвление ее такое что можно было бы обойтись без нейросетей. зачем нейроны обучать тому что можно сделать в пару строк? О_о да и путь которым он пошел помойму самый оригинальный.... возможно я ко многому сейчас предираюсь но меня можно понять. я выбираю какую структуру лучше использовать и в каких случаях... проэкт будет довольно крупным нехочется все сводить к нулю и переписывать структуру на каком то этапе работы.
Пока что остановился на варианте с написанием собственного класс, появилась даже идея о создании нового олгаритма обучения нейрона если получится отпишусь о ней здесь...
33.
Михаил (28.09.2010 / 20:00)
а где про алгоритмы можно почитать?
34.
Александр (28.09.2010 / 20:09)
33,
принцип
http://www.neuroproject.ru/neuro.php
учебники
http://www.aiportal.ru/articles/neural-networks/1/
35.
Веталь (28.09.2010 / 20:22)
да эти сайты тоже единственные наиболее понятно описывающие системы генетической наследственности которую я совету почитать абсолютно всем программистам даже неработающей в данной областти хорошая мысль для организации архитектуры использования классов и их наследственности в проэктах. статьи очень хорошо описывают не только биологические процессы живых организмов но и приводят их аналоги в ЯП! очень поучительно!
36.
Александр (28.09.2010 / 20:32)
Люди всё чаше что то заимствуют у природы)
32, А ты напряги чем нибудь более сложным класс), практически, средней сложности, задачи осилит, другое дело что написано не очень хорошо. И полезно посмотреть код, самое то понять "как" это всё работает.
37.
Веталь (28.09.2010 / 22:46)
36.
Муз-ТВ, Собственно олгаритм мне известен. принялся писать собственный класс потому невижу смысла использовать чужие разработки...
38.
delete (28.09.2010 / 23:11)
кстати, я тебе уже неделю в асю пишу, и чето не ответа ни привета, хоть ты и в сети
так что забей, интерес писать пропал.
39.
delete (28.09.2010 / 23:11)
кстати, я тебе уже неделю в асю пишу, и чето не ответа ни привета, хоть ты и в сети
так что забей, интерес писать пропал.
40.
Веталь (29.09.2010 / 08:24)
О_о я последние дня 4 в асе вообще физически появлятся не мог - уменя даж клиент не установлен!
41.
delete (29.09.2010 / 12:45)
40.
Вандер, ну не знаю, icq 7, каждый день в сети
42.
Веталь (29.09.2010 / 16:58)
о_О О_о ??????
43.
Веталь (29.09.2010 / 16:58)
напиши мне сюда когда еще раз появится!
44.
Веталь (29.09.2010 / 16:58)
ну я имею ввиду в ЛС
URL:
https://visavi.net/topics/14126