主要内容

RegressionNeuralNetwork

为回归神经网络模型

    描述

    一个RegressionNeuralNetwork对象是一个训练有素、前馈和完全连接神经网络回归。第一个完全连接层的神经网络已连接网络的输入(预测数据X),并且每个后续层从上一层连接。每个完全连接层增加输入权重矩阵(LayerWeights),然后添加一个偏差向量(LayerBiases)。激活函数遵循每个完全连接层,除最后一个(激活OutputLayerActivation)。最后完全连接层生成网络的输出,即预测响应值。有关更多信息,请参见神经网络结构

    创建

    创建一个RegressionNeuralNetwork对象的使用fitrnet

    属性

    全部展开

    神经网络属性

    这个属性是只读的。

    尺寸完全连接层的神经网络模型,作为一个正整数返回向量。的th元素LayerSizes输出数量吗完全连接层的神经网络模型。

    LayerSizes不包括最后的完全连接层的大小。这总是一个输出层。

    数据类型:|

    这个属性是只读的。

    学习层权重完全连接层,作为细胞数组返回。的单元阵列中的th条目对应的层的权重完全连接层。例如,Mdl.LayerWeights {1}返回第一个完全连接的权重模型的层Mdl

    LayerWeights包括最后的完全连接层的权重。

    数据类型:细胞

    这个属性是只读的。

    学习层偏见完全连接层,作为细胞数组返回。的单元阵列中的th条目对应的层的偏见完全连接层。例如,Mdl.LayerBiases {1}返回第一个完全连接的偏差模型的层Mdl

    LayerBiases包括最后的偏见完全连接层。

    数据类型:细胞

    这个属性是只读的。

    激活功能完全连接层的神经网络模型,作为一个特征向量返回或单元阵列特征向量的值从这个表。

    价值 描述
    “relu”

    修正线性单元(ReLU)函数——执行一个阈值操作每个元素的输入,任何小于零的值设置为零,也就是说,

    f ( x ) = { x , x 0 0 , x < 0

    的双曲正切

    双曲正切函数的双曲正切)——应用双曲正切每个输入元素函数

    “乙状结肠”

    乙状结肠函数——每个输入元素上执行以下操作:

    f ( x ) = 1 1 + e x

    “没有”

    恒等函数,返回每个输入元素没有执行任何转换,也就是说,f(x)=x

    • 如果激活只包含一个激活函数,那么每一个完全连接层的激活函数的神经网络模型,不包括最终的完全连接层,它没有一个激活函数(OutputLayerActivation)。

    • 如果激活是一个数组的激活函数,那么元素的激活函数层的神经网络模型。

    数据类型:字符|细胞

    这个属性是只读的。

    激活函数最终完全连接层,返回“没有”

    这个属性是只读的。

    参数值用于训练RegressionNeuralNetwork模型中,作为一个返回NeuralNetworkParams对象。ModelParameters包含名称-值等参数值参数用于火车回归神经网络模型。

    访问的属性ModelParameters通过使用点符号。例如,访问函数用于初始化模型的完全连接层权重Mdl通过使用Mdl.ModelParameters.LayerWeightsInitializer

    收敛控制属性

    这个属性是只读的。

    收敛性的信息,作为一个结构数组返回。

    描述
    迭代 用于训练神经网络的训练迭代次数模型
    TrainingLoss 训练均方误差(MSE)返回的模型,或resubLoss (Mdl)为模型Mdl
    梯度 损失函数的梯度对重量和偏见在返回相对应的迭代模型
    一步 在相对应的迭代步长返回的模型
    时间 总所有迭代的时间(以秒为单位)
    ValidationLoss 验证MSE为返回的模型
    ValidationChecks 最大数量的次验证亏损大于或等于最低验证损失
    ConvergenceCriterion 为收敛准则
    历史 看到TrainingHistory

    数据类型:结构体

    这个属性是只读的。

    培训历史,作为一个表返回。

    描述
    迭代 训练迭代
    TrainingLoss 训练均方误差(MSE)在这个迭代模型
    梯度 损失函数的梯度对重量和偏见在这个迭代
    一步 在这个迭代步长
    时间 在这个迭代的时间(以秒为单位)
    ValidationLoss 在这个迭代验证MSE为模型
    ValidationChecks 运行总时间验证损失大于或等于最低验证损失

    数据类型:

    这个属性是只读的。

    解决用于训练神经网络模型,返回“LBFGS”。创建一个RegressionNeuralNetwork模型中,fitrnet使用一个内存有限Broyden-Fletcher-Goldfarb-Shanno拟牛顿算法(LBFGS)作为损失函数极小化技术,在软件最小化均方误差(MSE)。

    预测性能

    这个属性是只读的。

    预测变量的名字,作为特征向量的单元阵列返回。元素的顺序PredictorNames对应的顺序预测的名字出现在训练数据。

    数据类型:细胞

    这个属性是只读的。

    分类预测指标,作为一个向量的正整数返回。假设预测数据包含观察行,CategoricalPredictors包含索引值对应的列包含分类预测的预测数据。如果所有的预测都直言,那么这个属性是空的([])。

    数据类型:

    这个属性是只读的。

    扩大了预测的名字,作为特征向量的单元阵列返回。如果分类变量的模型使用的编码,那么ExpandedPredictorNames包括名称,描述变量扩展。否则,ExpandedPredictorNames是一样的PredictorNames

    数据类型:细胞

    这个属性是只读的。

    Unstandardized预测用于训练神经网络模型,作为一个数字矩阵或表返回。X保留了原来的方向,观察的价值取决于行或列ObservationsIn名称-值参数调用fitrnet

    数据类型:||

    响应特性

    这个属性是只读的。

    响应变量名,作为一个特征向量返回。

    数据类型:字符

    这个属性是只读的。

    响应值用来训练模型,作为一个数值向量返回。每一行的Y代表的响应值相应的观察X

    数据类型:|

    这个属性是只读的。

    响应变换函数,返回“没有”。软件不改变原始响应值。

    其他数据属性

    这个属性是只读的。

    交叉验证优化hyperparameters,指定为一个BayesianOptimization对象或一个表hyperparameters和相关联的值。这个属性是否非空的“OptimizeHyperparameters”名称-值对参数非空的当你创建模型。的价值HyperparameterOptimizationResults取决于的设置优化器字段HyperparameterOptimizationOptions当您创建结构模型。

    的价值优化器 的价值HyperparameterOptimizationResults
    “bayesopt”(默认) 对象的类BayesianOptimization
    “gridsearch”“randomsearch” hyperparameters表使用,观察目标函数值(交叉验证损失)和从最低(最好的)最高等级的观察(坏的)

    这个属性是只读的。

    训练数据存储在观测的数量XY,作为一个积极的数字标量返回。

    数据类型:

    这个属性是只读的。

    行中使用的原始训练数据拟合模型,作为一个逻辑向量返回。使用这个属性是空的,如果所有行。

    数据类型:逻辑

    这个属性是只读的。

    观察权重用来训练模型,作为一个返回n1数字向量。n是观测的数量(NumObservations)。

    软件可实现观察中指定的权重权重名称-值参数的元素W总结为1。

    数据类型:|

    对象的功能

    全部展开

    紧凑的 减少机器学习模型的大小
    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;

    分区数据分为训练数据(XTrainYTrain)和测试数据(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表属性,方法

    访问完全连接层的重量和偏见训练模型的使用LayerWeightsLayerBiases的属性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”)

    介绍了R2021a