机器学习心得(三)——softmax回归


在上一篇文章中,主要以二分类为例,讲解了logistic回归模型原理。那么对于多分类问题,我们应该如何处理呢?当然,选择构建许多二分类器进行概率输出自然是一个不错的思路,但是softmax函数为我们解决多分类问题提供了一个更好的方法。记得上周看一篇讲RNN的博客时,看示意图一时没有想明白softmax层的意义所在,于是傻逼兮兮的请教了五道口某机器学习大佬,大佬一语道破天机,让我意识到了softmax层作为全连接层对隐层输出进行分类的功能所在(如下图,博主地址)。

softmax回归

如同logistic回归原理一样,均可以视为一种映射关系:x->z->y,只不过softmax回归是进行多分类的而已。下面给出softmax回归的假设函数。

我们的目的很简单,就是对于每一个输入的x,假设函数都能输出x属于每一个类别的概率。如图所示,右侧的函数构造即可满足我们的要求。其中,分母项是为了归一化,使得概率之和为1.

代价函数

值得一提的是,1{y(i) = j}的意思是指,当yi等于j时,值取1.

然而,这个代价函数通常会加入惩罚项,使其变成一个严格凸函数,易于迭代进行优化:

求导之后:

值得一提的是,在实际应用中经常使用最大似然与交叉熵作为其代价函数。

softmax函数于logistic函数的关系

logistic回归可以视为softmax进行二分类时的特例,即当类别数为2时,softmax 回归退化为 logistic 回归,由于数学学的不好,所以就不多推导了。

代码实现

好了,东西都已经讲完了,那么可以上代码了,当然,这次还是用tensorflow来做的。记得昨天老师居然很吃惊我的机器能跑tf,为了证明我的电脑真的很可以,所以这次我要用我的副电脑苏菲pro跑一波mnist数据。

# -*- coding: utf-8 -*-
"""
Created on Sun Apr  1 17:19:07 2018@author: DZF_zuishuai
"""import tensorflow as tf
import numpy as np
from tensorflow.examples.tutorials.mnist import input_data#导入mnist
mnist = input_data.read_data_sets("MNIST_data/", one_hot = True)x = tf.placeholder("float", [None, 784]) #
w = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10])) y = tf.nn.softmax(tf.matmul(x,w) + b)# loss
y_ = tf.placeholder("float", [None, 10])#定义交叉熵
cross_entropy = -tf.reduce_sum(y_*tf.log(y))# 随机梯度下降
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)# 初始化
init = tf.initialize_all_variables()# Session
sess = tf.Session()
sess.run(init)# 迭代
for i in range(1000):batch_xs, batch_ys = mnist.train.next_batch(100)sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})if i % 50 == 0:correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))print ("Setp: ", i, "Accuracy: ",sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

机器学习心得(三)——softmax回归相关推荐

  1. 机器学习——线性模型之Softmax回归

    问:Softmax回归模型是一种典型处理多分类任务的非线性分类模型 答:错误.Softmax回归是线性分类模型.实际上是逻辑回归的拓展,它将逻辑回归的二分类推广到了多分类,用逻辑回归的方法解决多分类问 ...

  2. 机器学习-监督学习-logistic回归,softMax回归

    本篇博文来总结一下回归模型里面两个非常重要的模型. logistic回归 softMAX回归 Logistic回归 logistics回归虽然有"回归"两字但是却是分类模型,并且是 ...

  3. Scikit-Learn 机器学习笔记 -- 线性回归、逻辑回归、softmax回归

    Scikit-Learn 机器学习笔记 – 线性回归.逻辑回归.softmax回归 参考文档: handson-ml import numpy as np from matplotlib import ...

  4. 机器学习算法之 logistic、Softmax 回归

    逻辑回归本质是分类问题,而且是二分类问题,不属于回归,但是为什么又叫回归呢.我们可以这样理解,逻辑回归就是用回归的办法来做分类.它是在线性回归的基础上,通过Sigmoid函数进行了非线性转换,从而具有 ...

  5. UFLDL教程笔记及练习答案三(Softmax回归与自我学习***)

    UFLDL教程笔记及练习答案三(Softmax回归与自我学习***) 1:softmax回归 当p(y|x,theta)满足多项式分布,通过GLM对其进行建模就能得到htheta(x)关于theta的 ...

  6. python机器学习案例系列教程——逻辑分类/逻辑回归LR/一般线性回归(softmax回归)

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 线性函数.线性回归 参考:http://blog.csdn.net/luanpeng825485697/article/details ...

  7. 【机器学习】对数线性模型之Logistic回归、SoftMax回归和最大熵模型

    来源 | AI小白入门 作者 | 文杰 编辑 | yuquanle 完整代码见:原文链接 1. Logistic回归 ​ 分类问题可以看作是在回归函数上的一个分类.一般情况下定义二值函数,然而二值函数 ...

  8. Pytorch总结三之 softmax回归用于分类问题

    Pytorch总结三之 softmax回归用于分类问题 上篇博文Pytorch总结二之线性回归算法原理与实现介绍的线性回归模型适⽤于输出为连续值的情景. 在另⼀类情景中,模型输出可以是⼀个像图像类别这 ...

  9. 机器学习----Softmax回归

    本篇博客主要是参考吴恩达教授的Ufldl教程,教程链接如下: http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 OK ...

最新文章

  1. 微软为华为定制了一个“烂笔头小冰”,让人想起了老罗的“闪念胶囊”
  2. tf.keras.layers.Resizing 示例 改变维度的层
  3. python编程入门经典实例-总算明了python编程入门经典实例
  4. 工程师忽略的隐形成本
  5. 第一章--最小的“操作系统”
  6. 用与非门设计血型配对电路_电路板中与非门集成电路的控制原理
  7. 【CSS】font样式简写(转)- 不是很建议简写
  8. Unix——《Unix网络编程》配置unp.h头文件
  9. 一个关于从1到100的加法算法
  10. 说透Applet的数字签名之1——Applet及其运行
  11. InfluxDB简介,InfluxDB的基本操作
  12. 采用docker部署3台Redis分布式红锁实例
  13. php 中echo用法,php中echo()函数的用法(附代码)
  14. 迅雷精简版依托迅雷强大的P2P资源网络和独特的下载技术
  15. 堆积柱形图显示总数_excel堆积柱形图如何显示总数
  16. 【UEFI基础】PCD
  17. Arduino 学习思考与记录
  18. 学会了C语言究竟能干什么呢?
  19. MagicalCoder可视化开发平台:轻松搭建业务系统,为企业创造更多价值
  20. excel熵值法计算权重_SPSS主成分分析 | 权重计算amp;极差法标准化超详细教程!(下)...

热门文章

  1. python制作cad_CAD命令行深入理解——python乱入CAD二_分形
  2. 处理实体与Map<String,Object>、json之间的转换
  3. 虹软人脸识别 SDK 使用 Unity Android C# Java多语言开发 2021-09-06
  4. flask markdown 报错解决
  5. linux nc 命令详解
  6. 关于葡萄酒标签的一些常识
  7. 车辆控制单元诊断系统
  8. 2012您IE了吗?筹备JNCIE之感!
  9. Module not found: Error: Can‘t resolve
  10. 投资理财-小新分红的意义