eXeL@B —› Оффтоп —› Реализация и представление данных NeuroNet |
Посл.ответ | Сообщение |
|
Создано: 10 июня 2007 14:06 · Личное сообщение · #1 В этом топе я хочу предложить обсуждение нейросетей. В сети полно информации о сабже, но как правило, статьи перепизженые из переводов буржуйских книг, и представляют собой только теорию. Есть компонент Делфи, но ему надо древнючую (ранее седьмой) версию. С нейропакетами не сталкивался, может не повезло просто. ... Другая часть рунета размыливат топики по n-надцать страниц, в которых желающие могут поделиться своими представлениями об ИИ (встречаются откровенные шизоиды), но и здесь подчерпнуть можно немного: восторженные идеи, скудные описания прототипов. Здесь я предлагаю обсудить реализацию нейросетки, возможность представления данных, и разумеется применение сети. Я бы предложил распознавание изображений. Вынашивая идею, решил, что пора бы что-нибудь родить, и сейчас сел преобразовывать кофе в код. Идей - никаких, но к вечеру, надеюсь хоть что-то наработаю. Приветствуется DELPHI. ----- Я медленно снимаю с неё UPX... *FF_User* |
|
Создано: 10 июня 2007 14:16 · Личное сообщение · #2 Сейчас сообржаю в сторону того, что нейрон дожен быть представлен классом, который имеет входы, выход (один?), функцию взвешеного суммирования и активационную функцию. Затем должен быть класс менеджер, через который можно добавлять объекты нейроны, создавая таким образом сеть. К сожалению я сейчас пишу как и та самая часть рунета: никакой конкретики, лишь упоминания о том, что должно быть. А по сути, сетка - это всего лишь матрица. Результат работы - произведение матриц, задача решаемая в маткаде или экселе =( ----- Я медленно снимаю с неё UPX... *FF_User* |
|
Создано: 12 июня 2007 22:57 · Поправил: AlexZ · Личное сообщение · #3 Сейчас в наличие класс TNeyron. Содержит в себе массив входов, массив весов и функцию взвешеного суммирования (т.е.произведение векторов). В качестве активационной функции выбрал TanH. Нейрон уже способен обучаться и запоминать образы (скидывать веса в файл и считывать оттуда). Под нейроном я здесь подразумеваю персептрон (систему: входы-сумматор-активатор). Теперь нужно как-то развивать сети на базе этого нейрона... ----- Я медленно снимаю с неё UPX... *FF_User* |
|
Создано: 12 июня 2007 23:21 · Личное сообщение · #4 |
|
Создано: 13 июня 2007 18:31 · Личное сообщение · #5 |
|
Создано: 13 июня 2007 18:55 · Поправил: AlexZ · Личное сообщение · #6 sniperZ, нейросети - это весьма упрощенные модели нервной системы. Много нейронов - сеть. Rascal, здесь http://algolist.manual.ru/ai/index.php кое-что можно почитать. Завтра может смогу выложить ещё статью. Лично у меня есть распечатаная книжка, по ней читаю. На инглише инфы куда больше, и как не странно, эта инфа полезнее и информативнее, хотя читать сложно. ---- По поводу персептрона... вот есть он и обучен на вектор размера N, а что делать, если нужно подать на входы вектор другого размера? Изображение я подаю на входы попиксельно. т.е. для битмапа n*m пикселей нужен персептрон с кол-вом входов = m*n ----- Я медленно снимаю с неё UPX... *FF_User* |
|
Создано: 14 июня 2007 13:01 · Личное сообщение · #7 sniperZ пишет: а что такое нейросети Формально нейронные сети - математический аппарат, являющийся универсальным аппроксиматором любых (ну или почти любых) нелинейных функций n - перменных. Т.е. если задана зависимость вход - выход (по сути табличное задание функции) НС может её аппроксимировать, т.е. для новых входных значений выдать значение функции. AlexZ А на sourceforge.net не смотрел, там же вродe были какие-то сорцы, вроде даже на Delphi. |
|
Создано: 19 июня 2007 19:58 · Личное сообщение · #8 Ну вот, родил. Рисуете на планшете цыферь (мышью неудобно, сцук =( и получаете эту (или другую цыферь в текстовом виде. Реализована следующая идея: изображение бьется на кусочки n*m, каждый из которых либо белый либо черный (короч банально масштабируется без всякой интерполяции). Масштабированая пикча скармливается персептрону в виде вектора. На каждую цыферь свой персептрон. Итого 10 перцептронов, вот такая с натяжко сказать, "сеть"... В качестве активатора использовал гиперболический тангенс. Короче, как в статьях и книжках. У кого есть идеи - прошу. зы. Ну и о проблеме сетки, хотя это не есть проблема сети как таковой. Программуля перед распознаванием должна ещё "подгонять" изображение в размер планшета, чего здесь не делается. Из-за этого чуть сдвинутое изображение может быть опознано неверно и при перерисовке _такого_же_, но чуть в другой позиции, оно может быть опознано безошибочно. d2dc_19.06.2007_CRACKLAB.rU.tgz - NN.zip ----- Я медленно снимаю с неё UPX... *FF_User* |
|
Создано: 19 июня 2007 20:00 · Поправил: AlexZ · Личное сообщение · #9 |
eXeL@B —› Оффтоп —› Реализация и представление данных NeuroNet |