5. Если после первого выполнения шага 3 оказалось, что E2>E1, то уменьшаем шаг S, полагаем E1=E2 и повторяем шаги алгоритма 1–3 и 5 до тех пор, пока не станет E2 При построении метода обучения Вы пользуетесь следующей схемой: Использовать MParTan Да или Нет ↓ ↓ Организация обучения Усредненная Позадачная Задаче номер ↓ Вычисление направления Случайный спуск Градиентный спуск ↓ Метод оценивания Метод наименьших квадратов Расстояние до множества ↓ В данной программе принят способ кодирования ответа номером канала: номер того из пяти ответных нейронов, который выдал на последнем такте функционирования наибольший сигнал, задает номер класса, к которому сеть отнесла предъявленный образ. Оценка, таким образом, может быть вычислена только для задачи, ответ которой известен. Данная программа предусматривает два различных способа оценивания решения. Различие в способах оценки связано с различием требований, накладываемых на обученную сеть. Пусть пример относится к N-ой задаче. Тогда требования можно записать так: Метод наименьших квадратов ( N-ый нейрон должен выдать на выходе 1. Остальные нейроны должны давать на выходе 0 (как можно более близкое к 0 число). Метод наименьших квадратов ( 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. Входные данные задачи распознавания черно-белых изображений представляют собой последовательность 0 и 1 (есть точка — 1, нет — 0). Такие данные не всегда оптимальны для решения задачи распознавания. В связи с этим возникает задача предобработки данных. Возможны различные виды предобработки — преобразования Фурье, построение различных инвариантов и т. п. В этой программе предусмотрено несколько видов предобработки: Автокоррелятор сдвиг+отражение Автокоррелятор сдвиг+вращение+отражение В результате предобработки получается не только более информативный вектор входных сигналов, но иногда и вектор меньшей размерности. Кроме того, вектор входных сигналов, полученный предобработкой типа "сдвиговый автокоррелятор" является инвариантным к сдвигу. Это «пустая» предобработка — никакой предобработки не производится. Основная идея этого метода предобработки — сделать вектор входных сигналов нейронной сети инвариантным к сдвигу. Другими словами, два вектора, соответствующие одному и тому же образу, расположенному в разных местах шаблона 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. Этот метод предобработки в качестве исходных данных использует сдвиговый автокоррелятор. Идея вычисления автокоррелятора сдиг+отражение (S) очень проста: Сложим значения, соответствующие симметричным точкам, и будем считать их новыми значениями. s[k,l]=a[k,l]+a[k, –l]. Очевидно, что автокоррелятор S инвариантен относительно сдвига и отражения. Кроме того, можно ограничиться только элементами с неотрицательными индексами. Если Вы задали размеры автокоррелятора m*n, то входными сигналами сети будут s[l,k] при 0<=l<=n-1, 0<=k<=m. Этот метод предобработки в качестве исходных данных использует сдвиговый автокоррелятор. Идея вычисления автокоррелятора очень проста: поворачиваем автокоррелятор 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. Этот метод предобработки в качестве исходных данных использует автокоррелятор сдвиг+вращение. Идея вычисления автокоррелятора сдвиг+вращение+отражение (C) очень проста: Сложим значения, соответствующие симметричным точкам, и будем считать их новыми значениями. c[k,l]=r[k,l]+r[k, –l]. Очевидно, что автокоррелятор C инвариантен относительно сдвига, вращения и отражения. Кроме того, можно ограничиться только элементами с неотрицательными индексами. Если вы задали размеры автокоррелятора m*n, то входными сигналами сети будут с[l,k] при 0<=l<=n-1, 0<=k<=m. Этот пункт меню позволяет Вам изменять структуру нейронной сети. Вы можете изменить такие важнейшие параметры сети, как Этот пункт меню позволяет Вам изменять число нейронов в сети от 5 до 10. Подробно структура сети и нейрона описана в разделах Нейронная сеть и Нейрон. Наиболее широкую известность получили нейронные сети слоистой архитектуры. В таких сетях за время решения примера сигнал только один раз попадает на нейроны каждого слоя. Имитируемая данной программой сеть является полносвязной сетью — каждый нейрон передает сигнал всем другим (в том числе и себе). Однако любую полносвязную сеть можно представить в виде слоистой сети с идентичными слоями. В рамках такого представления число срабатываний сети равно числу слоев нейронной сети, следующих за входным слоем. Число срабатываний сети может изменяться от 1 до 5. В разделе Нейрон описана структура работы нейрона. В функциональном преобразователе нейрона, работающем по формуле F = R / (C+|R|), присутствует величина С, называемая характеристикой нейрона. Этот пункт меню позволяет Вам изменять эту величину от 0.001 до 5. В разделе Нейрон описана структура работы нейрона. В функциональном преобразователе нейрона, работающем по формуле F = N / (C+D) присутствует величина С, называемая характеристикой нейрона. Этот пункт меню позволяет Вам изменять эту величину в пределах от 0.001 до 5. Если Вы посмотрите на синаптическую карту (воспользуйтесь клавишей Это подменю позволяет Вам определить понятие «лишних» и "медленно обучаемых" связей, а также связей подлежащих возвращению в обучаемое состояние, путем задания следующих параметров процедуры Контрастирования: Количество контрастируемых связей Количество замораживаемых связей Количество размораживаемых связей Число циклов накопления критерия Набор выделенных значений (1/2^n) При накоплении показателей чувствительности для исключения из обучения связей программа позволяет использовать три варианта нормы: Показатель чувствительности связи равен максимуму модуля соответствующего элемента векторов антиградиента по всем циклам накопления критерия. Показатель чувствительности связи равен сумме модулей соответствующего элемента векторов антиградиента по всем циклам накопления критерия. Показатель чувствительности связи равен сумме соответствующего элемента векторов антиградиента по всем циклам накопления критерия. При накоплении показателей чувствительности для включения в обучение связей программа позволяет использовать три варианта нормы: Показатель чувствительности связи равен максимуму модуля соответствующего элемента векторов антиградиента по всем циклам накопления критерия. Показатель чувствительности связи равен сумме модулей соответствующего элемента векторов антиградиента по всем циклам накопления критерия. Показатель чувствительности связи равен сумме соответствующего элемента векторов антиградиента по всем циклам накопления критерия. Этот пункт меню позволяет Вам задать число связей, подлежащих Контрастированию. Этот пункт меню позволяет Вам задать число связей, подлежащих Замораживанию. Этот пункт меню позволяет Вам задать число связей, подлежащих Размораживанию. Этот пункт меню позволяет Вам задать число циклов обучения для накопления показателей чувствительности для процедуры Контрастирования. Процедура контрастирования (вызывается нажатием клавиш Этот пункт меню позволяет Вам увидеть на экране все параметры, задаваемые в меню "Параметры": Параметры сети Параметры метода обучения Параметры контрастирования Количество контрастируемых связей Количество замораживаемых связей Количество размораживаемых связей Число циклов накопления критерия Набор выделенных значений (1/2^n) Методы предобработки Автокоррелятор сдвиг+отражение Автокоррелятор сдвиг+вращение+отражение Кроме того, на экран выводится число тактов функционирования сети уже затраченных на обучение и средняя оценка по обучающему множеству.Меньше х.ххх все синаптические веса, меньшие числа х.ххх по абсолютной величине устанавливаются равными 0. Число х.ххх должно лежать в интервале от 0 до 1. Дальше хх все синаптические веса связей с нейронами, удаленными от данного более чем на хх устанавливаются равными 0. По этому алгоритму обрабатываются последовательно все нейроны. Расстояние определяется как сумма модулей разности индексов двух нейронов (сумма расстояния по горизонтали и по вертикали). Например, расстояние между вторым нейроном пятой строки и шестым нейроном первой строки равно |2–6|+|5–1|=8. Задаваемый Вами радиус контрастирования хх должен принадлежать интервалу от 1 до 18. Параметр Значения 0 0. 1 0, 1. 2 0, ½, 1. 3 0, ¼, 2/4, ¾, 1. 4 0, ⅛, 2/8, ⅜, …, ⅞, 1. 5 0, 1/16, 2/16, …, 15/16, 1. 6 0, 1/32, 2/32, …, 31/32, 1. 7 0, 1/64, 2/64, …, 63/64, 1. 8 0, 1/128, 2/128, …, 127/128, 1. Параметр Значения 0 0. 1 0, ±1. 2 0, ±½, ±1. 3 0, ±¼, ±2/4, ±¾, ±1. 4 0, ±⅛, ±2/8, ±⅜, …, ±⅞, ±1. 5 0, ±1/16, ±2/16, …, ±15/16, ±1. 6 0, ±1/32, ±2/32, …, ±31/32, ±1. 7 0, ±1/64, ±2/64, …, ±63/64, ±1. 8 0, ±1/128, ±2/128, …, ±127/128, ±1.