主要内容

l1loss

l1回归任务的丢失

    描述

    L1损失运算计算L1损失给定网络预测和目标值。当减少选择是“和”NormalizationFactor选择是“批大小”,其计算值称为平均绝对误差(MAE)。

    l1loss函数计算L1使用损失dlarray数据。使用dlarray对象允许对维度进行标记,从而使处理高维数据更加容易。方法标识哪些维度对应于空间、时间、通道和批处理维度“S”“T”“C”,“B”标签,分别。对于未指定的和其他维度,请使用“U”标签。为dlarray对象函数对特定维度进行操作时,可以通过格式化dlarray对象直接调用,或使用DataFormat选择。

    例子

    损失= l1loss (Y目标计算预测的MAE损失Y和目标值目标.输入Y必须是格式化的dlarray.输出损失是一个非格式化dlarray标量。

    损失= l1loss (Y目标权重计算加权L1使用权重值的损失权重.输出损失是一个非格式化dlarray标量。

    损失= l1loss (___, DataFormat = FMT)计算未格式化的损失dlarray对象Y和指定格式的目标值FMT.将此语法与前面语法中的任何输入参数一起使用。

    例子

    损失= l1loss (___名称=值使用一个或多个名称-值参数指定其他选项。例如,l1loss (Y,目标,减少=“没有”)计算L1没有将输出减少到一个标量的损失。

    例子

    全部折叠

    为10个回答中的12个观察结果创建一个预测数组。

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

    查看预测的大小和格式。

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

    创建一个随机目标数组。

    目标=兰德(numResponses numObservations);

    查看目标器的大小。

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

    计算预测和目标之间的平均绝对误差(MAE)损失l1loss函数。

    损失= l1loss(海底目标)
    损失= 1x1 dlarray 3.1679

    为10个响应中长度不同的12个序列创建预测和目标数组。

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

    查看预测和目标的单元格数组。

    Y
    Y =12×1单元阵列{10x13 double} {10x14 double} {10x14 double} {10x10 double} {10x10 double} {10x5 double} {10x9 double} {10x15 double} {10x15 double} {10x3 double} {10x15 double} {10x15 double} {10x15 double} {10x15 double} {10x15 double
    目标
    目标=12×1单元阵列{10x13 double} {10x14 double} {10x14 double} {10x10 double} {10x10 double} {10x5 double} {10x9 double} {10x15 double} {10x15 double} {10x3 double} {10x15 double} {10x15 double} {10x15 double} {10x15 double} {10x15 double

    在二次元中填充预测序列和目标序列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

    计算预测和目标之间的平均绝对误差(MAE)。若要防止从填充计算的损耗值导致损耗,请设置面具选项返回的掩码padsequences函数。

    损失= l1loss(海底,目标,面具=面具)
    损失= 1x1 dlarray 32.6172

    输入参数

    全部折叠

    预测,指定为格式化的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或者一个数字数组。

    如果权重是一个向量Y是否有两个或多个非单例维度权重必须是格式化的dlarray,其中非单例维度的维度标签为“C”(通道)或“B”(批处理),其大小与中的相应尺寸的大小匹配Y

    如果权重是一个格式化的dlarray对于两个或多个非单例维度,则其格式必须与的格式匹配Y

    如果权重不是格式化的dlarray且具有两个或多个非单例维度,则其大小必须与的大小匹配Y函数的格式与Y.或者,要指定权重格式,请使用WeightsFormat选择。

    名称-值参数

    指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

    例子:损失= l1loss (Y,目标,减少=“没有”)表示计算L1没有将输出减少到一个标量的损失

    掩码,指示要包含哪些元素用于损失计算,指定为dlarray对象、逻辑数组或大小相同的数字数组Y

    当掩码中的对应值分别为1和0时,该函数包含和排除用于损失计算的输入数据的元素。

    如果面具是一个格式化的dlarray对象,则其格式必须与Y.如果面具不是格式化的dlarray对象,则函数使用与Y

    如果指定DataFormat选项,则函数也使用指定的掩码格式。

    各维度的尺寸面具尺寸必须匹配对应的尺寸在Y.默认值是1的逻辑数组。

    提示

    格式化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具有两个或多个非单例维度。

    如果权重不是向量,还是两者都是权重而且Y是向量,则默认值为WeightsFormat和的格式一样吗Y

    数据类型:字符|字符串

    输出参数

    全部折叠

    l1丢失,作为未格式化的返回dlarray.输出损失是一个非格式化dlarray使用与输入相同的基础数据类型Y

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

    算法

    全部折叠

    L1损失

    L1损失运算计算L1损失给定网络预测和目标值。当减少选择是“和”NormalizationFactor选择是“批大小”,其计算值称为平均绝对误差(MAE)。

    为每个元素Yj输入的l1loss函数计算相应元素的损失值

    损失 j | Y j T j |

    在哪里Yj预测值和Tj对应的目标值。

    为了将损失值减少为一个标量,该函数使用公式减少按元素计算的损失

    损失 1 N j j w j 损失 j

    在哪里N是归一化因子,j是否元素的掩码值j,wj元素的权重值是多少j

    如果不选择减少损失,则该函数直接对损失值应用掩码和权重:

    损失 j j w j 损失 j

    扩展功能

    版本历史

    介绍了R2021b

    Baidu
    map