基于Theano的深度学习(Deep Learning)框架Keras学习随笔-04-目标函数

本文介绍了深度学习框架Keras中目标函数的使用方法和内置的几种目标函数,如均方误差、绝对值均差等,并提供了公式解析。目标函数在模型训练中用于衡量预测值与实际值的差距,Keras提供了多种损失函数供选择,适应不同的任务需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        原地址:http://blog.youkuaiyun.com/niuwei22007/article/details/49132133可以查看更多文章

Objective(目标函数),就是常说的代价函数或者损失函数。是训练一个模型另外一个必备的参数。比较常用的就是均方误差和逻辑回归。上一个是优化器

        一、目标函数的使用方法

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

        这段代码已经见过很多次了。可以通过传递一个函数名。也可以传递一个为每一块数据返回一个标量的Theano symbolic function。而且该函数的参数是以下形式:

  • y_true : 实际标签。类型为Theano tensor
  • y_pred: 预测结果。类型为与y_true同shape的Theanotensor

        其实想一下很简单,因为损失函数的作用就是返回预测结果与实际值之间的差距。然后优化器根据差距进行参数调整。不同的损失函数之间的区别就是对这个差距的度量方式不同。这里是Keras对于目标函数实现的源代码。

        

        二、Keras内置的目标函数

  • mean_squared_error / mse均方误差,常用的目标函数,公式为((y_pred-y_true)^2).mean(axis=-1)就是把预测值与实际值差的平方累加求均值。
  • mean_absolute_error / mae绝对值均差,公式为(|y_pred-y_true|).mean(axis=-1)就是把预测值与实际值差的绝对值累加求和。
  • mean_absolute_percentage_error / mape公式为:(|(y_true - y_pred) / clip((|y_true|),epsilon, infinite)|).mean(axis=-1) * 100,和mae的区别就是,累加的是(预测值与实际值的差)除以(剔除不介于epsilon和infinite之间的实际值),然后求均值。
  • mean_squared_logarithmic_error / msle公式为: (log(clip(y_pred, epsilon, infinite)+1)- log(clip(y_true, epsilon,infinite)+1.))^2.mean(axis=-1),这个就是加入了log对数,剔除不介于epsiloninfinite之间的预测值与实际值之后,然后取对数,作差,平方,累加求均值。
  • squared_hinge公式为:(max(1-y_true*y_pred,0))^2.mean(axis=-1),取1减去预测值与实际值乘积的结果与0比相对大的值的平方的累加均值。
  • hinge公式为:(max(1-y_true*y_pred,0)).mean(axis=-1),取1减去预测值与实际值乘积的结果与0比相对大的值的的累加均值。
  • binary_crossentropy:常说的逻辑回归.
  • categorical_crossentropy:多分类的逻辑回归注意:using this objective requires that your labels are binary arrays ofshape (nb_samples, nb_classes).


        参考资料:

  1. 官方教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值