Самоорганизующиеся карты Кохонена. Часть 2.

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

Нейронные сети Кохонена. Часть 1

Итак, приступаем к делу… 😉

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

Рассмотрим сеть, имеющую 2 входных элемента и 25 выходных.

Пример сети Кохонена

Зададим для каждого кластера веса связей равными некоторым значениям, близким к 0.5. Как мы обсуждали в предыдущей статье весовые значения являются координатами кластеров, а поскольку в данном случае мы имеем две координаты, то есть двумерное пространство, то мы легко можем изобразить все кластеры на графике:

Значения весов связей

Пусть обучающие данные будут сгенерированы случайным образом в диапазоне от 0 до 1:

Данные для обучение сети Кохонена

Итак, у нас есть сеть, есть начальные значения коэффициентов связей, есть обучающая последовательность, так давайте же проведем обучение =) В отличие от обучения с учителем при обучении сети Кохонена обучающая выборка подается на вход не один, а много раз. Один полный проход обучающей выборки называют эпохой. Вот так может выглядеть наша сеть после 20-30 эпох обучения (я соединил линиями соседние кластеры):

Обучение

Как видите сеть «растягивается». Продолжим обучение, и после 200 эпох сеть может принять следующий вид:

Сеть после обучения

В итоге получаем довольно-таки упорядоченное расположение нейронов. Это объясняется тем, что входные элементы мы взяли случайным образом и они более менее равномерно распределены в квадрате, соответствующем координатам от 0 до 1. Естественно, на практике мы вряд ли получили бы такой идеальный вариант, но суть процесса обучения этот пример описывает очень хорошо ) Для достижения «идеальности» при реальном обучении необходимо очень удачно выбрать начальные веса связей, которые мы в нашем теоретическом примере задали случайным образом.

На самом деле рассмотренная сеть не очень подходит для решения реальных задач, поскольку в большинстве случаев при использовании карт Кохонена стремятся получить более простую характеристику данных, чем изначальная. То есть число выходных элементов выбирают меньшим, чем число входных признаков.

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

Пусть у нас есть сеть, принимающая на вход 20 признаков, а выходные нейроны представляют собой сеть 12*16, как на этом рисунке: Пример карт Кохонена

Левая часть изображения представляет собой входную карту для одного из признаков. Желтый и красный цвета соответствуют максимальным значениям признака, а синий — минимальным. Исходя из картинки мы можем сделать вывод, что входные элементы, имеющие значения исследуемого признака близкие к максимальному будут отнесены к кластерам, находящимся в правом верхнем углу.

Такие входные карты можно построить для любого из 20 входных признаков.

Правая часть картинки — выходная карта, то есть наша сеть определила, что изначальные кластеры (12*16 штук) можно объединить так, как указано на изображении. То есть в итоге мы получим 7 различных групп, к которым могут быть отнесены подаваемые на вход элементы. Возможно, на первый взгляд, все это кажется довольно-таки непонятным, а может и бессмысленным, но на самом деле все это устроено очень логично и красиво =)

На этой ноте мы заканчиваем сегодняшнюю статью, надеюсь, что мне удалось раскрыть тему самоорганизующихся карт Кохонена, так что до скорых встреч!

Понравилась статья? Поделись с друзьями!

Самоорганизующиеся карты Кохонена. Часть 2.: 2 комментария
  1. Возможно, стоит указывать, какие средства использовались для построения графиков. Или это всё одна программа?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *