Назад в библиотеку

Онтотекстология интернета

Авторы: К.С. Лащенко, О.А. Гудаев
Источник:Информатика, управляющие системы, математической и компьютерное моделирование (ИУСМКМ - 2016) / Сборник материалов VII Международной научно-технической конференции в рамках II Международного Научного форума Донецкой Народной Республики. — г. Донецк, ДонНТУ — 2016, с. 388-393.

Аннотация

К.С. Лащенко, О.А. Гудаев - Применение искусственной нейронной сети для дешифрации лексикографических кодов расширенной реальности. Рассмотрен способ кодирования маркеров расширенной реальности для распознавания системой расширенной реальности и отображения объектов. Определен метод дешифрации закодированных маркеров. Рассмотрена возможность применения нейронной сети с целочисленными коэффициентами в качестве декодера. Определена эффективность дешифрации нейронной сети в сравнении со стандартным алгоритмом сравнения.

Постановка проблемы

Требования к современным ЭВМ с каждым днем возрастают и трудно представить какую-либо сферу деятельности человека, в которой не использовались различные цифровые устройства, будь то суперкомпьютер, ноутбук или смартфон. Повсеместно, в той или иной степени, электроника помогает человеку выполнять различные задачи, и в соответствии с поставленными требованиями, возможности техники, порой, превосходят даже все самые оптимистичные ожидания. Примером тому служит изобретение технологии расширенной реальности. Данная технология позволяет существенно расширить рабочее пространство человека. В реальности, стол не может превратиться в стул, увеличить свои размеры или парить в воздухе. В компьютерной реальности, возможно все. Кроме того, объект расширенной реальности, являющимся, к примеру, золотой рыбкой, может в ту же секунду стать автомобилем. Такая технология предоставляет большие возможности во множестве областей деятельности человека, но и она не лишена недостатков. Любая новая технология имеет как преимущества, так и недостатки. В то же время, любая технология имеет огромный ресурс к совершенствованию. Система расширенной реальности основана на распознавании определенных образов, получаемых из видеокамеры, так называемых маркеров. Каждый маркер, соответствует своему закодированному номеру. Если система обнаруживает на изображении в реальном времени маркер, который имеется в базе, то она выводит изображении полученной с камеры, но с изображением объекта, который был задан в соответствие полученному маркеру. Для данной системы, база маркеров заранее определена. Ниже приведена последовательность действий системы при ее работе:

Маркер системы расширенной реальности, представляет собой бинарную матрицу в машинном представлении, визуально – это, матрица черно-белых точек определенного размера. После обнаружения маркера, система переводит его в бинарную последовательность, где, черная точка это 1, а белая – 0. Получив последовательность, начинается поиск такой же последовательности в базе и если найденный маркер в базе есть, то происходит получение его номера. Так как система отображает 3D-объекты в реальном времени, что означает свободное передвижение камеры вокруг области с маркерами и наблюдение за всеми сторонами объекта, то для отображения одного объекта используется минимум два маркера, чтобы по их взаимному расположению определить, какую сторону объекта следует отобразить на экране. Поиск по базе происходит сравнением каждого бита входного маркера с каждым битом каждого маркера, имеющего в базе. Поэтому скорость поиска маркера далека от идеала, из-за чего система довольно требовательна к ЭВМ. Для ускорения процесса поиска, было принято решение применить искусственную нейронную сеть с целочисленными коэффициентами, что может ускорить работу системы.

Исследования

Для проведения исследований, необходимо определить входные параметры для нейронной сети, ее архитектуру, метод обучения. Провести испытания и сравнить ее эффективность с имеющимся методом.

Входными данными для ИНС является бинарная последовательность, сформированная из маркера. Маркер представлен бинарной матрицей размером 6х6. При таком размере, бинарная последовательность состоит из 36 бит. Такой размер предоставляет большое пространство для формирования базы маркеров. Пример выбранного маркера представлен на рисунке 1.

pic1

Рисунок 1 – пример маркера размерностью 6х6

В процессе исследования, было сформировано 436 маркеров для обучающей выборки нейронной сети. Задача ИНС – получать на вход бинарную последовательность из 36 символов, выводить порядковый номер маркера, которому соответствует полученная последовательность. Для такой задачи, подходит двухслойная сеть с последовательными связями прямого распространения. Схематическая архитектура такой сети изображена на рисунке 2.

pic2

Рисунок 2 – схематическая архитектура проектируемой ИНС

ИНС должна генерировать на выходе значение от 0 до 436. Для этого, в качестве активационной функции выходного слоя, подходит линейная передаточная функция, с областью определения (-∞;∞),f(s)=s.

Функция активации нейронов скрытого слоя должна помогать настраивать коэффициенты нейронов и оперировать только целыми числами. Для этого, из существующих передаточных функций, подходит полулинейная, с областью определения (0;∞):

function1

Слой β используется для распределения сигналов входного слоя между нейронами скрытого слоя и в вычислениях не участвует. Для оценки числа нейронов в скрытом слое однородных нейронных сетей используется формула оценки необходимого числа синаптических весов – Lw.

function2

