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中的偏函数
Apr 27 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
Jul 25 Python
python下实现二叉堆以及堆排序的示例
Sep 29 Python
Django 多语言教程的实现(i18n)
Jul 07 Python
python 3.6.2 安装配置方法图文教程
Sep 18 Python
python中的for循环
Sep 28 Python
简单了解python 邮件模块的使用方法
Jul 24 Python
Python分析最近大火的网剧《隐秘的角落》
Jul 02 Python
filter使用python3代码进行迭代元素的实例详解
Dec 03 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
Mar 03 Python
Python 机器学习工具包SKlearn的安装与使用
May 14 Python
Python接口自动化之文件上传/下载接口详解
Apr 05 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
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
测试php函数的方法
2013/11/13 PHP
PHP文件大小格式化函数合集
2014/03/10 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
2016/11/14 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
JS获取页面窗口大小的代码解读
2011/12/01 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
2015/06/11 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
JS与HTML结合使用marquee标签实现无缝滚动效果代码
2016/07/05 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
BootStrap table表格插件自适应固定表头(超好用)
2016/08/24 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
jQuery自定义多选下拉框效果
2017/06/19 jQuery
详细AngularJs4的图片剪裁组件的实例
2017/07/12 Javascript
PHP 实现一种多文件上传的方法
2017/09/20 Javascript
javascript中join方法实例讲解
2019/02/21 Javascript
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
Python自动化开发学习之三级菜单制作
2017/07/14 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
解决每次打开pycharm直接进入项目的问题
2018/10/28 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
Django REST Swagger实现指定api参数
2020/07/07 Python
CSS3教程:新增加的结构伪类
2009/04/02 HTML / CSS
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
珍惜资源保护环境的建议书
2014/05/14 职场文书
网络营销计划书
2015/01/17 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技