Сейчас на форуме: asfa, zds (+8 невидимых)

 eXeL@B —› Оффтоп —› Реализация и представление данных NeuroNet
Посл.ответ Сообщение

Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 10 июня 2007 14:06
· Личное сообщение · #1

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

Здесь я предлагаю обсудить реализацию нейросетки, возможность представления данных, и разумеется применение сети. Я бы предложил распознавание изображений.
Вынашивая идею, решил, что пора бы что-нибудь родить, и сейчас сел преобразовывать кофе в код. Идей - никаких, но к вечеру, надеюсь хоть что-то наработаю.

Приветствуется DELPHI.

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 10 июня 2007 14:16
· Личное сообщение · #2

Сейчас сообржаю в сторону того, что нейрон дожен быть представлен классом, который имеет входы, выход (один?), функцию взвешеного суммирования и активационную функцию. Затем должен быть класс менеджер, через который можно добавлять объекты нейроны, создавая таким образом сеть.

К сожалению я сейчас пишу как и та самая часть рунета: никакой конкретики, лишь упоминания о том, что должно быть.

А по сути, сетка - это всего лишь матрица. Результат работы - произведение матриц, задача решаемая в маткаде или экселе =(

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 12 июня 2007 22:57 · Поправил: AlexZ
· Личное сообщение · #3

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

Теперь нужно как-то развивать сети на базе этого нейрона...

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 12 июня 2007 23:21
· Личное сообщение · #4

AlexZ, а что такое нейросети?




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 13 июня 2007 18:31
· Личное сообщение · #5

sniperZ
Флудерст мля.

AlexZ
Дай линки по теме на русском языке. На инглише достаточно сложно вникать, а тема интересная.

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 13 июня 2007 18:55 · Поправил: AlexZ
· Личное сообщение · #6

sniperZ, нейросети - это весьма упрощенные модели нервной системы. Много нейронов - сеть.

Rascal, здесь http://algolist.manual.ru/ai/index.php кое-что можно почитать. Завтра может смогу выложить ещё статью. Лично у меня есть распечатаная книжка, по ней читаю. На инглише инфы куда больше, и как не странно, эта инфа полезнее и информативнее, хотя читать сложно.

----
По поводу персептрона... вот есть он и обучен на вектор размера N, а что делать, если нужно подать на входы вектор другого размера? Изображение я подаю на входы попиксельно. т.е. для битмапа n*m пикселей нужен персептрон с кол-вом входов = m*n

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 20.8 (новичок)
Активность: 0.010
Статус: Участник

Создано: 14 июня 2007 13:01
· Личное сообщение · #7

sniperZ пишет:
а что такое нейросети

Формально нейронные сети - математический аппарат, являющийся универсальным аппроксиматором любых (ну или почти любых) нелинейных функций n - перменных.
Т.е. если задана зависимость вход - выход (по сути табличное задание функции) НС может её аппроксимировать, т.е. для новых входных значений выдать значение функции.
AlexZ
А на sourceforge.net не смотрел, там же вродe были какие-то сорцы, вроде даже на Delphi.



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 19 июня 2007 19:58
· Личное сообщение · #8

Ну вот, родил.
Рисуете на планшете цыферь (мышью неудобно, сцук =( и получаете эту (или другую цыферь в текстовом виде.

Реализована следующая идея:
изображение бьется на кусочки n*m, каждый из которых либо белый либо черный (короч банально масштабируется без всякой интерполяции). Масштабированая пикча скармливается персептрону в виде вектора. На каждую цыферь свой персептрон. Итого 10 перцептронов, вот такая с натяжко сказать, "сеть"... В качестве активатора использовал гиперболический тангенс. Короче, как в статьях и книжках. У кого есть идеи - прошу.

зы. Ну и о проблеме сетки, хотя это не есть проблема сети как таковой. Программуля перед распознаванием должна ещё "подгонять" изображение в размер планшета, чего здесь не делается. Из-за этого чуть сдвинутое изображение может быть опознано неверно и при перерисовке _такого_же_, но чуть в другой позиции, оно может быть опознано безошибочно.

d2dc_19.06.2007_CRACKLAB.rU.tgz - NN.zip

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 19 июня 2007 20:00 · Поправил: AlexZ
· Личное сообщение · #9

И ещё: начертание цыфер обычное прописное, т.е. не такое как в калькуляторах (а там оно выбито по матрице, я решил что так будет не интересно).

Старайтесь рисовать используя весь планшет, так чтобы "центр цыфры соответствовал центру планшета".

-----
Я медленно снимаю с неё UPX... *FF_User*



 eXeL@B —› Оффтоп —› Реализация и представление данных NeuroNet

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати