php调用keras,Keras深度学习框架之损失函数(示例代码)

一.损失函数的使用

损失函数【也称目标函数或优化评分函数】是编译模型时所需的两个参数之一。

model.compile(loss=‘mean_squared_error‘, optimizer=‘sgd‘)

from keras import losses

model.compile(loss=losses.mean_squared_error, optimizer=‘sgd‘)

可以传递一个现有的损失函数名或者一个TensorFlow/Theano符号函数。该符号函数为每个数据点返回一个标量,有一下两个参数:

1.y_true

真实标签,TensorFlow/Theano张量。

2.y_pred

预测值,TensorFlow/Theano张量,其shape与y_true相同。

实际的优化目标是所有数据点的输出数组的平均值。

二.可用的损失函数

1.mean_squared_error(y_true, y_pred)【MSE,均方误差】

计算公式:

20200225175818480624.png

源码:

20200225175818660318.png

2.mean_absolute_error(y_true, y_pred)【MAE,平均绝对误差】

提到MAE就不能不说显著性目标检测,所谓显著性目标,举个例子来说,当我们观察一张图片时,我们会首先关注那些颜色鲜明,夺人眼球的内容。就像我们看变形金刚时会首先看擎天柱一样,这是绝对的C位。所以我们把变形金刚中的擎天柱定义为显著性目标。

在显著性目标检测中的评价指标计算中,常用的检测算法就有平均绝对误差,其计算公式如下:

20200225175818693522.png

源码:

20200225175818743329.png

3.mean_absolute_percentage_error【MAPE,平均绝对百分比误差】

与平均绝对误差类似,平均绝对百分比误差预测结果与真实值之间的偏差比例。计算公式如下:

20200225175818820480.png

源码:

20200225175819129086.png

备注:

1.clip

逐元素,将超出指定范围的数强制变为边界数。

2.epsilon

固定参数,默认值为1*e-7。

4.mean_squared_logarithmic_error【MSLE,均方对数误差】

在计算均方误差之前先对数据取对数,再计算。

计算公式:

20200225175819172056.png

源码:

20200225175819197448.png

5.squared_hinage【不常用】

计算公式:

20200225175819268740.png

源码:

20200225175819309757.png

6.hinage【不常用】

计算公式:

20200225175819347844.png

源码:

20200225175819399604.png

7.categorical_hinge【不常用】

源码:

20200225175819424019.png

8.logcosh【不常用】

预测误差的双曲余弦的对数。计算结果与均方误差大致相同,但不会受到偶尔疯狂的错误预测的强烈影响。

源码:

20200225175819468943.png

9.categorical_crossentropy【不常用】

当使用categorical_crossentropy损失时,目标值应该是分类格式【即假如是10类,那么每个样本的目标值应该是一个10维的向量,这个向量除了表示类别的那个索引为1,其它均为0】。为了将整数目标值转换为分类目标值,可以使用keras实用函数to_categorical。

from keras.utils.np_utils import to_categorical

categorical_labels = to_categorical(int_labels, num_classes=None)

源码:

20200225175819502147.png

10.sparse_categorical_crossentropy【不常用】

源码:

20200225175819523632.png

11.binary_crossentropy【不常用】

源码:

20200225175819548047.png

12.kullback_leibler_divergence【不常用】

源码:

20200225175819572462.png

13.poisson【不常用】

计算公式:

20200225175819642778.png

源码:

20200225175819727742.png

14.cosine_proximity【不常用】

计算公式:

20200225175819781455.png

源码:

20200225175819849817.png

三.其它类型的损失函数

1.ctc_batch_cost【高性能】

源码:

20200225175819883998.png

在每个批处理元素上运行CTC损失算法。

参数:

1.y_true

包含真实值标签的张量。类型(samples, max_string_length).

2.y_pred

包含预测值或softmax输出的张量。类型(samples, time_steps, num_categories)。

3.input_length

张量(samples, 1),包含y_pred中每个批处理项的序列长度。

4.label_length

张量(samples, 1), 包含y_true中每个批处理项的序列长度。

返回shape为(samples, 1)的张量,包含每一个元素的CTC损失。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值