Andrewshkovskii
9.04.2010 17:29
Данная работа является расширением решенной вот
этой задачи.
На данном этапе я успел разработать только интерфейс, и пришел сюда за советом, а не за тем, что бы кто-то написал за меня:)
Я так понимаю, что : Преобразование изображения в пиксельную сетку и отображение матрицы пикселей точно такое-же, как и в ранней работе?
Я вообще хочу понять, как правильно спроектировать основную логику распознования. Допустим мы получили матрицу пикселей.
Далее берем каждый элемент , выполняем все шаги, в соотвествии с алгоритмом (Дельта-правило, стр.13)
Я правильно понимаю?Ещё я так понял, надо разделить область ввода изображение на 35 квадратов?
Пока я только пытаюсь разобраться с теорией алгоритма, если что не так описал, прощу прощения, и говорю спасибо за любой ответ:)
А да, забыл чуток, вот ещё пример программы аналогичной, разработаной на delphi
Andrewshkovskii
9.04.2010 23:26
Опять к работе, после проветривания мозгов.
Ну дело такое, что сетку и массив пикселей строиться так же, остается дело в том, как работать с алгоритмом, и как его реализовать.
Цитата
Я вообще хочу понять, как правильно спроектировать основную логику распознования. Допустим мы получили матрицу пикселей. Далее берем каждый элемент , выполняем все шаги, в соотвествии с алгоритмом (Дельта-правило, стр.13) Я правильно понимаю?
Правильно понимаешь. Каждую букву алфавита тебе надо прогнать через персептрон, чтобы сравнить возвращаемый им ответ с правильным (с тем, который от системы распознавания ожидается, в твоем случае - гласная/согласная буквы).
Цитата
Ещё я так понял, надо разделить область ввода изображение на 35 квадратов?
Да, для того, чтобы обработать каждую букву, ее изображение разбивается на 35 квадратов, каждому из которых устанавливается веса... (далее - происходит обучение методом настройки весов по алгоритму Хебба).
Дельфийскую программу пока не смотрел, она может только помешать, захочется сделать именно так, как там, даже если можно сделать по-другому. Если в процессе обсуждения (я надеюсь, оно будет?
) столкнемся с какими-либо непреодолимыми препятствиями - тогда загляну в код для Дельфи
Andrewshkovskii
9.04.2010 23:42
Да-да , будет, Вольво, ты меня во многих "проблемах" выручил, и я не хочу этим горидиться..но иногда мне нужен интеллектуальный толчок!:)
Сейчас я кое-что допилю в интерфейсе, что бы удобно было дальше работать, и буду разбираться с логикой, как что-то разберу, или встряну - я приду сюда, сформулирую вопрос, выскажу свои догадки и попрощу помощи:)
А да, забыл только про свой вариант, у меня не гласные/согласные, а определенные символы( альфа, лямблда и т.д) , задано 2 скорости обучения( 0.3, 0.6) и вес W3j принадлежит отрезку [0;0.1].
Andrewshkovskii
10.04.2010 12:11
Вопрос : измениться ли качество разпознования, если мы будем изображение разбивать не на 35 , а , допустим, на 30 квадратов?Т.е. меньше квадратов - меньше нейронов в персептроне. Просто не объяснено откуда взялось значение 35 в мет. указаниях..
Изменится, естественно. Чем "мельче" ты разобьешь исходное изображение, тем точнее оно будет распознаваться. С одной стороны. С другой - тем больше ресурсов тебе понадобится на это распознавание и больше времени уйдет на обучение.
Andrewshkovskii
10.04.2010 15:45
ну у нас не промыщленные масштабы, так что я думаю это не критично будет.
Я вот что хочу спросить :
W[i][j] - что это? т.е. Wi[0] это нейроны персептрона, а именно Wij? Просто смотрю на картинку, и мне становиться казаться что это вектор каждого фрагмента изображения..?(я разбиваю на 30 квадратов, точнее на квадраты по 30х30, как в прошлом задании)..
Цитата
W[i][j] - что это? т.е. Wi[0] это нейроны персептрона, а именно Wij?
А я вот смотрю в твою методичку, и не понимаю, откуда ты взял W
[i][j] вообще? W
i[t] - вижу, W
ij - не присутствует...
Andrewshkovskii
10.04.2010 22:04
Цитата(volvo @ 10.04.2010 19:03)

А я вот смотрю в твою методичку, и не понимаю, откуда ты взял W[i][j] вообще? Wi[t] - вижу, Wij - не присутствует...
Вот отсюда..
А, ну да, у тебя же обучение по дельта-правилу в задании, я почему-то решил, что обучение по Хеббу...
Там чуть выше написано: "В отличие от элементарного персептрона данная ИНС имеет 10 нейронов". Итого - 10 нейронов, каждый имеет такую структуру как на рис. 5, а следовательно - 35 весов у каждого. Отсюда и i = 1 .. 10, j = 1 .. 35
Andrewshkovskii
11.04.2010 12:31
Ну нейронов там столько, сколько эталонов должно быть.А я хотел узнать вот что :
Можно ли изображение разбивать на квадраты, как было сделано в прошлой задаче?или же необходимо изображение разбить на эти 35 квадратов, определить есть ли в квадратике пиксель(кусок изображения, 1- есть, 0 - нет изображения или его части в этом квадратике),посылаем на каждый нейрон "выход" каждого квадратика, и уже там делаем всю логику?
Просто на меня с одной стороны давит опыт прошлой работы, с другой указания в методичке, и как там это показано..Вот и не могу определиться..
Andrewshkovskii
12.04.2010 11:24
В общем я так подумал..не подойдет представление озображение и работа с этим представление в персептроне, все это можно использовать для отображения изображения, но не работы с ним через нейроны (т.к там большой вектор 0 и 1 (900 элементов) , а нам надо от каждолго изображения 30-35 нулей и едениц - решение о заполнености каждого из 30-35 квадратов.Хотя можно подумать над преобразованием этого вектора..Допустим, взять каждую строку(ведь этот вектор - преобразованая матрица 30х30) и проверять на сколько она заполнена 1 и 0, и если более чем на х%, то писать 1, если менее -0.
Или я всетаки что-то усложняю?
Там же мы как-бы уменьшали изображение, а не разбивали..
Ещё я думаю что можно сделать сделать вот так : разбить изображение на 30 квадратов(что бы не менять сейчас его размер..), потом для каждого квадрата : "ткнуть" в центр, и если там естьчерным цвет - то писать 1, если нет то 0".
Вот мои догадки..
Andrewshkovskii
12.04.2010 23:32
В принципе я кое-что понял...не обязательно делить изображение на 30 квадратов, достаточно послать тот самый вектор из матрицы 30x30.. Там ещё ошибка в формуле. В общем я разобрался, спасибо,Volvo !:)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.