РАСПОЗНАВАНИЕ РУКОПИСНЫХ БУКВ С ПОМОЩЬЮ НЕЙРОННЫХ СЕТЕЙ - Студенческий научный форум

XIII Международная студенческая научная конференция Студенческий научный форум - 2021

РАСПОЗНАВАНИЕ РУКОПИСНЫХ БУКВ С ПОМОЩЬЮ НЕЙРОННЫХ СЕТЕЙ

 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
     

Введение

В современном мире машинное обучение стало обычным инструментом для решения почти всех задач, в которых требуется извлекать информацию из больших наборов данных [1].

Ежедневно создаются тысячи документов, требующих анализа и обработки. При обработке документов возникает задача распознавания рукописного текста. Для решения данной задачи потребуется применить нейронные сети. Нейронная сеть - алгоритм, который был вдохновлен связями нейронов в человеческом мозгу [2].

Существует большое количество различных архитектур нейронных сетей. В работе будет использована архитектура перцептрон (perceptrons, P). Такие сети передают информацию от входа к выходу. Считается, что у нейронных сетей есть слои, каждый из которых состоит из входных, скрытых или выходных нейронов. Нейроны одного слоя между собой не связаны, при этом каждый нейрон этого слоя связан с каждым нейроном соседнего слоя [3].

Подготовка набора данных

Набор данных представлен в виде коллекции изображений строчных букв формата png [4]. Обучающий набор данных содержит 3600 примеров, из которых 2600 примеров заимствованы из шрифтов Microsoft Office, а остальные 1000 примеров являются рукописными записями нескольких людей.

Моделирование

В большинстве нейронных сетей входные данные называют входным слоем. Входной слой выполняет задачу распределения входных сигналов между нейронами. Группа нейронов, на которые поступает сигнал от входного слоя, называется – скрытым слоем. Группу нейронов, с которых считываются данные (ответы сети), называют выходным слоем [5].

Имеется 900 входных значений пикселей, которые преобразуются в скрытые нейроны. Затем эти скрытые нейроны преобразуются в выходные значения, определяющие букву.

Каждый из 900 пикселей изображения является характеристикой, описывающей конкретную букву. По данным характеристикам НС создает некую границу возле каждой группы букв. Таким образом, при попадании в пределы этой границы (т.е. при совпадении характеристик), можно будет сделать предсказание. Однако необходимо изменить веса уравнения плоскости так, чтобы переориентировать плоскость и минимизировать расстояние между буквами. Функция расстояния минимизируется с помощью алгоритма градиентного спуска. Алгоритм градиентного спуска возвращает вектор весов граничной плоскости с минимальным расстоянием. Веса ориентируют плоскость таким образом, что она становится моделью предсказаний для буквы.

Описанный процесс сопоставления математических функций с данными – процесс обучения НС.

Программная реализация написана на языке Octave.

Анализ результатов

Нейронная сеть выполняет последовательность из двух линейных преобразований посредством двух умножений матриц. Сеть берет вектор пикселей и умножает его на матрицу весов. Это приводит к новой матрице, которую будем считать скрытым слоем. Скрытый слой умножается на другую матрицу весов, в результате чего получается вектор, который описывает предсказанную букву.

На вход подается буква, которую необходимо распознать (рис. 1).

Рисунок 1 – Буква, которую необходимо распознать

Далее происходит обработка изображения: изменение размеров изображения до квадрата размером 30 на 30 пикселей и выполнение бинарной пороговой обработки, в результате которой получаем следующее изображение:

Рисунок 2 – Преобразованное изображение

Преобразованное изображение затем подается на вход НС, которая в результате предсказывает букву «s» с точностью 78% (рис. 3):

Рисунок 3 – Предсказанное значение

Таким образом, в работе успешно разработана НС, которая распознает рукописные буквы.

Заключение

В статье описан процесс создания нейронной сети для распознавания рукописных букв. Результатом данной работы является корректное распознавание букв.

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

Список источников и литературы

Шалев-Шварц Ш., Бен-Давид Ш. Идеи машинного обучения: от теории к алгоритмам [Книга] / перев. СлинкинаА. А.. - Москва : ДМКПресс, 2019. - стр. 436.

Perrotta P. Programming Machine Learning: From Coding to Deep Learning [Book] / [б.м.] : The Pragmatic Bookshelf, 2020. - 1 : p. 340.

Rosenblatt F.  The perceptron: a probabilistic model for information storage and organization in the brain [Journal]  // Psychological review. - 1958. - 6 : Vol. 65. - pp. 386-408.

A topic-centric list of HQ open datasets [Электронныйресурс] // GitHub. - 2014 г.. - Декабрь 2020 г.. - https://github.com/awesomedata/awesome-public-datasets#machinelearning.

Кан К. Нейронные сети. Эволюция [Книга] / - 2019.

     
Просмотров работы: 8