Loss function 损失函数

损失函数

model.compile(loss='mean_squared_error', optimizer='sgd', metrics=['mae', 'acc'])

定义:在深度学习中,损失函数是用来衡量一组参数的质量的函数,衡量的方式是比较网络输出和真实输出的差异

损失函数并不适用测试数据来衡量网络的性能。
损失函数用来指导训练过程,使得网络的参数向损失降低的方向改变。
训练过程通常使用。

随机梯度下降法Stochastic gradient desceny

  • 试图找到一组参数使得损失函数的值越小越好
  • 调整参数的大小和方向取决于损失函数相对于参数的编导数

特性

  • 最小值:当网络的输出和真实输出一致

  • 当输出和真实输出越不一致时值越大

  • 理想状态下在这里插入图片描述

  • 实际上都是 not convex非凸函数
    -需要根据输出的变化而平滑的变化
    -需要可导(SGD优化器的优化)
    -需要容易求导

常用损失函数

1.回归Regression:网络输出一个连续的数值

例如:预测一个房屋的价值	
损失函数:绝对值误差,平方差

2.分类Classification:网络的输出为一个类别,从预定义的一组类别中一个

实例:判断邮件是否是垃圾邮件	
损失函数:hinge loss, Cross-entropy loss

绝对误差函数Absolute value,L1-norm

非常质感的损失函数

  • 得到的解会比较稀疏sparser
    -在高纬任务中表现较好
    -预测速度快
  • 对outliers(特殊情况下的数据)不敏感
    在这里插入图片描述

方差函数Square error,Euclidean loss,L2-norm

常用的损失函数

  • 比绝对误差函数得到的结果更精准
  • 对大的误差输出更敏感
  • 对outliers(极端条件下的数据)很敏感
    在这里插入图片描述

分类

我们期望得到的最终结果是每一个输入对应一个输出类别

  • 网络的输出包含了对每一个类别的预测值
  • 如果有K个类别,网络的输出值为K个值
    在这里插入图片描述那么如何设计损失函数
  • 将真实的唯一输出编码为一个向量——>独热编码One-hot encoding
  • 非概率的解释——>hinge loss
  • 概率解释:将输出转换为概率函数——>Softmax

Softmax

将输出转换为概率

  • 概率范围0.0到1.0
  • 属于所有类别的概率之和为1.0在这里插入图片描述

独热编码One-hot encoding

将一个类别标签转换为一个向量(每一个元素的值为1或者0)

  • 向量的元素个数为总的类别的数量K
  • 1对于正确的类别
    在这里插入图片描述

Cross-entropy loss 交叉熵损失函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

why在分类的时候用Cross-entropy loss而不用Square error loss

一般而言Cross-entropy loss比方差函数Square error loss在分类的情形下要好:

  • 方差函数对误差的输出惩罚非常大
  • 如果使用Softmax激活函数,加上方差函数作为损失函数,梯度包含y(1-y),当输出接近0.0或者1.1的时候,梯度值非常小,网络的训练会比较慢

Multi-label分类,not Multi-class分类

  • 输出属于多个类别中的一个或者多个类
    -例如一幅包含猫咪的图像可以同时属于“猫“,“哺乳动物”,”宠物“
  • 对每一个输出独立使用Sigmoid激活函数,不使用softmax
    在这里插入图片描述

正则化Regularization

避免网络过拟合prevent overfitting,一般和loss function一起使用
在这里插入图片描述
w是不同网络节点之间连接的权值,入 (栏目他)是自己定义的超参数

实例

在这里插入图片描述
在这里插入图片描述
由上面两个网络训练出来的结果来看明显第二个网络更好,但如果用分类的准确率Classification accuracy来做判断,显然是不可以的

如何证明Logisitic Regression的损失函数具有全局最优解?

等下期吧,哈哈哈。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值