Е. Миркес - Учебное пособие по курсу «Нейроинформатика»
Основные функции, которые должна выполнять оценка:
1. Вычислять оценку решения, выданного сетью.
2. Вычислять производные этой оценки по выходным сигналам сети.
Кроме оценок, в первом разделе этой главы рассмотрен другой, тесно связанный с ней объект — интерпретатор ответа. Основное назначение этого объекта — интерпретировать выходной вектор сети как ответ, понятный пользователю. Однако, при определенном построении интерпретатора и правильно построенной по нему оценке, интерпретатор ответа может также оценивать уровень уверенности сети в выданном ответе.
При частичной аппаратной реализации нейрокомпьютера включение функции оценки в аппаратную часть не эффективно, поскольку оценка является сложным устройством (многие функции оценки включают в себя операции сортировки, и другие аналогичные операции). Однако при аппаратной реализации обученной нейронной сети (даже если предусматривается доучивание сети) аппаратная реализация интерпретатора ответа может оказаться эффективной, поскольку для обученной сети интерпретатор уже не меняется, и по сравнению с оценкой интерпретатор ответа достаточно прост.
Интерпретатор ответа
Как было показано в главе «Описание нейронных сетей», ответ, выдаваемый нейронной сетью, как правило, является числом, из диапазона [a,b]. Если ответ выдается несколькими нейронами, то на выходе сети мы имеем вектор, каждый компонент которого лежит в интервале [a,b]. Если в качестве ответа требуется число из этого диапазона, то мы можем его получить. Однако, в большинстве случаев это не так. Достаточно часто требуемая в качестве ответа величина лежит в другом диапазоне. Например, при предсказании температуры воздуха 25 июня в Красноярске ответ должен лежать в интервале от 5 до 35 градусов Цельсия. Сеть не может дать на выходе такого сигнала. Значит, прежде чем обучать сеть необходимо решить в каком виде будем требовать ответ. В данном случае ответ можно требовать в виде α=(b-a)(T-Tmin)/(Tmax-Tmin)+a, где T — требуемая температура, Tmin и Tmax — минимальная и максимальная температуры, α — ответ, который будем требовать от сети. При интерпретации ответа необходимо проделать обратное преобразование. Если сеть выдала сигнал α, то ответом является величина T=(α-a)(T-Tmin)/(b-a)+Tmin. Таким образом, можно интерпретировать выдаваемый сетью сигнал, как величину из любого, наперед заданного диапазона.
Если при составлении обучающего множества ответ на примеры определялся с некоторой погрешностью, то от сети следует требовать не точного воспроизведения ответа, а попадания в интервал заданной ширины. В этом случае интерпретатор ответа может выдать сообщение о правильности (попадании в интервал) ответа.
Другим, часто встречающимся случаем, является предсказание сетью принадлежности входного вектора одному из заданных классов. Такие задачи называют задачами классификации, а решающие их сети — классификаторами. В простейшем случае задача классификации ставится следующим образом: пусть задано N классов. Тогда нейросеть выдает вектор из N сигналов. Однако, нет единого универсального правила интерпретации этого вектора. Наиболее часто используется интерпретация по максимуму: номер нейрона, выдавшего максимальный по величине сигнал, является номером класса, к которому относится предъявленный сети входной вектор. Такие интерпретаторы ответа называются интерпретаторами, кодирующими ответ номером канала (номер нейрона — номер класса). Все интерпретаторы, использующие кодирование номером канала, имеют один большой недостаток — для классификации на N классов требуется N выходных нейронов. При большом N требуется много выходных нейронов для получения ответа. Однако существуют и другие виды интерпретаторов.
Двоичный интерпретатор. Основная идея двоичного интерпретатора — получение на выходе нейронной сети двоичного кода номера класса. Это достигается двухэтапной интерпретацией:
1. Каждый выходной сигнал нейронной сети интерпретируется как 1, если он больше (a+b)/2, и как 0 в противном случае.
2. Полученная последовательность нулей и единиц интерпретируется как двоичное число.
Двоичный интерпретатор позволяет интерпретировать N выходных сигналов нейронной сети как номер одного из 2N классов.
Порядковый интерпретатор. Порядковый интерпретатор кодирует номер класса подстановкой. Отсортируем вектор выходных сигналов по возрастанию. Вектор, составленный из номеров нейронов последовательно расположенных в отсортированном векторе выходных сигналов, будет подстановкой. Если каждой подстановке приписать номер класса, то такой интерпретатор может закодировать N! классов используя N выходных сигналов.
Уровень уверенности
Часто при решении задач классификации с использованием нейронных сетей недостаточно простого ответа «входной вектор принадлежит K-му классу». Хотелось бы также оценить уровень уверенности в этом ответе. Для различных интерпретаторов вопрос определения уровня уверенности решается по-разному. Однако, необходимо учесть, что от нейронной сети нельзя требовать больше того, чему ее обучили. В этом разделе будет рассмотрен вопрос об определении уровня уверенности для нескольких интерпретаторов, а в следующем будет показано, как построить оценку так, чтобы нейронная сеть позволяла его определить.
1. Кодирование номером канала. Знаковый интерпретатор. Знаковый интерпретатор работает в два этапа.
1. Каждый выходной сигнал нейронной сети интерпретируется как 1, если он больше (a+b)/2, и как 0 в противном случае.
2. Если в полученном векторе только одна единица, то номером класса считается номер нейрона, сигнал которого интерпретирован как 1. В противном случае ответом считается неопределенный номер класса (ответ «не знаю»).
Для того чтобы ввести уровень уверенности для этого интерпретатора потребуем, чтобы при обучении сети для всех примеров было верно неравенство: |-(a+b)/2|≤ε, где i=1,…,N; αi — i-ый выходной сигнал. e — уровень надежности (насколько сильно сигналы должны быть отделены от (a+b)/2 при обучении). В этом случае уровень уверенности R определяется следующим образом:
Таким образом, при определенном ответе уровень уверенности показывает, насколько ответ далек от неопределенного, а в случае неопределенного ответа — насколько он далек от определенного.
2. Кодирование номером канала. Максимальный интерпретатор. Максимальный интерпретатор в качестве номера класса выдает номер нейрона, выдавшего максимальный сигнал. Для такого интерпретатора в качестве уровня уверенности естественно использовать некоторую функцию от разности между максимальным и вторым по величине сигналами. Для этого потребуем, чтобы при обучении для всех примеров обучающего множества разность между максимальным и вторым по величине сигналами была не меньше уровня надежности e. В этом случае уровень уверенности вычисляется по следующей формуле: R=max{1,(αi-αj)/e}, где αi — максимальный, а αj — второй по величине сигналы.
3. Двоичный интерпретатор. Уровень надежности для двоичного интерпретатора вводится так же, как и для знакового интерпретатора при кодировании номером канала.
4. Порядковый интерпретатор. При использовании порядкового интерпретатора в качестве уровня уверенности естественно брать функцию от разности двух соседних сигналов в упорядоченном по возрастанию векторе выходных сигналов. Для этого потребуем, чтобы при обучении для всех примеров обучающего множества в упорядоченном по возрастанию векторе выходных сигналов разность между двумя соседними элементами была не меньше уровня надежности e. В этом случае уровень уверенности можно вычислить по формуле , причем вектор выходных сигналов предполагается отсортированным по возрастанию.
В заключение заметим, что для ответа типа число, ввести уровень уверенности подобным образом невозможно. Пожалуй, единственным способом оценки достоверности результата является консилиум нескольких сетей — если несколько сетей обучены решению одной и той же задачи, то в качестве ответа можно выбрать среднее значение, а по отклонению ответов от среднего можно оценить достоверность результата.