Применение многослойной нейронной сети в задачах обновления интерфейса пользователя

Применение многослойной нейронной сети в задачах обновления интерфейса пользователя

Чернильцев Андрей Германович

кандидат технических наук

доцент, кафедра анализа систем и принятия решений, институт «Высшая школа экономики и менеджмента», ФГАОУ ВО «Уральский Федеральный Университет имени первого Президента России

Б.Н. Ельцина»

620002, Россия, Свердловская область, г. Екатеринбург, ул. M/ipa, 19, каб. И-301а

И cherniltsev@mail.ru

Статья из рубрики "Методы, языки и модели человеко-машинного взаимодействия"

Аннотация.

Предметом исследования является процесс формирования параметров изменяемого пользовательского интерфейса. Авторы рассматривают возможность применения методов нейронных сетей для обработки характеристик и классификации категорий пользовательских интерфейсов. Для решения исследуемой задачи моделируется структура искусственной нейронной сети на основе многослойного персептрона, приводится подготовка обучающего набора данных и использование данного набора для обучения моделируемой нейронной сети. На основе полученных параметров нейронной сети построена и проанализирована математическая модель для решения рассматриваемой задачи, проведено исследование результирующих данных при различных наборах входных данных, которые не использовались при обучении сети. Для формирования обучающего набора данных, моделирования и обучения нейронной сети применяется система MATLAB компании MathWorks и пакет расширения Neural Network Toolbox, который позволяет строить нейронную сеть, подходящую для решения поставленных задач. Проведенное исследование показало, что задача классификации параметров интерфейса пользователей по набору входных характеристик может быть адекватно решена с помощью нейронной сети прямого распространения на основе многослойного персептрона. Важнейшими моментами при использовании данного решения являются выбор архитектуры создаваемой нейронной сети и подготовка обучающего набора данных для построения нейронной сети.

Ключевые слова: интерфейс пользователя, моделирование, нейронные сети, классификация, обновление, обучение, тестирование, персептрон, Matlab, модель

DOI:

10.25136/2306-4196.2018.3.23061

Дата направления в редакцию:

19-05-2017

Дата рецензирования:

19-05-2017

Введение

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

перспективной и востребованной -Ш.

Пользователь на клиентской стороне неоднократно использует определенные характеристики интерфейса приложения и тем самым влияет на такие параметры, как:

операции (действия) пользователя на клиентской стороне;

частота использования каждой операции;

компоненты (элементы) интерфейса и частота их использования;

свойства элементов интерфейса и частота их использования.

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

количество и список операций (малоиспользуемые операции выводятся на «второй план»);

обновленный порядок размещения операций (пунктов меню, функций);

обновленный список и количество элементов интерфейса;

обновленный список и количество свойств элементов интерфейса;

измененный порядок следования свойств каждого элемента.

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

В данной работе предлагается исследовать альтернативный подход: рассматриваются задачи применения методов нейронных сетей для многокритериальной классификации категорий пользовательских интерфейсов и построения модели для формирования параметров изменяемого пользовательского интерфейса.

Реализация подхода на основе моделирования искусственной нейронной сети включает определенные этапы решения поставленной задачи.

1. Подготовка входных данных (выбор и нормализация исходных данных).

2. Создание архитектуры нейронной сети (выбор топологии сети, функций активации и

количества скрытых слоев).

3. Моделирование нейронной сети (создание сети средствами Neural Network Toolbox пакета MATLAB).

4. Обучение сети.

5. Тестирование сети (проверка корректности работы сети на данных, которые не использовались в процессе обучения).

6. Построение и проверка математической модели. Корректировка параметров сети (если не обеспечивается требуемая точность классификации).

В ходе дальнейшего изложения материала некоторые взаимосвязанные этапы будут объединены.

Подготовка входных данных и создание архитектуры нейронной сети

Применение нейронной сети прямого распространения на основе многослойного персептрона вполне соответствует исследуемой и решаемой задаче, так как многослойный персептрон обладает адаптивной архитектурой и разнообразными алгоритмами обучения.

Подготовка входных данных для обучения сети и их обработка является важнейшим этапом решения задачи. Подготовленный массив данных для обучения должен

удовлетворять основным критериям репрезентативности и непротиворечивости

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

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

(0 0 0 1) - количество значимых характеристик интерфейса < 6;

(0 0 1 0) - количество значимых характеристик интерфейса 7 или 8;

(0 1 0 0) - количество значимых характеристик интерфейса 9 или 10;

(1 0 0 0) - количество значимых характеристик интерфейса 11 или 12.

Таким образом, определенный вектор из 12 элементов будет поступать на входы моделируемой нейронной сети, которая должна сформировать выходной вектор размером 4 элемента.

Первоначальную архитектуру нейронной сети спроектируем с помощью эмпирического правила: количество нейронов скрытого слоя приближенно равно половине общего

