Е. Миркес - Учебное пособие по курсу «Нейроинформатика»
Данная программа предусматривает два различных способа оценивания решения. Различие в способах оценки связано с различием требований, накладываемых на обученную сеть. Пусть пример относится к N-ой задаче. Тогда требования можно записать так:
Метод наименьших квадратов (Программа Pade)
N-ый нейрон должен выдать на выходе 1.
Остальные нейроны должны давать на выходе 0 (как можно более близкое к 0 число).
Метод наименьших квадратов (Программы Sigmoid и Sinus).
N-ый нейрон должен выдать на выходе 1 (поскольку сигнал 1 для нейрона невозможен (см. Нейрон), то число как можно более близкое к 1).
Остальные нейроны должны давать на выходе –1 (как можно более близкое к –1 число).
Расстояние до множества
В этом случае требование только одно — разница между выходным сигналом N-го нейрона и выходными сигналами остальных нейронов должна быть не меньше уровня надежности.
Таким образом, для Метода наименьших квадратов оценка примера N-ой задачи равна
H = (Сумма по I<>N от 1 до 5 (A[I]+1)^2)) + (A[N]-1)^2
и является обычным Евклидовым расстоянием от правильного ответа до ответа, выданного сетью.
Как следует из названия второго метода оценивания, вычисляемая по этому способу оценка равна расстоянию от выданного сетью ответа до множества правильных ответов. Множество правильных ответов для примера N-ой задачи задается неравенствами
A[N]-R > A[I], для всех I<>N.
Предобработка входных данныхВсе программы, кроме программы Hopfield.
Входные данные задачи распознавания черно-белых изображений представляют собой последовательность 0 и 1 (есть точка — 1, нет — 0). Такие данные не всегда оптимальны для решения задачи распознавания. В связи с этим возникает задача предобработки данных. Возможны различные виды предобработки — преобразования Фурье, построение различных инвариантов и т. п. В этой программе предусмотрено несколько видов предобработки:
Чистый образ
Сдвиговый автокоррелятор
Автокоррелятор сдвиг+отражение
Автокоррелятор сдвиг+вращение
Автокоррелятор сдвиг+вращение+отражение
В результате предобработки получается не только более информативный вектор входных сигналов, но иногда и вектор меньшей размерности. Кроме того, вектор входных сигналов, полученный предобработкой типа "сдвиговый автокоррелятор" является инвариантным к сдвигу.
Чистый образВсе программы, кроме программы Hopfield.
Это «пустая» предобработка — никакой предобработки не производится.
Сдвиговый автокорреляторВсе программы, кроме программы Hopfield.
Основная идея этого метода предобработки — сделать вектор входных сигналов нейронной сети инвариантным к сдвигу. Другими словами, два вектора, соответствующие одному и тому же образу, расположенному в разных местах шаблона 10*10, после предобработки этим способом должны совпадать! Рассмотрим подробно метод вычисления автокоррелятора. Пусть дано изображение X. x[i,j] — точка изображения в i-ом ряду и j-ом столбце. Будем считать x[i,j]=0, если хотя бы один индекс (i или j) находится вне пределов интервала (1,10). Элемент автокоррелятора A — a[l,k] вычисляется по формуле:
a[l,k] = Сумма по i от 1 до 10 (Сумма по j от 1 до 10 < x[i,j]*x[i+l,j+k] >)
Другими словами, a[l,k] — число точек совпадающих при наложении изображения X на это же, но сдвинутое на вектор (l,k) изображение. Легко заметить, что ненулевыми могут быть только элементы автокоррелятора A с индексами –9<=l,k<=9. Однако a[l,k]=a[-l, –k] Таким образом можно рассматривать только часть коррелятора с индексами –9<=i<=9 и 0<=j<=9. Если Вы задаете размер автокоррелятора m*n, то входными сигналами для сети будут служить элементы a[i,j] при — (n-1)<=i<=(n-1), 0<=j<=m-1.
Автокоррелятор сдвиг+отражениеВсе программы, кроме программы Hopfield.
Этот метод предобработки в качестве исходных данных использует сдвиговый автокоррелятор. Идея вычисления автокоррелятора сдиг+отражение (S) очень проста: Сложим значения, соответствующие симметричным точкам, и будем считать их новыми значениями. s[k,l]=a[k,l]+a[k, –l]. Очевидно, что автокоррелятор S инвариантен относительно сдвига и отражения. Кроме того, можно ограничиться только элементами с неотрицательными индексами. Если Вы задали размеры автокоррелятора m*n, то входными сигналами сети будут s[l,k] при 0<=l<=n-1, 0<=k<=m.
Автокоррелятор сдвиг+вращениеВсе программы, кроме программы Hopfield.
Этот метод предобработки в качестве исходных данных использует сдвиговый автокоррелятор. Идея вычисления автокоррелятора очень проста: поворачиваем автокоррелятор A на 90 градусов относительно элемента a[0,0] и получаем элемент автокоррелятора R умножением соответствующих элементов — r[p,q]=a[p,q]*a[q, –p]. Очевидно, что автокоррелятор R инвариантен относительно сдвига и поворота на 90 градусов. Кроме того, можно ограничиться только элементами с неотрицательными индексами. Если вы задали размеры автокоррелятора m*n, то входными сигналами сети будут s[l,k] при 0<=l<=n-1, 0<=k<=m.
Автокоррелятор сдвиг+вращение+отражениеВсе программы, кроме программы Hopfield.
Этот метод предобработки в качестве исходных данных использует автокоррелятор сдвиг+вращение. Идея вычисления автокоррелятора сдвиг+вращение+отражение (C) очень проста: Сложим значения, соответствующие симметричным точкам, и будем считать их новыми значениями. c[k,l]=r[k,l]+r[k, –l]. Очевидно, что автокоррелятор C инвариантен относительно сдвига, вращения и отражения. Кроме того, можно ограничиться только элементами с неотрицательными индексами. Если вы задали размеры автокоррелятора m*n, то входными сигналами сети будут с[l,k] при 0<=l<=n-1, 0<=k<=m.
Параметры нейронной сетиВсе программы, кроме программы Hopfield.
Этот пункт меню позволяет Вам изменять структуру нейронной сети. Вы можете изменить такие важнейшие параметры сети, как
Число нейронов в сети
Число срабатываний сети
Характеристика нейронов
Число нейронов в сетиВсе программы, кроме программы Hopfield.
Этот пункт меню позволяет Вам изменять число нейронов в сети от 5 до 10. Подробно структура сети и нейрона описана в разделах Нейронная сеть и Нейрон.
Число срабатываний сетиВсе программы, кроме программы Hopfield.
Наиболее широкую известность получили нейронные сети слоистой архитектуры. В таких сетях за время решения примера сигнал только один раз попадает на нейроны каждого слоя. Имитируемая данной программой сеть является полносвязной сетью — каждый нейрон передает сигнал всем другим (в том числе и себе). Однако любую полносвязную сеть можно представить в виде слоистой сети с идентичными слоями. В рамках такого представления число срабатываний сети равно числу слоев нейронной сети, следующих за входным слоем. Число срабатываний сети может изменяться от 1 до 5.
Характеристика нейроновПрограмма Sigmoid
В разделе Нейрон описана структура работы нейрона. В функциональном преобразователе нейрона, работающем по формуле F = R / (C+|R|), присутствует величина С, называемая характеристикой нейрона. Этот пункт меню позволяет Вам изменять эту величину от 0.001 до 5.
ПрограммаSinus не имеет параметра Характеристика нейрона
ПрограммаPade
В разделе Нейрон описана структура работы нейрона. В функциональном преобразователе нейрона, работающем по формуле F = N / (C+D) присутствует величина С, называемая характеристикой нейрона. Этот пункт меню позволяет Вам изменять эту величину в пределах от 0.001 до 5.
Параметры контрастированияПрограмма Hopfield.
Если Вы посмотрите на синаптическую карту (воспользуйтесь клавишей <CTRL-F8> для перехода в режим Редактирования карты), то заметите, что большая часть синаптических весов мала и одинакова по величине. Процедура контрастирования (вызывается нажатием клавиш <CTRL-F6>) позволяет исключить часть связей из функционирования. Вам предлагается два способа исключения «лишних» связей:
Меньше х.ххх все синаптические веса, меньшие числа х.ххх по абсолютной величине устанавливаются равными 0. Число х.ххх должно лежать в интервале от 0 до 1. Дальше хх все синаптические веса связей с нейронами, удаленными от данного более чем на хх устанавливаются равными 0. По этому алгоритму обрабатываются последовательно все нейроны. Расстояние определяется как сумма модулей разности индексов двух нейронов (сумма расстояния по горизонтали и по вертикали). Например, расстояние между вторым нейроном пятой строки и шестым нейроном первой строки равно |2–6|+|5–1|=8. Задаваемый Вами радиус контрастирования хх должен принадлежать интервалу от 1 до 18.Все программы, кроме программы Hopfield.