Поздравляем с Новым Годом!
   
Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 9(53)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2

Библиографическое описание:
Шилова С.О. ОСНОВЫ ПРИМЕНЕНИЯ НЕЙРОННЫХ СЕТЕЙ ДЛЯ ЗАДАЧ КЛАССИФИКАЦИИ // Студенческий: электрон. научн. журн. 2019. № 9(53). URL: https://sibac.info/journal/student/53/133979 (дата обращения: 29.12.2024).

ОСНОВЫ ПРИМЕНЕНИЯ НЕЙРОННЫХ СЕТЕЙ ДЛЯ ЗАДАЧ КЛАССИФИКАЦИИ

Шилова София Олеговна

студент, институт физико-математических наук и информационных технологий, БФУ им. И. Канта,

РФ, г. Калининград

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

                                 (1)

где x – градиент входных импульсов, ω – градиент синаптических весов, ω0 – порог, ϕ(.) – функция активации, y – выходной импульс.

Выделяют три основных типа функций активации.

1. Пороговые функции; например – ϕ(u) = sgnu, а также функция Хевисайда:

                                (2)

2. Кусочно-линейные функции; например:

             (3)

3. Сигмоидальные функции [3]; например – логистическая функция:

          (4)

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

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

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

• в финансово – кредитной сфере деле для решения задачи по определению уровня кредитоспособности клиента;

• в медицине для выбора тактики ведения больного или определения вероятного исхода заболевания;

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

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

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

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

• Простейший подуровень объединяет задачи, классы которых лежат в пространстве между прямыми линиями с размерность входов более двух или степень сложности в пределах линейной разделимости;

• Подуровень средней степени сложности не дает возможности деления классов как линиями, так и плоскостями, и требует применения более сложного принципа сегрегации – так называемой нелинейной разделимости;

• Сложный подуровень подразумевает взаимодействие классов, и деление их представляется только в виде вероятностной разделимости.

 

Рисунок 1. Линейно и нелинейно разделимые классы

 

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

Использование нейронных сетей в качестве классификатора

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

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

Подготовка исходных данных

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

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

Кодирование выходных значений

В нейронной сети, построенной для классификации двух классов выходящий нейрон может принимать значения 0 или 1, зависимо от класса принадлежности исследуемого объекта. Трудности выбора по отображению исследуемых данных возникают при классификации задач, имеющих несколько классов. Простейшим способом ее решения нам видится использование градиента, чьи составляющие соотносимы номерами разных классов, для представления выходных данных. При этом i-я составляющая градиента соответствует i-му классу, а прочие составляющие принимают положение на «0». В таком случае, второму классу будет соответствовать 1 на 2 выходе сети и 0 на остальных. Если принять за номер класса соответствующий номер выхода сети с максимальным значением градиента, то можно провести толкование полученных результатов таким образом: так, в сети с тремя выходами при фиксации значения градиента выходных значений в порядке (0.2,0.6,0.4) его следует соотнести его с максимальным значением второй составляющей градиента и классом, имеющим соответствующие значения (в рассмотренном примере - класс 2 ). При этом методе кодирования часто применяется определение факта уверенности сети о соответствии объекта в полученному значению класса, что является наиболее оптимальным методом определения уверенности в полученном результате как разности между максимальным значением выхода и иным значением другого выхода, численно приближенного к наибольшему. Так, для рассмотренного выше примера разность между второй и третьей составляющей градиенте укажет на уверенность сети в принадлежности объекта ко второму классу, что, соответственно, в числовом выражении выразится как 0.6-0.4=0.2. Итак, степень уровня уверенности сети находится в прямо пропорциональной зависимости от вероятности правильного ответа системы. Это простейший метод кодирования и он не всегда подходит для представления различных видов данных.

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

Другой подход к кодированию состоит в разбиении задачи с k классами на k*(k-1)/2 число подзадач с двумя классами (2 на 2 кодирование) каждая. Подзадача создается при делении одной из составляющих градиента на группы, которые принимают все возможные комбинации составляющих выходного градиента. Число этих групп определяется как число неупорядоченных выборок по два из исходных составляющих. Из комбинаторики.

Тогда, например, классификация задачи с четырьмя классами произойдет при создании 6 распределенных таким образом выходов (подзадач):

Таблица 1.

Классификация задачи с четырьмя классами

N подзадачи(выхода)

Компоненты Выхода

1

1-2

2

1-3

3

1-4

4

2-3

5

2-4

6

3-4

 

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

  • нужно зафиксировать сочетания, получивших то значение выхода, которое численно максимально близко к 1 и точно указывает на задействованные подзадачи;
  • нужно определить в качестве номера класса номер, выведенный к максимуму в наибольшем числе активированных подзадач (см. Таблицу 2).

Таблица 2.

Номера класса

N класса

Акт. Выходы

1

1,2,3

2

1,4,5

3

2,4,6

4

3,5,6

 

Этот метод кодирования по сравнению с классическим дает значительно лучшие результаты применимо к большему числу вариантов решаемых задач. Определение масштаба сети

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

Определение архитектоники сети

Определение архитектоники сети возможно путем проведения тестирования различного числа элементов в нескольких сочетаниях, а ведущими показателями выступают объем применяемого обучающего множества и обобщающая способность сети. Наиболее часто в нынешнее время применяется алгоритм обучения Back Propagation (обратного распространения) с подтверждающим множеством.

Алгоритм построения классификатора на основе нейронных сетей

Работа с данными

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

Создать два множества из всей совокупности данных: обучающее и тестовое (возможно разбиение на 3 множества: обучающее, тестовое и констатирующее)

Предварительная обработка

Добиться выхода линейно отделяемого пространство множества образцов, закодированных в произвольно выбранной системе (традиционное либо 2х2), путем систематизации исследуемых признаков, преобразованных в данные для подачи на вход сети (приведение, упорядочение)

Конструирование, обучение и оценка качества сети

Построить сеть надлежащей топологии

Активировать нейроны по одной из функций (например "сигмоида") Выбрать порядок действий для обучения сети

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

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

4. Использование и диагностика

Выяснить степень влияния различных факторов на принимаемое на практике решение путем эвристического подхода

Проверить точность классификации по наличию на выходе незначительного количество неверно распознанных примеров

Усовершенствовать методику представления образцов или информацию в базе данных, если возникнет такая необходимость

Получить решение пробной задачи в порядке тестирования сети

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

 

Список литературы:

  1. IBM SPSS Modeler CRISP-DM Guide [Электронный ресурс] / IBM Support. — Режим доступа: fttp: // public.dhe.ibm.com /software /analytics /spss /documentation/modeler/14.2/ en/CRISP_DM.pdf (дата обращения: 23.01.19).
  2. Yann Le Cun, Léon Bottou, Yoshua Bengio and Patrick Haffner: Gradient Based Learning Applied to Document Recognition, Proceedings of IEEE, 86(11):p.2278-2324, 1998.
  3. Keras: The Python Deep Learning library [Электронный ресурс] / Официальный сайт библиотеки «Keras». — Режим доступа: https://www.keras.io/ (дата обращения: 23.01.19).
  4. About TensorFlow [Электронный ресурс] / Официальный сайт фреймворка «Tensorflow». — Режим доступа: https://www.tensorflow.org/ (дата обращения: 23.01.19).

Оставить комментарий