基于Theano的深度学习(Deep Learning)框架Keras学习随笔-04-目标函数
2015-10-14 22:07
716 查看
原地址:http://blog.csdn.net/niuwei22007/article/details/49132133可以查看更多文章
Objective(目标函数),就是常说的代价函数或者损失函数。是训练一个模型另外一个必备的参数。比较常用的就是均方误差和逻辑回归。上一个是优化器。
这段代码已经见过很多次了。可以通过传递一个函数名。也可以传递一个为每一块数据返回一个标量的Theano symbolic function。而且该函数的参数是以下形式:
y_true : 实际标签。类型为Theano tensor
y_pred: 预测结果。类型为与y_true同shape的Theanotensor
其实想一下很简单,因为损失函数的作用就是返回预测结果与实际值之间的差距。然后优化器根据差距进行参数调整。不同的损失函数之间的区别就是对这个差距的度量方式不同。这里是Keras对于目标函数实现的源代码。
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对数,剔除不介于epsilon和infinite之间的预测值与实际值之后,然后取对数,作差,平方,累加求均值。
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).
参考资料:
官方教程
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对数,剔除不介于epsilon和infinite之间的预测值与实际值之后,然后取对数,作差,平方,累加求均值。
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).
参考资料:
官方教程
相关文章推荐
- Objective C从远程url下载图片方法汇总
- 当程序崩溃的时候怎么办
- 图像识别和图像搜索
- 卷积神经网络
- Objective-C 重要组成
- 深度学习札记
- Objective-C协议与代理
- 黑马程序员——Objective-C学习笔记(五):foundation Kit (续)
- 黑马程序员——Objective-C学习笔记(七) :初始化对象
- 黑马——Objective-C学习笔记<十>:分类和协议
- Objective-C 学习笔记之使用跨文件依赖关系
- Objective -C内存管理
- 图像智能打标签‘神器’-AlchemyVision API
- ubuntu theano 安装成功,windows theano安装失败
- 卷积神经网络知识要点
- 字符串分割与拼接
- 1.linear Regression
- 1.linear Regression
- 一边学,一边写出的人工智能教程(二)