Самоорганизующаяся карта Кохонена

Поделись знанием:
Перейти к: навигация, поиск

Самоорганизу́ющаяся ка́рта Ко́хонена (англ. Self-organizing map — SOM) — нейронная сеть с обучением без учителя, выполняющая задачу визуализации и кластеризации. Идея сети предложена финским учёным Т. Кохоненом. Является методом проецирования многомерного пространства в пространство с более низкой размерностью (чаще всего, двумерное), применяется также для решения задач моделирования, прогнозирования и др. Является одной из версий нейронных сетей Кохонена.

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





История

Метод был предложен финским учёным Теуво Кохоненом в 1984 году. Существует множество модификаций исходной модели.

Структура сети

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

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

В результате работы алгоритма получаются следующие карты:
карта входов нейронов — визуализирует внутреннюю структуру входных данных путём подстройки весов нейронов карты. Обычно используется несколько карт входов, каждая из которых отображает один из них и раскрашивается в зависимости от веса нейрона. На одной из карт определенным цветом обозначают область, в которую включаются приблизительно одинаковые входы для анализируемых примеров.
карта выходов нейронов — визуализирует модель взаимного расположения входных примеров. Очерченные области на карте представляют собой кластеры, состоящие из нейронов со схожими значениями выходов.
специальные карты — это карта кластеров, полученных в результате применения алгоритма самоорганизующейся карты Кохонена, а также другие карты, которые их характеризуют.[2]

Работа сети

  • Инициализация карты, то есть первоначальное задание векторов веса для узлов.
  • Цикл:
    • Выбор следующего наблюдения (вектора из множества входных данных).
    • Нахождение для него лучшей единицы соответствия (best matching unit, BMU, или Winner) — узла на карте, вектор веса которого меньше всего отличается от наблюдения (в метрике, задаваемой аналитиком, чаще всего, евклидовой).
    • Определение количества соседей BMU и обучение — изменение векторов веса BMU и его соседей с целью их приближения к наблюдению.
    • Определение ошибки карты.

Алгоритм

  • Инициализация

Наиболее распространены три способа задания первоначальных весов узлов:

    • Задание всех координат случайными числами.
    • Присваивание вектору веса значение случайного наблюдения из входных данных.
    • Выбор векторов веса из линейного пространства, натянутого на главные компоненты набора входных данных.
  • Цикл

Пусть <math>t</math> — номер итерации (инициализация соответствует номеру 0).

    • Выбрать произвольное наблюдение <math>x(t)</math> из множества входных данных.
    • Найти расстояния от него до векторов веса всех узлов карты и определить ближайший по весу узел <math>M_c(t)</math>. Это — BMU или Winner. Условие на <math>M_c(t)</math>:
<math> \| x(t)-m_c(t)\|\leq\| x(t)-m_i(t)\|</math>,
для любого <math> m_i(t)</math>, где <math>m_i(t)</math> — вектор веса узла <math>M_i(t)</math>. Если находится несколько узлов, удовлетворяющих условию, BMU выбирается случайным образом среди них.
    • Определить с помощью функции <math>h</math> (функции соседства) соседей <math>M_c</math> и изменение их векторов веса.
      • Задание <math>h</math>
Функция определяет «меру соседства» узлов <math>M_i</math> и <math>M_c</math> и изменение векторов веса. Она должна постепенно уточнять их значения, сначала у большего количества узлов и сильнее, потом у меньшего и слабее. Часто в качестве функции соседства используется гауссовская функция:
<math>h_{ci}(t)=\alpha(t)\cdot\exp(-\frac{\|r_c-r_i\|^2}{2\sigma^2(t)})</math>
где <math>0<\alpha(t)<1</math> — обучающий сомножитель, монотонно убывающий с каждой последующей итерацией (то есть определяющий приближение значения векторов веса BMU и его соседей к наблюдению; чем больше шаг, тем меньше уточнение);
<math>r_i</math>, <math>r_c</math> — координаты узлов <math>M_i(t)</math> и <math>M_c(t)</math> на карте;
<math>\sigma(t)</math> — сомножитель, уменьшающий количество соседей с итерациями, монотонно убывает.
Параметры <math>\alpha</math>, <math>\sigma</math> и их характер убывания задаются аналитиком.
Более простой способ задания функции соседства:
<math>h_{ci}(t)=\alpha(t)</math>,
если <math>M_i(t)</math> находится в окрестности <math>M_c(t)</math> заранее заданного аналитиком радиуса, и 0 в противном случае.
Функция <math>h(t)</math> равна <math>\alpha(t)</math> для BMU и уменьшается с удалением от BMU.
      • Изменение векторов веса
