Сделай Сам Свою Работу на 5

Классификация графических объектов по их ориентации на плоскости.

 

Основная задача этой части работы - научить нейросеть различать объекты, имеющие вертикальную ориентацию от горизонтально ориентированных и равномерно распределенных на плоскости объектов.

1. Для этого cоздайте в матрицах рецепторов (полях 8х8) новую обучающую выборку:

Цифрой 1 обозначьте - горизонтальные линии разных размеров (длины и ширины) в разных частях матрицы рецепторов (их нужно создать несколько штук, и каждую пометить цифрой 1);

Цифрой 2 обозначьте - вертикальные линии разных размеров в разных частях матрицы рецепторов;

Цифрой 3 обозначьте - фигуры, не имеющие четкой ориентации по вертикали и горизонтали (квадрат, круг, симметричные по вертикали и горизонтали многоугольники,...) разных размеров в разных частях матрицы рецепторов.

Такая обучающая выборка позволит нейросети определять ориентацию на плоскости графических объектов: код “1” будут иметь горизонтально ориентированные объекты, код “2” – вертикально ориентированные объекты, код “3” – равномерно распределённые по плоскости.

2. Обучите нейросеть распознавать эти фигуры.

3. Предъявите для распознавания их ориентации новые фигуры, не задававшиеся в обучающей выборке и оцените качество распознавания.

4. Проверьте, как действуют на результаты распознавания “помехи” (разрывы линий, утолщения, наросты, сдвиги,...).

5. Проверьте, как будет реагировать программа на наклонные фигуры и при каком наклоне возникнет отказ в распознавании (появляется ошибка).

6. Поинтересуйтесь, к какому классу объектов нейросеть отнесет буквы А, М, срезанную по диагонали часть квадрата, знаки >, <, +, =.

 

Пример:

Приступим к созданию обучающей выборки. В матрицах рецепторов 8х8 создадим по три примера вертикальных, горизонтальных линий и равномерно распределенных фигур расположенных в разных частях экрана, имеющих разную длину и ширину. (Таблица №1).

горизонтальные линии
........ .XXXXXX. ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ..XXXX.. ........ ........ ........ ........ .XXXXXX. .XXXXXX. ........ ........ ........
вертикальные линии
........ ......X. ......X. ......X. ......X. ......X. ........ ........ ........ .X...... .X...... .X...... .X...... .X...... ........ ........ ........ ...XX... ...XX... ...XX... ...XX... ...XX... ...XX... ........
равномерно распределенные фигуры
........ .XXXXXX. .X....X. .X....X. .X....X. .X....X. .XXXXXX. ........ ........ ........ ..XXXX.. ..X..X.. ..X..X.. ..XXXX.. ........ ........ ........ ..XXXX.. .X....X. X......X X......X .X....X. ..XXXX.. ........

Таблица 1 Обучающая выборка



Цифрой 1 пометим горизонтальные линии, цифрой 2 – вертикальные, цифрой 3 – равномерно распределенные фигуры. Данная обучающая выборка позволит нейросети определять ориентацию на плоскости графических объектов. Результаты будут представлены на индикаторе распознавания (output) метками с различной степенью насыщенности.

код “1” будут означать, что объект горизонтально ориентирован.

код “2” будут означать, что объект вертикально ориентирован.

код “3” будут означать, что объект равномерно распределён по плоскости.

 

Распознавание текстовой информации.

В матрицу 8х8 обучающей выборки (матрицу рецепторов) можно заносить не только графические объекты, но и различные коды. Например, используя таблицу ASCII, можно научить перцептрон отличать кошку от собаки и от зайца. Кодирование символов можно производить либо вручную – по таблице ASCII (впрочем, для этой цели подойдёт любой код)

(основная часть альтернативной таблицы ASCII (American Standard Code for Information Interchange) представлена в Таблице № 1)

 

 

Таблица 2 Альтернативная кодировочная таблица кода ASCII

  A B C D E F  
                               
                               
пробел ! # $ % & ( ) * + , - . /
: ; < = > ?
@ A B C D E F G H I J K L M N O
Р Q R S T U V W X Y Z [ \ ] ^ _
a b c d e f g h i j k l m n o
p q r s t u v w x y z { | }    
А Б В Г Д Е Ж З И Й К Л М Н О П
Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
A а б в г д е ж з и й к л м н о п A
B р с т у ф х ц ч ш щ ъ ы ь э ю я B
C                                 C
D                                 D
E р с т у ф х ц ч ш щ ъ ы ь э ю я E
F Е е                           F
  A B C D E F  

 

 