количества нейронов входного и выходного слоев [3, 4]. В результате для 12 входных нейронов и 4 выходных нейронов потребуется скрытый слой из 8 нейронов.

Предлагаемая архитектура искусственной нейронной сети на основе многослойного персептрона изображена на рисунке 1.

Формирование набора данных для обучения сети построим следующим образом. Входной вектор содержит 12 двоичных элементов, то есть количество возможных сочетаний

определяется как 212 = 4096. Известно, что количество наблюдений для обучающего набора данных должно составлять примерно 70-80 % от максимально возможного числа наблюдений. Следовательно, обучающий набор входных данных (inputs) должен составлять примерно 3000 векторов, соответственно такое же количество должен иметь эталонный целевой набор (targets). Входной обучающий массив размером 12 х 3000 и эталонный массив размером 4 х 3000 подготовим с помощью пакета MATLAB (The MathWorks). Оставшиеся 1096 векторов можно использовать при проверке адекватной работы построенной нейронной сети.

Входной слой Скрытый слой Выходной слой

Рисунок 1 - Архитектура многослойного персептрона

Моделирование и обучение нейронной сети

Для моделирования и обучения нейронной сети будем использовать пакет MATLAB компании MathWorks. Данный математический пакет предоставляет пользователям широкие возможности работы с нейронными сетями различных типов с помощью инструментария Neural Network Toolbox, который входит в стандартную поставку пакета MATLAB. Средства и функции Neural Network Toolbox позволяют конфигурировать нейронную сеть, наиболее подходящую для решения поставленных задач.

Для выбора оптимального алгоритма обучения традиционно основными показателями являются его точность и производительность. В ходе работы в качестве алгоритма обучения моделируемой сети использовались три разновидности методов обратного распространения ошибки и соответствующие им функции системы MATLAB:

функция обучения trainlm, которая модифицирует значения весов и смещений по методу оптимизации Левенберга-Марквардта (Levenberg-Marquardt);

функция обучения trainbfg, использующая BFGS квази-Ньютоновский метод (BFGS Quasi-Newton);

функция обучения trainrp, которая модифицирует веса и смещения на основе алгоритма упругого обратного распространения (Resilient Backpropagation).

Функция trainlm, используемая в системе по умолчанию, показала наилучшее быстродействие и высокую точность работы, не испытав проблем с ресурсами памяти.

В качестве функции активации нейронов скрытого и выходного слоев применяется логистическая сигмоидальная функция активации logsis, которая, как правило, используется в задачах классификации и прогнозирования. При этом минимальное и максимальное допустимые выходные значения равны 0 и 1, что полностью удовлетворяет нашим требованиям.

Для создания в пакете MATLAB двухслойной нейронной сети прямого распространения с применением сигмоидальной функции активации и обучения методом обратного распространения ошибки используем команду:

nnetl = newff(minmax(inputs), [(8,4)], {'logsig','logsig'}, 'trainlm');

Функция newff создает однонаправленную сеть nnetl, обучаемую с применением алгоритма обратного распространения (feed forward backpropagation network). Массив inputs представляет собой входной обучающий набор данных. Архитектура сети имеет два слоя: скрытый слой (8 нейронов) и выходной слой (4 нейрона). Для каждого слоя используется сигмоидальная функция активации logsig. Применяется функция обучения trainlm.

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

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

nnetl.trainparam.epochs = 2000;

nnetl.trainparam.goal = le-5;

nnet1.trainparam.min_grad = le-10;

где epochs - максимальное количество эпох (циклов) обучения, goal - целевое значение показателя эффективности обучения (ошибка сети), min_grad - значение минимального градиента.

Предварительно сформирован обучающий набор данных inputs размером 12 х 3000, содержащий 3000 входных векторов по 12 элементов, и набор ожидаемых целевых данных targets размером 4 х 3000, который представляет такое же количество векторов по 4 элемента в каждом. Команда запуска процесса обучения сети выглядит следующим образом:

[nnet1,tr] = train(nnet1, inputs, targets); В процессе обучения открывается окно, представленное на рисунке 2.

Рисунок 2 - Окно процесса обучения нейронной сети

Процесс обучения завершен при достижении целевого показателя точности, использовано 25 циклов за 8 секунд. График зависимости среднеквадратической ошибки (mse) показан на рисунке 3.

W Neural Network Training Performance fplotaerforml Epoch ¿5, Perform... —  X

Best Training Performance is 7.4355e-Q06 at epoch 25

10%

кг L_i_i_i_i_i

О 5 10 15 20 25

25 Epochs

Рисунок 3 - График зависимости среднеквадратической ошибки

Тестирование сети

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

Средствами MATLAB подготовлен набор входных тестовых данных в виде массива testinp размером 12 х 100:

datadec = [2051:2100 3801:3850]; % 100 десятичных чисел

testtmp = de2bi(datadec); % преобразованный массив 100 х 12

