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