Main Content

regressionLayer

回归输出层

说明

回归层计算回归任务的半均方误差损失。

layer = regressionLayer 将神经网络的回归输出层以 RegressionOutputLayer 对象形式返回。

使用 predict 预测训练回归网络的响应。将响应归一化通常有助于稳定和加速神经网络的回归训练。有关详细信息,请参阅针对回归训练卷积神经网络

示例

layer = regressionLayer(Name,Value) 使用名称-值对组设置可选的 NameResponseNames 属性。例如,regressionLayer('Name','output') 创建一个名为 'output' 的回归层。用单引号将每个属性名称引起来。

示例

全部折叠

创建一个名为 'routput' 的回归输出层。

layer = regressionLayer('Name','routput')
layer = 
  RegressionOutputLayer with properties:

             Name: 'routput'
    ResponseNames: {}

   Hyperparameters
     LossFunction: 'mean-squared-error'

回归的默认损失函数是均方误差。

在层数组中包含一个回归输出层。

layers = [ ...
    imageInputLayer([28 28 1])
    convolution2dLayer(12,25)
    reluLayer
    fullyConnectedLayer(1)
    regressionLayer]
layers = 
  5x1 Layer array with layers:

     1   ''   Image Input         28x28x1 images with 'zerocenter' normalization
     2   ''   2-D Convolution     25 12x12 convolutions with stride [1  1] and padding [0  0  0  0]
     3   ''   ReLU                ReLU
     4   ''   Fully Connected     1 fully connected layer
     5   ''   Regression Output   mean-squared-error

输入参数

全部折叠

名称-值参数

将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是对应的值。名称-值参数必须出现在其他参数后,但对各个参数对组的顺序没有要求。

如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: regressionLayer('Name','output') 创建一个名为 'output' 的回归层

层名称,指定为字符向量或字符串标量。对于 Layer 数组输入,trainNetworkassembleNetworklayerGraphdlnetwork 函数会自动为层指定名称 ''

数据类型: char | string

响应的名称,指定为字符向量元胞数组或字符串数组。在训练时,软件根据训练数据自动设置响应名称。默认值为 {}

数据类型: cell

输出参数

全部折叠

回归输出层,以 RegressionOutputLayer 对象形式返回。

详细信息

全部折叠

回归输出层

回归层计算回归任务的半均方误差损失。对于典型的回归问题,回归层必须位于最终全连接层之后。

对于单个观测值,均方误差由下式给出:

MSE=i=1R(tiyi)2R,

其中,R 是响应的数目,ti 是目标输出,yi 是网络对响应 i 的预测。

对于图像和“序列到单个”回归网络,回归层的损失函数是预测响应的半均方误差,未由 R 进行归一化:

loss=12i=1R(tiyi)2.

对于图像到图像回归网络,回归层的损失函数是每个像素的预测响应的半均方误差,未由 R 进行归一化:

loss=12p=1HWC(tpyp)2,

其中 H、W 和 C 分别表示输出的高度、宽度和通道数,p 对 t 和 y 的每个元素(像素)进行线性索引。

对于“序列到序列”回归网络,回归层的损失函数是每个时间步的预测响应的半均方误差,未由 R 进行归一化:

loss=12Si=1Sj=1R(tijyij)2,

其中 S 是序列长度。

在训练时,软件计算小批量中各观测值的均值损失。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2017a 中推出