回归的神经网络模型
一个RegressionNeuralNetwork
对象是用于回归的训练、前馈和全连接的神经网络。神经网络的第一个完全连接层与网络输入(预测数据)有一个连接X
),并且每个后续层都有上一层的连接。每个完全连接的层将输入乘以权重矩阵(LayerWeights
)然后添加一个偏移向量(LayerBiases
).激活函数如下各完全连接层,但不包括最后一个(激活
和输出功率
).最终完全连接层产生网络的输出,即预计响应值。有关更多信息,请参阅神经网络结构.
创建一个RegressionNeuralNetwork
通过使用fitrnet
.
LayerSizes
- - - - - -完全连接层的尺寸此属性是只读的。
神经网络模型中完全连接层的大小,作为正整数向量返回我th元素LayerSizes
的输出数是多少我TH神经网络模型的完全连接层。
LayerSizes
不包括最终完全连接层的大小。这个层总是有一个输出。
数据类型:单身的
|双
LayerWeights
- - - - - -学习层权重此属性是只读的。
了解到层权重完全连接层,返回为单元阵列。的我单元格数组中的第Th项对应的层权重为我完全连通层。例如,Mdl。LayerWeights {1}
返回的权重为所述模型的第一完全连接层MDL
.
LayerWeights
包括最终完全连接层的权重。
数据类型:细胞
LayerBiases
- - - - - -学习层偏差此属性是只读的。
了解了完全连接层的层偏差,返回为单元阵列。的我在单元阵列对应个条目的层偏压为我完全连通层。例如,Mdl.LayerBiases {1}
返回偏压为模型的第一完全连接层MDL
.
LayerBiases
包括最终完全连接层的偏差。
数据类型:细胞
激活
- - - - - -完全连接层的激活函数'RELU'
|“正切”
|“乙状结肠”
|“没有”
|字符向量的单元格数组此属性是只读的。
神经网络模型的全连接层的激活函数,返回为字符向量或字符向量的单元数组,其值来自此表。
价值 | 描述 |
---|---|
'RELU' |
校正线性单元(ReLU)功能-对输入的每个元素执行阈值操作,其中任何小于零的值都设置为零,即,
|
“正切” |
双曲正切(tanh)函数-应用 |
“乙状结肠” |
Sigmoid函数 - 执行每个输入元素上的以下操作:
|
“没有” |
标识函数——返回每个输入元素,而不执行任何转换,即:f(x)=x |
如果激活
仅包含一个激活函数,则为神经网络模型中每一完全连接层的激活函数,不包括最终完全连接层,该层不具有激活函数(输出功率
).
如果激活
是活化函数数组,则我元素是元素的激活函数我第四层为神经网络模型。
数据类型:字符
|细胞
输出功率
- - - - - -最终完全连接层激活函数“没有”
此属性是只读的。
最终完全连接层,返回作为激活函数“没有”
.
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-弗莱彻-戈德法布-Shanno无准牛顿算法(LBFGS)作为它的损失函数最小化技术,其中该软件的均方误差(MSE)最小化。
预测器名称
- - - - - -预测变量的名字此属性是只读的。
预测器变量名,以字符向量的单元格数组形式返回预测器名称
对应于预测器名称在训练数据中出现的顺序。
数据类型:细胞
CategoricalPredictors
- - - - - -分类预测指标[]
此属性是只读的。
分类预测器索引,返回为一个正整数向量。假设预测数据包含成行的观测数据,CategoricalPredictors
包含对应于包含分类预测所述预测数据的列的索引值。如果没有预测的是分类的,则此属性是空的([]
).
数据类型:双
扩展预测器名称
- - - - - -扩展预测名称此属性是只读的。
扩展的预测器名称,作为字符向量的单元格数组返回。如果模型对分类变量使用编码,那么扩展预测器名称
包括描述扩展变量的名称。否则,扩展预测器名称
是相同的预测器名称
.
数据类型:细胞
X
- - - - - -非标准预测此属性是只读的。
用于训练神经网络模型的非标准化预测器,以数字矩阵或表格的形式返回。X
的值在行或列中显示观察值,保留其原始方向ObservationsIn
调用中的名称值参数fitrnet
.
数据类型:单身的
|双
|桌子
ResponseName
- - - - - -响应变量名此属性是只读的。
响应变量名,作为字符向量返回。
数据类型:字符
Y
- - - - - -响应值此属性是只读的。
用于训练模型的响应值,返回为数值向量。每一行的Y
中对应观测的响应值X
.
数据类型:单身的
|双
ResponseTransform
- - - - - -响应转换功能“没有”
此属性是只读的。
响应转换函数,返回“没有”
.软件不会转换原始的响应值。
HyperparameterOptimizationResults
- - - - - -超参数的交叉验证优化BayesianOptimization
对象|桌子此属性是只读的。
超参数的交叉验证优化,指定为BayesianOptimization
对象或超参数和相关联的值的表。这个属性不为空,如果“OptimizeHyperparameters”
当你创建模型名称 - 值对的说法是空的。的价值HyperparameterOptimizationResults
取决于优化器
字段HyperparameterOptimizationOptions
结构,当您创建模型时。
的价值优化器 场 |
的价值HyperparameterOptimizationResults |
---|---|
“bayesopt” (默认) |
对象的类BayesianOptimization |
“gridsearch” 或者“randomsearch” |
使用的超参数表、观察到的目标函数值(交叉验证损失)以及从最低(最佳)到最高(最差)的观察排名 |
NumObservations
- - - - - -数量的观察此属性是只读的。
在训练数据中存储的观测数X
和Y
,作为正数值标量返回。
数据类型:双
RowsUsed
- - - - - -用于拟合的行[]
|逻辑向量此属性是只读的。
拟合模型时使用的原始训练数据行,作为逻辑向量返回。如果使用所有行,则此属性为空。
数据类型:逻辑
W
- - - - - -观察权重此属性是只读的。
观察权重用来训练模型,返回一个n-乘以1的数值向量。n是(观测值的数量NumObservations
).
该软件标准化在指定的观察权重权重
名称 - 值参数,这样的元素W
总和为1。
数据类型:单身的
|双
CompactRegressionNeuralNetwork
契约 |
减少机器学习模型的大小 |
RegressionPartitionedModel
crossval |
交叉验证机器学习模型 |
石灰 |
局部可解释的模型不可知解释(LIME) |
partialDependence |
计算部分依赖 |
plotPartialDependence |
创建部分依赖图(PDP)和个人条件期望图(ICE) |
沙普利 |
沙普利值 |
resubLoss |
Resubstitution回归损失 |
resubPredict |
预测使用受训回归模型的训练数据响应 |
训练神经网络回归模型,并在测试集上评估模型的性能。
加载carbig
数据集,其中包含20世纪70年代和80年代初生产的汽车的测量数据。创建一个包含预测变量的表加速
,位移
,等等,以及响应变量英里/加仑
.
负载carbig汽车=表(加速度、位移、马力、......车型(年份、产地、重量、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 table]属性,方法
MDL
是一个训练有素的RegressionNeuralNetwork
模型。的属性可以使用点表示法MDL
.例如,可以指定Mdl。TrainingHistory
以获取有关神经网络模型的培训历史的更多信息。
通过计算测试均方误差(MSE)来评估回归模型在测试集上的性能。MSE值越小,性能越好。
testMSE =损失(Mdl、喀斯特岩溶“英里”)
testMSE = 16.6154
指定的神经网络回归模型的结构,其中包括完全连接层的大小。
加载carbig
数据集,其中包含20世纪70年代和80年代初生产的汽车的测量数据。创建一个矩阵X
包含预测变量加速
,气缸
, 等等。存储响应变量英里/加仑
在变量Y
.
负载carbigX = [加速缸位移重量];Y = MPG;
将数据划分为训练数据(XTrain
和YTrain
)及测试数据(XTEST
和YTest
).保留大约20%的观测值用于测试,其余的观测值用于培训。
rng(“默认”)分区的再现性c = cvpartition(长度(Y),“坚持”, 0.20);trainingIdx =培训(c);%训练集指标XTrain = X (trainingIdx:);YTrain = Y (trainingIdx);testIdx =试验(c)中;%测试集索引XTEST = X(testIdx,:);YTest = Y(testIdx);
训练神经网络回归模型。指定标准化预测器数据,并在第一完全连接层有30个输出,在第二完全连接层有10个输出。默认情况下,这两个层都使用一个整流线性单元(ReLU)激活功能。控件可以更改完全连接层的激活函数激活
名称-值参数。
MDL = fitrnet(XTrain,YTrain,“标准化”,真的,......“LayerSizes”30 [10])
Mdl=RegressionNeuralNetwork ResponseName:'Y'分类预测值:[]ResponseTransform:'none'NumObservations:318 LayerSizes:[30 10]激活:'relu'OutputLayerAction:'linear'解算器:'LBFGS'收敛信息:[1×1结构]训练历史:[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.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.layerbies{end})
ans =1×21 1
为了估计训练模型的性能,计算测试集的均方误差(MSE)MDL
.MSE值越小,性能越好。
testMSE =损失(Mdl XTest、欧美)
testMSE = 17.2022
将预测的测试集响应值与真实响应值进行比较。在纵轴上画出预测的每加仑英里数(MPG),在横轴上画出真实的每加仑英里数。基准线上的点表示正确的预测。一个好的模型会产生分散在线附近的预测。
XTest testPredictions =预测(Mdl);情节(欧美、testPredictions“。”) 抓住在情节(欧美,欧美)离开xlabel(“真正的MPG”)ylabel(“预计MPG”)
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。