Как стать автором
Обновить

Комментарии 39

Не лохо. Понравилось :)
Не лохо :-)
Еще как лохо (:
А я ничего не понял, но читать было жутко интересно =)))
Скажите, что покурить чтобы создать подобие точечной жизни?
А на практике это как то использовать можно? Или это памятка о 7 классе «Истина/Ложь»?
На практике использовать однослойную нейронную сеть нельзя (вернее можно, но толку от неё никакого) по поводу памятки, перечитайте статью, вы наверно не все поняли. А на практике будут использоваться многослойные сети, состоящие и большого количества нейронов, но для того что бы понять как они работают мной и был начат цикл статей о нейронный сетях.
Было интересно почитьать и посмотреть на примере, как это все работает.
Вы упомянули многослойные сети… Не планируете ли вы случайно про XOR рассказывать в следующих статьях этого цикла?
(ивините, наглею) =)
В следующей статье речь пойдет о генетических алгоритмах, в дальнейших будем подробно рассматривать многослойки. XOR НЕ решается один нейроном как не крути, по поводу того сможет ли его решить сеть со скрытым слоем, поссмотрим далее :)
Так и знал, что одним нейроном тут не обойтись )
Спасибо.
не надо про генетический отбор.
лучше если есть примеры кода на тормозящих связях.
НЛО прилетело и опубликовало эту надпись здесь
У тому обучать сеть можно на любых таблицах.
Ну что ж, хочется пожить, хочется увидеть.
Очень интересно, вот вчера только подумал, чем же себя увлечь ))), а тут такая тема началась, Жду продолжения…
очень похоже на построение системы фильтров (как в электронике), не более
Не совсем понятно что с функциями активации? Их нет или я их не заметил?
Сигмоид, вот же они
return (parseFloat(value) > 0) ? '1' : '-1';
Не заметил для второго примера (
(parseFloat(value) > 0)? '1': '-1' — не совсем сигмоид конечно ;-)
больше похоже на пороговую функцию).

А в первом примере функии активации нет?

Тоже есть, правда причем тажа функция, только написана «коряво» ;(
Вот
if (this.tsum < 0) {
return 0;
}
else {
return 1;
}
)
НЛО прилетело и опубликовало эту надпись здесь
Вроде как преследовались цели написать «попроще» =) А примеры то вообще тривиальные.
На премию Лёбнера не собираетесь?

Вот бот A.L.I.C.E который получил эту премию в 2008м году.

там можно с ней початиться, только к сожалению моего знания английского языка не хватает чтобы заставить её сказать что то такое что отличило бы её от человека.
Отичный бот, кстати если верить алисе, то она голосовала за Обаму =).
Ну это же просто :)
Human: hello
ALICE: Hi there!
Human: hello
ALICE: Hi there!
Human: hello
ALICE: Hi there!
Human: are you bot?
ALICE: I don't know whether or not I am bot. I am a chatterbot developed by Dr. Richard S. Wallace.
Human: you are stupid bot
ALICE: Hey, I'll tell my other robot friends you called me stupid.
И это Вы называете простым и интересным языком?
Да, это простой язык, во всяком случае более понятного объяснение принципов работы нейро сети я не находил.
Я немного знаком с НС, но если честно не сильно быстро сориентировался в вашей статье.
Думаю человеку никогда не сталкивовшимся с НС нелегко будет понять что и как (некоторым — «Stepler», даже показалось похоже на систему фильтров ).

Возможно, читающим было бы интересно все же узнать о некоторых базовых принципах НС перед тем как углубляться в код:
a) о том, что существуют неверояное количество архитектур и модификаций НС, а также алгоримов обучения
b) что такое алгорим обучения и для чего он нужен
с) какие преимущества дают НС при решении слабоформализоавнных задач
d) какие плюсы и минусы нейросетевого подхода в сравнении с другими подходами

Вообще на мой взгляд рассмативать принципы работы НС на javascript-е, на данный момент еще рано.
Одно дело переносить уже функционирующую (я имею ввиду обученную) НС на javascript.
Другое дело, когда задача не решена и предстоит ее решить.

При всем моем уважении к javascript мне кажется очень затруднительным проделать такие шаги как:
-выбор подходящей архитектуры НС
-выбор количества слоев, количества нейронов в каждом слое (кто занимался возможно поддержат меня, что в настоящий момент хоть и существуют различные подходы, но зачастую эти параметры приходится получать только в роцессе долгих вариаций).
— выбор функциии активаци
— наконец, выбор оучающих пар (если идет речь об алгоритме обучения с учителем).

В любом случае атору спасибо за статью, возможно кто-то из прочитавших заинтересуется НС и напишет систему которая все-таки пройдет Тест Тьюринга ;-).
Спасибо за критику, про то почему выбран JS написал ниже.
Лучше бы тогда на Ruby реализовал ;)
P.S. не плохо* :DD
Статья написана на простом и интересном языке — имелся ввиду JavaScript, видимо. Кошмар.
Имелся ввиду русский язык. Что кошмар?
Для статьи, заявленной как «на простом и интересном русском языке», слишком много кода. Он больше половины занимает!

Заявляете теорию — пишете в основном о практике, на отдельном примере, не поясняя сути.

Я не говорю о том, что статья никому не полезна. Я говорю о том, что она не соответствует заявляемым в её начале целям и формирует неверное ожидание, которое начинает обламываться на отсылках типа «теорию каждый может почитать сам». Мой Вам совет — перечитайте свою статью, и перепишите вступление.
НЛО прилетело и опубликовало эту надпись здесь
мы не нейроны, мы, по крайней мере, довольно хорошо обученные многослойные персептроны ;-)
На JS написано так как
1) Сеть элементарная и язык реализации не существенен
2) Для того что бы можно было «не отрываясь» от браузера поссмотреть код и проверить функционал
3) Более сложные сети будут реализованы на чем нибудь более «тяжелом»
статью хорошо дополнила бы картинка иллюстрирующая динамику обучения.

и не совсем понятно, зачем weights сделаны глобальными.
Спасибо за материал, быть может тоже приму участие в написании статей по нейронным сетям, т.к. тема очень интересна!
а мне приятно было пример расковырять и посмотреть. Понятно, некоторые принципы сразу стали очевидны
Код не претендует на красоту, писалось на коленке, да и не для «совершенного кода».

всегда умиляют подобные строки, причем подобное присутствует чуть ли не в каждом первом посте, где присутствует код. А пишутся они только для того, чтобы в комментариях не сказали «твой код — УГ» и т.п.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации