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

StackOverflow https://stackoverflow.com/questions/2557289

Вопрос

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

Это было полезно?

Решение

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

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

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

Статистические инструменты для оценки надежности самоорганизующихся карт (Бодт, Коттрелл, Верлейсен)

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

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

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

попсом

Другие советы

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top