Критерий сходимости для (пакетной) SOM (самоорганизующейся карты, также известной как карта Кохонена)?

Мне нравится останавливать выполнение, когда пакетная SOM становится конвергентной. Какую функцию ошибок я могу использовать для определения сходимости?


person S.N    schedule 31.03.2010    source источник


Ответы (2)


Говоря о сходимости для SOM, для данного размера карты (n x m) вы хотите знать, было ли выполнено достаточное количество итераций алгоритма, чтобы карта была «стабильной». Это означает, грубо говоря, помещаются ли новые входы (наблюдения) в карту в одни и те же нейроны / векторы кодовой книги, если карта повторно обучается много раз? (Игнорируя проблему того факта, что расположение карты может меняться, когда она обучается каждый раз, и это нормально, пока кластеры по-прежнему расположены стабильно).

Чтобы помочь ответить на вопрос о том, достаточно ли итераций выполнено, см. Перечисленные ниже академические статьи. В обоих документах также затрагивается вопрос о том, какой размер карты подходит (какие значения n x m помогают обеспечить конвергенцию SOM?).

Здесь приводится один из традиционных подходов, популярных в статьях:

Статистические инструменты для оценки надежности самоорганизующихся карт (Bodt, Cottrell, Verleysen)

Совсем недавно появился такой способ, который выглядит довольно многообещающе:

КРИТЕРИЙ СХОДИМОСТИ ДЛЯ САМООРГАНИЗУЮЩИХСЯ КАРТ, магистерская диссертация , Бенджамин ч. отт (Университет Род-Айленда)

Эта диссертация, на мой взгляд, была действительно хорошо написана, и ее приятно читать. Также приятно то, что это исследование было написано как тест на сходимость SOM в (довольно неизвестном) пакете на R, который называется popsom. Проверить это:

popsom

person FXQuantTrader    schedule 26.06.2014

Я почти уверен, что вы имеете в виду функцию стоимости, а не функцию ошибок.

SOM не требует ни функции ошибок (ни функции стоимости).

На верхнем уровне таксономии машинного обучения SOM - это метод обучения без учителя - без целевого вектора и, следовательно, без «целевого вектора» минус «value_at_the_current_iteration», который нужно минимизировать.

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

(Я понимаю, что это несколько сбивает с толку, потому что входные данные, из которых создается сеть, часто называют «обучающими данными» - вероятно, это роль входных данных в контролируемых методах машинного обучения, которые гораздо более распространены, чем неконтролируемые. Это, вероятно, также сбивает с толку, потому что Теуво Кохонен, человек, которому приписывают `` изобретение '' SOM, первоначально называл их классом нейронных сетей - и, конечно, NN является контролируемой техникой и полагается на функцию стоимости (часто градиентный спуск). )

Наконец, чтобы убедиться, я проверил свой собственный код SOM, а также код из учебника машинного обучения Марсланда «Машинное обучение: алгоритмическая перспектива». И в моем, и в его коде это единственный критерий остановки, какое бы значение для «максимальных итераций» пользователь ни передал, когда вызвал основную функцию.

person doug    schedule 01.04.2010
comment
Большое спасибо. Интересно, знаете ли вы какую-нибудь хорошую ссылку на пакетную реализацию SOM. Я нахожу в сети много серийных реализаций SOM, но не пакетных. В моей реализации средняя стоимость (расстояние между обучающими данными и нейронами) уменьшается, но для некоторых нейронов стоимость увеличивается ... В коде должен отсутствовать какой-то фрагмент ... - person S.N; 01.04.2010
comment
вот один на C ++ (не смотрел): cis.hut.fi/research /som_lvq_pak.shtml; а вот реализация на Python (www-ist.massey.ac.nz/smarsland/ MLBook.html); ссылка ведет на домашнюю страницу учебника машинного обучения Стивена Марсленда; на этой странице он публикует весь код, использованный в книге (прокрутите до главы 9, вы увидите код SOM). - person doug; 05.04.2010
comment
Также есть красиво написанный код C для SOM в пакетах R с открытым исходным кодом class (базовая версия), kohonen, popsom ... - person FXQuantTrader; 27.06.2014