Нейронные сети

Автор работы: Пользователь скрыл имя, 25 Февраля 2013 в 20:03, реферат

Описание работы

Нейронные сети Кохонена — класс нейронных сетей, основным элементом которых является слой Кохонена. Слой Кохонена состоит из адаптивных линейных сумматоров («линейных формальных нейронов»). Как правило, выходные сигналы слоя Кохонена обрабатываются по правилу «победитель забирает всё»: наибольший сигнал превращается в единичный, остальные обращаются в ноль.

Файлы: 1 файл

Нейронные сети Кохонена.doc

— 40.50 Кб (Скачать файл)

Нейронные сети Кохонена — класс  нейронных сетей, основным элементом  которых является слой Кохонена. Слой Кохонена состоит из адаптивных линейных сумматоров («линейных формальных нейронов»). Как правило, выходные сигналы слоя Кохонена обрабатываются по правилу «победитель забирает всё»: наибольший сигнал превращается в единичный, остальные обращаются в ноль.

 

По способам настройки входных  весов сумматоров и по решаемым задачам  различают много разновидностей сетей Кохонена.[1] Наиболее известные  из них:

Сети векторного квантования сигналов[2], тесно связанные с простейшим базовым алгоритмом кластерного анализа (метод динамических ядер или K-средних, то есть K-means)

Самоорганизующиеся карты Кохонена (Self-Organising Maps, SOM)[3]

Сети векторного квантования, обучаемые с учителем (Learning Vector Quantization)

Базовая версия

 

Слой Кохонена состоит из некоторого количества n параллельно действующих  линейных элементов. Все они имеют  одинаковое число входов m и получают на свои входы один и тот же вектор входных сигналов x = (x1,...xm). На выходе jго линейного элемента получаем сигнал

 

 

где wji — весовой коэффициент iго входа jго нейрона, wj0 — пороговый  коэффициент.

 

После прохождения слоя линейных элементов  сигналы посылаются на обработку  по правилу «победитель забирает всё»: среди выходных сигналов yj ищется максимальный; его номер jmax = argmaxj{yj}. Окончательно, на выходе сигнал с номером jmax равен единице, остальные — нулю. Если максимум одновременно достигается для нескольких jmax, то либо принимают все соответствующие сигналы равными единице, либо только первый в списке (по соглашению). «Нейроны Кохонена можно воспринимать как набор электрических лампочек, так что для любого входного вектора загорается одна из них.»

Большое распространение получили слои Кохонена, построенные следующим образом: каждому (jму) нейрону сопоставляется точка Wj = (wj1,...wjm) в m-мерном пространстве (пространстве сигналов). Для входного вектора x = (x1,...xm) вычисляются его евклидовы расстояния ρj(x) до точек Wj и «ближайший получает всё» — тот нейрон, для которого это расстояние минимально, выдаёт единицу, остальные — нули. Следует заметить, что для сравнения расстояний достаточно вычислять линейную функцию сигнала:

 

 

(здесь  - Евклидова длина вектора: ). Последнее слагаемое  одинаково для всех нейронов, поэтому для нахождения ближайшей точки оно не нужно. Задача сводится к поиску номера наибольшего из значений линейных функций:

 

 

Таким образом, координаты точки Wj = (wj1,...wjm) совпадают с весами линейного  нейрона слоя Кохонена (при этом значение порогового коэффициента ).

 

Если заданы точки Wj = (wj1,...wjm), то m-мерное пространство разбивается на соответствующие  многогранники Вороного-Дирихле Vj: многогранник Vj состоит из точек, которые  ближе к Wj, чем к другим Wk ().

Задача векторного квантования с k кодовыми векторами Wj для заданной совокупности входных векторов S ставится как задача минимизации искажения при кодировании, то есть при замещении каждого вектора из S соответствующим кодовым вектором. В базовом варианте сетей Кохонена используется метод наименьших квадратов и искажение D вычисляется по формуле

 

 

где Kj состоит из тех точек , которые  ближе к Wj, чем к другим Wl (). Другими  словами, Kj состоит из тех точек , которые кодируются кодовым вектором Wj.

 

Если совокупность S задана и хранится в памяти, то стандартным выбором в обучении соответствующей сети Кохонена является метод K-средних. Это метод расщепления:

при данном выборе кодовых векторов (они же весовые векторы сети) Wj минимизацией D находим множества Kj — они состоит из тех точек , которые ближе к Wj, чем к другим Wl;

при данном разбиении S на множества Kj минимизацией D находим оптимальные  позиции кодовых векторов Wj — для оценки по методу наименьших квадратов это просто средние арифметические:

 

 

где | Kj |  — число элементов  в Kj.

 

Далее итерируем. Этот метод расщепления  сходится за конечное число шагов  и даёт локальный минимум искажения.

 

Если же, например, совокупность S заранее не задана, или по каким-либо причинам не хранится в памяти, то широко используется онлайн метод. Векторы входных сигналов x обрабатываются по одному, для каждого из них находится ближайший кодовый вектор («победитель», который «забирает всё») Wj(x). После этого данный кодовый вектор пересчитывается по формуле

 

 

где  — шаг обучения. Остальные  кодовые векторы на этом шаге не изменяются.

 

Для обеспечения стабильности используется онлайн метод с затухающей скоростью  обучения: если T — количество шагов обучения, то полагают θ = θ(T). Функцию θ(T) > 0 выбирают таким образом, чтобы  монотонно при  и чтобы ряд  расходился, например, θ(T) = θ0 / T.

 

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

Решается задача классификации. Число  классов может быть любым. Изложим  алгоритм для двух классов,  и . Исходно  для обучения системы поступают  данные, класс которых известен. Задача: найти для класса  некоторое  количество  кодовых векторов , а  для класса  некоторое (возможно другое) количество  кодовых векторов  таким образом, чтобы итоговая сеть Кохонена с  кодовыми векторами ,  (объединяем оба семейства) осуществляла классификацию по следующему решающему правилу:

если для вектора входных  сигналов x ближайший кодовый вектор («победитель», который в слое Кохонена «забирает всё») принадлежит семейству , то x принадлежит классу ; если же ближайший к x кодовый вектор принадлежит семейству , то x принадлежит классу .

 

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

 

Правила обучения сети онлайн строится на основе базового правила обучения сети векторного квантования. Пусть  на вход системы подаётся вектор сигналов x, класс которого известен. Если он классифицируется системой правильно, то соответствующий x кодовый вектор Wслегка сдвигается в сторону вектора сигнала («поощрение»)

Wnew = Wold(1 − θ) + xθ,

 

Если же x классифицируется неправильно, то соответствующий x кодовый вектор Wслегка сдвигается в противоположную сторону от сигнала («наказание»)

Wnew = Wold(1 + θ) − xθ,

 

где  — шаг обучения. Для обеспечения  стабильности используется онлайн метод  с затухающей скоростью обучения. Возможно также использование разных шагов для «поощрения» правильного решения и для «наказания» неправильного

 

Это — простейшая (базовая) версия метода[15]. Существует множество других модификаций..


Информация о работе Нейронные сети