深度学习入门笔记系列 ( 四 )

基于 tensorflow 的回归代码实现

每周一三五 ,相约 7 :35 。

本系列将分为 8 篇 。今天是第四篇 。总是理论有些枯燥 ,今天来动手基于 TF 框架实现两个简单的案例 ,以小搏大熟悉一下整个过程 。整体来说 ,训练神经网络分为 3 个步骤 :

  1. 定义神经网络的结构和前向传播的输出结果
  2. 定义损失函数以及选择反向传播优化的算法
  3. 生成会话(tf.Session) 并在训练数据上反复运行反向传播优化算法

现以直线拟合和回归拟合两个简单案例来熟悉以上 3 个步骤 。

1.直线的拟合

比如我们现在要用 y = k * x + b (其中 k ,b为参数)通过多次的训练来拟合直线 y = 5 * x + 1 。

根据上述 3 个步骤 ,首先构造线性模型 y = k * x + b ,我们目的就是通过训练 ,使得参数 k ,b 去逼近真实值 5 ,1 。之后定义损失函数 ,这里我们用的是二次代价函数 ;选用梯度下降法进行优化 。最后在会话(tf.Session)中进行反复的优化 。具体代码和注释如下 :

运行结果如下 ,经过 100 轮的训练优化 ,参数的训练值已经很逼近真实值了 。

2.线性回归

回归问题和分类问题不太一样 ,分类是得到结果为 label ,表示类别 ,比如二分类问题等 ,是离散的 ,有限个类别 。回归则是连续的 ,具体看下面例子 。

本例中 ,我们用 y = x*x +noise 随机生成200个散点 ,用神经网络训练 ,拟合出较为理想的回归结果 。

同上述 3 个步骤 ,第一步是定义网络结构和基本信息 ,这部分代码造了一个 10 个节点的中间层 ,之后直接连接一个节点的输出 。输入散点则是利用 numpy 在区间(-0.5,0.5)间生成 200 个散点 ,并在输出中添加了 noise 信息 。具体如下。

这里选用的代价函数为二次代价函数 ,优化算法也是梯度下降法 。之后执行对应的训练 ,并将结果以绘图形式输出 。代码如下 :

运行该代码 ,得到的结果如下 。

本篇两个案例都比较简单 ,主要目的在于用两个简单实例熟悉神将网络训练的基本步骤 。最后 ,如果觉得这个系列不错 ,记得扫码关注噢 !

原文发布于微信公众号 - 小詹学Python(xiaoxiaozhantongxue)

原文发表时间:2018-08-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

TensorFlow 从入门到放弃(一):卷积神经网络与TensorFlow实现

IT 领域的三角不可能定律:质量编程、速度编程、廉价编程。 ——麦杰克 · 索伊 导读:从本质上讲,我们在做回归或者分类的时候,就是把数据映射到一个或多个离散标...

249100
来自专栏LhWorld哥陪你聊算法

【深度学习篇】--神经网络中的卷积神经网络

Convolutional neural networks  视觉皮层、感受野,一些神经元看线,一些神经元看线的方向,一些神经元有更大的感受野,组合 底层的图案...

9910
来自专栏数据处理

笔记之一

17860
来自专栏决胜机器学习

卷积神经网络(三) ——inception网络、迁移学习

卷积神经网络(三) ——inception网络、迁移学习 (原创内容,转载请注明来源,谢谢) 一、Inception网络 1、简介 前面的文章中,有各种的卷积模...

43780
来自专栏AI研习社

如何找到最优学习率?

经过了大量炼丹的同学都知道,超参数是一个非常玄乎的东西,比如batch size,学习率等,这些东西的设定并没有什么规律和原因,论文中设定的超参数一般都是靠经验...

450100
来自专栏fangyangcoder

Andrew Ng机器学习课程笔记(一)之线性回归

http://www.cnblogs.com/fydeblog/p/7364598.html

21620
来自专栏LhWorld哥陪你聊算法

【深度学习篇】--神经网络中的池化层和CNN架构模型

降采样subsample,shrink(浓缩),减少计算负荷,减少内存使用,参数数量减少(也可防止过拟合) 减少输入图片大小(降低了图片的质量)也使得神经网络可...

29220
来自专栏文武兼修ing——机器学习与IC设计

基于sklearn的线性支持向量机分类器原理代码实现

原理 分类器 机器学习的分类器,均可以看成一个或一组超平面,将label不同的数据点在数据空间中分开。对于线性可分问题,属于相同label的数据点在数据空间中可...

43290
来自专栏xingoo, 一个梦想做发明家的程序员

吴恩达机器学习笔记 —— 14 无监督学习

还有一个算法在这次的课程中没有提到,就是kmeans++,它与上面的kmeans不同的是,选择中心点是首先随机选择一个,然后选择一个离当前最远的作为下一个中心点...

9400
来自专栏fangyangcoder

Andrew Ng机器学习课程笔记(三)之正则化

http://www.cnblogs.com/fydeblog/p/7365475.html

8310

扫码关注云+社区

领取腾讯云代金券