主要内容

l2loss

l2回归任务损失

    描述

    L2损失运算计算L2损失(基于L的平方2Norm)给出网络预测和目标值。当减少选择是“和”NormalizationFactor选择是“批大小”时,计算出的值称为均方误差(MSE)。

    l2loss函数计算L2使用损失dlarray数据。使用dlarray对象允许您标记维度,从而更容易处理高维数据。属性标记哪些维度对应于空间、时间、通道和批处理维度“S”“T”“C”,“B”标签,分别。对于未指定的维度和其他维度,使用“U”标签。为dlarray对象的函数在特定维度上操作时,可以通过格式化dlarray对象,或者使用DataFormat选择。

    例子

    损失= l2loss (Y目标计算MSE损失进行预测Y以及目标值目标.输入Y必须是格式化的dlarray.输出损失是未格式化的dlarray标量。

    损失= l2loss (Y目标权重计算加权的L2使用权重值的损失权重.输出损失是未格式化的dlarray标量。

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

    例子

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

    例子

    全部折叠

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

    numResponses = 10;numObservations = 12;Y = rand(numResponses,numObservations);ly = darray (Y,“CB”);

    查看预测的大小和格式。

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

    创建一个随机目标数组。

    targets = rand(numResponses,numObservations);

    查看目标的大小。

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

    计算预测和目标之间的均方误差(MSE)损失l2loss函数。

    loss = l2loss(dlY,targets)
    损失= 1x1 dlarray 1.4748

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

    numResponses = 10;numObservations = 12;maxSequenceLength = 15;sequenceLengths = randi(maxSequenceLength,[1 numObservations]);Y = cell(numObservations,1);target = cell(numObservations,1);i = 1:numObservations Y{i} = rand(numResponses,sequenceLengths(i));targets{i} = rand(numResponses,sequenceLengths(i));结束

    查看预测和目标的单元格阵列。

    Y
    Y =12×1单元格数组{10x13双}{10x14双}{10x14双}{10x10双}{10x2双}{10x5双}{10x9双}{10x15双}{10x15双}{10x3双}{10x15双}
    目标
    目标=12×1单元格数组{10x13双}{10x14双}{10x14双}{10x10双}{10x2双}{10x5双}{10x9双}{10x15双}{10x15双}{10x3双}{10x15双}

    将预测序列和目标序列填充在二维中padsequences函数,并返回相应的掩码。

    [Y,mask] = padsequences(Y,2);Targets = padsequences(Targets,2);

    将填充序列转换为dlarray格式“施”(通道,时间,批次)。因为格式化dlarray对象自动排列底层数据的维度,通过将目标和掩码转换为格式化来保持顺序一致dlarray格式为“施”(通道,批次,时间)。

    ly = darray (Y,“施”);目标= dlarray(目标,“施”);蒙版= dlarray(蒙版,“施”);

    查看预测分数、目标和掩码大小。

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

    计算预测和目标之间的均方误差(MSE)。若要防止从填充中计算的损耗值导致损耗,请设置面具属性返回的掩码padsequences函数。

    loss = l2loss(dlY,targets,Mask= Mask)
    损失= 1x1 dlarray 16.3668

    输入参数

    全部折叠

    预测,指定为格式化的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”(batch),并且具有与中相应维度的大小相匹配的大小Y

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

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

    名称-值参数

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

    例子:损失= l2loss(Y,目标,减少="none")指定计算L2没有将输出减少到标量的损失

    掩码,指示要包括哪些元素进行损失计算,指定为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

    数据类型:字符|字符串

    输出参数

    全部折叠

    l2Loss,以未格式化的形式返回dlarray.输出损失是未格式化的dlarray使用与输入相同的底层数据类型Y

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

    算法

    全部折叠

    L2的损失

    L2损失运算计算L2损失(基于L的平方2Norm)给出网络预测和目标值。当减少选择是“和”NormalizationFactor选择是“批大小”时,计算出的值称为均方误差(MSE)。

    对于每个元素Yj的输入l2loss函数计算相应的元素损失值

    损失 j Y j T j 2

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

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

    损失 1 N j j w j 损失 j

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

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

    损失 j j w j 损失 j

    扩展功能

    版本历史

    R2021b中引入

    Baidu
    map