Теорема Перцептрона
Если есть множество точек на плоскости, как построить разделяющее множество?
Можно выделить две выпуклые оболочки, найти ближайшие точки и между ними по центру провести прямую. Под каким углом? Ну ок, в двумерном клёво, а в n-мерном - огромные вычислительные сложности на построение выпуклой оболочки. Алгоритм общего перебора. x1..xk - промежуточный класс
y1..yk - правильный класс. Надо найти вектор (w1..wn) и порог, тогда g(x) = ∑ wi * xi
Решающее правило: f(x)= sign(g(x))
Алгоритм:
-
Пробегаем 1..k
σ(xk) = yk ???
- Да - ничего
- Нет - w := w + yk * xk
θ := θ + yk
- На шаг 1
- Нашли конец - хорошо. Были ошибки - плохо.
Формулировка теоремы.
Если классы -1,1 линейноразделимы, т.е. алгоритм сходится за конечное время.