templateLinear

Шаблон обучающегося с линейной классификацией

Описание

templateLinear создает шаблон, подходящий для подбора кривой линейной модели классификации к высоко-размерным данным для многоклассовых задач.

Шаблон задает двоичную модель учащегося, тип регуляризации и силу, и решатель, среди прочего. После создания шаблона обучите модель, передав шаблон и данные в fitcecoc.

пример

t = templateLinear() возвращает линейный шаблон учащегося классификации.

Если вы задаете шаблон по умолчанию, то во время обучения программное обеспечение использует значения по умолчанию для всех входных параметров.

пример

t = templateLinear(Name,Value) возвращает шаблон с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение". Например, можно задать, чтобы реализовать логистическую регрессию, задать тип или силу регуляризации или задать решатель, который будет использоваться для минимизации целевой функции.

Если вы отображаете t в Командном окне, затем все опции появляются пустыми ([]) кроме опций, которые вы задаете используя аргументы пары "имя-значение". Во время обучения программное обеспечение использует значения по умолчанию для пустых опций.

Примеры

свернуть все

Обучите модель ECOC, состоящую из нескольких двоичных, линейных классификационных моделей.

Загрузите набор данных NLP.

load nlpdata

X является разреженной матрицей данных предиктора, и Y является категориальным вектором меток классов. В данных более двух классов.

Создайте шаблон модели линейной классификации по умолчанию.

t = templateLinear();

Для корректировки значений по умолчанию смотрите Аргументы в виде пар имя-значение на templateLinear страница.

Обучите модель ECOC, состоящую из нескольких двоичных, линейных классификационных моделей, которые могут идентифицировать продукт с учетом частотного распределения слов на веб-странице документации. Для более быстрого времени обучения транспонируйте данные предиктора и укажите, что наблюдения соответствуют столбцам.

X = X';
rng(1); % For reproducibility 
Mdl = fitcecoc(X,Y,'Learners',t,'ObservationsIn','columns')
Mdl = 
  CompactClassificationECOC
      ResponseName: 'Y'
        ClassNames: [1x13 categorical]
    ScoreTransform: 'none'
    BinaryLearners: {78x1 cell}
      CodingMatrix: [13x78 double]


  Properties, Methods

Кроме того, можно обучить модель ECOC, состоящую из моделей линейной классификации по умолчанию, используя 'Learners','Linear'.

Чтобы сохранить память, fitcecoc возвращает обученные модели ECOC, состоящие из учащихся линейной классификации в CompactClassificationECOC объекты модели.

Входные параметры

свернуть все

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Learner','logistic','Regularization','lasso','CrossVal','on' задает для реализации логистической регрессии с штрафом лассо и для реализации 10-кратной перекрестной валидации.
Опции линейной классификации

свернуть все

Сила термина регуляризации, заданная как разделенная разделенными запятой парами, состоящая из 'Lambda' и 'auto', неотрицательный скаляр или вектор неотрицательных значений.

  • Для 'auto', Lambda = 1 / n.

    • Если вы задаете перекрестную валидацию, аргумент пары "имя-значение" (например CrossVal), тогда n количество кратных наблюдений.

    • В противном случае n размер обучающей выборки.

  • Для вектора неотрицательных значений, templateLinear последовательно оптимизирует целевую функцию для каждого отдельного значения в Lambda в порядке возрастания.

    • Если Solver является 'sgd' или 'asgd' и Regularization является 'lasso', templateLinear не использует предыдущие оценки коэффициентов в качестве теплого начала для следующей итерации оптимизации. В противном случае, templateLinear использует теплые старты.

    • Если Regularization является 'lasso', тогда любая оценка коэффициента 0 сохраняет свое значение, когда templateLinear оптимизирует использование последующих значений в Lambda.

    • templateLinear возвращает оценки коэффициентов для каждой заданной степени регуляризации.

Пример: 'Lambda',10.^(-(10:-2:2))

Типы данных: char | string | double | single

Тип модели линейной классификации, заданный как разделенная разделенными запятой парами, состоящая из 'Learner' и 'svm' или 'logistic'.

В этой таблице, f(x)=xβ+b.

  • β является вектором p коэффициентов.

  • x является наблюдением от p переменных предиктора.

  • b - скалярное смещение.

