В машинном обучении ядерный персептрон — это вариант популярного алгоритма обучения персептрона , который может обучать ядерные машины , т. е. нелинейные классификаторы , которые используют функцию ядра для вычисления сходства невидимых образцов с обучающими образцами. Алгоритм был изобретен в 1964 году [1] , что сделало его первым обучающимся ядерной классификацией. [2]
Алгоритм персептрона — это алгоритм онлайн-обучения , работающий по принципу, называемому «обучение на основе ошибок». Он итеративно улучшает модель, запуская ее на обучающих образцах, а затем обновляя модель всякий раз, когда обнаруживает, что она сделала неверную классификацию относительно контролируемого сигнала . Модель, изученная стандартным алгоритмом персептрона, представляет собой линейный двоичный классификатор: вектор весов w (и, возможно, член прерывания b , опущенный здесь для простоты), который используется для классификации вектора образца x как класса «один» или класса «минус один» в соответствии с
где ноль произвольно отображается на единицу или минус единицу. (« Шляпка » на ŷ обозначает оценочное значение.)
В псевдокоде алгоритм персептрона задается следующим образом:
В отличие от линейных моделей, изученных персептроном, метод ядра [3] представляет собой классификатор, который хранит подмножество своих обучающих примеров x i , связывает с каждым из них вес α i и принимает решения для новых образцов x' путем оценки
Здесь K — некоторая функция ядра. Формально функция ядра — это неотрицательное полуопределенное ядро (см. условие Мерсера ), представляющее собой скалярное произведение между образцами в многомерном пространстве, как если бы образцы были расширены для включения дополнительных признаков функцией Φ : K ( x , x' ) = Φ( x ) · Φ( x' ) . Интуитивно ее можно рассматривать как функцию сходства между образцами, поэтому машина ядра устанавливает класс нового образца путем взвешенного сравнения с обучающим набором. Каждая функция x' ↦ K ( x i , x' ) служит базисной функцией в классификации.
Чтобы получить версию алгоритма персептрона с ядром, мы должны сначала сформулировать его в двойственной форме , исходя из наблюдения, что весовой вектор w может быть выражен как линейная комбинация n обучающих образцов. Уравнение для весового вектора имеет вид
где α i — количество раз, когда x i был неправильно классифицирован, что приводит к обновлению w ← w + y i x i . Используя этот результат, мы можем сформулировать алгоритм двойного персептрона, который, как и прежде, проходит по образцам, делая прогнозы, но вместо сохранения и обновления вектора веса w он обновляет вектор «счетчика ошибок» α . Мы также должны переписать формулу прогноза, чтобы избавиться от w :
Включение этих двух уравнений в цикл обучения превращает его в алгоритм двойного персептрона .
Наконец, мы можем заменить скалярное произведение в двойном персептроне произвольной функцией ядра, чтобы получить эффект карты признаков Φ без явного вычисления Φ( x ) для любых образцов. Это дает алгоритм персептрона ядра: [4]
Одна из проблем с ядерным персептроном, представленная выше, заключается в том, что он не обучает машины с разреженным ядром. Изначально все α i равны нулю, поэтому оценка функции решения для получения ŷ не требует никаких ядерных оценок вообще, но каждое обновление увеличивает один α i , делая оценку все более затратной. Более того, когда ядерный персептрон используется в онлайн- режиме, количество ненулевых α i и, следовательно, стоимость оценки растут линейно с количеством примеров, представленных алгоритму.
Для решения этой проблемы был предложен вариант ядра персептрона «забытый». Он поддерживает активный набор примеров с ненулевым α i , удаляя («забывая») примеры из активного набора, когда он превышает заранее определенный бюджет, и «сжимая» (снижая вес) старые примеры, когда новые повышаются до ненулевого α i . [5]
Другая проблема с ядерным персептроном заключается в том, что он не регуляризуется , что делает его уязвимым к переобучению . Онлайновый алгоритм обучения ядра NORMA можно рассматривать как обобщение алгоритма ядерного персептрона с регуляризацией. [6] Алгоритм последовательной минимальной оптимизации (SMO), используемый для обучения опорных векторных машин, также можно рассматривать как обобщение ядерного персептрона. [6]
Алгоритм голосовавшего персептрона Фройнда и Шапира также распространяется на ядерный случай, [7] давая границы обобщения, сравнимые с ядерным SVM. [2]