Запишите слово кошка в кодах ASCII - каждая буква в этом коде занимает один байт. Условимся каждой букве отводить одну строку (8 рецепторов), единицы кода заносить в матрицу, зажигая соответствующий рецептор. Тогда, буква “а” (ее код ASCII - шестнадцатиричное число “A0”) займет целую строку и будет находиться в пятой строке матрицы рецепторов. 10100000, пятая строка матрицы примет вид:

10100000.

В первой и четвёртой строках нужно поместить код ASCII буквы “к”, во второй – буквы “о”, в третьей – буквы “ш”

Набрав слово “кошка”, научим нейросеть воспринимать его, как символ номер 1. Затем сообщим нейросети, что это слово, набранное в других строках, обозначает то же самое. Затем скажем нейросети, что “котик” и “кот” - это тоже кошки (т.е. тоже соответствуют символу с номером 1).

Аналогично научим нейросеть понятиям “собака” (собачка, песик,...) - понятие номер 2, и “заяц” (зайчик, заинька,...) - понятие номер 3. В результате этой работы будет сформирована обучающая выборка.

После обучения поинтересуйтесь у нейросети, как она считает, кто из названных зверей больше подходит к понятию “кусачка”? На кого больше похож “медведь”?

Результат оформите в виде отчёта, проиллюстрированного соответствующими экранами.

Пример:

Сохраним файл Digits.def под другим именем: rep_6.def. Затем откроем созданный файл и удалим все содержимое после слова facts.

Приступим к созданию обучающей выборки. В матрицах рецепторов 8х8 создадим примеры.

Нейросеть может различать не только графическую информацию, но и различные коды. Текстовая информация может быть представлена в виде двоичной записи шестнадцатеричных кодов ASCII, соответствующих символов. Закодировав таким образом ряд слов, можно находить соответствие между ними и другими словами. Например, можно отличить «кошку» от «собаки» и «зайца», а затем определить на кого из них похожи «медведь» и «кусачка».

Так как для выполнения работ нам не нужна вся таблица 1, а нужны только строки с прописными русскими символами, сделаем для себя вспомогательную Табличку № 2.

  A B C D E F  
A а б в г д е ж з и й к л м н о п A
B р с т у ф х ц ч ш щ ъ ы ь э ю я B

 

Научим нейросеть различать «кошку», «собаку» и «зайца». Для этого подготовим соответствующую обучающую выборку.

Для начала закодируем слово «кошка» в ASCII, а затем переведем полученные коды в двоичные и запишем в виде матрицы 8х8 (Таблица № 3). В эту же таблицу занесем формы слов «киска» и «кот». В обучающей выборке слова, принадлежащие к классу кошек, будут иметь код 1.

 

кошка киска кот
10101010 10101110 10111000 10101010 10100000 ........ ........ ........ AA AE B8 AA A0 10101010 10101000 10110001 10101010 10100000 ........ ........ ........ AA A8 B1 AA A0 10101010 10101110 10110010 ........ ........ ........ ........ ........ AA AE B2
           

Таблица 4

Проделаем то же для класса собак и зайцев.

Закодируем формы слов «собака», «собачка», «песик» (Таблица № 4).

В обучающей выборке слова, принадлежащие к классу собак, будут иметь код 2.

 

собака собачка песик
10110001 10101110 10100001 10100000 10101010 10100000 ........ ........ B1 AE A1 A0 AA A0 10110001 10101110 10100001 10100000 10110111 10101010 10100000 ........ B1 AE A1 A0 B7 AA A0 10101111 10100101 10110001 10101000 10101010 ........ ........ ........ AF A5 B1 A8 AA
           

Таблица 5

 

Закодируем формы слов «заяц», «зайчик», «заинька» (Таблица № 5).

В обучающей выборке слова, принадлежащие к классу зайцев, будут иметь код 3.

 

 

заяц зайчик заинька
10100111 10100000 10111111 10110110 ........ ........ ........ ........ A7 A0 BF B6 10100111 10100000 10101001 10110111 10101000 10101010 ........ ........ A7 A0 A9 B7 A8 AA 10100111 10100000 10101000 10101101 10111100 10101010 10100000 ........ A7 A0 A8 AD BC AA A0
           

Таблица 6

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

Сохраним полученную выборку и обучим программу данной выборке.

Теперь проверим, к какому классу программа отнесет слова «кусачка» и «медведь»? Для этого закодируем формы соответствующих слов (Таблица № 7).

 

кусачка медведь
10101010 10110011 10110001 10100000 10110111 10101010 10100000 ........ AA B3 B1 A0 B7 AA A0 10101100 10100101 10100100 10100010 10100101 10100100 10111100 ........ AC A5 A4 A2 A5 A4 BC  
       

Таблица 7

 

 



©2015- 2019 stydopedia.ru Все материалы защищены законодательством РФ.