Персептрон Розенблатта - Функциональные модели универсального нейрокомпьютера
Персептрон Розенблатта [147, 185] является исторически первой обучаемой нейронной сетью. Существует несколько версий персептрона. Рассмотрим классический персептрон - сеть с пороговыми нейронами и входными сигналами, равными нулю или единице. Опираясь на результаты, изложенные в работе [147] можно ввести следующие ограничения на структуру сети.
Все синаптические веса могут быть целыми числами.
Многослойный персептрон по своим возможностям эквивалентен двухслойному. Все нейроны имеют синапс, на который подается постоянный единичный сигнал. Вес этого синапса далее будем называть порогом. Каждый нейрон первого слоя имеет единичные синаптические веса на всех связях, ведущих от входных сигналов, и его порог равен числу входных сигналов сумматора, уменьшенному на два и взятому со знаком минус.
Таким образом, можно ограничиться рассмотрением только двухслойных персептронов с не обучаемым первым слоем. Заметим, что для построения полного первого слоя пришлось бы использовать нейронов, где n - число входных сигналов персептрона. На рис. 19а приведена схема полного персептрона для трехмерного вектора входных сигналов. Поскольку построение такой сети при достаточно большом n невозможно, то обычно используют некоторое подмножество нейронов первого слоя. К сожалению, только полностью решив задачу можно точно указать необходимое подмножество. Обычно используемое подмножество выбирается исследователем из каких-то содержательных соображений или случайно.
Рис. 19. Персептрон Розенблатта. Прямое и обратное функционирование второго слоя персептрона
Розенблатта.
Классический алгоритм обучения персептрона является частным случаем правила Хебба. Поскольку веса связей первого слоя персептрона являются не обучаемыми, веса нейрона второго слоя в дальнейшем будем называть просто весами. Будем считать, что при предъявлении примера первого класса персептрон должен выдать на выходе нулевой сигнал, а при предъявлении примера второго класса - единичный. Ниже приведено описание алгоритма обучения персептрона.
- 1. Полагаем все веса равными нулю. 2. Проводим цикл предъявления примеров. Для каждого примера выполняется следующая процедура. 2.1. Если сеть выдала правильный ответ, то переходим к шагу 2.4. 2.2. Если на выходе персептрона ожидалась единица, а был получен ноль, то веса связей, по которым прошел единичный сигнал, уменьшаем на единицу. 2.3. Если на выходе персептрона ожидался ноль, а была получена единица, то веса связей, по которым прошел единичный сигнал, увеличиваем на единицу. 2.4. Переходим к следующему примеру. Если достигнут конец обучающего множества, то переходим к шагу 3, иначе возвращаемся на шаг 2.1. 3. Если в ходе выполнения второго шага алгоритма хоть один раз выполнялся шаг 2.2 или 2.3 и не произошло зацикливания, то переходим к шагу 2. В противном случае обучение завершено.
В этом алгоритме не предусмотрен механизм отслеживания зацикливания обучения. Этот механизм можно реализовывать по разному. Наиболее экономный в смысле использования дополнительной памяти имеет следующий вид.
K=1; m=0. Запоминаем веса связей.
После цикла предъявлений образов сравниваем веса связей с запомненными. Если текущие веса совпали с запомненными, то произошло зацикливание. В противном случае переходим к шагу 3.
M=m+1. Если m<k, то переходим ко второму шагу.
K=2k; m=0. Запоминаем веса связей и переходим к шагу 2.
Поскольку длина цикла конечна, то при достаточно большом k зацикливание будет обнаружено.
Для использования в обучении сети обратного функционирования, необходимо переписать второй шаг алгоритма обучения в следующем виде.
- 2. Проводим цикл предъявления примеров. Для каждого примера выполняется следующая процедура. 2.1. Если сеть выдала правильный ответ, то переходим к шагу 2.5. 2.2. Если на выходе персептрона ожидалась единица, а был получен ноль, то на выход сети при обратном функционировании подаем. 2.3. Если на выходе персептрона ожидался ноль, а была получена единица, то на выход сети при обратном функционировании подаем. 2.4. Проводим шаг обучения с единичными параметрами. 2.5. Переходим к следующему примеру. Если достигнут конец обучающего множества, то переходим к шагу 3, иначе возвращаемся на шаг 2.1.
На рис. 19в приведена схема обратного функционирования нейрона второго слоя персептрона. Учитывая, что величины входных сигналов этого нейрона равны нулю или единице, получаем эквивалентность модифицированного алгоритма исходному. Отметим также, что при обучении персептрона впервые встретились не обучаемые параметры - веса связей первого слоя.
Похожие статьи
-
Правила остановки работы сети - Функциональные модели универсального нейрокомпьютера
При использовании сетей прямого распространения (сетей без циклов) вопроса об остановке сети не возникает. Действительно, сигналы поступают на элементы...
-
Контрастирование и нормализация сети - Функциональные модели универсального нейрокомпьютера
В последние годы широкое распространение получили различные методы контрастирования или скелетонизации нейронных сетей. В ходе процедуры контрастирования...
-
Поскольку в точке ветвления не происходит преобразования сигнала, то константа Липшица для нее равна единице. Сумматор Производная суммы по любому из...
-
Компонент задачник является необходимой частью нейрокомпьютера вне зависимости от типа применяемых в нем нейронных сетей. Однако в зависимости от...
-
Запросы к компоненту сеть - Функциональные модели универсального нейрокомпьютера
В данном разделе главы рассмотрены все запросы, исполняемые комп Онентом сеть. Прежде чем приступать к описанию стандарта запросов компонента сеть...
-
Сигналы и параметры - Функциональные модели универсального нейрокомпьютера
При использовании контрастирования для изменения структуры сети и значений обучаемых параметров другим компонентам бывает необходим прямой доступ к...
-
Элементы самодвойственных сетей - Функциональные модели универсального нейрокомпьютера
Если при обратном функционировании самодвойственной сети на ее выход подать производные некоторой функции F по выходным сигналам сети, то в ходе...
-
Функционирование сети - Функциональные модели универсального нейрокомпьютера
Таблица 1 Однородные и неоднородные сумматоры Название Однородный сумматор Неоднородный сумматор Обозначение Значение Обозначение Значение Обычный ?...
-
Рис. 11. Прямое (а) и обратное (б) функционирование нелинейного сигмоидного преобразователя Нелинейный сигмоидный преобразователь или сигмоидный элемент...
-
Впервые последовательное описание конструирования нейронных с Етей из элементов было предложено в книге А. Н. Горбаня [65]. Однако за прошедшее время...
-
Как уже отмечалось в разделе "Различимость входных данных" числовые сигналы рекомендуется масштабировать и сдвигать так, чтобы весь диапазон значений...
-
Установить параметры сети (nwSetData) - Функциональные модели универсального нейрокомпьютера
Описание запроса: Pascal: Function nwSetData(Net : PString; DataType : Integer; Var Data : RealArray) : Logic; C: Logic nwSetData(PString Net, Integer...
-
В этом разделе намеренно допущено отступление от общей методики - не смешивать разные компоненты. Это сделано для облегчения демонстрации построения...
-
Предобработчик - Функциональные модели универсального нейрокомпьютера
Данная глава посвящена компоненту предобработчик [80, 150]. В ней рассматриваются различные аспекты предобработки входных данных для нейронных сетей....
-
Построение оценки по интерпретатору - Функциональные модели универсального нейрокомпьютера
Если в качестве ответа нейронная сеть должна выдать число, то естественной оценкой является квадрат разности выданного сетью выходного сигнала и...
-
Уровень уверенности - Функциональные модели универсального нейрокомпьютера
Часто при решении задач классификации с использованием нейронных сетей недостаточно простого ответа "входной вектор принадлежит k-му классу". Хотелось бы...
-
Запросы к задачнику - Функциональные модели универсального нейрокомпьютера
Запросы к задачнику позволяют последовательно перебирать все примеры обучающей выборки, обращаться непосредственно к любому примеру задачника и изменять...
-
Составной предобработчик - Функциональные модели универсального нейрокомпьютера
Поскольку на вход нейронной сети обычно подается несколько входных сигналов, каждый из которых обрабатывается своим предобработчиком, то предобработчик...
-
Сокращение описания сети - Функциональные модели универсального нейрокомпьютера
Предложенный в предыдущих разделах язык описания многословен. В большинстве случаев за счет хорошей структуризации сети можно опу Стить все разделы...
-
Описание алгоритмов обучения - Функциональные модели универсального нейрокомпьютера
Все алгоритмы обучения сетей методом обратного распространения ошибки опираются на способность сети вычислять градиент функции ошибки по обучающим...
-
В данном разделе описаны запросы исполнителя с алгоритмами их исполнения. При описании запросов используется аргумент Instruct, являющийся целым числом,...
-
Язык описания нейронных сетей предназначен для хранения сетей на диске. Следует отметить, что в отличии от таких компонентов, как предобработчик входных...
-
Описание нейронных сетей - Функциональные модели универсального нейрокомпьютера
В первой части этой главы описана система построения сетей из элементов. Описаны прямое и обратное функционирование сетей и составляющих их элементов....
-
Единственный запрос первой группы выполняет основную функцию компонента предобработчик - предобрабатывает входные данные, вычисляя вектор входных...
-
Составные элементы - Функциональные модели универсального нейрокомпьютера
Название "составные элементы" противоречит определению элементов. Это противоречие объясняется соображениями удобства работы. Введение составных...
-
Следующий (Next) - Функциональные модели универсального нейрокомпьютера
Описание запроса: Pascal: Function Next( Handle : Integer ) : Logic; C: Logic Next(Integer Handle) Описание аргументов: Handle - номер сеанса. Назначение...
-
В этом разделе описаны все запросы, выполняемые компонентом задачник в виде процедур и функций. При описании используется синтаксис языков Object Pascal...
-
В данный раздел помещены запросы для работы с цветами. Отметим, что цвет примера, возвращаемый запросом GetColor можно получить также с помощью запроса...
-
К данной группе запросов относятся запросы позволяющие получать данные из задачника, заносить данные в задачник и сбросить предобработку (необходимо...
-
Описание запроса: Pascal: Function ModifyMask( Net : PString; Tipe : Integer; NewMask: PLogicArray ) : Logic; C: Logic Modify(PString Net, Integer Tipe,...
-
14.6.1. Если в аргументе Instruct не установлен бит Interpret, то генерируется запрос к задачнику Get с аргументами Handle, AnsArray, tbAnswers (Получает...
-
Выполнить обратное Функционирование (Back) - Функциональные модели универсального нейрокомпьютера
Описание запроса: Pascal: Function Back( Net : PString; BackOutSignals : PRealArray) : Logic; C: Logic Back(PString Net, PRealArray BackOutSignals)...
-
Исполнитель, Описание компонента исполнитель - Функциональные модели универсального нейрокомпьютера
Описание компонента исполнитель Компонент исполнитель является служебным. Это означает, что он универсален и невидим для пользователя. В отличие от всех...
-
Оценить массив сигналов (Estimate) - Функциональные модели универсального нейрокомпьютера
Описание запроса: Pascal: Function Estimate( EstName : PString; Signals, Back, Answers, Reliability: PRealArray; Direv : Logic; Var Estim : Real ) :...
-
Единственный запрос первой группы выполняет основную функцию компонента интерпретатор ответа - интерпретирует массив сигналов. Интерпретировать массив...
-
Описание запроса: Pascal: Function Last( Handle : Integer ) : Logic; C: Logic Last(Integer Handle) Описание аргументов: Handle - номер сеанса. Назначение...
-
Предыдущий (Prev) - Функциональные модели универсального нейрокомпьютера
Описание запроса: Pascal: Function Prev( Handle : Integer ): Logic; C: Logic Prev(Integer Handle) Описание аргументов: Handle - номер сеанса. Назначение...
-
Нормализовать сеть (NormalizeNet) - Функциональные модели универсального нейрокомпьютера
Описание запроса: Pascal: Function NormalizeNet(Net : PString) : Logic; C: Logic NormalizeNet(PString Net) Описание аргумента: Net - указатель на строку...
-
Запросы на изменение параметров - Функциональные модели универсального нейрокомпьютера
К группе запросов на изменение параметров относятся три запроса: XxGetData - получить параметры структурной единицы. xxGetName - получить названия...
-
Описание запроса: Pascal: Function RandomDirection( Net : PString; Range : Real ) : Logic; C: Logic RandomDirection(PString Net, Real Range) Описание...
Персептрон Розенблатта - Функциональные модели универсального нейрокомпьютера