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 相关文章推荐
浅谈Python程序与C++程序的联合使用
Apr 07 Python
实例Python处理XML文件的方法
Aug 31 Python
python中字符串类型json操作的注意事项
May 02 Python
Python设计模式之组合模式原理与用法实例分析
Jan 11 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
使用django的objects.filter()方法匹配多个关键字的方法
Jul 18 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
Python sep参数使用方法详解
Feb 12 Python
Python类中的装饰器在当前类中的声明与调用详解
Apr 15 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
Feb 25 Python
对Pytorch 中的contiguous理解说明
Mar 03 Python
简述python四种分词工具,盘点哪个更好用?
Apr 13 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
限制复选框的最大可选数
2006/07/01 Javascript
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
js返回上一页并刷新代码整理
2012/12/21 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
超实用的JavaScript代码段 附使用方法
2016/05/22 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
JavaScript数组类型Array相关的属性与方法详解
2020/09/08 Javascript
[02:07]DOTA2超级联赛专访BBC:难忘网吧超神经历
2013/06/09 DOTA
浅谈python3.6的tkinter运行问题
2019/02/22 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
Pandora西班牙官方商店:PandoraShop.es
2020/10/05 全球购物
工程造价与财务管理专业应届生求职信
2013/10/06 职场文书
生物技术专业毕业生求职信范文
2013/12/14 职场文书
2014年端午节活动方案
2014/03/11 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python