ЗначениеАлгоритмОбласть значений откликаФункция потерь
'svm'Поддерживайте векторную машину<reservedrangesplaceholder0>  {-1,1}; 1 для положительного класса и -1 в противном случаеШарнир: [y,f(x)]=max[0,1yf(x)]
'logistic'Логистическая регрессияТо же, что и 'svm'Отклонение (логистическое): [y,f(x)]=log{1+exp[yf(x)]}

Пример: 'Learner','logistic'

Тип штрафа сложности, заданный как разделенная разделенными запятой парами, состоящая из 'Regularization' и 'lasso' или 'ridge'.

Программное обеспечение составляет целевую функцию для минимизации из суммы функции средних потерь (см Learner) и термин регуляризации в этой таблице.

ЗначениеОписание
'lasso'Лассо (L1) штраф: λj=1p|βj|
'ridge'Хребет (L2) штраф: λ2j=1pβj2

Чтобы задать силу термина регуляризации, которая λ в выражениях, используйте Lambda.

Программа исключает термин смещения (β 0) из штрафа за регуляризацию.

Если Solver является 'sparsa', затем значение по умолчанию Regularization является 'lasso'. В противном случае значение по умолчанию является 'ridge'.

Совет

  • Для выбора переменной предиктора задайте 'lasso'. Для получения дополнительной информации о выборе переменной смотрите Введение в выбор признаков.

  • Для точности оптимизации задайте 'ridge'.

Пример: 'Regularization','lasso'

Метод минимизации целевой функции, заданный как разделенная разделенными запятой парами, состоящая из 'Solver' и вектор символов или строковый скаляр, строковые массивы или массив ячеек из векторов символов со значениями из этой таблицы.

ЗначениеОписаниеОграничения
'sgd'Стохастический градиентный спуск (SGD) [4][2] 
'asgd'Средний стохастический градиентный спуск (ASGD) [7] 
'dual'Двойной SGD для SVM- [1][6]Regularization должен быть 'ridge' и Learner должен быть 'svm'.
'bfgs'Алгоритм Бройдена-Флетчера-Голдфарба-Шанно квази-Ньютона (BFGS) [3]Неэффективный, если X очень высоко-размерный.
'lbfgs'BFGS (LBFGS) с ограниченной памятью [3]Regularization должен быть 'ridge'.
'sparsa'Разреженная реконструкция с помощью разделяемого приближения (SpaRSA) [5]Regularization должен быть 'lasso'.

Если вы задаете:

  • Штраф за хребет (см. Regularization) и набор данных предиктора содержит 100 или менее переменных предиктора, тогда решатель по умолчанию 'bfgs'.

  • Модель SVM (см Learner), штраф за хребет, и набор данных предиктора содержит более 100 переменных предиктора, тогда решатель по умолчанию 'dual'.

  • Штраф лассо и набор данных предиктора содержат 100 или менее переменных предиктора, тогда решатель по умолчанию 'sparsa'.

В противном случае решатель по умолчанию является 'sgd'.

Для получения дополнительной информации о том, какой решатель выбрать, смотрите Советы.

Пример: 'Solver',{'sgd','lbfgs'}

Начальные оценки линейных коэффициентов (β), заданные как разделенная разделенными запятой парами, состоящая из 'Beta' и p -мерный числовой вектор или p -by L числовая матрица. p - количество переменных предиктора в X и L количество значений регуляризационной прочности (для получения дополнительной информации см. Lambda).

  • Если вы задаете p -мерный вектор, то программное обеспечение оптимизирует целевую функцию L раз, используя этот процесс.

    1. Программное обеспечение оптимизирует с помощью Beta как начальное значение и минимальное значение Lambda как прочность на регуляризацию.

    2. Программное обеспечение снова оптимизирует, используя полученную оценку от предыдущей оптимизации в качестве теплого начала и следующего наименьшего значения в Lambda как прочность на регуляризацию.

    3. Программа реализует шаг 2, пока не исчерпает все значения в Lambda.

  • Если вы задаете p -by - L матрицу, то программное обеспечение оптимизирует целевую функцию L раз. При итерации j, программное обеспечение использует Beta (:, j) как начальное значение и, после сортировки Lambda в порядке возрастания использует Lambda (j) как прочность на регуляризацию.

Если вы задаете 'Solver','dual', затем программное обеспечение игнорирует Beta.

Типы данных: single | double

