主要内容

休伯

Huber损失回归任务

    描述

    Huber操作计算网络预测和目标之间的Huber损失值回归任务。当“TransitionPoint”选项1,这也被称为光滑的l1损失

    休伯使用函数计算Huber损失dlarray数据。使用dlarray更易于处理高维数据的对象允许您标签的尺寸。例如,您可以标签尺寸对应于空间,时间,频道,使用批处理维度“S”,“T”,“C”,“B”标签,分别。未指明的和其他维度,使用“U”标签。为dlarray对象的函数操作特定的尺寸,你可以指定尺寸标签的格式dlarray直接对象,或通过使用DataFormat选择。

    例子

    损失=胡贝尔(Y,目标)返回格式之间的Huber损失dlarray对象Y包含预测和目标的价值观目标对于回归的任务。输入Y是一个格式化的dlarray。输出损失是一个非格式化dlarray标量。

    无格式的输入数据,使用“DataFormat”选择。

    损失=胡贝尔(Y,目标,权重)威尔士人重量适用于计算损失。使用这个语法重量的贡献类、观察,或地区的损失计算的输入值。

    损失=胡贝尔(___、“DataFormat”FMT)还指定了尺寸格式FMTY不是一个格式化的dlarray

    损失=胡贝尔(___,名称,值)指定选项使用一个或多个名称-值对参数除了输入参数在以前的语法。例如,“NormalizationFactor”、“所有元素的指定规范化损失减少损失除以输入元素的数量。

    例子

    全部折叠

    创建一个数组的预测12观察10回应。

    numResponses = 10;numObservations = 12;Y =兰德(numResponses numObservations);海底= dlarray (Y,“CB”);

    视图的大小和格式的预测。

    大小(海底)
    ans =1×210 12
    dim(海底)
    ans =“CB”

    创建一个数组的随机目标。

    目标=兰德(numResponses numObservations);

    视图的大小的目标。

    大小(目标)
    ans =1×210 12

    计算Huber损失预测和目标。

    损失=胡贝尔(海底目标)
    损失= 1 x1 dlarray 0.7374

    创建数组的预测和目标12序列不同长度超过10的反应。

    numResponses = 10;numObservations = 12;maxSequenceLength = 15;sequenceLengths =兰迪(maxSequenceLength [1 numObservations]);Y =细胞(numObservations, 1);目标=细胞(numObservations, 1);i = 1: numObservations Y{我}=兰德(numResponses, sequenceLengths(我));{我}=目标兰德(numResponses sequenceLengths(我));结束

    查看电池阵列的预测和目标。

    Y
    Y =12×1单元阵列{10 * 13双}{10 x14双}{10 x2双}{10 x14双}{10 x10双}{10 x2双}{10 x5双}{10 x9双}{10 x15双}{10 x15双}{10 x3双}{10 x15双}
    目标
    目标=12×1单元阵列{10 * 13双}{10 x14双}{10 x2双}{10 x14双}{10 x10双}{10 x2双}{10 x5双}{10 x9双}{10 x15双}{10 x15双}{10 x3双}{10 x15双}

    垫在第二维度预测和目标序列使用padsequences函数并返回相应的面具。

    [Y,面具]= padsequences (Y, 2);目标= padsequences(目标2);

    把填充序列dlarray带格式的“施”(通道、时间、批次)。因为格式化dlarray对象自动分类维度,保持一致的目标和面具的尺寸也将他们转换为格式化dlarray对象具有相同的格式。

    海底= dlarray (Y,“施”);目标= dlarray(目标,“施”);= dlarray(面具,面具“施”);

    视图的大小预测分数,目标,和面具。

    大小(海底)
    ans =1×310 12 15
    大小(目标)
    ans =1×310 12 15
    大小(面具)
    ans =1×310 12 15

    计算Huber损失预测和目标。防止损失值计算填充导致损失,设置“面具”选择返回的面具padsequences函数。

    损失=胡贝尔(海底,目标,“面具”面具)
    损失= 1 x1 dlarray 8.1834

    输入参数

    全部折叠

    预测,指定为一个格式化的dlarray,一个非格式化dlarray或数字数组。当Y不是一个格式化的dlarray,你必须指定尺寸格式使用DataFormat选择。

    如果Y是一个数值数组,目标必须是一个dlarray

    目标反应,指定为一个格式化的或未格式化dlarray或数字数组。

    每个尺寸的大小目标必须匹配相应的大小尺寸的Y

    如果目标是一个格式化的dlarray,那么它的格式必须相同的格式Y,或者一样DataFormat如果Y未格式化。

    如果目标是一个非格式化dlarray或数值数组,那么函数应用的格式Y或者的价值DataFormat目标

    提示

    格式化dlarray底层数据对象自动排列的尺寸有秩序“S”(空间),“C”(通道),“B”(批处理),“T”(时间),然后“U”(不明)。确保的尺寸Y目标是一致的,当Y是一个格式化的dlarray还,指定目标作为一个格式化的dlarray

    重量、指定为一个dlarray或数字数组。

    指定响应权重,指定一个向量的“C”(频道)尺寸大小匹配“C”(通道)的维度X。指定“C”(频道)响应的维度权重通过使用一个格式化的dlarray对象或使用“WeightsFormat”选择。

    指定观察权重,指定一个向量的“B”(批)尺寸大小匹配“B”(批)的维度Y。指定“B”(批)类的维度权重通过使用一个格式化的dlarray对象或使用“WeightsFormat”选择。

    指定独立输入的重量为每个元素,指定权重数组的大小一样Y。在这种情况下,如果权重不是一个格式化的dlarray函数对象,然后使用相同的格式Y。另外,指定权重格式使用“WeightsFormat”选择。

    名称-值参数

    指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

    R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

    例子:“NormalizationFactor”、“所有元素的指定规范化损失减少损失除以输入元素的数量

    点Huber损失转换从一个二次函数线性函数,指定为逗号分隔组成的“TransitionPoint”和积极的标量。

    “TransitionPoint”是1,这也被称为光滑的l1损失

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

    面具表明哪些元素为损失计算,包括指定的作为dlarray对象,一个逻辑数组,或数字数组大小一样Y

    功能包括和不包括元素输入数据的损失计算面具当对应的值是1和0,分别。

    默认值是一个逻辑数组的大小一样Y

    提示

    格式化dlarray底层数据对象自动排列的尺寸这个顺序:“S”(空间),“C”(通道),“B”(批处理),“T”(时间)“U”(不明)。例如,dlarray对象自动排列的尺寸数据与格式“TSCSBS”有格式“SSSCBT”

    确保的尺寸Y,当面具是一致的Y是一个格式化的dlarray,还指定格式化的面具dlarray

    模式减少损失值的数组,指定为以下之一:

    • “和”——和所有损失值的数组中的元素。在这种情况下,输出损失是标量。

    • “没有”——不减少损失值的数组。在这种情况下,输出损失是一个非格式化dlarray对象具有相同的大小Y

    除数正常化时减少损失减少“和”,指定为以下之一:

    • “批大小”——正常损失除以观察的数量X

    • “所有元素”——正常损失除以它的元素的数量X

    • “还有面具”——正常损失损失值除以包含指定的元素的数量为每个独立观察面具。要使用这个选项,您必须指定一个面具使用面具选择。

    • “没有”——不正常损失。

    维度的非格式化输入数据,指定为一个特征向量或字符串标量FMT为每个维度的数据提供一个标签。

    当你指定的格式dlarray对象,每个字符为每个维度的数据和提供一个标签必须是下列之一:

    • “S”——空间

    • “C”——频道

    • “B”批处理(例如,样品和观察)

    • “T”时间(例如,时间序列的步骤)

    • “U”——未指明的

    您可以指定多个维度标签“S”“U”。您可以使用标签“C”,“B”,“T”最多一次。

    您必须指定DataFormat当输入数据不是一个格式化的dlarray

    数据类型:字符|字符串

    维度的权重,指定为一个特征向量或字符串标量,它提供了一个标签为每个维度的权重。

    当你指定的格式dlarray对象,每个字符为每个维度的数据和提供一个标签必须是下列之一:

    • “S”——空间

    • “C”——频道

    • “B”批处理(例如,样品和观察)

    • “T”时间(例如,时间序列的步骤)

    • “U”——未指明的

    您可以指定多个维度标签“S”“U”。您可以使用标签“C”,“B”,“T”最多一次。

    您必须指定WeightsFormat权重是一个数值向量和Y有两个或两个以上的nonsingleton维度。

    如果权重不是一个向量,或都有权重Y向量,那么默认值的WeightsFormat的格式是一样的吗Y

    数据类型:字符|字符串

    输出参数

    全部折叠

    Huber损失,作为一个非格式化返回dlarray。输出损失是一个非格式化dlarray与相同的底层数据类型作为输入Y

    的大小损失取决于减少选择。

    算法

    全部折叠

    Huber损失

    为每个元素Yj输入的休伯函数使用公式计算相应的element-wise损失值

    损失 j = { 1 2 ( Y j T j ) 2 如果 | Y j T j | δ δ | Y j T j | 1 2 δ 2 否则 ,

    在哪里Tj相应的目标价值预测吗Yj δ 是过渡点损失转换从一个二次函数的线性函数。

    当过渡点是1,这也被称为光滑的l1损失

    减少损失一个标量值,函数然后减少element-wise损失使用公式

    损失 = 1 N j j w j 损失 j ,

    在哪里N是归一化因子,j掩码值的元素吗j,wj元素的重量值吗j

    如果你不选择来减少损失,那么函数面具和权重值直接损失:

    损失 j * = j w j 损失 j

    扩展功能

    版本历史

    介绍了R2021a