TensorFlow-1: 如何识别数字

本文介绍了使用TensorFlow进行手写数字识别的步骤,包括从Yann LeCun的网站获取MNIST数据集,建立softmax回归模型,定义tensor和variable,设置交叉熵损失函数和梯度下降优化器,训练并评估模型,最终在测试集上达到92%的准确率。
摘要由CSDN通过智能技术生成

识别数字在机器学习任务中的地位和 Hello World 在编程中是一样的。

主要步骤:

  1. 获得数据:from Yann LeCun’s website
  2. 建立模型:softmax
  3. 定义 tensor,variable:X,W,b
  4. 定义损失函数,优化器:cross-entropy,gradient descent
  5. 训练模型:loop,batch
  6. 评价:准确率

1. 获得数据
  • 来自 Yann LeCun’s website:http://yann.lecun.com/exdb/mnist/
  • 分为 train,test,validate,每个 X 代表一个图片,y 是它的 label
  • 其中图片由 28*28 像素组成,转化成 array 的形式,变成 1*784
  • y 变为 one-hot 的形式,即属于哪个数字,就在哪个位置上为 1, 其余为 0

目标:给了 X 后,预测它的 label 是属于 0~9 类中的哪一类

如果想要看数据属于多类中的哪一类,首先可以想到用 softmax 来做。


2. 建立模型

softmax regression 有两步:

  1. 把 input 转化为某类的 evidence
  2. 把 evidence 转化为 probabilities

1. 把 input 转化为某类的 evidence

  • 某一类的 evidence 就是像素强度的加权求和,再加上此类的 bias。
  • 如果某个 pixel 可以作为一个 evidence 证明图片不属于此类,则 weight 为负,否则的话 weight 为正。
    下图中,红色代表负值,蓝色代表正值:

2. 把 evidence 转化为 probabilities

简单看,softmax 就是把 input 先做指数,再做一下归一:

  • 归一的作用:好理解,就是转化成概率的性质
  • 为什么要取指数:在 《常用激活函数比较》写过
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值