Начальная оценка точки пересечения (b), заданная как разделенная разделенными запятой парами, состоящая из 'Bias' и числовой скаляр или L -мерный числовой вектор. L количество значений регуляризационной прочности (для получения дополнительной информации см. Lambda).

  • Если вы задаете скаляр, то программное обеспечение оптимизирует целевую функцию L раз, используя этот процесс.

    1. Программное обеспечение оптимизирует с помощью Bias как начальное значение и минимальное значение Lambda как прочность на регуляризацию.

    2. Полученная оценка используется как теплое начало следующей итерации оптимизации и использует следующее наименьшее значение в Lambda как прочность на регуляризацию.

    3. Программа реализует шаг 2, пока не исчерпает все значения в Lambda.

  • Если вы задаете L -мерный вектор, то программное обеспечение оптимизирует целевую функцию L раз. При итерации j, программное обеспечение использует Bias (j) как начальное значение и, после сортировки Lambda в порядке возрастания использует Lambda (j) как прочность на регуляризацию.

  • По умолчанию:

    • Если Learner является 'logistic', тогда позвольте gj быть 1, если Y (j) является положительным классом и -1 в противном случае. Bias - взвешенное среднее значение g для обучения или, для перекрестной валидации, в кратном выражении.

    • Если Learner является 'svm', затем Bias равен 0.

Типы данных: single | double

Флаг включения линейной модели точки пересечения, заданный как разделенная разделенными запятой парами, состоящая из 'FitBias' и true или false.

ЗначениеОписание
trueПрограммное обеспечение включает термин смещения, b в линейной модели, и затем оценивает его.
falseПрограммное обеспечение устанавливает b = 0 во время оценки.

Пример: 'FitBias',false

Типы данных: logical

Флаг для подгонки линейной точки пересечения модели после оптимизации, заданный как разделенная разделенными запятой парами, состоящая из 'PostFitBias' и true или false.

ЗначениеОписание
falseПрограмма оценивает срок смещения b и коэффициенты, β во время оптимизации.
true

Чтобы оценить b, программное обеспечение:

  1. Оценивает β и b с помощью модели

  2. Оценки классификационных оценок

  3. Обновляет b путем размещения порога на классификационных оценках, который достигает максимальной точности

Если вы задаете true, затем FitBias должно быть true.

Пример: 'PostFitBias',true

Типы данных: logical

Уровень подробностей, заданный как разделенная разделенными запятой парами, состоящая из 'Verbose' и любой из них 0 или 1. Verbose управляет отображением диагностической информации в командной строке.

ЗначениеОписание
0templateLinear не отображает диагностическую информацию.
1templateLinear периодически отображает значение целевой функции, градиентную величину и другую диагностическую информацию.

Пример: 'Verbose',1

Типы данных: single | double

Опции SGD и решателя ASGD

свернуть все

Мини-пакет, заданный как разделенная разделенными запятой парами, состоящая из 'BatchSize' и положительное целое число. При каждой итерации программное обеспечение оценивает градиент используя BatchSize наблюдения из обучающих данных.

  • Если данные предиктора являются числовой матрицей, то значение по умолчанию 10.

  • Если данные предиктора являются разреженной матрицей, то значение по умолчанию max([10,ceil(sqrt(ff))]), где ff = numel(X)/nnz(X), то есть fullness factor X.

Пример: 'BatchSize',100

Типы данных: single | double

Скорость обучения, заданный как разделенная разделенными запятой парами, состоящая из 'LearnRate' и положительная скалярная величина. LearnRate управляет размером шага оптимизации путем масштабирования подградиента.

  • Если Regularization является 'ridge', затем LearnRate задает начальную скорость обучения γ 0 .templateLinear определяет скорость обучения для t итерации, γt, использования

    γt=γ0(1+λγ0t)c.

    • λ - значение Lambda.

    • Если Solver является 'sgd', затем c = 1.

    • Если Solver является 'asgd', затем c составляет 0,75 [7].

  • Если Regularization является 'lasso'затем для всех итераций LearnRate является постоянным.

По умолчанию LearnRate является 1/sqrt(1+max((sum(X.^2,obsDim)))), где obsDim является 1 если наблюдения составляют столбцы данных предиктора X, и 2 в противном случае.

Пример: 'LearnRate',0.01

Типы данных: single | double

Флаг для уменьшения скорости обучения, когда программа обнаруживает расхождение (то есть переступая минимум), заданный как разделенная разделенными запятой парами, состоящая из 'OptimizeLearnRate' и true или false.

