- •Постановка задачи
- •Представление задачи
- •Руководство пользователя
- •Список литературы
- •Приложение. Обучение нейросети распознаванию различных видов объектов. Классификация графических объектов по их ориентации на плоскости.
- •Распознавание текстовой информации.
- •Проверка возможности распознавания эмоций.
Распознавание текстовой информации.
В матрицу 8х8 обучающей выборки (матрицу рецепторов) можно заносить не только графические объекты, но и различные коды. Например, используя таблицу ASCII, можно научить перцептрон отличать кошку от собаки и от зайца. Кодирование символов можно производить либо вручную – по таблице ASCII (впрочем, для этой цели подойдёт любой код)
(основная часть альтернативной таблицы ASCII (American Standard Code for Information Interchange) представлена в Таблице № 1)
Таблица 2 Альтернативная кодировочная таблица кода ASCII
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
пробел |
! |
“ |
# |
$ |
% |
& |
’ |
( |
) |
* |
+ |
, |
- |
. |
/ |
2 |
3 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
: |
; |
< |
= |
> |
? |
3 |
4 |
@ |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
4 |
5 |
Р |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
[ |
\ |
] |
^ |
_ |
5 |
6 |
‘ |
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
6 |
7 |
p |
q |
r |
s |
t |
u |
v |
w |
x |
y |
z |
{ |
| |
} |
|
|
7 |
8 |
А |
Б |
В |
Г |
Д |
Е |
Ж |
З |
И |
Й |
К |
Л |
М |
Н |
О |
П |
8 |
9 |
Р |
С |
Т |
У |
Ф |
Х |
Ц |
Ч |
Ш |
Щ |
Ъ |
Ы |
Ь |
Э |
Ю |
Я |
9 |
A |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
A |
B |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
B |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C |
D |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D |
E |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
E |
F |
Е |
е |
|
|
|
|
|
|
|
|
|
|
№ |
|
|
|
F |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
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.
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
|
A |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
A |
B |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
B |
Научим нейросеть различать «кошку», «собаку» и «зайца». Для этого подготовим соответствующую обучающую выборку.
Для начала закодируем слово «кошка» в ASCII, а затем переведем полученные коды в двоичные и запишем в виде матрицы 8х8 (Таблица № 3). В эту же таблицу занесем формы слов «киска» и «кот». В обучающей выборке слова, принадлежащие к классу кошек, будут иметь код 1.
кошка |
киска |
кот |
|||
10101010 10101110 10111000 10101010 10100000 ........ ........ ........ 1 |
AA AE B8 AA A0 |
10101010 10101000 10110001 10101010 10100000 ........ ........ ........ 1 |
AA A8 B1 AA A0 |
10101010 10101110 10110010 ........ ........ ........ ........ ........ 1 |
AA AE B2 |
Таблица 3
Проделаем то же для класса собак и зайцев.
Закодируем формы слов «собака», «собачка», «песик» (Таблица № 4).
В обучающей выборке слова, принадлежащие к классу собак, будут иметь код 2.
собака |
собачка |
песик |
|||
10110001 10101110 10100001 10100000 10101010 10100000 ........ ........ 2 |
B1 AE A1 A0 AA A0 |
10110001 10101110 10100001 10100000 10110111 10101010 10100000 ........ 2 |
B1 AE A1 A0 B7 AA A0 |
10101111 10100101 10110001 10101000 10101010 ........ ........ ........ 2 |
AF A5 B1 A8 AA |
Таблица 4
Закодируем формы слов «заяц», «зайчик», «заинька» (Таблица № 5).
В обучающей выборке слова, принадлежащие к классу зайцев, будут иметь код 3.
заяц |
зайчик |
заинька |
|||
10100111 10100000 10111111 10110110 ........ ........ ........ ........ 3 |
A7 A0 BF B6 |
10100111 10100000 10101001 10110111 10101000 10101010 ........ ........ 3 |
A7 A0 A9 B7 A8 AA |
10100111 10100000 10101000 10101101 10111100 10101010 10100000 ........ 3 |
A7 A0 A8 AD BC AA A0 |
Таблица 5
Занесем в обучающую выборку полученные результаты, причем покажем нейросети, что, например, форма слова «кошка» может располагаться как посередине, так и внизу матрицы, то есть как бы мы его не перемещали вверх и вниз оно не меняет своего значения.
Сохраним полученную выборку и обучим программу данной выборке.
Теперь проверим, к какому классу программа отнесет слова «кусачка» и «медведь»? Для этого закодируем формы соответствующих слов (Таблица № 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
|
Таблица 6
