当前位置: 首页 > news >正文

福州市交通建设集团有限公司 网站/百度快照是怎么做上去的

福州市交通建设集团有限公司 网站,百度快照是怎么做上去的,亿方云企业网盘,微信网站开发测试号我主要分三篇文章给大家介绍tensorflow的损失函数,本篇为tensorflow自定义损失函数。 (一)tensorflow内置的四个损失函数 (二)其他损失函数 (三)自定义损失函数 自定义损失函数是损失函数章…

我主要分三篇文章给大家介绍tensorflow的损失函数,本篇为tensorflow自定义损失函数。
(一)tensorflow内置的四个损失函数
(二)其他损失函数
(三)自定义损失函数

自定义损失函数是损失函数章节的结尾,学习自定义损失函数,对于提高分类分割等问题的准确率很有帮助,同时探索新型的损失函数也可以让你文章多多。这里我们介绍构建自定义损失函数的方法,并且介绍可以均衡正负例的loss,以及在多分类中可以解决样本数量不均衡的loss的方法。

首先为了有足够的知识学会自定义损失函数,我们需要知道tensorflow都能实现什么样的操作。其实答案是你常见的数学运算都可以,所以说只要你能把心中的损失函数表达为数学式的形式,那么你就能够将其转变为损失函数的形式。下面介绍一些常见的函数:

  1. 四则运算:tf.add(Tensor1,Tensor2),tf.sub(Tensor1,Tensor2), tf.mul(Tensor1,Tensor2),tf.div(Tensor1,Tensor2)这里的操作也可以被正常的加减乘除的负号所取代。这里想要指出的是乘法和除法的规则和numpy库是一样的,是matlab中的点乘而不是矩阵的乘法,矩阵的乘法是tf.matmul(Tensor1, Tensor2)
  2. 基础运算: 取模运算(tf.mod()),绝对值(tf.abs()),平方(tf.square()),四舍五入取整(tf.round()),取平方根(tf.sqrt()) ,自然对数的幂(tf.exp()) ,取对数(tf.log()) ,幂(tf.pow()) ,正弦运算(tf.sin())。以上的这些数学运算以及很多没有被提及的运算在tensorflow中都可以自己被求导,所以大家不用担心还需要自己写反向传播的问题,只要你的操作是由tensorflow封装的基础操作实现的,那么反向传播就可以自动的实现。
  3. 条件判断,通过条件判断语句我们就可以实现分段的损失函数,利用tf.where(condition, tensor_x, tensor_y) 如果说条件condition是True那么就会返回tensor_x,如果是False则返回tensor_y。注:旧版本的tensorflow可以用tf.select实现这个操作。
  4. 比较操作,为了获得condition这个参数,我们可以用tf.greater( tensor_x, tensor_y)如果说tensor_x大于tensor_y则返回True。
  5. tf.reduce_sum(),tf.reduce_mean()这两个操作是重要的loss操作,因为loss是一个数字,而通常计算得到的是一个高维的矩阵,因此用降维加法和降维取平均,可以将一个高维的矩阵变为一个数字。

有了上面的这些操作,我们就可以实现基本的损失函数的构建了,比如我们构建交叉熵损失函数:

cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y)+(y_-1)* tf.log(1-y))) 

再介绍一个均衡正负样本数量的loss,首先在训练数据中,通常来讲正例比较少,负例比较多,如疾病筛查中,有病的占少数而绝大部分人是健康的,这种数量不均衡的数据可能会让分类器倾向于将所有的示例都分为健康人,因为这样整体的准确率可能就能达到90%以上,为此,可以用调整loss权重的方式来缓解样本数量不均衡的问题,如:

pos_ratio=num_of_positive/num_all # 病人占总体的比例,较小如0.1
neg_ratio=num_of_negative/num_all # 正常人占总体的比例,较大如0.9
cross_entropy = tf.reduce_mean(-neg_ratio*tf.reduce_sum(y_ * tf.log(y)+pos_ratio*(y_-1)* tf.log(1-y))) 

在这里我们给病人的损失项乘了一个较大的系数,使得一旦占少数的病人被错分为健康人的时候,代价就非常的大。同样的给正常人的损失项乘了一个较小的系数,使其诊断错误时对网络的影像较小。
这也符合实际情况,即使健康人在筛查时被通知可能患病,只要再进一步检查就可以。但是如果在筛查的时候将病人误分为健康人,那么付出的就可能是生命的代价了。

以上是二分类的例子,那么在多分类的时候应该如何做呢?我们也可以通过乘系数这样的方式解决问题,这里我们认为标签是one_hot形式的如:

class1_weight=0.2 # 第一类的权重系数
class2_weight=0.5 # 第二类的权重系数
class3_weight=0.3 # 第三类的权重系数
cross_entropy = tf.reduce_mean(-class1_weight*tf.reduce
_sum(y_[:,0] * tf.log(y[:,0])-class2_weight*tf.reduce
_sum(y_[:,1] * tf.log(y[:,1])-class3_weight*tf.reduce
_sum(y_[:,2] * tf.log(y[:,2])) 

因为标签和预测的结果都是one_hot的形式,因此在这里y[:,0]就是第一类的概率值,其中第一个维度的长度是minibatch的大小。同理y[:,0]就是第二类的概率值,我们在不同的项上乘上不同类别的权重系数,就可以一定程度上解决样本数量不均衡所带来的困扰。

http://www.lbrq.cn/news/830395.html

相关文章:

  • 苍南网站设计公司/全网营销思路
  • 安徽省芜湖建设定额网站/企业网络营销方案
  • 福州建设高端网站/徐州seo培训
  • 做网站用什么语言制作最安全/市场监督管理局职责
  • 网站制作价格怎么算/营销软文
  • 网站开发的时间流程/强力搜索引擎
  • 萧山做网站的企业/百度网盘搜索引擎入口
  • 网络服务公司名字/优化搜狗排名
  • 建网站热线电话/搜索引擎优化策略
  • 高端做网站多少钱/网络营销网站推广
  • 网站建设在作用是什么意思/优化推广联盟
  • 怎么推广自己的公司网站/平台优化是什么意思
  • 企业网站建设哪家便宜/抖来查关键词搜索排名
  • 网站设置反爬虫的常用方法有哪些/网店运营培训哪里好
  • 云南集优科技网站/福州百度推广优化排名
  • 制作网站吗/优化系统的软件
  • 微信网站搭建价格/怎么进行网站推广
  • 北京顺义区住房和城乡建设委员会网站/百度怎样发布作品
  • 如何做网站视频模板/东莞网站推广及优化
  • 怎样做网站的测试与维护/信阳seo推广
  • 搭建网站代码/品牌营销理论有哪些
  • 网站开发本科论文/全球十大搜索引擎排名及网址
  • 开锁行业在58做网站有活吗/seosem是什么职位
  • 奥德贵阳网络推广公司/新乡网站优化公司推荐
  • 网站建设狼雨/b2b网站大全
  • 怎么使用模板建设网站/市场营销师报名官网
  • 网站建设资源/seo信息优化
  • 西安政府网站建设公司/谷歌网页版入口
  • 郑州网站推广服务/怎么自己做一个网站平台
  • 店铺图片设计/zac seo博客
  • 142. 环形链表 II
  • 【MySQL笔记】视图
  • 20250718【顺着234回文链表做两题反转】Leetcodehot100之20692【直接过12明天吧】今天计划
  • 机械材料计算软件,快速核算重量
  • RPG60.生成可拾取物品
  • MC0457符咒封印