incrementalClassificationLinear
描述
incrementalClassificationLinear
创建一个incrementalClassificationLinear
代表二进制分类模型对象线性模型的增量学习。万博1manbetx支持学习者包括支持向量机(SVM)和逻辑回归。
不像其他的统计和机器学习工具箱™模型对象,incrementalClassificationLinear
可以直接调用。此外,您可以指定学习选项,例如性能指标配置,参数值,和客观的解决者,拟合模型的数据。当你创建一个incrementalClassificationLinear
对象,它是准备增量学习。
incrementalClassificationLinear
最适合增量学习。传统方法来训练支持向量机或线性模型二元分类(如创建模型通过拟合数据,进行交叉验证,优化hyperparameters,等等),看到的fitcsvm
或fitclinear
。多级增量学习,看到incrementalClassificationECOC
和incrementalClassificationNaiveBayes
。
创建
您可以创建一个incrementalClassificationLinear
模型对象在几个方面:
直接调用这个函数——配置增量学习的选项,或者为线性模型参数和hyperparameters指定初始值,通过调用
incrementalClassificationLinear
直接。这种方法是最好的,当你没有数据或你想立即开始增量学习。将传统的训练模式——初始化一个二进制增量学习分类线性模型使用模型系数和hyperparameters训练模型对象,您可以转换到一个传统的训练模式
incrementalClassificationLinear
模型对象通过它incrementalLearner
函数。此表包含适当的参考页面的链接。转换模板对象——你可以将模板对象转换成一个
incrementalClassificationLinear
模型对象通过它incrementalLearner
函数。此表包含适当的参考页面的链接。可转换模板对象 转换函数 templateSVM
incrementalLearner
templateLinear
incrementalLearner
增量学习函数的调用- - - - - -
适合
,updateMetrics
,updateMetricsAndFit
接受一个配置incrementalClassificationLinear
模型对象和数据作为输入,并返回一个incrementalClassificationLinear
模型对象更新的信息从输入模型和数据。
描述
返回一个默认增量学习模型对象二进制线性分类,Mdl
= incrementalClassificationLinear ()Mdl
。属性的默认模型包含未知模型参数占位符。你必须训练一个默认的模型之前,您可以跟踪它的性能或生成预测。
输入参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:“标准化”,真的
标准化预测数据使用预测手段和标准偏差估计估计期间。
指标
- - - - - -在增量学习模型性能指标来跟踪
“classiferror”
(默认)|字符串向量|函数处理|细胞向量|结构数组|“binodeviance”
|“指数”
|“枢纽”
|“分对数”
|“二次”
在增量学习模型性能指标跟踪,指定为一个内置的损失函数的名字,名字,函数的字符串向量处理(@metricName
)、结构的功能处理或细胞向量的名字,函数处理,或结构数组。
当Mdl
是温暖的(见IsWarm
),updateMetrics
和updateMetricsAndFit
跟踪的性能指标指标
的属性Mdl
。
下表列出了内置的损失函数的名字。您可以指定多个通过使用一个字符串向量。
的名字 | 描述 |
---|---|
“binodeviance” |
二项异常 |
“classiferror” |
分类错误 |
“指数” |
指数 |
“枢纽” |
铰链 |
“分对数” |
物流 |
“二次” |
二次 |
内置的损失函数的更多细节,请参阅损失
。
例子:“指标”,(“classiferror”“枢纽”)
指定一个自定义函数,返回一个性能指标,使用函数处理符号。函数必须有这种形式:
度量= customMetric (C, S)
输出参数
度规
是一个n——- - - - - -1
数值向量,其中每个元素的损失中相应的观测数据处理的增量学习函数在一个学习周期。你指定函数名(
customMetric
)。C
是一个n——- - - - - -2
逻辑矩阵行指示相应的观察所属的类。列顺序对应于类秩序一会
财产。创建C
通过设置C (
=p
,问
)1
,如果观察
是在课堂上p
指定的数据,对于每一个观察。设置行中的其他元素问
来p
0
。年代
是一个n——- - - - - -2
数字矩阵的预测分类的分数。年代
类似于分数
的输出预测
,行对应于观测数据和列顺序对应于类秩序一会
财产。S (
分类的观察吗p
,问
)
在课堂上被分类p
。问
指定多个自定义指标和分配自定义名称,使用结构数组。指定一个内置的和自定义指标的组合,使用细胞向量。
例子:“指标”,结构(‘Metric2’,‘Metric1’, @customMetric1 @customMetric2)
例子:“指标”,{@customMetric1 @customMetric2分对数的结构(Metric3, @customMetric3)}
updateMetrics
和updateMetricsAndFit
中的一个表中存储指定的指标指标
财产。的数据类型指标
决定了行表的名称。
“指标” 值数据类型 |
的描述指标 属性行名称 |
例子 |
---|---|---|
字符串或字符向量 | 相应的内置的度量 | 行名称“classiferror” 是“ClassificationError” |
结构数组 | 字段名 | 行名称结构(Metric1, @customMetric1) 是“Metric1” |
函数句柄函数存储在程序文件中 | 函数的名字 | 行名称@customMetric 是“customMetric” |
匿名函数 | CustomMetric_ ,在那里 是度量 在指标 |
行名称@ (C, S) customMetric (C, S)…… 是CustomMetric_1 |
性能指标选择的更多细节,请参阅性能指标。
数据类型:字符
|字符串
|结构体
|细胞
|function_handle
洗牌
- - - - - -国旗的洗牌的观察
真正的
(默认)|假
国旗洗牌观察每一次迭代,这表中指定为一个值。
价值 | 描述 |
---|---|
真正的 |
软件打乱观察在传入之前的数据块适合 函数的模型。这一行动减少偏见引起的抽样方案。 |
假 |
软件处理数据的顺序接收。 |
这个选项是有效的只有当解算器
是“扇区”
。当解算器
是“sgd”
或“asgd”
,软件总是打乱传入的数据前处理的观测数据。
例子:“洗牌”,假的
数据类型:逻辑
属性
您可以通过使用名称-值参数设置大多数属性语法只有当你调用incrementalClassificationLinear
直接。你可以设置一些属性,当你调用incrementalLearner
将传统训练的模型对象或对象模型模板。你不能设置属性FittedLoss
,NumTrainingObservations
,μ
,σ
,SolverOptions
,IsWarm
。
分类模型参数
β
- - - - - -线性模型系数β
数值向量
这个属性是只读的。
线性模型系数β指定为一个NumPredictors
1数字向量。
增量式拟合函数估计β
在培训。默认的初始β
价值取决于你如何创建模型:
如果你把一个传统训练模型对象创建模型对象或模板
Mdl
初始值是由对象的相应属性指定的。否则,初始值
0 (NumPredictors, 1)
。
数据类型:单
|双
偏见
- - - - - -模型的截距β0
数字标量
这个属性是只读的。
模型的截距β0,或者偏见,指定为数字标量。
增量式拟合函数估计偏见
在培训。默认的初始偏见
价值取决于你如何创建模型:
如果你把一个传统训练模型对象创建模型对象或模板
Mdl
初始值是由对象的相应属性指定的。否则,初始值
0
。
数据类型:单
|双
一会
- - - - - -独特的类标签
分类数组|字符数组|字符串数组|逻辑向量|数值向量|单元阵列的特征向量
这个属性是只读的。
独特的类标签用于训练模型,指定分类,字符,或字符串数组,逻辑或数值向量,或单元阵列的特征向量。一会
和响应的数据必须具有相同的数据类型。(软件对字符串数组作为细胞阵列特征向量)。
默认的一会
价值取决于你如何创建模型:
如果你把一个传统训练模型创建
Mdl
,一会
指定相应的属性的传统训练模式。否则,增量式拟合函数推断
一会
在培训。
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
|分类
FittedLoss
- - - - - -损失函数用于符合线性模型
“枢纽”
|分对数的
这个属性是只读的。
损失函数用于符合线性模型,指定为“枢纽”
或分对数的
。
价值 | 算法 | 损失函数 | 学习者 价值 |
---|---|---|---|
“枢纽” |
万博1manbetx支持向量机 | 铰链: | “支持向量机” |
分对数的 |
逻辑回归 | 异常(物流): | “物流” |
学习者
- - - - - -线性分类模型类型
“支持向量机”
|“物流”
这个属性是只读的。
线性分类模型类型,指定为“支持向量机”
或“物流”
。incrementalClassificationLinear
存储学习者
值作为特征向量。
在下表中,
β是一个向量的p系数。
x是一个观察从p预测变量。
b是标量的偏见。
价值 | 算法 | 损失函数 | FittedLoss 价值 |
---|---|---|---|
“支持向量机” |
万博1manbetx支持向量机 | 铰链: | “枢纽” |
“物流” |
逻辑回归 | 异常(物流): | 分对数的 |
默认的学习者
价值取决于你如何创建模型:
如果你把一个传统训练支持向量机分类模型对象(
ClassificationSVM
或CompactClassificationSVM
)或模板对象(返回的SVM模型templateSVM
)来创建Mdl
,学习者
是“支持向量机”
。如果你把一个传统训练线性分类模型对象(
ClassificationLinear
),或者返回的模板对象(线性分类模型templateLinear
)来创建Mdl
,学习者
指定相应的属性的对象。否则,默认值是
“支持向量机”
。
数据类型:字符
|字符串
NumPredictors
- - - - - -数量的预测变量
非负数字标量
这个属性是只读的。
指定数量的预测变量,作为一个非负数字标量。
默认的NumPredictors
价值取决于你如何创建模型:
如果你把一个传统训练模型创建
Mdl
,NumPredictors
指定相应的属性的传统训练模式。如果您创建
Mdl
通过调用incrementalClassificationLinear
直接,您可以指定NumPredictors
通过使用名称-值参数的语法。否则,默认值是
0
推断,增量式拟合函数NumPredictors
培训期间的预测数据。
数据类型:双
NumTrainingObservations
- - - - - -观察适合增量式模型
0
(默认)|非负数字标量
这个属性是只读的。
观察适合增量模型的数量Mdl
指定为一个非负数字标量。NumTrainingObservations
当你通过增加Mdl
和训练数据适合
或updateMetricsAndFit
。
请注意
如果你把一个传统训练模型创建Mdl
,incrementalClassificationLinear
不会增加观测的数量符合传统的训练模式NumTrainingObservations
。
数据类型:双
之前
- - - - - -前类概率
“经验”
|“统一”
|数值向量
这个属性是只读的。
类概率之前,指定为“经验”
,“统一”
,或者一个数值向量。incrementalClassificationLinear
存储之前
值作为一个数值向量。
价值 | 描述 |
---|---|
“经验” |
增量学习函数之前推断类概率从观察类相对频率响应数据增量训练后(估计期间EstimationPeriod )。 |
“统一” |
对于每个类,先验概率是1/2。 |
数值向量 | 习惯,规范化的先验概率。元素的顺序之前 对应的元素一会 财产。 |
默认的之前
价值取决于你如何创建模型:
如果你把一个传统训练模型创建
Mdl
,之前
指定相应的属性的传统训练模式。否则,默认值是
“经验”
。
数据类型:单
|双
|字符
|字符串
ScoreTransform
- - - - - -分数转换函数
特征向量|字符串标量|函数处理
这个属性是只读的。
分数转换函数描述如何增量学习函数变换原始响应值,指定为一个特征向量,字符串标量,或函数处理。incrementalClassificationLinear
存储ScoreTransform
值作为特征向量或函数处理。
这个表得分变换描述可用的内置函数。
价值 | 描述 |
---|---|
“doublelogit” |
1 / (1 +e2x) |
“invlogit” |
日志(x/ (1 -x)) |
“ismax” |
集类的分数最大的分数为1,并设置所有其他类的分数为0 |
“分对数” |
1 / (1 +e- - - - - -x) |
“没有” 或“身份” |
x(转换) |
“标志” |
1x< 0 为0x= 0 1x> 0 |
“对称” |
2x- 1 |
“symmetricismax” |
集合类的分数最大的分数为1,和所有其他类的分数设置为1 |
“symmetriclogit” |
2 / (1 +e- - - - - -x)- 1 |
对于一个MATLAB®函数或你定义一个函数,输入它的功能处理;例如,“ScoreTransform”@函数
,地点:
函数
接受一个n——- - - - - -2
矩阵(原来的分数),并返回一个相同大小的矩阵(转换后的分数)。列顺序对应于类秩序一会
财产。n是观测的数量,和行吗j矩阵包含类的分数的观察j。
默认的ScoreTransform
价值取决于你如何创建模型:
如果你把一个传统训练模型创建
Mdl
,ScoreTransform
指定相应的属性的传统训练模式。例如,如果ScoreTransform
传统训练模型的属性是一个score-to-posterior-probability变换函数,计算fitPosterior
或fitSVMPosterior
,Mdl.ScoreTransform
包含一个匿名函数。否则,默认值是
“没有”
(当学习者
是“支持向量机”
)或分对数的
(当学习者
是“物流”
)。
数据类型:字符
|字符串
|function_handle
训练参数
EstimationPeriod
- - - - - -数量的观测估计hyperparameters处理
非负整数
这个属性是只读的。
数量的观察处理的增量式模型来估计hyperparameters培训或跟踪性能指标之前,指定为一个非负整数。
请注意
如果
Mdl
是准备增量学习(指定所有必需hyperparameters培训),incrementalClassificationLinear
部队EstimationPeriod
来0
。如果
Mdl
不是准备增量学习,incrementalClassificationLinear
集EstimationPeriod
来1000年
。
更多细节,请参阅估计时间。
数据类型:单
|双
FitBias
- - - - - -线性模型拦截包含国旗
真正的
|假
这个属性是只读的。
线性模型拦截包含标志,指定为真正的
或假
。
价值 | 描述 |
---|---|
真正的 |
incrementalClassificationLinear 包括偏差项β0增量的线性模型,拟合函数适合数据。 |
假 |
incrementalClassificationLinear 集β0= 0。 |
如果偏见
≠0,FitBias
必须真正的
。换句话说,incrementalClassificationLinear
不支持一个等式约束万博1manbetxβ0。
默认的FitBias
价值取决于你如何创建模型:
如果你把一个传统训练线性分类模型对象(
ClassificationLinear
)来创建Mdl
,FitBias
是指定的FitBias
的价值ModelParameters
财产的传统训练模式。如果你把一个线性模型模板对象(返回的
templateLinear
)来创建Mdl
,FitBias
指定相应的属性的对象。否则,默认值是
真正的
。
数据类型:逻辑
μ
- - - - - -预测方法
向量的数值|[]
这个属性是只读的。
预测方法,指定为一个数值向量。
如果μ
是一个空数组[]
你指定“标准化”,真的
、增量拟合函数集μ
预测变量意味着估计估计期间指定的EstimationPeriod
。
你不能指定μ
直接。
数据类型:单
|双
σ
- - - - - -预测标准差
向量的数值|[]
这个属性是只读的。
预测标准差,指定为一个数值向量。
如果σ
是一个空数组[]
你指定“标准化”,真的
、增量拟合函数集σ
预测变量的标准差估计估计期间指定的EstimationPeriod
。
你不能指定σ
直接。
数据类型:单
|双
解算器
- - - - - -目标函数极小化技术
“扇区”
|“sgd”
|“asgd”
这个属性是只读的。
目标函数最小化技术,指定为“扇区”
,“sgd”
,或“asgd”
。incrementalClassificationLinear
存储解算器
值作为特征向量。
价值 | 描述 | 笔记 |
---|---|---|
“扇区” |
|
|
“sgd” |
随机梯度下降法(SGD)[3][2] |
|
“asgd” |
平均随机梯度下降法(ASGD)[4] |
|
默认的解算器
价值取决于你如何创建模型:
如果您创建
Mdl
通过调用incrementalClassificationLinear
直接默认值“扇区”
。如果你把一个传统训练线性分类模型对象(
ClassificationLinear
)或线性模型模板对象(返回的templateLinear
)来创建Mdl
,对象使用脊正规化和SGD或ASGD解算器,Mdl
使用相同的解决者。(您可以查看
解算器
价值的传统训练模式(例如,TTMdl
)TTMdl.ModelParameters.Solver
。模型模板对象,您可以查看解算器
通过在命令窗口中显示对象或变量编辑器。)否则,
解算器
名称-值参数的incrementalLearner
函数设置这个属性。参数的默认值“扇区”
。
数据类型:字符
|字符串
SolverOptions
- - - - - -目的解决配置
结构数组
这个属性是只读的。
客观的解算器配置,指定为一个结构数组。等领域的SolverOptions
属性指定特定于解算器吗解算器
。
数据类型:结构体
SGD和ASGD解算器参数
BatchSize
- - - - - -Mini-batch大小
正整数
这个属性是只读的。
Mini-batch大小,指定为一个正整数。在每一个学习周期训练,incrementalClassificationLinear
使用BatchSize
观察计算次梯度。
观测的数量在过去mini-batch(最后一个学习周期的每个函数调用适合
或updateMetricsAndFit
可以小于)BatchSize
。例如,如果您提供25观测适合
或updateMetricsAndFit
,前两个函数使用10观察学习周期和5观察过去的学习周期。
默认的BatchSize
价值取决于你如何创建模型:
如果您创建
Mdl
通过调用incrementalClassificationLinear
直接默认值10
。如果你把一个传统训练线性分类模型对象(
ClassificationLinear
)来创建Mdl
,对象使用脊正规化和SGD或ASGD解算器,BatchSize
是指定的BatchSize
的价值ModelParameters
财产的传统训练模式。如果你把一个线性模型模板对象(返回的
templateLinear
)来创建Mdl
,对象使用脊正规化和SGD或ASGD解算器,BatchSize
指定相应的属性的对象。否则,
BatchSize
名称-值参数的incrementalLearner
函数设置这个属性。参数的默认值10
。
数据类型:单
|双
λ
- - - - - -脊(l2)正则化项的力量
负的标量
这个属性是只读的。
脊(l2)正则化项,指定为负的标量。
默认的λ
价值取决于你如何创建模型:
如果您创建
Mdl
通过调用incrementalClassificationLinear
直接默认值1 e-5
。如果你把一个传统训练线性分类模型对象(
ClassificationLinear
)或线性模型模板对象(返回的templateLinear
)来创建Mdl
,对象使用脊正规化和SGD或ASGD解算器,λ
指定相应的属性的对象。否则,
λ
名称-值参数的incrementalLearner
函数设置这个属性。参数的默认值1 e-5
。
数据类型:双
|单
LearnRate
- - - - - -最初的学习速率
“汽车”
|积极的标量
这个属性是只读的。
最初的学习速率,指定为“汽车”
或积极的标量。incrementalClassificationLinear
存储LearnRate
值作为一个数字标量。
学习速率控制的优化步长扩展目标次梯度。LearnRate
指定一个初始值的学习速率,LearnRateSchedule
决定了学习速率对后续学习周期。
当你指定“汽车”
:
最初的学习速率
0.7
。如果
EstimationPeriod
>0
,适合
和updateMetricsAndFit
变化的速度1 /√(1 + max (sum (x ^ 2, obsDim)))
结束的时候EstimationPeriod
。的obsDim
值是1
如果观测组合预测的列数据;否则,该值2
。
默认的LearnRate
价值取决于你如何创建模型:
如果您创建
Mdl
通过调用incrementalClassificationLinear
直接默认值“汽车”
。如果你把一个传统训练线性分类模型对象(
ClassificationLinear
)来创建Mdl
,对象使用脊正规化和SGD或ASGD解算器,LearnRate
是指定的LearnRate
的价值ModelParameters
财产的传统训练模式。如果你把一个线性模型模板对象(返回的
templateLinear
)来创建Mdl
,对象使用脊正规化和SGD或ASGD解算器,LearnRate
指定相应的属性的对象。否则,
LearnRate
名称-值参数的incrementalLearner
函数设置这个属性。参数的默认值“汽车”
。
数据类型:单
|双
|字符
|字符串
LearnRateSchedule
- - - - - -学习速率的时间表
“腐烂”
|“不变”
这个属性是只读的。
学习速率的日程安排,指定为“腐烂”
或“不变”
,在那里LearnRate
指定初始学习速率ɣ0。incrementalClassificationLinear
存储LearnRateSchedule
值作为特征向量。
价值 | 描述 |
---|---|
“不变” |
学习速率是ɣ0学习周期。 |
“腐烂” |
学习速率的学习周期t是
|
默认的LearnRateSchedule
价值取决于你如何创建模型:
如果你把一个传统训练模型对象创建模型对象或模板
Mdl
,LearnRateSchedule
名称-值参数的incrementalLearner
函数设置这个属性。参数的默认值“腐烂”
。否则,默认值是
“腐烂”
。
数据类型:字符
|字符串
性能指标参数
IsWarm
- - - - - -标志指示是否模型跟踪性能指标
假
或0
|真正的
或1
这个属性是只读的。
标志指示是否跟踪性能指标增量模型,指定为逻辑0
(假
)或1
(真正的
)。
增量模型Mdl
是温暖的(IsWarm
就变成了真正的
增量式拟合函数符合(后)EstimationPeriod
+MetricsWarmupPeriod
增量式模型)的观察。
价值 | 描述 |
---|---|
真正的 或1 |
增量模型Mdl 是温暖的。因此,updateMetrics 和updateMetricsAndFit 跟踪的性能指标指标 的属性Mdl 。 |
假 或0 |
updateMetrics 和updateMetricsAndFit 不跟踪性能指标。 |
数据类型:逻辑
指标
- - - - - -模型的性能指标
表
这个属性是只读的。
在增量学习模型更新的性能指标updateMetrics
和updateMetricsAndFit
,指定为一个表有两列和米行,米是指定的指标的数量吗指标
名称-值参数。
的列指标
标记累积
和窗口
。
累积
:元素j
模型的性能,以度量j
从模型成为温暖的时间(IsWarm
是1
)。窗口
:元素j
模型的性能,以度量j
评估在所有指定的窗口内观察MetricsWindowSize
财产。软件更新窗口
后流程MetricsWindowSize
观察。
行标记指定的指标。详情,请参阅指标
名称-值参数incrementalLearner
或incrementalClassificationLinear
。
数据类型:表
MetricsWarmupPeriod
- - - - - -数量的观测符合之前跟踪性能指标
非负整数
这个属性是只读的。
数量的观察增量式模型之前必须适合其跟踪性能指标指标
属性,指定为一个非负整数。
默认的MetricsWarmupPeriod
价值取决于你如何创建模型:
如果你把一个传统训练模型创建
Mdl
,MetricsWarmupPeriod
名称-值参数的incrementalLearner
函数设置这个属性。参数的默认值0
。否则,默认值是
1000年
。
更多细节,请参阅性能指标。
数据类型:单
|双
MetricsWindowSize
- - - - - -数量的观察使用性能指标计算窗口
正整数
这个属性是只读的。
数量的观察使用性能指标计算窗口,指定为一个正整数。
默认的MetricsWindowSize
价值取决于你如何创建模型:
如果你把一个传统训练模型创建
Mdl
,MetricsWindowSize
名称-值参数的incrementalLearner
函数设置这个属性。参数的默认值200年
。否则,默认值是
200年
。
性能指标选择的更多细节,请参阅性能指标。
数据类型:单
|双
对象的功能
适合 |
火车线性模型的增量学习 |
updateMetricsAndFit |
更新性能指标在线性增量学习模型给定的新数据和训练模式 |
updateMetrics |
更新性能指标在线性增量学习模型给定的新数据 |
损失 |
失去对批数据线性增量学习模型 |
预测 |
从线性增量学习模型预测反应的新观察 |
perObservationLoss |
每观察分类错误的增量学习模型 |
重置 |
重置增量分类模型 |
例子
创建增量学习之前没有任何信息
创建一个默认为二进制增量线性支持向量机模型的分类。
Mdl = incrementalClassificationLinear ()
Mdl = incrementalClassificationLinear IsWarm: 0指标:[1 x2表]一会:[1 x0双]ScoreTransform:“没有一个”测试:[0 x1双]偏见:0学习者:“支持向量机”属性,方法
Mdl
是一个incrementalClassificationLinear
模型对象。所有的属性是只读的。
Mdl
必须适合数据之前,您可以使用它来执行任何其他操作。
载入人类活动数据集。随机洗牌数据。
负载humanactivityn =元素个数(actid);rng (1)%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
细节的数据集,输入描述
在命令行中。
响应可以是五类:坐着,站着,散步,跑步,或者跳舞。二分响应通过识别主题是否移动(actid
> 2)。
Y = Y > 2;
适应增量式模型通过使用训练数据updateMetricsAndFit
函数。模拟数据流处理的50块一次观察。在每一次迭代:
50的观察过程。
覆盖前面的增量式模型与一个新安装的观察。
商店 、累积度量和窗口指标增量学习期间看到他们如何演变。
%预先配置numObsPerChunk = 50;nchunk =地板(n / numObsPerChunk);ce = array2table (0 (nchunk, 2),“VariableNames”,(“累积”“窗口”]);beta1 = 0 (nchunk, 1);%增量学习为j = 1: nchunk ibegin = min (n, numObsPerChunk * (j - 1) + 1);iend = min (n, numObsPerChunk * j);idx = ibegin: iend;Mdl = updateMetricsAndFit (Mdl X (idx:), Y (idx));ce {j:} = Mdl.Metrics {“ClassificationError”,:};beta1 (j + 1) = Mdl.Beta (1);结束
IncrementalMdl
是一个incrementalClassificationLinear
模型对象培训中的所有数据流。在增量学习模型是热身之后,updateMetricsAndFit
检查模型的性能的观察,然后符合观测模型。
性能指标和 进化在训练,放到单独的瓷砖。
t = tiledlayout (2, 1);nexttile情节(beta1) ylabel (“\ beta_1”)xlim ([0 nchunk]) nexttile h =情节(ce.Variables);xlim ([0 nchunk]) ylabel (分类错误的)参照线(Mdl.MetricsWarmupPeriod / numObsPerChunk,“g -”。传奇(h, ce.Properties.VariableNames)包含(t)“迭代”)
情节表明updateMetricsAndFit
以下:
适合 在增量学习迭代。
计算后的性能指标度量预热期。
在每一次迭代计算累积度量。
计算窗口指标200年处理后观察(4迭代)。
配置增量学习选项
准备一个二进制增量SVM学习者通过指定指标预热期,在此期间updateMetricsAndFit
功能只适合模型。指定一个指标500观察的窗口大小。通过使用SGD训练模型,并调整SGD批量大小,学习速率和正则化参数。
载入人类活动数据集。随机洗牌数据。
负载humanactivityn =元素个数(actid);rng (“默认”)%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
细节的数据集,输入描述
在命令行中。
响应可以是五类:坐着,站着,散步,跑步,或者跳舞。二分响应通过识别主题是否移动(actid
> 2)。
Y = Y > 2;
创建一个二进制增量线性模型分类。配置模型如下:
指定增量拟合函数过程原始(unstandardized)预测数据。
指定SGD解算器。
假设岭正则化参数值为0.001,SGD 20批大小,学习速率0.002适合这个问题。
指定一个度量预热期5000年的观察。
指定一个指标500观察的窗口大小。
跟踪分类和铰链误差指标测量的性能模型。
Mdl = incrementalClassificationLinear (“标准化”假的,…“规划求解”,“sgd”,“λ”,0.001,“BatchSize”,20岁,“LearnRate”,0.002,…“MetricsWarmupPeriod”,5000,“MetricsWindowSize”,500,…“指标”,{“classiferror”“枢纽”})
Mdl = incrementalClassificationLinear IsWarm: 0指标:[2 x2表]一会:[1 x0双]ScoreTransform:“没有一个”测试:[0 x1双]偏见:0学习者:“支持向量机”属性,方法
Mdl
是一个incrementalClassificationLinear
模型对象配置为增量学习。
适应增量式模型通过使用其余的数据updateMetricsAndFit
函数。在每一次迭代:
模拟数据流处理一块50的观察。注意,块大小与SGD批大小不同。
覆盖前面的增量式模型与一个新安装的观察。
存储估计系数 、累积度量和窗口指标增量学习期间看到他们如何演变。
%预先配置numObsPerChunk = 50;nchunk =地板(n / numObsPerChunk);ce = array2table (0 (nchunk, 2),“VariableNames”,(“累积”“窗口”]);铰链= array2table (0 (nchunk, 2),“VariableNames”,(“累积”“窗口”]);beta10 = 0 (nchunk, 1);%增量式拟合为j = 1: nchunk ibegin = min (n, numObsPerChunk * (j - 1) + 1);iend = min (n, numObsPerChunk * j);idx = ibegin: iend;Mdl = updateMetricsAndFit (Mdl X (idx:), Y (idx));ce {j:} = Mdl.Metrics {“ClassificationError”,:};铰链{j:} = Mdl.Metrics {“HingeLoss”,:};beta10 (j + 1) = Mdl.Beta (10);结束
Mdl
是一个incrementalClassificationLinear
模型对象培训中的所有数据流。在增量学习模型是热身之后,updateMetricsAndFit
检查模型的性能的观察,然后符合观测模型。
性能指标和 进化在训练,放到单独的瓷砖。
tiledlayout (2, 2) nexttile情节(beta10) ylabel (“\ beta_ {10}”)xlim ([0 nchunk]);参照线(Mdl.MetricsWarmupPeriod / numObsPerChunk,“g -”。)包含(“迭代”)nexttile h =情节(ce.Variables);xlim ([0 nchunk]);ylabel (分类错误的)参照线(Mdl.MetricsWarmupPeriod / numObsPerChunk,“g -”。传奇(h, ce.Properties.VariableNames)包含(“迭代”)nexttile h =情节(hinge.Variables);xlim ([0 nchunk]);ylabel (“铰链损失”)参照线(Mdl.MetricsWarmupPeriod / numObsPerChunk,“g -”。传奇(h, hinge.Properties.VariableNames)包含(“迭代”)
情节表明updateMetricsAndFit
以下:
适合 在增量学习迭代。
计算后的性能指标度量预热期。
在每一次迭代计算累积度量。
计算窗口指标500年处理后观察(10迭代)。
传统培训模式转换为增量学习
火车二进制分类使用的线性模型fitclinear
,将它转换成一个增量学习,跟踪其性能,并适合流媒体数据。从传统的增量学习延续培训的选项。
加载和数据预处理
载入人类活动数据集。随机洗牌数据。东方的观测指标数据列。
负载humanactivityrng (1);%的再现性n =元素个数(actid);idx = randsample (n, n);X =壮举(idx:)”;Y = actid (idx);
细节的数据集,输入描述
在命令行中。
响应可以是五类:坐着,站着,散步,跑步,或者跳舞。二分响应通过识别主题是否移动(actid
> 2)。
Y = Y > 2;
假设当主题是空闲的(收集的数据Y
=假
)质量比主题是移动时的两倍。创建一个属性的权重变量2观察从懒懒的主题,收集和1一个移动的主题。
W = 1 (n, 1) + Y ~;
为二进制分类培训线性模型
二进制分类符合线性模型的随机样本数据的一半。
idxtt = randsample((真假),n, true);TTMdl = fitclinear (X (:, idxtt), Y (idxtt),“ObservationsIn”,“列”,…“重量”W (idxtt))
TTMdl = ClassificationLinear ResponseName:“Y”类名:[0 1]ScoreTransform:“没有一个”测试:[60 x1双]偏见:-0.1107λ:8.2967 e-05学习者:“支持向量机”属性,方法
TTMdl
是一个ClassificationLinear
模型对象代表二进制分类的传统训练的线性模型。
转换训练模型
传统训练分类模型转换为一个二进制分类线性模型的增量学习。
IncrementalMdl = incrementalLearner (TTMdl)
IncrementalMdl = incrementalClassificationLinear IsWarm: 1指标:[1 x2表]一会:[0 1]ScoreTransform:“没有一个”测试:[60 x1双]偏见:-0.1107学习者:“支持向量机”属性,方法
分别跟踪性能指标和模型
对其余的数据执行增量学习使用updateMetrics
和适合
功能。模拟数据流处理50观测一次。在每一次迭代:
调用
updateMetrics
更新和窗口分类累积误差模型的输入块的观察。覆盖前面的增量式模型更新的损失指标
财产。注意,函数不符合模型的一部分数据,大部分是“新”的数据模型。指定列的观测是面向,并指定观察权重。调用
适合
适合的模型输入块的观察。覆盖前面的增量式模型更新模型参数。指定列的观测是面向,并指定观察权重。存储分类错误,首先估计系数 。
%预先配置idxil = ~ idxtt;nil =总和(idxil);numObsPerChunk = 50;nchunk =地板(nil / numObsPerChunk);ce = array2table (0 (nchunk, 2),“VariableNames”,(“累积”“窗口”]);beta1 = [IncrementalMdl.Beta (1);0 (nchunk 1)];自= X (:, idxil);Yil = Y (idxil);会= W (idxil);%增量式拟合为j = 1: nchunk ibegin = min (nil, numObsPerChunk * (j - 1) + 1);iend = min (nil, numObsPerChunk * j);idx = ibegin: iend;IncrementalMdl = updateMetrics (IncrementalMdl自(:,idx) Yil (idx),…“ObservationsIn”,“列”,“重量”会(idx));ce {j:} = IncrementalMdl.Metrics {“ClassificationError”,:};IncrementalMdl =适合(IncrementalMdl自(:,idx) Yil (idx),…“ObservationsIn”,“列”,“重量”会(idx));beta1 (j + 1) = IncrementalMdl.Beta(结束);结束
IncrementalMdl
是一个incrementalClassificationLinear
模型对象培训中的所有数据流。
或者,您可以使用updateMetricsAndFit
更新模型的性能指标给定一个新的数据块,然后适应模型数据。
画一个跟踪性能指标和估计系数的情节 。
t = tiledlayout (2, 1);nexttile h =情节(ce.Variables);xlim ([0 nchunk]) ylabel (分类错误的传奇(h, ce.Properties.VariableNames) nexttile情节(beta1) ylabel (“\ beta_1”)xlim ([0 nchunk])包含(t)“迭代”)
累计损失稳定和逐渐减少,而跳窗的损失。
突然发生了变化,然后逐渐平缓适合
流程更块。
更多关于
增量学习
增量学习,或在线学习,是机器学习的一个分支关心处理传入的数据从数据流,可能没有知识的预测变量的分布方面的预测或目标函数(包括调优参数值),或者观察是否标示。增量学习有别于传统机器学习,足够的标签数据可用来适应一个模型,优化hyperparameters进行交叉验证,推断预测分布。
鉴于传入的观察,增量学习模型处理数据在下列方面,但通常在这个顺序:
预测标签。
测量预测性能。
检查结构性突变或漂移模型。
符合模型的观测。
更多细节,请参阅增量学习概述。
增量学习的自适应尺度不变的解算器
的增量学习的自适应尺度不变的解算器,介绍了[1],是一个gradient-descent-based目标规划求解线性预测模型进行训练。解算器hyperparameter自由,对预测变量尺度上的差异,并且不需要先验知识的分布预测变量。这些特点使其适合增量学习。
标准SGD和ASGD动力学预测变量对不同尺度敏感,导致模型可以表现不佳。使用SGD和ASGD取得更好的精度,可以规范预测数据,和调优正则化和学习速率参数。对于传统的机器学习,足够的数据可以使hyperparameter调优交叉验证和预测标准化。然而,对于增量学习,足够的数据可能不可用(例如,观察可能只能一次一个),预测的分布可能是未知的。这些特征使参数优化和预测标准化在增量学习困难或不可能。
增量拟合函数的分类适合
和updateMetricsAndFit
使用更激进ScInOL2版本的算法。
提示
在创建模型之后,您可以生成C / c++代码执行增量学习数据流。需要生成C / c++代码MATLAB编码器™。有关详细信息,请参见介绍代码生成。
算法
估计时间
在评估期间,增量拟合函数适合
和updateMetricsAndFit
使用第一个进来的EstimationPeriod
观察评估(曲调)hyperparameters增量所需的培训。估计发生只有当EstimationPeriod
是正的。此表描述了hyperparameters他们估计,或调整。
Hyperparameter | 模型属性 | 使用 | 条件 |
---|---|---|---|
预测均值和标准差 |
|
标准化预测数据 | hyperparameters估计当这两个条件:
|
学习速率 | LearnRate |
调整大小的解决步骤 | hyperparameter估计当这两个条件:
|
在评估期间,适合
不符合模型,updateMetricsAndFit
不符合模型或更新性能指标。在估计期的结束,更新的属性存储hyperparameters功能。
标准化数据
如果增量学习功能配置标准化预测变量,他们使用中存储的均值和标准差μ
和σ
增量学习模型的属性Mdl
。
当您设置
“标准化”,真的
和一个积极的评估期(见EstimationPeriod
),Mdl.Mu
和Mdl.Sigma
是空的,渐进的拟合函数均值和标准差估计使用评估期间的观察。当您设置
“标准化”、“汽车”
(默认),适用下列条件:如果您创建
incrementalClassificationLinear
通过将传统训练二进制线性支持向量机模型(ClassificationSVM
或CompactClassificationSVM
),μ
和σ
传统训练模型的属性是空数组[]
,增量学习函数不规范预测变量。如果μ
和σ
非空的传统训练模型的属性,增量学习功能规范预测变量使用指定的均值和标准差。增量式拟合函数不估计均值和标准差新,不管评估周期的长度。如果您创建
incrementalClassificationLinear
通过将一个线性分类模型(ClassificationLinear
),不规范数据增量学习功能,无论评估周期的长度。如果你不把传统训练模型,增量学习功能规范预测数据只有当你指定一个SGD解算器(见
解算器
)和一个积极的评估期(见EstimationPeriod
)。
当增量拟合函数均值和标准差估计预测,计算加权手段和功能使用评估期间观察加权标准差。具体来说,功能规范预测j(xj)使用
xj是预测j,xjk是观察k的预测j在评估期间。
pk是类的先验概率k(
之前
增量模型)的属性。wj是观察体重j。
性能指标
的
updateMetrics
和updateMetricsAndFit
函数跟踪模型性能指标(“指标”
从新的数据增量式模型时)温暖的(IsWarm属性)。增量模型后变得温暖适合
或updateMetricsAndFit
增量模型MetricsWarmupPeriod观察,这是度量预热期。如果EstimationPeriod> 0,hyperparameters估计函数拟合模型的数据。因此,必须处理一个额外的功能
EstimationPeriod
观察模型开始前预热期的指标。的
指标
增量模型的属性存储两种形式的各性能指标作为一个表的变量(列),累积
和窗口
行,个别指标。当增量模型是温暖的,updateMetrics
和updateMetricsAndFit
更新后频率的指标:累积
——函数计算累积度量模型以来的跟踪性能。更新指标的函数每次调用函数和基地提供的计算对整个数据集。窗口
——函数计算基于一个窗口内的所有观测指标决定的MetricsWindowSize名称-值对的论点。MetricsWindowSize
也决定了软件更新的频率窗口
指标。例如,如果MetricsWindowSize
是20,函数计算指标根据过去的20的观察提供的数据(X((结束- 20 + 1):,:)
和Y((- 20 + 1)结束:结束)
)。增量跟踪性能指标的函数在一个窗口中使用以下过程:
存储一个缓冲区的长度
MetricsWindowSize
为每个指定的度量,并存储一个缓冲区的观察权重。填充的元素指标基于批次缓冲与模型性能的观察,并存储相应的权重观察权重缓冲区。
当缓冲区满,覆盖
Mdl.Metrics.Window
窗口的加权平均性能指标。如果缓冲区溢出时,函数过程一批观察,最新的传入MetricsWindowSize
观察输入缓冲区,和最早的观察从缓冲区中删除。例如,假设MetricsWindowSize
是20,缓冲区的指标有10个值从一个以前批处理,和15值传入的。组成20窗口长度的函数使用15传入的观察和测量的最新5测量前一批。
省略了一个观察的软件
南
分数计算时累积
和窗口
性能度量值。
引用
[1]Kempka、MichałWojciech Kotłowski,曼弗雷德·k·Warmuth。“自适应尺度不变的在线学习算法的线性模型”。Preprint, submitted February 10, 2019.https://arxiv.org/abs/1902.07528。
[2]兰福德,J。,l。li, and T. Zhang. “Sparse Online Learning Via Truncated Gradient.”j·马赫。学习。Res。10卷,2009年,页777 - 801。
[3]Shalev-Shwartz, S。,Y。年代在ger, and N. Srebro. “Pegasos: Primal Estimated Sub-Gradient Solver for SVM.”《24日国际会议在机器学习,ICML ' 07,2007年,页807 - 814。
[4]徐,魏。“对最优传递规模与平均随机梯度下降学习。”相关系数、abs / 1107.2490, 2011年。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
版本历史
介绍了R2020b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。