keras 多任务多loss实例


Posted in Python onJune 22, 2020

记录一下:

# Three loss functions
category_predict1 = Dense(100, activation='softmax', name='ctg_out_1')(
  Dropout(0.5)(feature1)
)
category_predict2 = Dense(100, activation='softmax', name='ctg_out_2')(
  Dropout(0.5)(feature2)
)
dis = Lambda(eucl_dist, name='square')([feature1, feature2])
judge = Dense(2, activation='softmax', name='bin_out')(dis)
model = Model(inputs=[img1, img2], outputs=[category_predict1, category_predict2, judge])
model.compile(optimizer=SGD(lr=0.0001, momentum=0.9),
       loss={
         'ctg_out_1': 'categorical_crossentropy',
         'ctg_out_2': 'categorical_crossentropy',
         'bin_out': 'categorical_crossentropy'},
       loss_weights={
         'ctg_out_1': 1.,
         'ctg_out_2': 1.,
         'bin_out': 0.5
       },
       metrics=['accuracy'])

补充知识:多分类loss函数本质理解

一、面对一个多分类问题,如何设计合理的损失函数呢?

1、损失函数的本质在数学上称为目标函数;这个目标函数的目标值符合最完美的需求;损失函数的目标值肯定是0,完美分类的损失必然为0 ;

2、损失函数分为两部分,一部分为正确的分类,一部分为错误的分类;保留其中任何一个部分都可以达到目标;就好比两条路都可以通向罗马;都可以通过转化均可以令损失函数的最小值为0时,为目标值;(当然最小值不一定要为0 );最关键是最小化方向是通向目标值的;

3、多分类问题涉及概率问题,目标函数中设计只保留正确的部分(为什么不保留错误部分,我想都可以达到目的,这里保留正确部分,计算更方便);用极值思维想象完美分类情况下,输出的正确类别的概率必然是1,所以损失函数loss=-1/n(Px1+Px2+Px3+……);Px1代表样本x为x1的情况下,输出样本类别相同的概率;最好的情况就是p值都为1;损失值为0 ,可loss函数为-1;如何设计才能等效呢?答案就是加log函数;Loss=-1/n(logPx1+logPx2+logPx3+……);目标函数最小值就是0;

二、 如何在损失函数中只保留正确的部分呢?

1、从逆向的角度而言,错误部分的前面加个系数0,正确部分为1;从简单开始做起,比如说01分类,y*(logPy=1)+(1-y)*(logPy=0); y为样本真实分类;这个就能保存了;y=1时,就保留了第一部分,y=0时就保留了第二部分;但当将01分类扩展成三分类甚至多分类时,这种情况就不能够适应了;这是因为没有明白本质问题;

2、可以将真实样本标签输出转化成概率值;只是正确的概率值为1,其他类别概率为0;这样就可以完美解决多分类的问题;就是说每一个模型输出类别Log概率前乘以一个概率值; keras 多任务多loss实例 这个公式里面的P值全为1;为0的忽略掉了;

三、如何优化呢?

1、模型输出的概率值转化为一个h(x)的函数;通过改变函数内部的w值来达到最小值;也许达不到0值;这个跟函数的Power(拟合能力)有关;

四、cross-entropy loss公式怎么写呢?

keras 多任务多loss实例 Y代表样本的one-hot向量;yhat代表softmax输出的向量

以上这篇keras 多任务多loss实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Django的模板中使用认证数据的方法
Jul 23 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
Jun 15 Python
Python基于列表list实现的CRUD操作功能示例
Jan 05 Python
Python通过for循环理解迭代器和生成器实例详解
Feb 16 Python
python解析xml简单示例
Jun 21 Python
python导包的几种方法(自定义包的生成以及导入详解)
Jul 15 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
Aug 05 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
Aug 08 Python
Python数据结构dict常用操作代码实例
Mar 12 Python
Python使用扩展库pywin32实现批量文档打印实例
Apr 09 Python
Tensorflow tf.tile()的用法实例分析
May 22 Python
Python字符串函数strip()原理及用法详解
Jul 23 Python
python对execl 处理操作代码
Jun 22 #Python
Python select及selectors模块概念用法详解
Jun 22 #Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 #Python
利用Vscode进行Python开发环境配置的步骤
Jun 22 #Python
Python Excel vlookup函数实现过程解析
Jun 22 #Python
宝塔面板成功部署Django项目流程(图文)
Jun 22 #Python
python和php哪个更适合写爬虫
Jun 22 #Python
You might like
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
2016/01/19 PHP
浅谈php中fopen不能创建中文文件名文件的问题
2017/02/06 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
actionscript与javascript的区别
2011/05/25 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
BootStrap 附加导航组件
2016/07/22 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
vue中nextTick用法实例
2019/09/11 Javascript
Layui 解决表格异步调用后台分页的问题
2019/10/26 Javascript
vue2.0 解决抽取公用js的问题
2020/07/31 Javascript
es5 类与es6中class的区别小结
2020/11/09 Javascript
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
对Python获取屏幕截图的4种方法详解
2019/08/27 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
Python日志打印里logging.getLogger源码分析详解
2021/01/17 Python
JOSEPH官网:英国奢侈时尚品牌
2018/01/31 全球购物
班级学习计划书
2014/04/27 职场文书
销售活动策划方案
2014/08/26 职场文书
乡镇党的群众路线教育实践活动总结报告
2014/10/30 职场文书
典型事迹材料范文
2014/12/29 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书
Vue图片裁剪组件实例代码
2021/07/02 Vue.js