|
Здравствуйте, товарищи! Я решил поизучать да поэкспериментировать с нейронными сетями и столкнулся с проблемой. А дело вот в чем: пытаюсь сделать приложение, которое будет анализировать слова, пущенные на выход нейронной сети хопфилда, со словами, хранимыми в обучающей выборке. Как все происходит:
Однако что-то у меня с сетью хопфилда не так. Она выбирает одно, какое-то, слово из обучающей выборки и всегда подставляет его. Чувствую, что я где-то накосячил =/ критику, типа "зачем так мудрить, зачем использовать нейро сеть, бла-бла-бла" фтопку. собственно код
|
|
А какого типа у вас zInputVector? Если это класс или массив, то это является указателем, т.е. во время первого цикла, где добавляется пример для выборки при изменении значения zInputVector[f], меняются также значения тех, что уже добавлены. Попробуйте после
Выделить новую память для zInputVector. Если класс, то Вроде так. Но не уверен, с нейро сетью Хопфилда не приходилось общяться.
Но дело не в этом. Я даже пробовал делать массив из векторов и заполнять по отдельности каждый вектор. В примерах, представленных вместе с библиотекой, структура такая же.
(10 Фев 11:07)
teanЫЧ
Проблема точно в этом, обратите внимание на их пример Hopfield, где есть
Там добавление идет отдельной функцией Кстати тоже самое с xInputVector[i];
(10 Фев 11:44)
Vahan Av
Самое интересное, что даже, если я вообще не даю слово на распознание, то все равно сеть выкидывает мне слово "продаю".
(10 Фев 13:28)
teanЫЧ
Сеть обратного распространения работает не так, как мне надо. Она выдает только результат, который точно совпадает с примером из выборки. А Хопфилдская сеть смотрит примерные совпадения и восстанавливает "картину". Поэтому если использовать Хопфилдскую сеть, мне достаточно указать в выборке правильное написание слова. А есть использовать БП, то нужно будет указывать в выборке все слова, и все варианты неправильного написания слов + делать дополнительные обработки... БП у меня используется, но только для того, чтобы определить буквы, а буквы я все забью в выборку.
(10 Фев 15:36)
teanЫЧ
Если не получится найти способ заставить работать сеть Хопфилда, то, может быть, получится использовать самоорганизующиеся карты Кохонена.
(10 Фев 15:40)
teanЫЧ
На сайте basegroup.ru есть аналогичная программа, но, к сожалению, без исходников. Но я как понял, в этом случае надо несколько слоев сделать.
(13 Фев 8:58)
Vahan Av
показано 5 из 6
показать еще 1
|