Кодирование выходных значений
Задача классификации при наличии двух классов может быть решена на сети с одним нейроном в выходном слое, который может принимать одно из двух значений 0 или 1 в зависимости от того, к какому классу принадлежит образец. При наличии нескольких классов возникает проблема, связанная с представлением этих данных для выхода сети. Наиболее простым способом представления выходных данных в таком случае является вектор, компоненты которого соответствуют различным номерам классов. При этом i-я компонента вектора соответствует i-му классу. Все остальные компоненты при этом устанавливаются в О. Тогда, например, второму классу будет соответствовать 1 на 2 выходе сети и 0 на остальных. При интерпретации результата обычно считается, что номер класса определяется номером выхода сети, на котором появилось максимальное значение. Например, если в сети с тремя выходами, мы имеем вектор выходных значений (0,2; 0,6; 0,4), и видим, что максимальное значение имеет вторая
компонента вектора, значит класс, к которому относится этот пример, - 2.
При таком способе кодирования иногда вводится также понятие уверенности сети в том, что пример относится к этому классу. Наиболее простой способ определения уверенности заключается в определении разности между максимальным значением выхода и значением другого выхода, которое является ближайшим к максимальному. Например, для рассмотренного выше примера уверенность сети в том, что пример относится ко второму классу, определится как разность между второй и третьей компонентой вектора и равна 0.6-0.4=0.2. Соответственно, чем выше уверенность, тем больше вероятность того, что сеть дала правильный ответ. Этот метод кодирования является самым простым, но не всегда самым оптимальным способом представления данных.
Известны и другие способы. Например, выходной вектор представляет собой номер кластера, записанный в двоичной форме. Тогда при наличии 8 классов нам потребуется вектор из 3 элементов, и, скажем, 3 классу будет соответствовать вектор 011. Но при этом в случае получения неверного значения на одном из выходов мы можем получить неверную классификацию (неверный номер кластера), поэтому имеет смысл увеличить расстояние между двумя кластерами за счет использования кодирования выхода по коду Хемминга, который повысит надежность классификации.
Другой подход состоит в разбиении задачи с k классами на k*(k-I)/2 подзадач с двумя классами (2 на 2 кодирование) каждая. Под подзадачей в данном случае понимается то, что сеть определяет наличие одной из компонент вектора. Т.е. исходный вектор разбивается на группы по два компонента в каждой таким образом, чтобы в них вошли все возможные комбинации компонент выходного вектора. Число этих групп можно определить как количество неупорядоченных выборок по два из исходных компонент
Тогда, например, для задачи с четырьмя классами мы имеем 6 выходов (подзадач), распределенных следующим образом:
№подзадач и (выхода) | Компоненты выхода |
1 | 1-2 |
2 | 1-3 |
3 | 1-4 |
4 | 2-3 |
5 | 2-4 |
6 | 3-4 |
Где 1 на выходе говорит о наличии одной из компонент. Тогда мы можем перейти к номеру класса по результату расчета сетью следующим образом: определяем, какие комбинации получили единичное (точнее близкое к единице) значение выхода (т.е. какие подзадач и у нас активировались), и считаем, что номер класса будет тот, который вошел в наибольшее количество активированных подзадач (см. таблицу).
№ класса | Акт. выходы |
1 | 1,2,3 |
2 | 1,4,5 |
3 | 2,4,6 |
5 | 3,5,6 |
Это кодирование во многих задачах дает лучший результат, чем классический способ кодирования.
- Глава 13. Нейронные сети
- 13.1. Архитектура нейронных сетей
- Различные виды искусственных нейронов
- Различные виды функции активации
- Нейронные сети с прямой связью
- 13.2. Алгоритмы обучения нейронных сетей
- Критерии ошибок
- Обратное распространение ошибки
- Импульс
- Другие алгоритмы обучения
- Перекрестное подтверждение
- 13.3. Динамические сети
- Нейронные сети с временной задержкой
- 13.4. Самоорганизующиеся сети
- Практическое применение нейронных сетей для задач классификации (кластеризации)
- Цель классификации
- Использование нейронНblХ сетей в качестве классификатора
- Подготовка исходных данных
- Кодирование выходных значений
- Вероятностная классификация
- Классифика торы образов
- Нейронная сеть с прямой связью как классификатор
- 13.6. Применение нейронных сетей для анализа временных рядов задача анализа временных рядов
- Статистический анализ временных рядов
- Сбор данных
- Нейронные сети как средство добычи данных
- Очистка и преобразование базы данных
- Построение модели
- Программное обеспечение
- Финансовый анализ на рынке ценных бумаг
- Литература