Мне нравится останавливать выполнение, когда пакетная SOM становится конвергентной. Какую функцию ошибок я могу использовать для определения сходимости?
Критерий сходимости для (пакетной) SOM (самоорганизующейся карты, также известной как карта Кохонена)?
Ответы (2)
Говоря о сходимости для SOM, для данного размера карты (n x m) вы хотите знать, было ли выполнено достаточное количество итераций алгоритма, чтобы карта была «стабильной». Это означает, грубо говоря, помещаются ли новые входы (наблюдения) в карту в одни и те же нейроны / векторы кодовой книги, если карта повторно обучается много раз? (Игнорируя проблему того факта, что расположение карты может меняться, когда она обучается каждый раз, и это нормально, пока кластеры по-прежнему расположены стабильно).
Чтобы помочь ответить на вопрос о том, достаточно ли итераций выполнено, см. Перечисленные ниже академические статьи. В обоих документах также затрагивается вопрос о том, какой размер карты подходит (какие значения n x m помогают обеспечить конвергенцию SOM?).
Здесь приводится один из традиционных подходов, популярных в статьях:
Статистические инструменты для оценки надежности самоорганизующихся карт (Bodt, Cottrell, Verleysen)
Совсем недавно появился такой способ, который выглядит довольно многообещающе:
Эта диссертация, на мой взгляд, была действительно хорошо написана, и ее приятно читать. Также приятно то, что это исследование было написано как тест на сходимость SOM в (довольно неизвестном) пакете на R, который называется popsom
. Проверить это:
Я почти уверен, что вы имеете в виду функцию стоимости, а не функцию ошибок.
SOM не требует ни функции ошибок (ни функции стоимости).
На верхнем уровне таксономии машинного обучения SOM - это метод обучения без учителя - без целевого вектора и, следовательно, без «целевого вектора» минус «value_at_the_current_iteration», который нужно минимизировать.
Другой способ думать об этом: роль функции стоимости заключается в минимизации некоторых затрат; в ML - это разница между расчетом модели и предоставленными данными. В SOM для этой цели в алгоритм не передаются никакие данные.
(Я понимаю, что это несколько сбивает с толку, потому что входные данные, из которых создается сеть, часто называют «обучающими данными» - вероятно, это роль входных данных в контролируемых методах машинного обучения, которые гораздо более распространены, чем неконтролируемые. Это, вероятно, также сбивает с толку, потому что Теуво Кохонен, человек, которому приписывают `` изобретение '' SOM, первоначально называл их классом нейронных сетей - и, конечно, NN является контролируемой техникой и полагается на функцию стоимости (часто градиентный спуск). )
Наконец, чтобы убедиться, я проверил свой собственный код SOM, а также код из учебника машинного обучения Марсланда «Машинное обучение: алгоритмическая перспектива». И в моем, и в его коде это единственный критерий остановки, какое бы значение для «максимальных итераций» пользователь ни передал, когда вызвал основную функцию.
class
(базовая версия), kohonen
, popsom
...
- person FXQuantTrader; 27.06.2014