5.2.1. Принцип подкрепления — наказания
Обучающий алгоритм для перцептрона, приведенного на рис. 5.1, сводится к простой схеме итеративного определения вектора весов Дадим краткое описание этой схемы, которую обычно называют алгоритмом перцептрона.
Заданы два обучающих множества, представляющие классы соответственно; пусть — начальный вектор весов, который выбирается произвольно. В таком случае шаг обучения выглядит следующим образом.
Если то вектор весов заменяется вектором
где — корректирующее приращение.
Если то заменяется вектором
В противном случае не изменяется, т. е.
Короче говоря, алгоритм вносит изменения в вектор весов в том и только том случае, если образ, предъявленный на шаге обучения, был при выполнении этого шага неправильно классифицирован с помощью соответствующего вектора весов. Корректирующее приращение должно быть положительным, и в данном случае предполагается, что оно постоянно.
Очевидно, что алгоритм перцептрона является процедурой типа «подкрепление — наказание», причем, надо признаться, подкреплением за правильную классификацию образа, в сущности, служит отсутствие наказания. Иными словами, если образ классифицирован правильно, то система подкрепляется
тем, что в вектор весов не вносится никаких изменений. С другой стороны, если образ классифицируется неправильно и произведение оказывается меньше нуля, когда оно должно бы быть больше нуля, система «наказывается» увеличением значения вектора весов на величину, пропорциональную . Точно так же, если произведение оказывается больше нуля, когда оно должно быть меньше нуля, система наказывается противоположным образом.
Сходимость алгоритма наступает при правильной классификации всех образов с помощью некоторого вектора весов. В следующем разделе показано, что алгоритм перцептрона сходится за конечное число итераций, если заданные классы линейно разделимы. Прежде чем приступить к доказательству, будет полезно подробно рассмотреть простой численный пример.
Пример. Рассмотрим образы, представленные на рис. 5.2, а. Следует применить к этим образам алгоритм перцептрона с тем, чтобы с его помощью определить весовой вектор решения.
Рис. 5.2. Иллюстрация принципа действия алгоритма перцептронного типа. а — образы, принадлежащие двум классам; б — разделяющая граница, полученная с помощью реализации процесса обучения.
Осмотр образов показывает, что два заданных класса линейно разделимы и, следовательно, применение алгоритма окажется успешным.
До начала применения алгоритма пополним все образы. При этом рассматриваемые классы обратятся в . Задав и
предъявив образы в указанном выше порядке, получим (по шагам):
(см. скан)
Коррекция вектора весов проводилась на первом и третьем шагах в соответствии с формулами (5.2.2) и (5.2.3) в связи с ошибками классификации. Так как получаемый результат можно считать искомым решением только в том случае, когда алгоритм осуществит без ошибок полный цикл итерации по всем образам, обучающее множество следует предъявить еще раз. Процесс обучения системы продолжается при ,
(кликните для просмотра скана)
Нетрудно убедиться в том, что в следующем итеративном цикле все образы классифицируются правильно. Итак, вектор решения имеет вид . Соответствующей решающей функцией будет приравнивание этой функции нулю дает уравнение разделяющей границы, приведенной на рис.
В соответствии с анализом, проведенным в § 5.1, алгоритм перцептрона можно представить в другой, эквивалентной форме, умножив пополненные образы одного из классов на —1. Таким образом, умножив все образы, например класса , на —1, алгоритм перцептрона можно записать как
где с — положительное корректирующее приращение. В данной главе будем пользоваться именно этим эквивалентным представлением алгоритма перцептрона.