Введение
Алгоритм контролируемого обучения бинарных классификаторов
В машинном обучении перцептрон (или нейрон Маккалоха — Питтса) — это алгоритм контролируемого обучения бинарных классификаторов. Бинарный классификатор — это функция, которая может определить, принадлежит ли входной элемент, представленный вектором чисел, к определенному классу. Это тип линейного классификатора, то есть алгоритм классификации, который делает свои предсказания на основе линейной предсказательной функции, комбинирующей набор весов с вектором признаков.
Теория информации
С точки зрения теории информации, один перцептрон с K входами имеет емкость 2K бит информации. Этот результат принадлежит Томасу Коверу. В частности, пусть – число способов линейно разделить N точек в K измерениях, тогда при больших K, очень близко к единице, когда , но очень близко к нулю, когда . Иными словами, один перцептрон почти наверняка может запомнить случайное присвоение двоичных меток N точкам, когда , но почти наверняка не может, когда .
Булева функция
При работе только с бинарными входами перцептрон называется линейно разделяемой булевой функцией или пороговой булевой функцией. Последовательность чисел пороговых булевых функций на n входах соответствует OEIS A000609. Значение известно точно лишь для небольшого числа случаев, но порядок величины известен достаточно точно: он имеет верхнюю и нижнюю границы. Любую булеву линейную пороговую функцию можно реализовать, используя только целочисленные веса. Более того, количество бит, необходимое и достаточное для представления одного параметра веса, является целым числом. Если обучающий набор линейно разделяем, то перцептрон гарантированно сойдется после совершения конечного числа ошибок. Теорема доказана Розенблатом и др. Следующее простое доказательство приведено Новиковым (1962). Идея доказательства заключается в том, что вектор весов всегда корректируется на ограниченную величину в направлении, с которым он имеет отрицательное скалярное произведение, и, таким образом, может быть ограничен сверху , где t – число изменений вектора весов. Однако, он также может быть ограничен снизу как O(t), поскольку, если существует (неизвестный) удовлетворительный вектор весов, то каждое изменение приближает к нему на положительную величину, зависящую только от входного вектора. thumb|300px|Два класса точек и две из бесконечного множества линейных границ, разделяющих их. Даже если границы расположены почти под прямым углом друг к другу, алгоритм перцептрона не может выбрать между ними. Хотя алгоритм перцептрона гарантированно сходится к некоторому решению в случае линейно разделяемого обучающего набора, он все равно может выбрать любое решение, и для задач может существовать множество решений различного качества. Перцептрон оптимальной устойчивости, ныне более известный как линейная опорная векторная машина, был разработан для решения этой проблемы (Krauth и Mezard, 1987).
Any Boolean linear threshold function can be implemented with only integer weights. Furthermore, the number of bits necessary and sufficient for representing a single integer weight parameter is
If the training set is linearly separable, then the perceptron is guaranteed to converge after making finitely many mistakes. The theorem is proved by Rosenblatt et al. The following simple proof is due to Novikoff (1962). The idea of the proof is that the weight vector is always adjusted by a bounded amount in a direction with which it has a negative dot product, and thus can be bounded above by , where t is the number of changes to the weight vector. However, it can also be bounded below by O(t) because if there exists an (unknown) satisfactory weight vector, then every change makes progress in this (unknown) direction by a positive amount that depends only on the input vector. thumb|300px|Two classes of points, and two of the infinitely many linear boundaries that separate them. Even though the boundaries are at nearly right angles to one another, the perceptron algorithm has no way of choosing between them. While the perceptron algorithm is guaranteed to converge on some solution in the case of a linearly separable training set, it may still pick any solution and problems may admit many solutions of varying quality. The perceptron of optimal stability, nowadays better known as the linear support vector machine, was designed to solve this problem (Krauth and Mezard, 1987).
Теорема о цикличности перцептронов
Когда набор данных не является линейно разделимым, одиночный перцептрон не может сойтись. Однако, это было впервые доказано Брэдли Эфроном.
This is proved first by Bradley Efron.
Изучение булевой функции
Рассмотрим набор данных, где элементы принадлежат , то есть являются вершинами n-мерного гиперкуба, центрированного в начале координат, и . То есть, все точки данных с положительным имеют , и наоборот. Согласно теореме о сходимости перцептрона, перцептрон сойдется после совершения не более ошибок. Если бы мы написали логическую программу для выполнения той же задачи, каждый положительный пример показывал бы, что одна из координат является правильной, а каждый отрицательный пример – что ее дополнение является положительным примером. Собирая все известные положительные примеры, мы в конечном итоге исключим все, кроме одной координаты, в этот момент набор данных будет изучен. Эта граница асимптотически точна в худшем случае. В худшем случае, первый представленный пример будет совершенно новым и предоставит битов информации, но каждый последующий пример будет минимально отличаться от предыдущих и предоставит по 1 биту каждый. После примеров будет доступно битов информации, чего достаточно для перцептрона (с битами информации). В случае линейной разделимости, он решит задачу обучения – при желании даже с оптимальной устойчивостью (максимальным зазором между классами). Для неразделимых наборов данных он вернет решение с небольшим количеством ошибок классификации. Во всех случаях алгоритм постепенно приближается к решению в процессе обучения, не запоминая предыдущие состояния и не совершая стохастических скачков. Сходимость гарантирует глобальную оптимальность для разделимых наборов данных и локальную оптимальность для неразделимых наборов данных. Voted Perceptron (Freund и Schapire, 1999) – это вариант, использующий несколько взвешенных перцептронов. Алгоритм запускает новый перцептрон каждый раз, когда пример классифицируется неверно, инициализируя вектор весов конечными весами последнего перцептрона. Каждому перцептрону также присваивается вес, соответствующий количеству примеров, которые он правильно классифицирует до первой ошибки, и в конце выдается взвешенное голосование всех перцептронов. В задачах линейной разделимости обучение перцептрона может быть направлено на поиск максимального разделительного зазора между классами. Так называемый перцептрон оптимальной устойчивости можно определить с помощью итеративных схем обучения и оптимизации, таких как алгоритм Min Over (Krauth и Mezard, 1987). AdaTron использует тот факт, что соответствующая задача квадратичной оптимизации является выпуклой. Перцептрон оптимальной устойчивости, вместе с методом ядер, являются концептуальной основой метода опорных векторов. Перцептрон также использовал предварительный слой обработки с фиксированными случайными весами и пороговыми выходными элементами. Это позволило перцептрону классифицировать аналоговые шаблоны, проецируя их в двоичное пространство. Фактически, для проекционного пространства достаточно высокой размерности шаблоны могут стать линейно разделимыми. Другой способ решения нелинейных задач без использования нескольких слоев – использование сетей высшего порядка (sigma-pi unit). В этом типе сети каждый элемент входного вектора расширяется каждой попарной комбинацией перемноженных входов (второго порядка). Это можно расширить до сети n-го порядка. Однако следует помнить, что лучший классификатор не обязательно тот, который идеально классифицирует все обучающие данные. Действительно, если бы у нас было априорное ограничение, что данные поступают из эквивариантных гауссовских распределений, линейное разделение во входном пространстве является оптимальным, а нелинейное решение приводит к переобучению. Другие алгоритмы линейной классификации включают Winnow, метод опорных векторов и логистическую регрессию.
Перцептрон многоклассный
Как и большинство других методов обучения линейных классификаторов, перцептрон естественным образом обобщается для многоклассовой классификации. В этом случае входные и выходные данные берутся из произвольных множеств. Функция представления признаков отображает каждую возможную пару вход/выход в конечномерный вектор признаков с вещественными значениями. Как и прежде, вектор признаков умножается на вектор весов, но теперь полученная оценка используется для выбора одного из множества возможных выходных значений:
Обучение снова итеративно проходит по примерам, предсказывая выход для каждого из них, оставляя веса без изменений, когда предсказанный выход совпадает с целевым, и изменяя их в противном случае. Обновление выглядит следующим образом:
Эта многоклассовая формулировка обратной связи сводится к исходному перцептрону, когда является вещественнозначным вектором, выбирается из , и
Для некоторых задач представления входных/выходных данных и признаки могут быть выбраны таким образом, чтобы можно было эффективно находить , даже если выбирается из очень большого или даже бесконечного множества. С 2002 года обучение перцептронов стало популярным в области обработки естественного языка для таких задач, как определение частей речи и синтаксический разбор (Collins, 2002). Оно также применяется к задачам машинного обучения большого масштаба в распределенных вычислительных средах.
For certain problems, input/output representations and features can be chosen so that can be found efficiently even though is chosen from a very large or even infinite set. Since 2002, perceptron training has become popular in the field of natural language processing for such tasks as part of speech tagging and syntactic parsing (Collins, 2002). It has also been applied to large scale machine learning problems in a distributed computing setting.