Library
|
Your profile |
Cybernetics and programming
Reference:
Cherniltsev A.
The use of multilayer neural networks in problems of updating the user interface
// Cybernetics and programming.
2018. № 3.
P. 38-47.
DOI: 10.25136/2644-5522.2018.3.23061 URL: https://en.nbpublish.com/library_read_article.php?id=23061
The use of multilayer neural networks in problems of updating the user interface
DOI: 10.25136/2644-5522.2018.3.23061Received: 19-05-2017Published: 22-06-2018Abstract: The subject of the study is the process of forming the parameters of the user interface that is being changed. The author considers the possibility of using neural network methods to process characteristics and classify the categories of user interfaces. To solve the problem studied, the structure of an artificial neural network based on a multilayer perceptron is modeled, the training set of data is prepared and the kit is used to train a simulated neural network. Based on the obtained parameters of the neural network, a mathematical model was constructed and analyzed to solve the problem in question, a study was made of the resulting data for various sets of input data that were not used in training the network. To form the training data set, simulate and train the neural network, the MathLab MathLab system and the Neural Network Toolbox expansion package are used, which allows building a neural network suitable for solving the tasks posed. The conducted research showed that the problem of classifying the parameters of the user interface by a set of input characteristics can be adequately solved with the help of a neural network of direct propagation based on a multilayer perceptron. The most important moments when using this solution are the choice of the architecture of the neural network being created and the preparation of a training data set for building a neural network Keywords: user interface, modeling, neural network, classification, updating, training, testing, perceptron, Matlab, modelВведение Современные тенденции развития информационных технологий активно влияют на различные аспекты деятельности компаний и предприятий. Одним из проявлений такого воздействия является необходимость более продуктивно учитывать и обеспечивать разнообразные изменяющиеся информационные потребности клиентов компаний. В этом аспекте задача формирования и обновления пользовательского интерфейса с возможностью изменения структуры клиентского приложения представляется актуальной, перспективной и востребованной [1]. Пользователь на клиентской стороне неоднократно использует определенные характеристики интерфейса приложения и тем самым влияет на такие параметры, как: · операции (действия) пользователя на клиентской стороне; · частота использования каждой операции; · компоненты (элементы) интерфейса и частота их использования; · свойства элементов интерфейса и частота их использования. В результате соответствующей обработки и классификации на стороне сервера возможно формирование обновленного интерфейса, который предусматривает изменения определенных параметров: · количество и список операций (малоиспользуемые операции выводятся на «второй план»); · обновленный порядок размещения операций (пунктов меню, функций); · обновленный список и количество элементов интерфейса; · обновленный список и количество свойств элементов интерфейса; · измененный порядок следования свойств каждого элемента. Задачи формирования набора обновленных параметров интерфейса на основе обработки множества различных характеристик и критериев могут быть решены путем создания специализированных программных компонентов, реализующих традиционные алгоритмические методы решения подобных задач. В данной работе предлагается исследовать альтернативный подход: рассматриваются задачи применения методов нейронных сетей для многокритериальной классификации категорий пользовательских интерфейсов и построения модели для формирования параметров изменяемого пользовательского интерфейса. Реализация подхода на основе моделирования искусственной нейронной сети включает определенные этапы решения поставленной задачи. 1. Подготовка входных данных (выбор и нормализация исходных данных). 2. Создание архитектуры нейронной сети (выбор топологии сети, функций активации и количества скрытых слоев). 3. Моделирование нейронной сети (создание сети средствами Neural Network Toolbox пакета MATLAB). 4. Обучение сети. 5. Тестирование сети (проверка корректности работы сети на данных, которые не использовались в процессе обучения). 6. Построение и проверка математической модели. Корректировка параметров сети (если не обеспечивается требуемая точность классификации). В ходе дальнейшего изложения материала некоторые взаимосвязанные этапы будут объединены. Подготовка входных данных и создание архитектуры нейронной сети Применение нейронной сети прямого распространения на основе многослойного персептрона вполне соответствует исследуемой и решаемой задаче, так как многослойный персептрон обладает адаптивной архитектурой и разнообразными алгоритмами обучения. Подготовка входных данных для обучения сети и их обработка является важнейшим этапом решения задачи. Подготовленный массив данных для обучения должен удовлетворять основным критериям репрезентативности и непротиворечивости [2]. В сущности, исследуемую задачу можно рассматривать как задачу обработки набора исходных (входных) данных, в качестве которых выступают характеристики взаимодействия пользователя с интерфейсом приложения во время его многократного использования. Результирующие (выходные) данные будут рассматриваться как набор обновляемых параметров интерфейса пользовательского приложения. Прежде всего, для построения входного и выходного (эталонного) массивов данных следует уточнить их размеры. Допустим, что для оценки основных показателей интерфейса используется дюжина (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 двухслойной нейронной сети прямого распространения с применением сигмоидальной функции активации и обучения методом обратного распространения ошибки используем команду: nnet1 = newff(minmax(inputs), [(8,4)], {'logsig','logsig'}, 'trainlm'); Функция newff создает однонаправленную сеть nnet1, обучаемую с применением алгоритма обратного распространения (feed forward backpropagation network). Массив inputs представляет собой входной обучающий набор данных. Архитектура сети имеет два слоя: скрытый слой (8 нейронов) и выходной слой (4 нейрона). Для каждого слоя используется сигмоидальная функция активации logsig. Применяется функция обучения trainlm. Данная команда создает требуемую нейронную сеть, и получаемая впоследствии матрица весовых коэффициентов входного первого слоя IW и весовая матрица второго слоя LW позволяют построить корректно работающую математическую модель. Для конфигурирования параметров обучения используем следующие команды: nnet1.trainparam.epochs = 2000; nnet1.trainparam.goal = 1e-5; nnet1.trainparam.min_grad = 1e-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. Рисунок 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. Построение и проверка математической модели На основе полученных параметров двухслойной нейронной сети в среде MATLAB построим математическую модель для решения рассматриваемой задачи. В общем виде рассматриваемую модель можно представить следующим образом: Y = F(X), где Х – входной вектор (в нашем случае это входной вектор нейронной сети, размер вектора 12 элементов); Y – выходной вектор (выходной вектор нейронной сети размером 4 элемента). С учетом выбора архитектуры на основе двухслойной нейронной сети прямого распространения передача входного вектора (сигнала) от входного слоя до выходного слоя описывается следующим образом: P1 = W1 × X + B1; S1 = F1(P1); P2 = W2 × S1 + B2; Y = F2(P2); где W1 – весовая матрица первого (скрытого) слоя нейронной сети; B1 – вектор смещений нейронов первого слоя; P1 – входной сигнал первого слоя; F1 – функция активации нейронов первого слоя; S1 – выходной сигнал первого слоя; W2 – весовая матрица второго (выходного) слоя; B2 – вектор смещений нейронов второго слоя; P2 – входной сигнал второго слоя; F2 – функция активации нейронов второго слоя, получение выходного сигнала (вектора) Y. Построенная на предыдущем этапе нейронная сеть nnet1 имеет множество параметров, несколько из которых можно использовать для создания математической модели: · nnet1.IW{1} – весовая матрица 8 x 12 первого слоя нейронной сети (матрица весовых коэффициентов связей нейронов скрытого слоя с входами); · nnet1.LW{2,1} – весовая матрица 4 x 8 второго (выходного) слоя (матрица весовых коэффициентов связей нейронов второго слоя с нейронами первого слоя); · nnet1.b{1}; – вектор смещений (8 элементов) нейронов первого слоя; · nnet1.b{2}; – вектор смещений (4 элемента) нейронов второго слоя; · logsig – логистическая сигмоидальная функция активации нейронов сети для первого и второго слоя. Создадим в среде MATLAB проверочный входной вектор X и переменные: X = [1 1 0 1 0 1 0 0 1 1 0 1]'; Iw = nnet1.IW{1}; Lw = nnet1.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}); В этом выражении применяются все необходимые и описанные выше параметры построенной нейронной сети. Заключение Проведенный анализ показал, что задача классификации параметров интерфейса пользователей по набору входных характеристик может быть адекватно решена с помощью нейронной сети прямого распространения на основе многослойного персептрона. Важнейшими моментами при использовании данного решения являются выбор архитектуры создаваемой нейронной сети и подготовка обучающего набора данных для построения нейронной сети. Кроме того, с учетом нарастания количества, разнообразия и усложняющейся структуры исследуемых характеристик, применение подхода на основе нейронных сетей является вполне конкурентоспособным и перспективным по сравнению с традиционными алгоритмическими методами.
References
1. Chernil'tsev A. G. Issledovanie protsessa obnovleniya graficheskogo interfeisa pol'zovatelya / A. G. Chernil'tsev // International Conference On Research In Computer, Electronics And Manufacturing Engineering: materials of conference. – Strasbourg, France: Smashwords, 2017. – P. 3-14.
2. Kallan R. Osnovnye kontseptsii neironnykh setei: per. s angl. / R. Kalan. – M.: Vil'yamc, 2001. – 287 s. 3. Medvedev V. S. Neironnye seti. MATLAB 6 / V. S. Medvedev, V. G. Potemkin; pod obshch. red. V. G. Potemkina. – M.: DIALOG-MIFI, 2002. – 496 s. – (Pakety prikladnykh programm; Kn. 4). 4. Uskov A. A. Intellektual'nye tekhnologii upravleniya. Iskusstvennye neironnye seti i nechetkaya logika / A. A. Uskov, A. V. Kuz'min. – M.: Goryachaya liniya – Telekom, 2004. – 143 s. |