Скачиваний:
134
Добавлен:
01.05.2014
Размер:
8 Mб
Скачать

Другие типы сетей Радиально базисные сети

Сети с обратным распространением ошибки являются обобщенным решением, которое можно использовать для различных задач. Однако зачастую, характеристики задачи, которую предстоит решить, уже известны и не имеет смысла тратить время на обучение сети общего вида.

В этом случае можно использовать радиально-базисные сети. Основное их отличие от других сетей заключается в том, что сеть не обучается, подстраиваясь под конкретную задачу, а создается непосредственно для определенного применения. Радиально-базисные сети могут потребовать большего количества нейронов, чем сети использующие обратное распространение ошибки, но могут быть созданы за меньшее время, чем требуется на обучение алгоритмом обратного распространения.

Пример аппроксимации функции с использованием радиально-базисной сети приведен на следующем рисунке.

Рисунок 28. Аппроксимация с использованием радиально-базисной сети

(Radial basis approximation)

Модель нейрона радиально базисных сетей отличается от модели нейрона сетей, рассмотренных ранее. Вход передаточной функции определяется как расстояние между векторами входа и весов, умноженное на смещение. Радиально базисный нейрон обнаруживает, когда его входной вектор близок весовому вектору.

Рисунок 26. Радиально-базисный нейрон

Радиально базисная сеть состоит из двух слоев. Первый слой состоит из нейронов, описанных выше, а второй – из нейронов с линейной активационной функцией. Таким образом, нейрон первого слоя выделяет «свой» образ, после чего нейроны второго слоя могут использоваться для группировки этих образов и получения выходного сигнала требуемого значения.

Рисунок 27. Радиально-базисная сеть

Как уже было замечено ранее, создание радиально-базисной сети осуществляется для конкретных целевых векторов и вновь созданная сеть готова к использованию. Для этого используется следующая функция MATALB:

net = newrbe(P, T, SPREAD);

где P –множество входов

T –множество выходов

SPREAD –константа, определяющая значения весов

При этом создается сеть с числом нейронов в скрытом слое равным числу векторов в P и, соответственно, весами этих векторов, равными элементам P, так чтобы каждый нейрон реагировал на собственный вектор. Смещения нейронов скрытого слоя устанавливаются в значение 0.8326/SPREAD. Веса нейронов выходного слоя можно достаточно просто определить, зная желаемый выход сети (T) и получив выход нейронов первого слоя.

Существенным недостатком созданной таким образом сети является то, что число нейронов первого слоя, равное числу элементов в обучающей выборке, может быть весьма велико. Для того чтобы в какой-то мере устранить этот недостаток, MATLABпредлагает функцию, реализующую более экономную процедуру создания сети:

net = newrb(P, T, GOAL, SPREAD);

где P, Tи SPREADимеют то же значение, что и в предыдущем примере, а GOALозначает минимально допустимую ошибку сети.

Эта процедура рассматривает обучающую выборку последовательно и добавляет нейроны только в том случае, если без этого ошибка превысит максимально допустимый уровень.

Существует несколько вариаций радиально базисных сетей, различающихся вторым слоем нейронов, используемых для различных целей – аппроксимации функций, классификации, etc. Приведем здесь схемы и краткое описание для них. Для аппроксимации функций часто используются сети обобщенной регрессии (generalized regression – GRNN). Архитектура этих сетей представлена на следующей схеме:

Рисунок 29. Сети обобщенной регрессии

Сеть этой архитектуры подобна сети, рассмотренной выше, за исключением того, что второй слой осуществляет умножение матрицы весов на выход первого слоя и нормализацию суммой элементов выхода первого слоя. Веса второго слоя устанавливаются в значения целевого вектора. Создание сети осуществляется с помощью функции newgrnn:

net = newgrnn(P,T);

где P –вектор образцов входов

T –вектор образцов выходов

Другая, основанная на радиально-базисных сетях архитектура – это вероятностная сеть. Выглядит она следующим образом:

Рисунок 30. Вероятностная нейронная сеть

Вероятностная нейронная сеть создается с помощью функции newpnn:

net = newpnn(P, T);

Функционирует она подобно рассмотренным ранее сетям, за исключением того, что на выходе получается сигнал только у нейрона, соответствующего наиболее возбужденному нейрону первого слоя. Весовая матрица второго слоя также равна целевому вектору, что приводит к тому, что во втором слое возбуждаются лишь нейроны, связанные с возбужденными нейронами первого слоя (соответствие один к одному). Выигрывает тот, чей нейрон первого слоя имел больший сигнал.

Соседние файлы в папке lecture8