объяснение некоторых параметров персептрона из scikit-learn - PullRequest
0 голосов
/ 14 июня 2019

Мне нужно использовать алгоритм персептрона для изучения скорости обучения и асимптотической ошибки некоторых наборов данных, которые не являются линейно разделимыми.
Для этого мне нужно понять несколько параметров конструктора.Я потратил много часов, погугляя их, но все еще не могу понять, что они делают или как их использовать.
Те, которые создают мне больше проблем: альфа и eta0

Я понимаю, что каждыйОбновление алгоритма:

formula perceptron updateгде (dy (t)) просто дает желаемый + или -, чтобы увеличить или уменьшить компонент вектора, а r - скорость обучения, которая сглаживает обновление.

из документации scikit-learn(* 1 010 *https://scikit -learn.org / стабильный / модули / полученные / sklearn.linear_model.Perceptron.html )«альфа» - это константа, которая умножает термин регуляризации, если используется регуляризация.
«eta0» - это константа, на которую умножаются обновления.

Что такое термин регуляризации (альфа) в персептроне?в какой части формулы появляется?Является ли eta0 'r' в приведенной выше формуле?
Оба эти параметра должны замедлить алгоритм, но сделать его более эффективным, я хотел бы понять, как использовать их наилучшим образом.

Спасибозаранее буду признателен за любой ответ, даже если не полный.

1 Ответ

1 голос
/ 14 июня 2019

сначала позвольте мне обратиться к этому:

где (dy (t)) просто дает желаемый + или -, чтобы увеличить или уменьшить компонент вектора

, если быть более точным, (dy (t)) - это расстояние между фактическим и желаемым выходом.имеет смысл, что наша коррекция должна быть пропорциональна величине ошибки (и она получена из математического доказательства).

Что такое член регуляризации (альфа) в персептроне?в какой части формулы появляется?

из scikit Learn Docs на Perceptron :

Perceptron - это алгоритм классификации, который использует ту же базовую реализацию с SGDClassifier.Фактически, Perceptron () эквивалентен SGDClassifier (потеря = "персептрон", eta0 = 1, learning_rate = "константа", штраф = нет).

и SGDClassifier :

Регуляризатор - это штраф, добавляемый к функции потерь, которая сжимает параметры модели в направлении нулевого вектора, используя либо квадрат евклидовой нормы L2, либо абсолютную норму L1, либо их комбинацию (Elastic Net).Если обновление параметра пересекает значение 0,0 из-за регуляризатора, обновление усекается до 0,0, чтобы учить разреженные модели и достигать онлайн-выбора функций.

, так что у вас это есть.член регуляризации сохраняет параметры модели как можно меньшими.это также делается в нейронных сетях: здесь - хорошее объяснение.

Является ли eta0 'r' в формуле выше?

да, скорость обучения обычно обозначается как eta.

...