testinp = fliplr(testtmp)'; % перестановка элементов в массив 12 х 100

Результат работы сети nnet1 с тестовым набором данных сохраняем в объект outputs:

outputs = sim(nnet1, testinp);

Также в системе MATLAB с помощью функции dec2bin(datadec) и соответствующих операций был сформирован ожидаемый выходной результат - массив значений размером 4 х 100 (объект targtest).

Выполнена проверка корректности работы сети на тестовых данных, определена эффективность работы сети:

errors = gsubtract(targtest, outputs);

performance = perform(nnet1, outputs, targtest);

В результате проверки нейронная сеть безошибочно классифицировала все тестовые входные векторы, эффективность (переменная performance) оценивается значением порядка 1.0e-05.

Построение и проверка математической модели

На основе полученных параметров двухслойной нейронной сети в среде МА^АВ построим математическую модель для решения рассматриваемой задачи.

В общем виде рассматриваемую модель можно представить следующим образом:

У = Р ( X ),

где Х - входной вектор (в нашем случае это входной вектор нейронной сети, размер вектора 12 элементов); У - выходной вектор (выходной вектор нейронной сети размером 4 элемента).

С учетом выбора архитектуры на основе двухслойной нейронной сети прямого распространения передача входного вектора (сигнала) от входного слоя до выходного слоя описывается следующим образом:

Р 1 = W 1 х X + В 1;

5 1 = Р 1(Р 1); Р 2 = W 2 х Б 1 + В 2; У = Р 2(Р 2);

где W 1 - весовая матрица первого (скрытого) слоя нейронной сети; В 1 - вектор смещений нейронов первого слоя; Р 1 - входной сигнал первого слоя; Р 1 - функция активации нейронов первого слоя; Б 1 - выходной сигнал первого слоя; W 2 - весовая матрица второго (выходного) слоя; В 2 - вектор смещений нейронов второго слоя; Р 2 -входной сигнал второго слоя; Р 2 - функция активации нейронов второго слоя, получение выходного сигнала (вектора) У .

Построенная на предыдущем этапе нейронная сеть ппе^ имеет множество параметров, несколько из которых можно использовать для создания математической модели:

ппе^.^{1} - весовая матрица 8 х 12 первого слоя нейронной сети (матрица весовых коэффициентов связей нейронов скрытого слоя с входами);

nnet1.LW {2,1} - весовая матрица 4 х 8 второго (выходного) слоя (матрица весовых коэффициентов связей нейронов второго слоя с нейронами первого слоя);

ппе^.Ь{1}; - вектор смещений (8 элементов) нейронов первого слоя;

ппе^.Ь{2}; - вектор смещений (4 элемента) нейронов второго слоя;

logsig - логистическая сигмоидальная функция активации нейронов сети для первого и в то ро г о с лоя .

Создадим в среде МА^АВ проверочный входной вектор X и переменные: X = [1 1 0 1 0 1 0 0 1 1 0 1]'; ^ = ппеи.Ш{1}; Lw = ппеи^{2,1};

b1 = nnet1.b{1}; b2 = nnet1.b{2};

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

P1 = Iw * X + b1;

S1 = logsig(P1); % S1 = 1./(1 + exp(-P1)); P2 = Lw * S1 + b2;

Y = logsig(P2); % Y = 1./(1 + exp(-P2)); R = sim(nnet1, X);

Error = R - Y;

В результате использования входного вектора X получен выходной сигнал модели Y = (0.0000, 0.0001, 0.9995, 0.0002), который идентичен R - результату обработки нейронной сетью этого же входного вектора, и соответствует ожидаемому (эталонному) значению.

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

Y = logsig(nnet1.LW{2,1} * logsig(nnet1.IW{1} * X + nnet1.b{1}) + nnet1.b{2});

В этом выражении применяются все необходимые и описанные выше параметры построенной нейронной сети.

Заключение

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

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

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

Библиография

1. Чернильцев А. Г. Исследование процесса обновления графического интерфейса пользователя / А. Г. Чернильцев // International Conference On Research In Computer, Electronics And Manufacturing Engineering: materials of conference. -Strasbourg, France: Smashwords, 2017. - P. 3-14.

2. Каллан Р. Основные концепции нейронных сетей: пер. с англ. / Р. Калан. - М.: Вильяму 2001. - 287 с.

3. Медведев В. С. Нейронные сети. MATLAB 6 / В. С. Медведев, В. Г. Потемкин; под

общ. ред. В. Г. Потемкина. - М.: ДИАЛОГ-МИФИ, 2002. - 496 с. - (Пакеты прикладных программ; Кн. 4).

4. Усков А. А. Интеллектуальные технологии управления. Искусственные нейронные сети и нечеткая логика / А. А. Усков, А. В. Кузьмин. - М.: Горячая линия - Телеком, 2004. - 143 с.