内容简介:个人网站: http://thinkgamer.cn/CSDN博客:https://blog.csdn.net/gamer_gyt
“
多分类逻辑回归基于逻辑回归(Logistic Regression,LR)和softMax实现,其在多分类分类任务中应用广泛,本篇文章基于tf实现多分类逻辑回归,使用的数据集为Mnist。
”
个人网站: http://thinkgamer.cn/
CSDN博客:https://blog.csdn.net/gamer_gyt
微博: https://weibo.com/5352480017
微信公众号:数据与算法联盟(DataAndAlgorithm)
多分类逻辑回归的基础概要和在Spark上的实现可参考:
-
多分类逻辑回归(Multinomial Logistic Regression)
-
多分类实现方式介绍和在Spark上实现多分类逻辑回归(Multinomial Logistic Regression)
本篇文章涉及到的tf相关接口函数及释义如下:
tf.nn.softmax
Softmax 在机器学习和深度学习中有着非常广泛的应用。尤其在处理多分类(C > 2)问题,分类器最后的输出单元需要Softmax 函数进行数值处理。关于Softmax 函数的定义如下所示:
其中,Vi 是分类器前级输出单元的输出。i 表示类别索引,总的类别个数为 C。Si 表示的是当前元素的指数与所有元素指数和的比值。Softmax 将多分类的输出数值转化为相对概率,更容易理解和比较。我们来看下面这个例子。
一个多分类问题,C = 4。线性分类器模型最后输出层包含了四个输出值,分别是:
经过Softmax处理后,数值转化为相对概率:
很明显,Softmax 的输出表征了不同类别之间的相对概率。我们可以清晰地看出,S1 = 0.8390,对应的概率最大,则更清晰地可以判断预测为第1类的可能性更大。Softmax 将连续数值转化成相对概率,更有利于我们理解。
实际应用中,使用 Softmax 需要注意数值溢出的问题。因为有指数运算,如果 V 数值很大,经过指数运算后的数值往往可能有溢出的可能。所以,需要对 V 进行一些数值处理:即 V 中的每个元素减去 V 中的最大值。
tf中的softmax函数接口为:
-
logits:非空张量
-
axis:将被执行的softmax纬度,默认为None
-
name:名称,默认为None
-
dim:axis的别名,默认为None
tf.log()
计算元素的自然对数
tf.reduce_sum()
求和
tf.reduce_mean()
求平均数
tf.argmax()
返回tensor 列表中最大值索引号,eg:
tf.cast()
数据格式转换,eg:
最终实现代码
运行代码输出为:
从最终的结果可以看出:
-
loss一直在下降,说明模型是拟合的
-
训练集和测试机的精确率都很高,模型效果表现不错
-
当然也可以通过调节batch_size,epochs等参数进行效果调优
关于【数据与算法联盟】
专注于推荐系统,深度学习,机器学习,数据挖掘,云计算,人工智能,架构和编程等技术干货的分享和探讨,偶尔会推送一些福利,文字,摄影和游记,扫码关注,不再孤单。
更多干货,扫码关注
热
相关文章
深度学习中的epochs、batch_size、iterations详解
转载 | 十图详解tensorflow数据读取机制(附代码)
欢迎投稿,凡是投稿一经录用者,赠送技术图书和相关学习资料
国内各大互联网公司,可内推
关注公众号,加小编微信,拉你进
“ 数据与算法交流群”
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 逻辑回归 + GBDT 模型融合实战
- CSS的逻辑属性对盒模型带来的变化
- 【Hello CSS】第二章-CSS的逻辑属性与盒子模型
- 朴素贝叶斯(NB)、逻辑回归(LR)、隐马尔科夫模型(HMM)、条件随机场(CRF)
- .NET Core开发实战(第27课:定义Entity:区分领域模型的内在逻辑和外在行为)--学习笔记
- centos创建逻辑卷和扩容逻辑卷
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。