为回归神经网络模型
一个RegressionNeuralNetwork
对象是一个训练有素、前馈和完全连接神经网络回归。第一个完全连接层的神经网络已连接网络的输入(预测数据X
),并且每个后续层从上一层连接。每个完全连接层增加输入权重矩阵(LayerWeights
),然后添加一个偏差向量(LayerBiases
)。激活函数遵循每个完全连接层,除最后一个(激活
和OutputLayerActivation
)。最后完全连接层生成网络的输出,即预测响应值。有关更多信息,请参见神经网络结构。
创建一个RegressionNeuralNetwork
对象的使用fitrnet
。
LayerSizes
- - - - - -大小的完全连接层这个属性是只读的。
尺寸完全连接层的神经网络模型,作为一个正整数返回向量。的我th元素LayerSizes
输出数量吗我完全连接层的神经网络模型。
LayerSizes
不包括最后的完全连接层的大小。这总是一个输出层。
数据类型:单
|双
LayerWeights
- - - - - -学习层的重量这个属性是只读的。
学习层权重完全连接层,作为细胞数组返回。的我单元阵列中的th条目对应的层的权重我完全连接层。例如,Mdl.LayerWeights {1}
返回第一个完全连接的权重模型的层Mdl
。
LayerWeights
包括最后的完全连接层的权重。
数据类型:细胞
LayerBiases
- - - - - -学习层的偏见这个属性是只读的。
学习层偏见完全连接层,作为细胞数组返回。的我单元阵列中的th条目对应的层的偏见我完全连接层。例如,Mdl.LayerBiases {1}
返回第一个完全连接的偏差模型的层Mdl
。
LayerBiases
包括最后的偏见完全连接层。
数据类型:细胞
激活
- - - - - -激活功能完全连接层“relu”
|的双曲正切
|“乙状结肠”
|“没有”
|单元阵列的特征向量这个属性是只读的。
激活功能完全连接层的神经网络模型,作为一个特征向量返回或单元阵列特征向量的值从这个表。
价值 | 描述 |
---|---|
“relu” |
修正线性单元(ReLU)函数——执行一个阈值操作每个元素的输入,任何小于零的值设置为零,也就是说,
|
的双曲正切 |
双曲正切函数的双曲正切)——应用 |
“乙状结肠” |
乙状结肠函数——每个输入元素上执行以下操作:
|
“没有” |
恒等函数,返回每个输入元素没有执行任何转换,也就是说,f(x)=x |
如果激活
只包含一个激活函数,那么每一个完全连接层的激活函数的神经网络模型,不包括最终的完全连接层,它没有一个激活函数(OutputLayerActivation
)。
如果激活
是一个数组的激活函数,那么我元素的激活函数我层的神经网络模型。
数据类型:字符
|细胞
OutputLayerActivation
- - - - - -激活函数最终完全连接层“没有”
这个属性是只读的。
激活函数最终完全连接层,返回“没有”
。
ModelParameters
- - - - - -参数值用来训练模型NeuralNetworkParams
对象这个属性是只读的。
参数值用于训练RegressionNeuralNetwork
模型中,作为一个返回NeuralNetworkParams
对象。ModelParameters
包含名称-值等参数值参数用于火车回归神经网络模型。
访问的属性ModelParameters
通过使用点符号。例如,访问函数用于初始化模型的完全连接层权重Mdl
通过使用Mdl.ModelParameters.LayerWeightsInitializer
。
ConvergenceInfo
- - - - - -融合信息这个属性是只读的。
收敛性的信息,作为一个结构数组返回。
场 | 描述 |
---|---|
迭代 |
用于训练神经网络的训练迭代次数模型 |
TrainingLoss |
训练均方误差(MSE)返回的模型,或resubLoss (Mdl) 为模型Mdl |
梯度 |
损失函数的梯度对重量和偏见在返回相对应的迭代模型 |
一步 |
在相对应的迭代步长返回的模型 |
时间 |
总所有迭代的时间(以秒为单位) |
ValidationLoss |
验证MSE为返回的模型 |
ValidationChecks |
最大数量的次验证亏损大于或等于最低验证损失 |
ConvergenceCriterion |
为收敛准则 |
历史 |
看到TrainingHistory |
数据类型:结构体
TrainingHistory
- - - - - -培训历史这个属性是只读的。
培训历史,作为一个表返回。
列 | 描述 |
---|---|
迭代 |
训练迭代 |
TrainingLoss |
训练均方误差(MSE)在这个迭代模型 |
梯度 |
损失函数的梯度对重量和偏见在这个迭代 |
一步 |
在这个迭代步长 |
时间 |
在这个迭代的时间(以秒为单位) |
ValidationLoss |
在这个迭代验证MSE为模型 |
ValidationChecks |
运行总时间验证损失大于或等于最低验证损失 |
数据类型:表
解算器
- - - - - -用于训练神经网络模型解算器“LBFGS”
这个属性是只读的。
解决用于训练神经网络模型,返回“LBFGS”
。创建一个RegressionNeuralNetwork
模型中,fitrnet
使用一个内存有限Broyden-Fletcher-Goldfarb-Shanno拟牛顿算法(LBFGS)作为损失函数极小化技术,在软件最小化均方误差(MSE)。
PredictorNames
- - - - - -预测变量的名字这个属性是只读的。
预测变量的名字,作为特征向量的单元阵列返回。元素的顺序PredictorNames
对应的顺序预测的名字出现在训练数据。
数据类型:细胞
CategoricalPredictors
- - - - - -分类预测指标[]
这个属性是只读的。
分类预测指标,作为一个向量的正整数返回。假设预测数据包含观察行,CategoricalPredictors
包含索引值对应的列包含分类预测的预测数据。如果所有的预测都直言,那么这个属性是空的([]
)。
数据类型:双
ExpandedPredictorNames
- - - - - -扩大了预测的名字这个属性是只读的。
扩大了预测的名字,作为特征向量的单元阵列返回。如果分类变量的模型使用的编码,那么ExpandedPredictorNames
包括名称,描述变量扩展。否则,ExpandedPredictorNames
是一样的PredictorNames
。
数据类型:细胞
X
- - - - - -Unstandardized预测这个属性是只读的。
Unstandardized预测用于训练神经网络模型,作为一个数字矩阵或表返回。X
保留了原来的方向,观察的价值取决于行或列ObservationsIn
名称-值参数调用fitrnet
。
数据类型:单
|双
|表
ResponseName
- - - - - -响应变量名这个属性是只读的。
响应变量名,作为一个特征向量返回。
数据类型:字符
Y
- - - - - -响应值这个属性是只读的。
响应值用来训练模型,作为一个数值向量返回。每一行的Y
代表的响应值相应的观察X
。
数据类型:单
|双
ResponseTransform
- - - - - -响应转换函数“没有”
这个属性是只读的。
响应变换函数,返回“没有”
。软件不改变原始响应值。
HyperparameterOptimizationResults
- - - - - -交叉验证优化hyperparametersBayesianOptimization
对象|表这个属性是只读的。
交叉验证优化hyperparameters,指定为一个BayesianOptimization
对象或一个表hyperparameters和相关联的值。这个属性是否非空的“OptimizeHyperparameters”
名称-值对参数非空的当你创建模型。的价值HyperparameterOptimizationResults
取决于的设置优化器
字段HyperparameterOptimizationOptions
当您创建结构模型。
的价值优化器 场 |
的价值HyperparameterOptimizationResults |
---|---|
“bayesopt” (默认) |
对象的类BayesianOptimization |
“gridsearch” 或“randomsearch” |
hyperparameters表使用,观察目标函数值(交叉验证损失)和从最低(最好的)最高等级的观察(坏的) |
NumObservations
- - - - - -数量的观察这个属性是只读的。
训练数据存储在观测的数量X
和Y
,作为一个积极的数字标量返回。
数据类型:双
RowsUsed
- - - - - -行用于拟合[]
|逻辑向量这个属性是只读的。
行中使用的原始训练数据拟合模型,作为一个逻辑向量返回。使用这个属性是空的,如果所有行。
数据类型:逻辑
W
- - - - - -观察权重这个属性是只读的。
观察权重用来训练模型,作为一个返回n1数字向量。n是观测的数量(NumObservations
)。
软件可实现观察中指定的权重权重
名称-值参数的元素W
总结为1。
数据类型:单
|双
CompactRegressionNeuralNetwork
紧凑的 |
减少机器学习模型的大小 |
RegressionPartitionedModel
crossval |
旨在机器学习模型 |
石灰 |
本地可model-agnostic解释(石灰) |
partialDependence |
计算部分依赖 |
plotPartialDependence |
创建部分依赖图(PDP)和个人条件期望(ICE)情节 |
沙普利 |
沙普利值 |
resubLoss |
Resubstitution回归损失 |
resubPredict |
使用训练有素的回归模型预测反应的训练数据 |
训练一个神经网络回归模型,评估模型的性能测试集。
加载carbig
的数据集,其中包含测量汽车在1970年代末和1980年代初。创建一个表包含预测变量加速度
,位移
等等,以及响应变量英里/加仑
。
负载carbig汽车=表(加速度、位移、马力、…Model_Year、产地、重量、MPG);
分区数据分为训练集和测试集。使用大约80%的观察来训练一个神经网络模型,和20%的观察来测试新数据训练模型的性能。使用cvpartition
分区的数据。
rng (“默认”)%数据分区的再现性c = cvpartition(长度(MPG),“坚持”,0.20);trainingIdx =培训(c);%训练集指数carsTrain =汽车(trainingIdx:);testIdx =测试(c);%测试集指数喀斯特岩溶=汽车(testIdx:);
通过训练神经网络回归模型carsTrain
训练数据fitrnet
函数。对于更好的结果,指定标准化预测数据。
Mdl = fitrnet (carsTrain,“英里”,“标准化”,真正的)
Mdl = RegressionNeuralNetwork PredictorNames:{“加速度”“位移”“马力”“Model_Year”“起源”“重量”}ResponseName:“英里”CategoricalPredictors: 5 ResponseTransform:“没有一个”NumObservations: 314 LayerSizes: 10激活:“relu”OutputLayerActivation:“线性”解算器:“LBFGS”ConvergenceInfo: [1×1 struct] TrainingHistory: 1000×7表属性,方法
Mdl
是一个培训RegressionNeuralNetwork
模型。可以使用点符号来访问的属性Mdl
。例如,您可以指定Mdl.TrainingHistory
获得更多的培训历史信息的神经网络模型。
评估性能的测试集上的回归模型通过计算测试均方误差(MSE)。更小的均方误差值显示更好的性能。
testMSE =损失(Mdl、喀斯特岩溶“英里”)
testMSE = 16.6154
指定结构的神经网络回归模型,包括完全连接层的大小。
加载carbig
的数据集,其中包含测量汽车在1970年代末和1980年代初。创建一个矩阵X
包含预测变量加速度
,气缸
,等等。存储的响应变量英里/加仑
在变量Y
。
负载carbigX =(加速度气缸位移重量);Y = MPG;
分区数据分为训练数据(XTrain
和YTrain
)和测试数据(XTest
和欧美
)。储备大约20%的观察测试,并使用其余的观测进行训练。
rng (“默认”)%的再现性分区c = cvpartition(长度(Y),“坚持”,0.20);trainingIdx =培训(c);%训练集的指标XTrain = X (trainingIdx:);YTrain = Y (trainingIdx);testIdx =测试(c);%测试集的指标XTest = X (testIdx:);欧美= Y (testIdx);
训练一个神经网络回归模型。指定规范预测数据,并有30输出第一个完全连接层和10第二完全连接输出层。默认情况下,两层使用修正的线性单元(ReLU)激活函数。你可以改变完全连接层的激活函数使用激活
名称-值参数。
Mdl = fitrnet (XTrain YTrain,“标准化”,真的,…“LayerSizes”30 [10])
Mdl = RegressionNeuralNetwork ResponseName:‘Y’CategoricalPredictors: [] ResponseTransform:“没有一个”NumObservations: 318 LayerSizes: 30[10]激活:“relu”OutputLayerActivation:“线性”解算器:“LBFGS”ConvergenceInfo: [1×1 struct] TrainingHistory: 1000×7表属性,方法
访问完全连接层的重量和偏见训练模型的使用LayerWeights
和LayerBiases
的属性Mdl
。前两个元素的每个属性对应的值前两个完全连接层,第三个元素对应的值最终回归完全连接层。例如,显示重量和偏见第一完全连接层。
Mdl.LayerWeights {1}
ans =30×4-1.0617 0.1287 0.0797 0.4648 -0.6497 -1.4565 -2.6026 2.6962 -0.6420 0.2744 -0.0234 -0.0252 -1.9727 -0.4665 -0.5833 0.9371 -0.4373 0.1607 0.3930 0.7859 0.5091 -0.0032 -0.6503 -1.6694 0.0123 -0.2624 -2.2928 -1.0965 -0.1386 1.2747 0.4085 0.5395 -0.1755 1.5641 -3.1896 -1.1336 0.4401 0.4942 1.8957 -1.1617⋮
Mdl.LayerBiases {1}
ans =30×1-1.3086 -1.6205 -0.7815 1.5382 -0.5256 1.2394 -2.3078 -1.0709 -1.8898 1.9443⋮
最后完全连接层有一个输出。层输出的数量对应的第一个维度一层一层重量和偏见。
大小(Mdl.LayerWeights{结束})
ans =1×21 10
大小(Mdl.LayerBiases{结束})
ans =1×21
估计的性能训练模型,计算测试集均方误差(MSE)Mdl
。更小的均方误差值显示更好的性能。
testMSE =损失(Mdl XTest、欧美)
testMSE = 17.2022
比较测试集预测响应值和真实的响应值。绘制预测英里每加仑(MPG)沿垂直轴沿水平轴和真正的MPG。点参考线显示正确的预测。一个好的模型产生散射线附近的预测。
XTest testPredictions =预测(Mdl);情节(欧美、testPredictions“。”)举行在情节(欧美,欧美)从包含(“真正的MPG”)ylabel (“预测MPG”)
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。