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中使用Sitemap的方法讲解
Jul 22 Python
深入解析Python的Tornado框架中内置的模板引擎
Jul 11 Python
Python把csv数据写入list和字典类型的变量脚本方法
Jun 15 Python
python滑块验证码的破解实现
Nov 10 Python
python求质数列表的例子
Nov 24 Python
numpy实现神经网络反向传播算法的步骤
Dec 24 Python
python序列类型种类详解
Feb 26 Python
django之从html页面表单获取输入的数据实例
Mar 16 Python
使用Keras建立模型并训练等一系列操作方式
Jul 02 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
Jan 05 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 Python
解决jupyter notebook图片显示模糊和保存清晰图片的操作
Apr 24 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
收音机怀古---春雷3P7图片欣赏
2021/03/02 无线电
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
js实现图片淡入淡出切换简易效果
2016/08/22 Javascript
jquery实现tab键进行选择后enter键触发click行为
2017/03/29 jQuery
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
JS实现的全选、全不选及反选功能【案例】
2019/02/19 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
推荐几个不错的console调试技巧实现
2019/12/20 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
python skimage 连通性区域检测方法
2018/06/21 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
Django利用cookie保存用户登录信息的简单实现方法
2019/05/27 Python
python实现列表的排序方法分享
2019/07/01 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
Python大批量搜索引擎图像爬虫工具详解
2020/11/16 Python
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
英国行业制服供应商:Alexandra
2019/09/14 全球购物
材料工程专业毕业生求职信
2014/03/04 职场文书
如何签定毕业生就业协议书
2014/09/28 职场文书
英语导游词
2015/02/13 职场文书
毕业纪念册寄语大全
2015/02/26 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