Изменить вектор веса по формуле:
<math>m_i(t)=m_i(t-1)+h_{ci}(t)\cdot(x(t)-m_i(t-1))</math>
Т.о. вектора веса всех узлов, являющихся соседями BMU, приближаются к рассматриваемому наблюдению.
    • Вычисление ошибки карты
Например, как среднее арифметическое расстояний между наблюдениями и векторами веса соответствующих им BMU:
<math>\frac{1}{N}\sum_{i=1}^{N}\|x_{i}-m_{c}\|</math>,
где N — количество элементов набора входных данных.

Особенности модели

Устойчивость к зашумленным данным, быстрое и неуправляемое обучение, возможность упрощения многомерных входных данных с помощью визуализации.[3]

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

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

См. также

Напишите отзыв о статье "Самоорганизующаяся карта Кохонена"

Примечания

Литература

  • T. Kohonen, Self-Organizing Maps (Third Extended Edition), New York, 2001, 501 pages. ISBN 3-540-67921-9
  • Дебок Г., Кохонен Т. Анализ финансовых данных с помощью самоорганизующихся карт, Альпина Паблишер, 2001, 317 стр. ISBN 5-89684-013-6
  • Зиновьев А. Ю. [pca.narod.ru/ZINANN.htm Визуализация многомерных данных]. — Красноярск: Изд. Красноярского государственного технического университета, 2000. — 180 с.
  • Чубукова И.А. [portal.tpu.ru/departments/kafedra/vt/Disciplines_VT/Data_storehouses/FilesTab/Tab/lections%20data%20mining.pdf Data Mining]. — 2000. — 326 с.
  • Манжула В.Г., Федяшов Д.С. [www.rae.ru/fs/?section=content&op=show_article&article_id=7793644 Нейронные сети Кохонена и нечеткие нейронные сети в интеллектуальном анализе данных]. — 2011.
  • [science-library.at.ua/load/sistemy_iskusstvennogo_intellekta/nechetkie_sistemy_i_nechetkaja_logika/fusion_of_neural_networks_fuzzy_systems_and_genetic_algorithms_industrial_applications/4-1-0-5 Lakhmi C. Jain; N.M. Martin Fusion of Neural Networks, Fuzzy Systems and Genetic Algorithms: Industrial Applications. — CRC Press, CRC Press LLC, 1998]

Ссылки

  • [www.cis.hut.fi/research/som-research/ SOM-Research] на сайте Хельсинкского технического университета
  • [websom.hut.fi/websom/ WEBSOM], a Kohonen network project
  • [www.math.le.ac.uk/people/ag153/homepage/PCA_SOM/PCA_SOM.html PCA, SOM and GSOM: applet], Е. М. Миркес и университет Лейстера. Метод главных компонент, самоорганизующиеся карты и растущие самоорганизующиеся карты. Глава онлайн учебника c программами, позволяющими проводить сравнительные исследования.

Отрывок, характеризующий Самоорганизующаяся карта Кохонена

