![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Andrewshkovskii |
![]()
Сообщение
#1
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
Данная работа является расширением решенной вот этой задачи.
На данном этапе я успел разработать только интерфейс, и пришел сюда за советом, а не за тем, что бы кто-то написал за меня:) Я так понимаю, что : Преобразование изображения в пиксельную сетку и отображение матрицы пикселей точно такое-же, как и в ранней работе? Я вообще хочу понять, как правильно спроектировать основную логику распознования. Допустим мы получили матрицу пикселей. Далее берем каждый элемент , выполняем все шаги, в соотвествии с алгоритмом (Дельта-правило, стр.13) Я правильно понимаю?Ещё я так понял, надо разделить область ввода изображение на 35 квадратов? Пока я только пытаюсь разобраться с теорией алгоритма, если что не так описал, прощу прощения, и говорю спасибо за любой ответ:) А да, забыл чуток, вот ещё пример программы аналогичной, разработаной на delphi ![]() Сообщение отредактировано: Andrewshkovskii - 9.04.2010 17:34 Прикрепленные файлы ![]() ![]() |
![]() ![]() |
Andrewshkovskii |
![]()
Сообщение
#2
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
Опять к работе, после проветривания мозгов.
Ну дело такое, что сетку и массив пикселей строиться так же, остается дело в том, как работать с алгоритмом, и как его реализовать. |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата Я вообще хочу понять, как правильно спроектировать основную логику распознования. Допустим мы получили матрицу пикселей. Далее берем каждый элемент , выполняем все шаги, в соотвествии с алгоритмом (Дельта-правило, стр.13) Я правильно понимаю? Правильно понимаешь. Каждую букву алфавита тебе надо прогнать через персептрон, чтобы сравнить возвращаемый им ответ с правильным (с тем, который от системы распознавания ожидается, в твоем случае - гласная/согласная буквы).Цитата Ещё я так понял, надо разделить область ввода изображение на 35 квадратов? Да, для того, чтобы обработать каждую букву, ее изображение разбивается на 35 квадратов, каждому из которых устанавливается веса... (далее - происходит обучение методом настройки весов по алгоритму Хебба). Дельфийскую программу пока не смотрел, она может только помешать, захочется сделать именно так, как там, даже если можно сделать по-другому. Если в процессе обсуждения (я надеюсь, оно будет? ![]() |
Andrewshkovskii |
![]()
Сообщение
#4
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
Да-да , будет, Вольво, ты меня во многих "проблемах" выручил, и я не хочу этим горидиться..но иногда мне нужен интеллектуальный толчок!:)
Сейчас я кое-что допилю в интерфейсе, что бы удобно было дальше работать, и буду разбираться с логикой, как что-то разберу, или встряну - я приду сюда, сформулирую вопрос, выскажу свои догадки и попрощу помощи:) А да, забыл только про свой вариант, у меня не гласные/согласные, а определенные символы( альфа, лямблда и т.д) , задано 2 скорости обучения( 0.3, 0.6) и вес W3j принадлежит отрезку [0;0.1]. Сообщение отредактировано: Andrewshkovskii - 9.04.2010 23:46 |
Andrewshkovskii |
![]()
Сообщение
#5
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
Вопрос : измениться ли качество разпознования, если мы будем изображение разбивать не на 35 , а , допустим, на 30 квадратов?Т.е. меньше квадратов - меньше нейронов в персептроне. Просто не объяснено откуда взялось значение 35 в мет. указаниях..
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Изменится, естественно. Чем "мельче" ты разобьешь исходное изображение, тем точнее оно будет распознаваться. С одной стороны. С другой - тем больше ресурсов тебе понадобится на это распознавание и больше времени уйдет на обучение.
|
Andrewshkovskii |
![]()
Сообщение
#7
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
ну у нас не промыщленные масштабы, так что я думаю это не критично будет.
Я вот что хочу спросить : W[i][j] - что это? т.е. Wi[0] это нейроны персептрона, а именно Wij? Просто смотрю на картинку, и мне становиться казаться что это вектор каждого фрагмента изображения..?(я разбиваю на 30 квадратов, точнее на квадраты по 30х30, как в прошлом задании).. |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата W[i][j] - что это? т.е. Wi[0] это нейроны персептрона, а именно Wij? А я вот смотрю в твою методичку, и не понимаю, откуда ты взял W[i][j] вообще? Wi[t] - вижу, Wij - не присутствует... |
Andrewshkovskii |
![]()
Сообщение
#9
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
|
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
А, ну да, у тебя же обучение по дельта-правилу в задании, я почему-то решил, что обучение по Хеббу...
Там чуть выше написано: "В отличие от элементарного персептрона данная ИНС имеет 10 нейронов". Итого - 10 нейронов, каждый имеет такую структуру как на рис. 5, а следовательно - 35 весов у каждого. Отсюда и i = 1 .. 10, j = 1 .. 35 |
Andrewshkovskii |
![]()
Сообщение
#11
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
Ну нейронов там столько, сколько эталонов должно быть.А я хотел узнать вот что :
Можно ли изображение разбивать на квадраты, как было сделано в прошлой задаче?или же необходимо изображение разбить на эти 35 квадратов, определить есть ли в квадратике пиксель(кусок изображения, 1- есть, 0 - нет изображения или его части в этом квадратике),посылаем на каждый нейрон "выход" каждого квадратика, и уже там делаем всю логику? Просто на меня с одной стороны давит опыт прошлой работы, с другой указания в методичке, и как там это показано..Вот и не могу определиться.. |
Andrewshkovskii |
![]()
Сообщение
#12
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
В общем я так подумал..не подойдет представление озображение и работа с этим представление в персептроне, все это можно использовать для отображения изображения, но не работы с ним через нейроны (т.к там большой вектор 0 и 1 (900 элементов) , а нам надо от каждолго изображения 30-35 нулей и едениц - решение о заполнености каждого из 30-35 квадратов.Хотя можно подумать над преобразованием этого вектора..Допустим, взять каждую строку(ведь этот вектор - преобразованая матрица 30х30) и проверять на сколько она заполнена 1 и 0, и если более чем на х%, то писать 1, если менее -0.
Или я всетаки что-то усложняю? Там же мы как-бы уменьшали изображение, а не разбивали.. Ещё я думаю что можно сделать сделать вот так : разбить изображение на 30 квадратов(что бы не менять сейчас его размер..), потом для каждого квадрата : "ткнуть" в центр, и если там естьчерным цвет - то писать 1, если нет то 0". Вот мои догадки.. |
Andrewshkovskii |
![]()
Сообщение
#13
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: ![]() ![]() ![]() |
В принципе я кое-что понял...не обязательно делить изображение на 30 квадратов, достаточно послать тот самый вектор из матрицы 30x30.. Там ещё ошибка в формуле. В общем я разобрался, спасибо,Volvo !:)
|
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 20:46 |