crossentropy
语法
描述
叉操作计算网络预测和目标之间的叉损失值单标牌和多标记分类任务。
的crossentropy
损失函数计算叉之间的预测和目标表示为dlarray
数据。使用dlarray
更易于处理高维数据的对象允许您标签的尺寸。例如,您可以标签尺寸对应于空间,时间,频道,使用批处理维度“S”
,“T”
,“C”
,“B”
标签,分别。未指明的和其他维度,使用“U”
标签。为dlarray
对象的函数操作特定的尺寸,你可以指定尺寸标签的格式dlarray
直接对象,或通过使用DataFormat
选择。
请注意
在一个计算熵损失layerGraph
对象或层
数组的使用trainNetwork
功能,使用classificationLayer
。
返回格式化的之间的分类熵损失损失
= crossentropy (Y
,目标
)dlarray
对象Y
包含预测和目标的价值观目标
对于单标牌分类任务。输出损失
是一个非格式化dlarray
标量。
无格式的输入数据,使用“DataFormat”
选择。
还指定了尺寸格式损失
= crossentropy (___、“DataFormat”FMT)FMT
当Y
不是一个格式化的dlarray
。
例子
叉亏损单标牌分类
创建一个数组的预测成绩12观察10类。
numClasses = 10;numObservations = 12;Y =兰德(numClasses numObservations);海底= dlarray (Y,“CB”);海底= softmax(海底);
视图的大小和格式预测分数。
大小(海底)
ans =1×210 12
dim(海底)
ans =“CB”
创建一个数组的目标编码为一个炎热的向量。
标签=兰迪(numClasses [1 numObservations]);目标= onehotencode(标签1“类名”1:numClasses);
视图的大小的目标。
大小(目标)
ans =1×210 12
计算熵损失预测和目标。
损失= crossentropy(海底目标)
损失= 1 x1 dlarray 2.3343
叉损失多标记分类
创建一个数组的预测成绩12观察10类。
numClasses = 10;numObservations = 12;Y =兰德(numClasses numObservations);海底= dlarray (Y,“CB”);
视图的大小和格式预测分数。
大小(海底)
ans =1×210 12
dim(海底)
ans =“CB”
创建一个随机的一系列目标编码为0和1的数字数组。每个观测可以有多个类。
目标=兰德(numClasses numObservations) > 0.75;目标=单(目标);
视图的大小的目标。
大小(目标)
ans =1×210 12
计算熵损失预测和目标。指定叉损失多标记分类设置“TargetCategories”
选项“独立”
。
损失= crossentropy(海底,目标,“TargetCategories”,“独立”)
损失= 1 x1单一dlarray 9.8853
加权熵损失
创建一个数组的预测成绩12观察10类。
numClasses = 10;numObservations = 12;Y =兰德(numClasses numObservations);海底= dlarray (Y,“CB”);海底= softmax(海底);
视图的大小和格式预测分数。
大小(海底)
ans =1×210 12
dim(海底)
ans =“CB”
创建一个数组的目标编码为一个炎热的向量。
标签=兰迪(numClasses [1 numObservations]);目标= onehotencode(标签1“类名”1:numClasses);
视图的大小的目标。
大小(目标)
ans =1×210 12
计算加权熵损失预测和目标使用向量类之间的权重。指定一个权值的格式加州大学的
(未指明的频道)使用“WeightsFormat”
选择。
重量=兰德(1、numClasses);损失= crossentropy(海底、目标、重量、“WeightsFormat”,加州大学的)
损失= 1 x1 dlarray 1.1261
输入参数
Y
- - - - - -预测
dlarray
|数字数组
预测,指定为一个格式化的dlarray
,一个非格式化dlarray
或数字数组。当Y
不是一个格式化的dlarray
,你必须指定尺寸格式使用DataFormat
选择。
如果Y
是一个数值数组,目标
必须是一个dlarray
。
目标
- - - - - -目标分类标签
dlarray
|数字数组
目标分类标签,指定为一个格式化的或未格式化dlarray
或数字数组。
目标指定为一个数组,其中包含一个炎热的编码标签与相同的大小和格式Y
。例如,如果Y
是一个numObservations
——- - - - - -numClasses
数组,然后目标(n,我)
= 1如果观察n
属于类我
目标(n,我)
= 0。
如果目标
是一个格式化的dlarray
,那么它的格式必须相同的格式Y
,或者一样DataFormat
如果Y
未格式化。
如果目标
是一个非格式化dlarray
或数值数组,那么函数应用的格式Y
或者的价值DataFormat
来目标
。
提示
格式化dlarray
底层数据对象自动排列的尺寸有秩序“S”
(空间),“C”
(通道),“B”
(批处理),“T”
(时间),然后“U”
(不明)。确保的尺寸Y
和目标
是一致的,当Y
是一个格式化的dlarray
还,指定目标
作为一个格式化的dlarray
。
权重
- - - - - -权重
dlarray
|数字数组
重量、指定为一个dlarray
或数字数组。
指定类的权重,指定一个向量的“C”
(频道)尺寸大小匹配“C”
(通道)的维度Y
。指定“C”
(频道)类的维度权重通过使用一个格式化的dlarray
对象或使用“WeightsFormat”
选择。
指定观察权重,指定一个向量的“B”
(批)尺寸大小匹配“B”
(批)的维度Y
。指定“B”
(批)类的维度权重通过使用一个格式化的dlarray
对象或使用“WeightsFormat”
选择。
指定独立输入的重量为每个元素,指定权重数组的大小一样Y
。在这种情况下,如果权重
不是一个格式化的dlarray
函数对象,然后使用相同的格式Y
。另外,指定权重格式使用“WeightsFormat”
选择。
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:“TargetCategories”、“独立”、“DataFormat”、“CB”
损失评估叉多标记分类任务和指定的尺寸顺序输入数据“CB”
TargetCategories
- - - - - -类型的分类任务
“独家”
(默认)|“独立”
类型的分类任务,指定为逗号分隔组成的“TargetCategories”
和下列之一:
“独家”
——单标牌分类。每个观测的预测Y
只分配给一个类别。函数计算之间的损失为单一类别指定的目标价值目标
和相应的预测Y
,平均观测的数量。“独立”
——多标记分类。每个观测的预测Y
可以分配给一个或多个独立的类别。函数计算指定的每个类别之间损失的总和目标
和预测Y
对于那些类别,平均在观测的数量。叉损失为这种类型的分类任务也被称为二叉叉的损失。
面具
- - - - - -面具指示元素包括损失计算
dlarray
|逻辑阵列|数字数组
面具表明哪些元素为损失计算,包括指定的作为dlarray
对象,一个逻辑数组,或数字数组大小一样Y
。
功能包括和不包括元素输入数据的损失计算面具当对应的值是1和0,分别。
如果面具
是一个格式化的dlarray
必须匹配的对象,那么它的格式Y
。如果面具
不是一个格式化的dlarray
函数对象,然后使用相同的格式Y
。
如果你指定DataFormat
选项,那么函数也为面具使用指定的格式。
每个尺寸的大小面具
必须匹配相应尺寸的大小Y
。默认值是一个逻辑的数组。
提示
格式化dlarray
底层数据对象自动排列的尺寸这个顺序:“S”
(空间),“C”
(通道),“B”
(批处理),“T”
(时间)“U”
(不明)。例如,dlarray
对象自动排列的尺寸数据与格式“TSCSBS”
有格式“SSSCBT”
。
确保的尺寸Y
,当面具是一致的Y
是一个格式化的dlarray
,还指定格式化的面具dlarray
。
DataFormat
- - - - - -维非格式化数据的顺序
特征向量|字符串标量
维度的非格式化输入数据,指定为一个特征向量或字符串标量FMT
为每个维度的数据提供一个标签。
当你指定的格式dlarray
对象,每个字符为每个维度的数据提供了一个标签,必须这些选项之一:
“S”
——空间“C”
——频道“B”
批处理(例如,样品和观察)“T”
时间(例如,时间序列的步骤)“U”
——未指明的
您可以指定多个维度标签“S”
或“U”
。您可以使用标签“C”
,“B”
,“T”
最多一次。
您必须指定DataFormat
当输入数据不是一个格式化的dlarray
。
数据类型:字符
|字符串
WeightsFormat
- - - - - -维度的权重
特征向量|字符串标量
维度的权重,指定为一个特征向量或字符串标量,它提供了一个标签为每个维度的权重。
当你指定的格式dlarray
对象,每个字符为每个维度的数据提供了一个标签,必须这些选项之一:
“S”
——空间“C”
——频道“B”
批处理(例如,样品和观察)“T”
时间(例如,时间序列的步骤)“U”
——未指明的
您可以指定多个维度标签“S”
或“U”
。您可以使用标签“C”
,“B”
,“T”
最多一次。
您必须指定WeightsFormat
当权重
是一个数值向量和Y
有两个或两个以上的nonsingleton维度。
如果权重
不是一个向量,或都有权重
和Y
向量,那么默认值的WeightsFormat
的格式是一样的吗Y
。
数据类型:字符
|字符串
算法
叉损失
为每个元素Yj输入的crossentropy
函数计算相应的叉element-wise损失值使用公式
在哪里Tj是对应的目标值Yj。
减少损失一个标量值,函数然后减少element-wise损失使用公式
在哪里N是归一化因子,米j掩码值的元素吗j,wj元素的重量值吗j。
如果你不选择来减少损失,那么函数面具和权重值直接损失:
此表显示了不同的任务损失公式。
任务 | 描述 | 损失 |
---|---|---|
单标牌分类 | 叉为互斥类损失。这是非常有用当观测必须只有一个标签。 |
在哪里N和K观察的数量,分别和类。 |
多标记分类 | 为独立类熵损失。这是观察可以有多个标签时有用。 |
在哪里N和K分别观察和类的数量。 |
单标牌与加权类分类 | 叉类体重的损失。这是非常有用的对不平衡数据集类。 |
在哪里N和K分别观察和类的数量,然后呢w我表示类的重量我。 |
Sequence-to-sequence分类 | 戴面具的时间步长叉损失。这是用于忽略损失值,对应的数据。 |
在哪里N,年代,K观察的数量、时间步长和类,米nt表示时间步的掩码值t的观察n。 |
扩展功能
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
使用笔记和限制:
当下列至少一个输入参数
gpuArray
或者一个dlarray
基础数据的类型gpuArray
这个函数运行在GPU上:Y
目标
权重
“面具”
有关更多信息,请参见运行在GPU MATLAB函数(并行计算工具箱)。
版本历史
介绍了R2019b
MATLAB명령
다음MATLAB명령에해당하는링크를클릭했습니다。
명령을실행하려면MATLAB명령창에입력하십시오。웹브라우저는MATLAB명령을지원하지않습니다。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。