- •Нейронные сети в пакете matlab План
- •Введение
- •Модель нейрона
- •Модель нейронной сети
- •Персептроны
- •Адаптивные линейные фильтры
- •Обратное распространение
- •Другие типы сетей Радиально базисные сети
- •Самоорганизующиеся сети
- •Квантизация обучающих векторов (lvq)
- •Рекуррентные сети
- •Сети Элмана
- •Сети Хопфилда
- •Создание пользовательских расширений
- •Литература:
Другие типы сетей Радиально базисные сети
Сети с обратным распространением ошибки являются обобщенным решением, которое можно использовать для различных задач. Однако зачастую, характеристики задачи, которую предстоит решить, уже известны и не имеет смысла тратить время на обучение сети общего вида.
В этом случае можно использовать радиально-базисные сети. Основное их отличие от других сетей заключается в том, что сеть не обучается, подстраиваясь под конкретную задачу, а создается непосредственно для определенного применения. Радиально-базисные сети могут потребовать большего количества нейронов, чем сети использующие обратное распространение ошибки, но могут быть созданы за меньшее время, чем требуется на обучение алгоритмом обратного распространения.
Пример аппроксимации функции с использованием радиально-базисной сети приведен на следующем рисунке.

Рисунок 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);
Функционирует она подобно рассмотренным ранее сетям, за исключением того, что на выходе получается сигнал только у нейрона, соответствующего наиболее возбужденному нейрону первого слоя. Весовая матрица второго слоя также равна целевому вектору, что приводит к тому, что во втором слое возбуждаются лишь нейроны, связанные с возбужденными нейронами первого слоя (соответствие один к одному). Выигрывает тот, чей нейрон первого слоя имел больший сигнал.
