Классификация блоков страницы с применением методов машинного обучения - Студенческий научный форум

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

Классификация блоков страницы с применением методов машинного обучения

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

В статье рассмотрена возможность применения машинного обучения при классификации блоков страниц, в рамках курсового проекта по дисциплине «Machine Learning», научный руководитель – д.ф.-м.н., профессор Воронова Л.И..

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

Сегментация документа — это процесс определения и выделения блоков в документе. Существует достаточно много методов для реализации сегментации[2]. При реализации сегментации в данном случае в качестве инструмента машинного обучения использовалась нейронная сеть написанная на языке программирования Python[3], а также использованы библиотеки numpy[4], sys, matplotlib.pyplot[5]. Задача состоит в том, чтобы классифицировать все блоки макета страницы документа, обнаруженные в процессе сегментации.

В качестве данных для анализа используется набор данных Page Blocks Classification Data Set[6]. Содержимое файла представлено на рисунке 1.

Рисунок 1 - Структура файла "Data"

Файл содержит 5473 примера, которые взяты из 54 различных документов. Выделяется пять классов: текст(1), горизонтальная линия(2), изображение(3), вертикальная линия(4) и график(5). Признаки: Высота блока, длина блока, площадь блока, эксцентриситет блока, процент черных пикселей внутри блока, процент черных пикселей после применения алгоритма сглаживания длины пробега, среднее число переходов между белым и черным, общее количество черных пикселей в исходном растровом изображении блока, общее количество черных пикселей в растровом изображении блока после RLSA, количество бело-черных переходов в исходном растровом изображении блока.

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

Рисунок 2 - программный код для чтения и обработки данных

В НС реализован метод прямого распространения для генерации предсказаний, метод обратного распространения ошибки[7] для изменения весов, а также используется сигмоидальная функция активации. Программный код метода обратного распространения ошибки изображение на рисунке 3.

Рисунок 3 - Программный код метода обратного распространения ошибки

Ошибка вычисляется как , где y – полученное предсказание НС, Y – ожидаемый результат, n – количество примеров.

Точность вычисляется как , где True – правильные предсказания.

В ходе выбора архитектуры разрабатываемой НС использовались следующие варианты:

Входной слой из 10 нейронов, 1 скрытый слой из 3 нейронов и выходной слой из 5 нейронов.

Входной слой из 10 нейронов, 1 скрытый слой из 7 нейронов и выходной слой из 5 нейронов.

Входной слой из 10 нейронов, 1 скрытый слой из 15 нейронов и выходной слой из 5 нейронов.

Входной слой из 10 нейронов, 2 скрытых слоя по 10 и 10 нейронов соответственно и выходной слой из 5 нейронов.

Входной слой из 10 нейронов, 2 скрытых слоя по 8 и 6 нейронов соответственно и выходной слой из 5 нейронов.

Входной слой из 10 нейронов, 2 скрытых слоя по 30 и 60 нейронов соответственно и выходной слой из 5 нейронов.

Модель нейронной сети показана на рисунке 4.

Рисунок 4 - архитектура нейронной сети[8]

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

Таблица 1 - Результаты работы нейронной сети

Архитектура 10-3-5, epoch = 250

A

0.08

0.008

0.003

% обуч

89.4

91.3

91.2

% тест

85.4

87.6

87.4

Ошибка

0.033

0.026

0.032

Архитектура 10-7-5, epoch = 250

A

0.08

0.008

0.003

% обуч

92.6

92.8

92.2

% тест

90.1

90.2

89.7

Ошибка

0.027

0.024

0.02

Архитектура 10-15-5, epoch = 150

A

0.08

0.008

0.003

% обуч

92.1

94.5

94.0

% тест

88.5

90.8

91.3

Ошибка

0.025

0.018

0.021

Архитектура 10-10-10-5, epoch = 150

A

0.08

0.008

0.003

% обуч

90.4

92.6

90.4

% тест

86.7

90.1

86.7

Ошибка

0.036

0.027

0.036

Архитектура 10-8-6-5, epoch = 150

A

0.08

0.008

0.003

% обуч

90.4

90.4

90.4

% тест

86.7

86.7

86.7

Ошибка

0.035

0.037

0.036

Архитектура 10-30-60-5, epoch = 150

A

0.003

0.0003

0.00003

% обуч

93.3

92.2

90.4

% тест

91.4

89.0

86.7

Ошибка

0.023

0.02

0.036

Для работы с датасетом Page Blocks Classification Data Set было протестировано 6 различных архитектур НС, в каждом случае тестирование проводилось с изменением коэффициента обучения. В результате сделаны следующие выводы:

Наилучший результат показала НС с архитектурой 10-15-5 и A = 0.008/0.003. В первом случае точность на обучающей выборке составила 94.5, а на тестовой выборке 90.8. Во втором случае точность на обучающей выборке составила 94.0, а на тестовой выборке 91.3.

Графики функций стоимости НС показавших лучший результат представлены на рисунке 5.

Рисунок 5 - Графики функций стоимости для архитектуры 10-15-5

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

При работе с датасетом Page Blocks Classification Data Set изменение коэффициента обучения не критично влияет на получившийся результат.

Большинство экспериментов имеют точность на обучающем и тестовом наборах более 90%. Это связанно с тем, что датасет «» содержит 89.8% примеров класса 1, а значит НС лучше всего справляется именно с этим классом.

Добавление дополнительного скрытого слоя в исходную НС не позволило добиться улучшения результатов.

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

Выводы

В статье проанализирована проблема классификации блоков страниц документа методами машинного обучения; обозначены основные понятия. Описан программный код для чтения и обработки набора данных и построены графики функций стоимости. Спроектирована и реализована нейронная сеть с различными архитектурами и параметрами для сравнения, сделан вывод о наилучшем варианте использования архитектуры и параметров нейронной сети для решения задачи классификации блоков страниц документа.

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

F. Shafait, D. Keysers, and Th. Breul. Performance Comparison of Six Algorithms for Page Segmentation.

А.О. Саута, В.И. Поляков. Сегментация изображения для распознавания печатных документов.

Python// Python URL: https://www.python.org/

NumPy// NumPy URL: https://numpy.org/

MatPlotLib// MatPlotLib URL: https://matplotlib.org/

Page Blocks classification data set [Электронный ресурс]. – Режим доступа:https://archive.ics.uci.edu/ml/datasets/Page+Blocks+Classification (дата обращения: 10.01.2019)

Воронова Л.И., Воронов В.И. MachineLearning: регрессионные методы интеллектуального анализа данных: Учебное пособие / МТУСИ. – М., 2018, -83 с.

З.С. Шалтынова, Н.В. Тутова. Классификация спама с применением методов машинного обучения.

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