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 参数列表中的self 显式不等于冗余
Dec 01 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
Nov 05 Python
django项目搭建与Session使用详解
Oct 10 Python
让你Python到很爽的加速递归函数的装饰器
May 26 Python
python 中的列表生成式、生成器表达式、模块导入
Jun 19 Python
python模块导入的方法
Oct 24 Python
基于python3 的百度图片下载器的实现代码
Nov 05 Python
python使用pip安装SciPy、SymPy、matplotlib教程
Nov 20 Python
Python小程序之在图片上加入数字的代码
Nov 26 Python
浅谈keras的深度模型训练过程及结果记录方式
Jan 24 Python
用Python 爬取猫眼电影数据分析《无名之辈》
Jul 24 Python
Python访问Redis的详细操作
Jun 26 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
如何在PHP中使用Oracle数据库(1)
2006/10/09 PHP
php下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
js怎么终止程序return不行换jfslk
2013/05/30 Javascript
jquery实现的鼠标拖动排序Li或Table
2014/05/04 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
动态加载js文件简单示例
2016/04/21 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
angular.js之路由的选择方法
2016/09/24 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
nodejs实现简单的gulp打包
2017/12/21 NodeJs
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
Python3基础之基本运算符概述
2014/08/13 Python
python发送告警邮件脚本
2018/09/17 Python
详解Python打包分发工具setuptools
2019/08/05 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
Marc Jacobs官方网站:美国奢侈品牌
2017/08/29 全球购物
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
中学生演讲稿
2014/04/26 职场文书
质量负责人任命书
2014/06/06 职场文书
高中校园广播稿
2014/10/21 职场文书
2015年推广普通话演讲稿
2015/03/20 职场文书
运输公司工作总结
2015/08/11 职场文书
工作报告范文
2019/06/20 职场文书