где m – размерность входного сигнала, m2 – размерность выходного сигнала, n – число элементов обучающей выборки (количество входных слов). Подставив в неравенство следующие параметры m=36, m2=1, n=436, получим:

function3

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

Для проведения исследований, был использован скрипт, код которого приведен ниже:

s=load('C:\InputData.mat'); p=s.ans(2:36+1,:); t=s.ans(1,:);

PR=zeros(36,2); PR(:,2)=1;

net=newff(PR,[45 1],{'poslin','purelin'},'traincgb');% Создание ИНС

net.trainParam.searchFcn='srchcha';% Функция одномерной оптимизации

net.trainParam.epochs=25000; % Число циклов обучения

net.trainParam.show=10; % Показывать промежуточные циклы

net.trainParam.goal=0.0057; % Ошибка обучения

[net,tr]=train(net,p,t);

Данный скрипт, создает и проводит обучение ИНС по заданным параметрам. Исследования алгоритмов обучения показало, что наиболее подходит метод Powell-Beale, разновидность алгоритма сопряженных градиентов. Функция обучения НС методом Powell-Beale в MatLab называется traincgb. Вспомогательной для функции обучения ИНС использовалась функция одномерного поиска srchcha, реализующая разновидность метода оптимизации с применением кубической интерполяции.

Применяя разработанный скрипт, были проведены циклы обучения нейросети с различным количеством нейронов скрытого слоя. Так как наибольшее значение имеет количество выполняемых операций, то необходимо использовать минимально возможное количество нейронов в скрытом слое, но при этом ИНС должна выдавать правильный ответ. Чтобы получить лучшие результаты, необходимо найти сбалансированное количество нейронов скрытого слоя, при котором количество нейронов будет минимальным и ответ нейросети всегда будет правильным. Результаты обучения нейросети при различном количестве нейронов скрытого слоя приведены в таблице 1.

Таблица 1 – Результаты обучения ИНС

Количество нейронов Ошибка обучения(MSE) Максимальное разночтение (maxD) Количество ошибок дешифрации ИНС эталонов тезауруса (436 маркеров), после умножение на 1000 коэффициентов нейронов
43 0.0648049 1.5785 23
44 0.00569288 0.3832 Нет ошибок
45 0.00569025 0.3512 Нет ошибок
46 0.0130625 0.4402 Нет ошибок
47 0.0220102 1.1217 3

Исходя из полученных данных, лучше всего применить 44 нейрона в скрытом слое. При таком количестве, ИНС выдает правильный ответ. Кроме того, результаты полученные при обучении сети с 43 нейронами в скрытом слое показали, что дальнейшее понижение количества нейронов приводит появлению ошибок дешифрации. График динамики обучения нейросети представлен на рисунке 3.

pic3

Рисунок 3 – Динамика обучения ИНС

Выводы

Получив данные обучения, можно посчитать количество операций, выполняемых сетью для распознавания одного маркера. Каждый нейрон скрытого слоя выполняет 36 операций умножения (умножение каждого весового коэффициента на каждый входной сигнал), 35 операций сложения (суммирование всех входных сигналов после их умножения на весовые коэффициенты) и одна операция сравнения с нулем. Оптимальное количество нейронов скрытого слоя было выбрано 44. Общее количество операций, выполняемых скрытым слоем:

Таким образом, выходной слой, в котором находится один нейрон, выполняет 44 операции умножения и 43 операции сложения. В итоге, для распознавания маркера, нейросеть всегда будет выполнять 44 операции сравнения с нулем, 1628 операций умножения и 1583 операции сложения. В то время как стандартный алгоритм сравнения всегда ведет себя неоднозначно и очень зависит от того каким образом сформирована база маркеров и какой марке был получен на входе за одну единицу времени. Теоретически, если был получен зашифрованный маркер, который последний по порядку в базе, то будет выполнено 36*436=15696 операций сравнения, что практически в 5 раз больше чем выполнила бы нейронная сеть. На практике же, для тестирования стандартного алгоритма, были сформированы такие же бинарные последовательности, как и в случае с нейросетью но с помощью генератора случайных чисел. В большинстве случаев, количество операций сравнения незначительно отличалось от номера искомого маркера, что может свидетельствовать о том, что при правильно сформированных данных, алгоритм сравнения показывает себя намного эффективнее. В свою же очередь нейронная сеть не накладывает таких ограничений и количество выполняемых ею операций всегда будет одинаково. Кроме того, максимальное различие маркеров между собой, при использовании ИНС, может составлять всего 3 значения, что позволит использовать базы больших объемов.

Список использованной литературы

1. Хайкин Саймон. Нейронные сети: полный курс. Второе издание / Саймон Хайкин.– Университет McMaster.– Москва. 2006. – 1015 с.
2. Новиков Ф.А. Дискретная математика для программистов/СПб. : Питер, 2000. – 304 с.
3. Фу К. Робототехника/ К. Фу, Р. Гонсалес, К. Ли; [пер. с англ.]. – М. : Мир, 1989. – С. 624.
4. Дьяконов В. Математические пакеты расширения MATLAB / В. Круглов // Специальный справочник. - СПб. : Питер, 2001. – С. 480.
5. Fiala, M. ARTag Revision 1, A Fiducial Marker System Using Digital Techniques.