– Продай лошадь! – крикнул Денисов казаку.
– Изволь, ваше благородие…
Офицеры встали и окружили казаков и пленного француза. Французский драгун был молодой малый, альзасец, говоривший по французски с немецким акцентом. Он задыхался от волнения, лицо его было красно, и, услыхав французский язык, он быстро заговорил с офицерами, обращаясь то к тому, то к другому. Он говорил, что его бы не взяли; что он не виноват в том, что его взяли, а виноват le caporal, который послал его захватить попоны, что он ему говорил, что уже русские там. И ко всякому слову он прибавлял: mais qu'on ne fasse pas de mal a mon petit cheval [Но не обижайте мою лошадку,] и ласкал свою лошадь. Видно было, что он не понимал хорошенько, где он находится. Он то извинялся, что его взяли, то, предполагая перед собою свое начальство, выказывал свою солдатскую исправность и заботливость о службе. Он донес с собой в наш арьергард во всей свежести атмосферу французского войска, которое так чуждо было для нас.
Казаки отдали лошадь за два червонца, и Ростов, теперь, получив деньги, самый богатый из офицеров, купил ее.
– Mais qu'on ne fasse pas de mal a mon petit cheval, – добродушно сказал альзасец Ростову, когда лошадь передана была гусару.
Ростов, улыбаясь, успокоил драгуна и дал ему денег.
– Алё! Алё! – сказал казак, трогая за руку пленного, чтобы он шел дальше.
– Государь! Государь! – вдруг послышалось между гусарами.
Всё побежало, заторопилось, и Ростов увидал сзади по дороге несколько подъезжающих всадников с белыми султанами на шляпах. В одну минуту все были на местах и ждали. Ростов не помнил и не чувствовал, как он добежал до своего места и сел на лошадь. Мгновенно прошло его сожаление о неучастии в деле, его будничное расположение духа в кругу приглядевшихся лиц, мгновенно исчезла всякая мысль о себе: он весь поглощен был чувством счастия, происходящего от близости государя. Он чувствовал себя одною этою близостью вознагражденным за потерю нынешнего дня. Он был счастлив, как любовник, дождавшийся ожидаемого свидания. Не смея оглядываться во фронте и не оглядываясь, он чувствовал восторженным чутьем его приближение. И он чувствовал это не по одному звуку копыт лошадей приближавшейся кавалькады, но он чувствовал это потому, что, по мере приближения, всё светлее, радостнее и значительнее и праздничнее делалось вокруг него. Всё ближе и ближе подвигалось это солнце для Ростова, распространяя вокруг себя лучи кроткого и величественного света, и вот он уже чувствует себя захваченным этими лучами, он слышит его голос – этот ласковый, спокойный, величественный и вместе с тем столь простой голос. Как и должно было быть по чувству Ростова, наступила мертвая тишина, и в этой тишине раздались звуки голоса государя.
– Les huzards de Pavlograd? [Павлоградские гусары?] – вопросительно сказал он.
– La reserve, sire! [Резерв, ваше величество!] – отвечал чей то другой голос, столь человеческий после того нечеловеческого голоса, который сказал: Les huzards de Pavlograd?
Государь поровнялся с Ростовым и остановился. Лицо Александра было еще прекраснее, чем на смотру три дня тому назад. Оно сияло такою веселостью и молодостью, такою невинною молодостью, что напоминало ребяческую четырнадцатилетнюю резвость, и вместе с тем это было всё таки лицо величественного императора. Случайно оглядывая эскадрон, глаза государя встретились с глазами Ростова и не более как на две секунды остановились на них. Понял ли государь, что делалось в душе Ростова (Ростову казалось, что он всё понял), но он посмотрел секунды две своими голубыми глазами в лицо Ростова. (Мягко и кротко лился из них свет.) Потом вдруг он приподнял брови, резким движением ударил левой ногой лошадь и галопом поехал вперед.
Молодой император не мог воздержаться от желания присутствовать при сражении и, несмотря на все представления придворных, в 12 часов, отделившись от 3 й колонны, при которой он следовал, поскакал к авангарду. Еще не доезжая до гусар, несколько адъютантов встретили его с известием о счастливом исходе дела.
Сражение, состоявшее только в том, что захвачен эскадрон французов, было представлено как блестящая победа над французами, и потому государь и вся армия, особенно после того, как не разошелся еще пороховой дым на поле сражения, верили, что французы побеждены и отступают против своей воли. Несколько минут после того, как проехал государь, дивизион павлоградцев потребовали вперед. В самом Вишау, маленьком немецком городке, Ростов еще раз увидал государя. На площади города, на которой была до приезда государя довольно сильная перестрелка, лежало несколько человек убитых и раненых, которых не успели подобрать. Государь, окруженный свитою военных и невоенных, был на рыжей, уже другой, чем на смотру, энглизированной кобыле и, склонившись на бок, грациозным жестом держа золотой лорнет у глаза, смотрел в него на лежащего ничком, без кивера, с окровавленною головою солдата. Солдат раненый был так нечист, груб и гадок, что Ростова оскорбила близость его к государю. Ростов видел, как содрогнулись, как бы от пробежавшего мороза, сутуловатые плечи государя, как левая нога его судорожно стала бить шпорой бок лошади, и как приученная лошадь равнодушно оглядывалась и не трогалась с места. Слезший с лошади адъютант взял под руки солдата и стал класть на появившиеся носилки. Солдат застонал.
– Тише, тише, разве нельзя тише? – видимо, более страдая, чем умирающий солдат, проговорил государь и отъехал прочь.
Ростов видел слезы, наполнившие глаза государя, и слышал, как он, отъезжая, по французски сказал Чарторижскому:
– Какая ужасная вещь война, какая ужасная вещь! Quelle terrible chose que la guerre!
Войска авангарда расположились впереди Вишау, в виду цепи неприятельской, уступавшей нам место при малейшей перестрелке в продолжение всего дня. Авангарду объявлена была благодарность государя, обещаны награды, и людям роздана двойная порция водки. Еще веселее, чем в прошлую ночь, трещали бивачные костры и раздавались солдатские песни.
Денисов в эту ночь праздновал производство свое в майоры, и Ростов, уже довольно выпивший в конце пирушки, предложил тост за здоровье государя, но «не государя императора, как говорят на официальных обедах, – сказал он, – а за здоровье государя, доброго, обворожительного и великого человека; пьем за его здоровье и за верную победу над французами!»
– Коли мы прежде дрались, – сказал он, – и не давали спуску французам, как под Шенграбеном, что же теперь будет, когда он впереди? Мы все умрем, с наслаждением умрем за него. Так, господа? Может быть, я не так говорю, я много выпил; да я так чувствую, и вы тоже. За здоровье Александра первого! Урра!
– Урра! – зазвучали воодушевленные голоса офицеров.
И старый ротмистр Кирстен кричал воодушевленно и не менее искренно, чем двадцатилетний Ростов.
Когда офицеры выпили и разбили свои стаканы, Кирстен налил другие и, в одной рубашке и рейтузах, с стаканом в руке подошел к солдатским кострам и в величественной позе взмахнув кверху рукой, с своими длинными седыми усами и белой грудью, видневшейся из за распахнувшейся рубашки, остановился в свете костра.
– Ребята, за здоровье государя императора, за победу над врагами, урра! – крикнул он своим молодецким, старческим, гусарским баритоном.
Гусары столпились и дружно отвечали громким криком.
Поздно ночью, когда все разошлись, Денисов потрепал своей коротенькой рукой по плечу своего любимца Ростова.
– Вот на походе не в кого влюбиться, так он в ца'я влюбился, – сказал он.
– Денисов, ты этим не шути, – крикнул Ростов, – это такое высокое, такое прекрасное чувство, такое…
– Ве'ю, ве'ю, д'ужок, и 'азделяю и одоб'яю…
– Нет, не понимаешь!
И Ростов встал и пошел бродить между костров, мечтая о том, какое было бы счастие умереть, не спасая жизнь (об этом он и не смел мечтать), а просто умереть в глазах государя. Он действительно был влюблен и в царя, и в славу русского оружия, и в надежду будущего торжества. И не он один испытывал это чувство в те памятные дни, предшествующие Аустерлицкому сражению: девять десятых людей русской армии в то время были влюблены, хотя и менее восторженно, в своего царя и в славу русского оружия.


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