首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

机器学习100天-Day8Tensorflow新手教程3

github上的一个比较有意思的tensorflow教程,一共四大块:热身、基础、基础机器学习、基础神经网络。打算翻译一下搬运过来。

原博文地址:https://github.com/osforscience/TensorFlow-Course#id7

本人github地址,已经更新到第八天:https://github.com/jwc19890114/-02-learning-file-100days

之前热身和线性回归链接如下

https://www.toutiao.com/i6636660269378437635/

https://www.toutiao.com/i6637015044246733316/

在之前第6天的博文中使用Tensorflow实现过一个逻辑回归,再次实现一次。

使用Tensorflow实现逻辑回归

讨论如何通过系统中的线性模型预测连续值参数。

如果对象要求在两个选择中抉择呢?

答案简单,我们转换为可以解决一个分类问题。

数据集

使用MNIST数据集(看来终于要试试这个大名鼎鼎的数据集了,暑假的时候看了一下。)

MNIST数据集包括55000训练集和10000测试集。

图片是28*28,每一张图代表一个手写数字(0-9任意一个)。

我们创建一个大小为764的特征向量,仅使用0和1图。

逻辑回归

在线性回归中,使用线性方程进行预测。另一方面,逻辑回归中我们通过预测一个二元标签0或1。

在逻辑回归中,预测输出是输入样本属于我们的情况下数字“1”的目标类的概率。

损失函数包括两方面,并且在每一个采样中考虑到二进制标记,只有一个是非0的。

处理流程

引入数据集,包含0和1的部分。

实现逻辑回归。用于逻辑回归的代码很大程度上受到《训练卷积神经网络作为分类器》的启发。我们参考上述帖子以更好地理解实现细节。

教程中,仅仅解释数据处理、实现逻辑回归,其余部分可以参考之前CNN分类器。

引入库

关键FLAGS

注意这部分要求参数为int,np.power需要转为int

学习速率、状态、错误警告

数据集处理

注意,需要提前下载MNIST数据集

http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz

http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz

http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz

http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz

数据集下载好之后存在项目文件目录下,进行引用

数据处理

训练维度

设定图示(Tensorflow的图)

graph = tf.Graph()

逻辑回归实现

逻辑回归的结构:是一个简单的通过完全连接的层来馈送转发输入特征,其中最后一层仅具有两个类。

注意

batch、batch size、epoch

batch: batch是批。深度学习每一次参数的更新所需要损失函数并不是由一个获得的,而是由一组数据加权得到的,这一组数据的数量就是batch size。batch的思想,至少有两个作用,一是更好的处理非凸的损失函数,非凸的情况下, 全样本就算工程上算的动, 也会卡在局部优上,批表示了全样本的部分抽样实现,相当于人为引入修正梯度上的采样噪声,使“一路不通找别路”更有可能搜索最优值;二是合理利用内存容量。

如果数据集较小,可以采用全数据集(Full batch learning)的形式,这样有两个显然的好处:1.由全数据集计算的梯度能够更好的代表样本总体,从而更准确的朝向极值所在的方向;2.不同权重的梯度值差别很大,因此选取一个全局的学习率会比较困难(?)batch size最大是样本总数N,此时就是Full batch learning;最小是1,即每次只训练一个样本,这就是在线学习(Online Learning)。

当我们分批学习时,每次使用过全部训练数据完成一次Forword运算以及一次BP运算,成为完成了一次epoch。

接下来的代码接上面,同属session会话中

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181225A0VBFA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券