Если OptimizeLearnRate является 'true', затем:

  1. Для нескольких итераций оптимизации программное обеспечение начинает оптимизацию с помощью LearnRate как скорость обучения.

  2. Если значение целевой функции увеличивается, то программное обеспечение перезапускает и использует половину текущего значения скорости обучения.

  3. Программа итализирует шаг 2 до тех пор, пока целевая функция не уменьшится.

Пример: 'OptimizeLearnRate',true

Типы данных: logical

Количество мини-пакетов между запусками усечения lasso, заданное как разделенная разделенными запятой парами, состоящая из 'TruncationPeriod' и положительное целое число.

После выполнения усечения программное обеспечение применяет мягкий порог к линейным коэффициентам. То есть после обработки k = TruncationPeriod мини-пакеты, программное обеспечение обрезает оцененный коэффициент j используя

β^j={β^jutеслиβ^j>ut,0если|β^j|ut,β^j+utеслиβ^j<ut.

  • Для SGD, β^j - оценка коэффициентного j после обработки k мини-пакетов. ut=kγtλ. γt - скорость обучения в t итерации. λ - значение Lambda.

  • Для ASGD, β^j - усредненный оценочный коэффициент, j после обработки k мини-пакетов, ut=kλ.

Если Regularization является 'ridge', затем программное обеспечение игнорирует TruncationPeriod.

Пример: 'TruncationPeriod',100

Типы данных: single | double

Управление сходимостью SGD и ASGD

свернуть все

Максимальное количество пакетов для обработки, заданное как разделенная разделенными запятой парами, состоящая из 'BatchLimit' и положительное целое число. Когда программное обеспечение обрабатывает BatchLimit пакеты, это прекращает оптимизацию.

  • По умолчанию:

    • Программное обеспечение проходит через данные PassLimit времени.

    • Если вы задаете несколько решателей и используете (A) SGD, чтобы получить начальное приближение для следующего решателя, то значение по умолчанию ceil(1e6/BatchSize). BatchSize - значение 'BatchSize' аргумент пары "имя-значение".

  • Если вы задаете 'BatchLimit' и 'PassLimit'затем программное обеспечение выбирает аргумент, который приводит к обработке наименьшего количества наблюдений.

  • Если вы задаете 'BatchLimit' но не 'PassLimit'затем программное обеспечение обрабатывает достаточное количество пакетов, чтобы заполнить до одного целого, проходящего через данные.

Пример: 'BatchLimit',100

Типы данных: single | double

Относительная погрешность на линейные коэффициенты и термин смещения ( точка пересечения), заданный как разделенная разделенными запятой парами, состоящая из 'BetaTolerance' и неотрицательный скаляр.

Давайте Bt=[βtbt], то есть вектор коэффициентов и член смещения при t итерации оптимизации. Если BtBt1Bt2<BetaTolerance, затем оптимизация прекращается.

Если программное обеспечение сходится для последнего решателя, заданного в Solver, затем оптимизация прекращается. В противном случае программное обеспечение использует следующий решатель, указанный в Solver.

Пример: 'BetaTolerance',1e-6

Типы данных: single | double

Количество пакетов для обработки перед следующей проверкой сходимости, заданное как разделенная разделенными запятой парами, состоящая из 'NumCheckConvergence' и положительное целое число.

Для определения размера пакета см. раздел BatchSize.

Программа проверяет сходимость около 10 раз за проход через весь набор данных по умолчанию.

Пример: 'NumCheckConvergence',100

Типы данных: single | double

Максимальное количество проходов через данные, заданное как разделенная разделенными запятой парами, состоящая из 'PassLimit' и положительное целое число.

Программное обеспечение обрабатывает все наблюдения, когда оно завершает один проход через данные.

Когда программное обеспечение проходит через данные PassLimit раз, это прекращает оптимизацию.

Если вы задаете 'BatchLimit' и PassLimitзатем программное обеспечение выбирает аргумент, который приводит к обработке наименьшего количества наблюдений.

Пример: 'PassLimit',5

Типы данных: single | double

Двойное управление сходимостью SGD

свернуть все

Относительная погрешность на линейные коэффициенты и термин смещения ( точка пересечения), заданный как разделенная разделенными запятой парами, состоящая из 'BetaTolerance' и неотрицательный скаляр.

Давайте Bt=[βtbt], то есть вектор коэффициентов и член смещения при t итерации оптимизации. Если BtBt1Bt2<BetaTolerance, затем оптимизация прекращается.

Если вы также задаете DeltaGradientToleranceзатем оптимизация прекращается, когда программное обеспечение удовлетворяет любому критерию остановки.

Если программное обеспечение сходится для последнего решателя, заданного в Solver, затем оптимизация прекращается. В противном случае программное обеспечение использует следующий решатель, указанный в Solver.

Пример: 'BetaTolerance',1e-6

Типы данных: single | double

Допуск градиента-разности между верхним и нижним бассейном Каруш-Кун-Такер (KKT) нарушители условий комплементарности, заданный как разделенная разделенными запятой парами, состоящая из 'DeltaGradientTolerance' и неотрицательный скаляр.

  • Если величина нарушителей ККТ меньше DeltaGradientToleranceзатем программное обеспечение прекращает оптимизацию.

  • Если программное обеспечение сходится для последнего решателя, заданного в Solver, затем оптимизация прекращается. В противном случае программное обеспечение использует следующий решатель, указанный в Solver.

Пример: 'DeltaGapTolerance',1e-2

Типы данных: double | single

Количество проходов через весь набор данных для обработки перед следующей проверкой сходимости, заданное как разделенная разделенными запятой парами, состоящая из 'NumCheckConvergence' и положительное целое число.

Пример: 'NumCheckConvergence',100

Типы данных: single | double

Максимальное количество проходов через данные, заданное как разделенная разделенными запятой парами, состоящая из 'PassLimit' и положительное целое число.

Когда программа завершает один проход через данные, она обработала все наблюдения.

Когда программное обеспечение проходит через данные PassLimit раз, это прекращает оптимизацию.

Пример: 'PassLimit',5

Типы данных: single | double

Контроль сходимости BFGS, LBFGS и SpaRSA

свернуть все

Относительная погрешность на линейные коэффициенты и термин смещения ( точка пересечения), заданный как разделенная разделенными запятой парами, состоящая из 'BetaTolerance' и неотрицательный скаляр.

Давайте Bt=[βtbt], то есть вектор коэффициентов и член смещения при t итерации оптимизации. Если BtBt1Bt2<BetaTolerance, затем оптимизация прекращается.

Если вы также задаете GradientToleranceзатем оптимизация прекращается, когда программное обеспечение удовлетворяет любому критерию остановки.

Если программное обеспечение сходится для последнего решателя, заданного в Solver, затем оптимизация прекращается. В противном случае программное обеспечение использует следующий решатель, указанный в Solver.

Пример: 'BetaTolerance',1e-6

Типы данных: single | double

Абсолютный допуск градиента, заданный как разделенная разделенными запятой парами, состоящая из 'GradientTolerance' и неотрицательный скаляр.

Давайте t быть вектором градиента целевой функции относительно коэффициентов и члена смещения при t итерации оптимизации. Если t=max|t|<GradientTolerance, затем оптимизация прекращается.

Если вы также задаете BetaToleranceзатем оптимизация прекращается, когда программное обеспечение удовлетворяет любому критерию остановки.

Если программное обеспечение сходится для последнего решателя, заданного в программном обеспечении, то оптимизация прекращается. В противном случае программное обеспечение использует следующий решатель, указанный в Solver.

Пример: 'GradientTolerance',1e-5

Типы данных: single | double

Размер буфера истории для Hessian приближения, заданный как разделенная запятой пара, состоящий из 'HessianHistorySize' и положительное целое число. То есть на каждой итерации программное обеспечение составляет Hessian, используя статистику последних HessianHistorySize итераций.

Программное обеспечение не поддерживает 'HessianHistorySize' для SpaRSA.

Пример: 'HessianHistorySize',10

Типы данных: single | double

Максимальное количество итераций оптимизации, заданное как разделенная разделенными запятой парами, состоящая из 'IterationLimit' и положительное целое число. IterationLimit применяется к этим значениям Solver: 'bfgs', 'lbfgs', и 'sparsa'.

Пример: 'IterationLimit',500

Типы данных: single | double

Выходные аргументы

свернуть все

Шаблон обучающегося модели линейной классификации, возвращенный как объект шаблона. Чтобы обучить линейную модель классификации, используя высокомерные данные для многоклассовых задач, передайте t кому fitcecoc.

Если вы отображаете t в Командное окно, затем все, не заданные опции появляются пустыми ([]). Однако во время обучения программа заменяет пустые опции соответствующими значениями по умолчанию.

Подробнее о

свернуть все

Теплый старт

A warm start является начальной оценкой бета-коэффициентов и условия смещения, поданные в стандартную программу оптимизации для более быстрого сходимости.

Совет

  • Это - лучшая практика сориентировать матрицу предиктора так, чтобы наблюдения соответствовали столбцам, и задать 'ObservationsIn','columns'. В результате можно испытать значительное сокращение времени оптимизации-выполнения.

  • Для лучшей точности оптимизации, если данные предиктора высокомерны и Regularization является 'ridge', установите любую из этих комбинаций для Solver:

    • 'sgd'

    • 'asgd'

    • 'dual' если Learner является 'svm'

    • {'sgd','lbfgs'}

    • {'asgd','lbfgs'}

    • {'dual','lbfgs'} если Learner является 'svm'

    Другие комбинации могут привести к плохой точности оптимизации.

  • Для лучшей точности оптимизации, если данные предиктора умеренны - через низкомерны и Regularization является 'ridge', задать Solver на 'bfgs'.

  • Если Regularization является 'lasso', установите любую из этих комбинаций для Solver:

    • 'sgd'

    • 'asgd'

    • 'sparsa'

    • {'sgd','sparsa'}

    • {'asgd','sparsa'}

  • При выборе между SGD и ASGD примите к сведению, что:

    • SGD занимает меньше времени за итерацию, но для сходимости требуется больше итераций.

    • Для сходимости ASGD требуется меньше итераций, но требуется больше времени на итерацию.

  • Если данные предиктора имеют мало наблюдений, но много переменных предиктора, то:

    • Задайте 'PostFitBias',true.

    • Для решателей SGD или ASGD установите PassLimit к положительному целому числу, которое больше 1, например, 5 или 10. Эта настройка часто приводит к лучшей точности.

  • Для решателей SGD и ASGD, BatchSize влияет на скорость сходимости.

    • Если BatchSize слишком маленькая, тогда программа достигает минимума во многих итерациях, но быстро вычисляет градиент на итерацию.

    • Если BatchSize слишком велик, тогда программа достигает минимума в меньшем количестве итераций, но вычисляет градиент на итерацию медленно.

  • Большая скорость обучения (см LearnRate) ускорить сходимость до минимума, но может привести к расхождению (то есть переступая минимум). Малые скорости обучения гарантируют сходимость к минимуму, но могут привести к медленному прекращению обучения.

  • Если Regularization является 'lasso', затем экспериментируйте с различными значениями TruncationPeriod. Для примера задайте TruncationPeriod на 1, 10и затем 100.

  • Для эффективности программное обеспечение не стандартизирует данные предиктора. Чтобы стандартизировать данные предиктора (X), введите

    X = bsxfun(@rdivide,bsxfun(@minus,X,mean(X,2)),std(X,0,2));

    Код требует, чтобы вы ориентировали предикторы и наблюдения как строки и столбцы X, соответственно. Кроме того, для экономии использования памяти код заменяет исходные данные предиктора стандартизированные данные.

Ссылки

[1] Hsieh, C. J., K. W. Chang, C. J. Лин, С. С. Кеерти и С. Сундарараджан. Метод двойного координатного спуска для крупномасштабного линейного SVM. Материалы 25-й Международной конференции по машинному обучению, ICML "08, 2001, стр. 408-415.

[2] Лэнгфорд, Дж., Л. Ли, и Т. Чжан. «Разреженное онлайн-обучение через усеченный градиент». Дж. Мач. Учись. Рес., том 10, 2009, стр. 777-801.

[3] Nocedal, J. and S. J. Wright. Численная оптимизация, 2-е изд., Нью-Йорк: Спрингер, 2006.

[4] Шалев-Шварц, С., Я. Сингер, и Н. Сребру. Pegasos: Primal Estimated Sub-Gradient Solver for SVM (неопр.) (недоступная ссылка). Материалы 24-й Международной конференции по машинному обучению, ICML "07, 2007, стр. 807-814.

[5] Райт, С. Дж., Р. Д. Новак, и М. А. Т. Фигейредо. «Разреженная реконструкция с помощью разделяемого приближения». Транс. Сиг. Proc., Том 57, № 7, 2009, стр. 2479-2493.

[6] Xiao, Lin. «Dual Aververaging Methods for Regularized Stochastic Learning and Online Optimization». Дж. Мач. Учись. Res., Vol. 11, 2010, pp. 2543-2596.

[7] Сюй, Вэй. «К оптимальной однопроходной большой Шкале обучению со средним стохастическим градиентным спуском». CoRR, abs/1107.2490, 2011.

Расширенные возможности

См. также

| |

Введенный в R2016a