Поручиков М.А. Анализ данных. А. поручиков
Скачать 2.76 Mb.
|
Множественная классификацияЗадачей множественной классификации является определение принадлежности некоего объекта к одному из нескольких (трех или более) возможных классов, например постановка диагноза пациенту. Наиболее известными методами множественной классификации являются: метод «один против всех» (One vs All); нейронная сеть (Neural Network). Искусственная нейронная сеть (ИНС) – математическая модель нервной системы живого организма. Было обнаружено, что свойства ИНС позволяют использовать их для решения широкого круга прикладных задач, в том числе задач классификации. Исторически первой была искусственная нейронная сеть под названием «перцептрон Розенблатта» (1957). В общем случае ИНС имеет несколько входов и выходов. На входы подаются некоторые значения (сигналы). Результатом работы нейронной сети являются значения (сигналы) на её выходе (рис. 27). y f(x) x1 y1 x2 y2 : : xnyn Рис. 27. Модель нейронной сети Таким образом, ИНС можно рассматривать как векторную функцию векторного аргумента: y h(x) . (16) Нейронная сеть состоит из элементов – нейронов, связанных друг с другом (рис. 28). Рис. 28. Структура нейронной сети Как правило, нейроны объединяются в группы, называемые слоями. Различают три вида слоёв: входной, выходной и скрытый. Так, выше изображена нейронная сеть, содержащая 3 нейрона во входном слое, 4 нейрона в скрытом слое и 2 нейрона во входном слое. Нейрон является базовым составляющим элементом нейронной сети. В общем случае нейрон имеет несколько входов и один выход (рис.29). y f(x) x1 x2 y : xn Рис. 29. Модель нейрона Нейрон можно рассматривать как скалярную функцию векторного аргумента: y f(x) . (17) Предполагается, что каждому входу нейрона соответствует некоторый весовой коэффициент (рис. 30). Значения на входе нейрона можно представить в виде вектора x x1, x2 , , xn, (18) а весовые коэффициенты – в виде вектора w w1, w2 , , wn. (19) x1 x2 y xn Рис. 30. Структура нейрона Вычисление значения на выходе нейрона осуществляется в два этапа. На первом этапе рассчитывается взвешенная сумма n z x1 w1 x2 w2 xn wn xi wi x w. (20) i1 На втором этапе рассчитывается значение функции активации fa(z) . Наиболее часто применяется логистическая (сигмоидная) функция активации fa(z) 1 1 e z . (21) Свойства функции нейронной сети определяются: структурой нейронной сети, то есть характером взаимосвязей между нейронами; свойствами нейронов: их весовыми коэффициентами и функциями активации. Как и логистическая регрессия, нейронная сеть приобретает свои свойства в результате так называемого «обучения». Обучение ИНС – процесс подстройки весовых коэффициентов нейронов ИНС. Обучение производится на так называемой «обучающей выборке», представляющей собой набор «вопросов» и соответствующих «правильных ответов». Качество обучения определяется степенью соответствия ответов сети («гипотез») «правильным ответам». Показателем качества обучения является значение функции штрафа, определяемой взвешенной суммой квадратов отклонений: 1 n( j) ( j) 2 n CFj (h(xi i1 ) yi) ; (22) 1 m m CF CFj. (23) j1 В процессе обучения весовые коэффициенты нейронов ИНС изменяются согласно определенным правилам. Обучение производится шагами (эпохами). На одном шаге (в течение одной эпохи) происходит одно обновление коэффициентов W. Обучение заканчивается в момент, когда значение функции штрафа достигает заданного пользователем порога. Также обучение может быть остановлено, если был превышен заданный лимит числа шагов. Обучение сети производится с помощью специальных алгоритмов. В основе большинства алгоритмов лежат градиентные методы обучения. Исторически первым был так называемый «алгоритм обратного распространения ошибки» (error backpropagation). В дальнейшем были предложены еще несколько алгоритмов, наиболее известными из которых являются QPROP и RPROP. В ходе обучения возможно проявление двух нежелательных эффектов: эффекта недообученности и эффекта переобученности. Эффектнедообученности Эффект недообученности, как в регрессионном анализе, проявляется в виде недостаточного качества классификации объектов из обучающей выборки. Графически это иллюстрируется как приближение функции штрафа к некоему постоянному значению (рис. 31). Рис. 31. Функция штрафа при недообученности Для избежания эффекта недообученности можно использовать следующие способы: увеличение числа нейронов в скрытом слое ИНС; увеличение числа скрытых слоев. Эффектпереобученности Можно выделить три признака переобучения: относительно быстрое убывание функции штрафа в процессе обучения; нулевое или близкое к нулю значение функции штрафа; абсолютно точная при предъявлении объектов из обучающей выборки. Одним из признаков переобученности является нулевое значение функции штрафа после обучения ИНС (рис. 32). Рис. 32. Функция штрафа при переобучении Переобучение приводит к потере классификатором способности к обобщению. Для избежания эффекта переобученности можно использовать следующие способы: уменьшение числа нейронов в скрытом слое ИНС; уменьшение числа скрытых слоев. Программноеобеспечениеimage_recognition Данное программное обеспечение предназначено для классификации визуальных образов. В основе ПО лежит трехслойная нейронная сеть, размеры слоев которой задаются пользователем. Предполагается, что на вход сети подается монохромное изображение, при этом на выходе сети вычисляется вероятность принадлежности изображения к тому или иному классу (образу). Интерфейс программы содержит следующие элементы (рис. 33): панель «Создание сети»; панель «Описание классов»; панель «Обучение сети»; панель «Проверка сети». Рис. 33. Интерфейс программы image_recognition Панель«Созданиесети» Кнопка «Создать» создает трехслойную НС заданной структуры. При этом размер входного слоя сети определяется произведением параметров «Ширина образа» и «Высота образа», размер скрытого слоя определяется значением параметра «Скрытый слой», размер выходного слоя определяется значением параметра «Число классов». Кнопка «Открыть» позволяет загрузить в программу описание ранее созданной нейронной сети из файла с расширением *.net. Кнопка «Сохранить» позволяет сохранить нейронную сеть в файл с расширением *.net. Панель«Описаниеклассов» Кнопка «Открыть» позволяет загрузить в программу ранее созданное описание классов из файла с расширением *.txt. Кнопка «Сохранить» позволяет сохранить описание классов в файл с расширением *.txt. Таблица предназначена для текстового описания классов. Панель«Обучениесети» Кнопка «Открыть» предназначена для загрузки файла с обучающей выборкой. Кнопка «Учить» предназначена для обучения сети в течение нескольких шагов, при этом число шагов определяется параметром «Число шагов». Кнопка «Сбросить» задает произвольные значения весовым коэффициентам нейронов сети. Кнопка «Сохранить график» сохраняет в файл график кривой обучения. График кривой обучения показывает изменение ошибки в процессе обучения сети. Параметр «Эпоха» показывает число сделанных шагов обучения. Параметр «Ошибка» показывает текущую ошибку. Панель«Проверкасети» Изображение «Образ» предназначено для создания проверочного образа, подающегося на вход сети. Размеры образа определяются параметрами «Ширина образа» и «Высота образа», заданными ранее в ходе создания сети. Образ создается путем кликов по соответствующим элементам образа. Диаграмма «Реакция» отображает выход сети. Кнопка «Сохранить» сохраняет изображение образа и диаграмму с реакцией в соответствующие файлы. Пример применения Рассмотрим способ применения ПО image_recognition на примере задачи классификации визуальных образов стрелок (рис. 34). Рис. 34. Входные и выходные данные Предположим, что входными образами являются изображения размером 5x5 элементов. В качестве обучающей выборки предлагается использовать образы четырех стрелок (рис. 35). Рис. 35. Образы обучающей выборки Для использования классификатора каждый известный образ должен быть закодирован численными значениями (рис. 36). Рис. 36. Численное представление образа Обучающая выборка для программы image_recognition представлена в текстовом файле в специальном формате (рис. 37). Рис. 37. Обучающая выборка |