本节书摘来异步社区《TensorFlow技术解析与实战》一书中的第3章,第3.1节,作者:李嘉璇,更多章节内容可以访问云栖社区“异步社区”公众号查看。

3.1 PlayGround

PlayGround[1]是一个用于教学目的的简单神经网络的在线演示、实验的图形化平台,非常强大地可视化了神经网络的训练过程。使用它可以在浏览器里训练神经网络,对Tensorflow有一个感性的认识。

PlayGround界面从左到右由数据(DATA)、特征(FEATURES)、神经网络的隐藏层(HIDDEN LAYERS)和层中的连接线和输出(OPUPUT)几个部分组成,如图3-1所示。

3.1.1 数据

在二维平面内,点被标记成两种颜色。深色(电脑屏幕显示为蓝色)代表正值,浅色(电脑屏幕显示为黄色)代表负值。这两种颜色表示想要区分的两类,如图3-2所示。

网站提供了4种不同形态的数据,分别是圆形、异或、高斯和螺旋,如图3-3所示。神经网络会根据所给的数据进行训练,再分类规律相同的点。

PlayGournd中的数据配置非常灵活,可以调整噪声(noise)的大小。图3-4展示的是噪声为0、25和50时的数据分布。

PlayGournd中也可以改变训练数据和测试数据的比例(ratio)。图3-5展示的是训练数据和测试数据比例为1 : 9和9 : 1时的情况。

此外,PlayGournd中还可以调整输入的每批(batch)数据的多少,调整范围可以是1~30,就是说每批进入神经网络数据的点可以1~30个,如图3-6所示。

3.1.2 特征

接下来我们需要做特征提取(feature extraction),每一个点都有X1和X2两个特征,由这两个特征还可以衍生出许多其他特征,如X1X1、X2X2、X1X2、sin(X1)、sin(X2)等,如图3-7所示。

从颜色上,X1左边浅色(电脑屏幕显示为黄色)是负,右边深色(电脑屏幕显示为蓝色)是正,X1表示此点的横坐标值。同理,X2上边深色是正,下边浅色是负,X2表示此点的纵坐标值。X1X1是关于横坐标的“抛物线”信息,X2X2是关于纵坐标的“抛物线”信息,X1X2是“双曲抛物面”的信息,sin(X1)是关于横坐标的“正弦函数”信息,sin(X2)是关于纵坐标的“正弦函数”信息。

因此,我们要学习的分类器(classifier)就是要结合上述一种或者多种特征,画出一条或者多条线,把原始的蓝色和黄色数据分开。

3.1.3 隐藏层

我们可以设置隐藏层的多少,以及每个隐藏层神经元的数量,如图3-8所示。

隐藏层之间的连接线表示权重(weight),深色(蓝色)表示用神经元的原始输出,浅色(黄色)表示用神经元的负输出。连接线的粗细和深浅表示权重的绝对值大小。鼠标放在线上可以看到具体值,也可以修改值,如图3-9所示.

修改值时,同时要考虑激活函数,例如,当换成Sigmoid时,会发现没有负向的黄色区域了,因为Sigmoid的值域是(0,1),如图3-10所示。

下一层神经网络的神经元会对这一层的输出再进行组合。组合时,根据上一次预测的准确性,我们会通过反向传播给每个组合不同的权重。组合时连接线的粗细和深浅会发生变化,连接线的颜色越深越粗,表示权重越大。

3.1.4 输出

输出的目的是使黄色点都归于黄色背景,蓝色点都归于蓝色背景,背景颜色的深浅代表可能性的强弱。

我们选定螺旋形数据,7个特征全部输入,进行试验。选择只有3个隐藏层时,第一个隐藏层设置8个神经元,第二个隐藏层设置4个神经元,第三个隐藏层设置2个神经元。训练大概2分钟,测试损失(test loss)和训练损失(training loss)就不再下降了。训练完成时可以看出,我们的神经网络已经完美地分离出了橙色点和蓝色点,如图3-11所示。

假设我们只输入最基本的前4个特征,给足多个隐藏层,看看神经网络的表现。假设加入6个隐藏层,前4层每层有8个神经元,第五层有6个神经元,第六层有2个神经元。结果如图3-12所示。

我们发现,通过增加神经元的个数和神经网络的隐藏层数,即使没有输入许多特征,神经网络也能正确地分类。但是,假如我们要分类的物体是猫猫狗狗的图片,而不是肉眼能够直接识别出特征的黄点和蓝点呢?这时候怎样去提取那些真正有效的特征呢?

有了神经网络,我们的系统自己就能学习到哪些特征是有效的、哪些是无效的,通过自己学习的这些特征,就可以做到自己分类,这就大大提高了我们解决语音、图像这种复杂抽象问题的能力。

《TensorFlow技术解析与实战》——3.1 PlayGround相关推荐

  1. 《TensorFlow技术解析与实战》——第3章 可视化TensorFlow 3.1PlayGround

    本节书摘来自异步社区<TensorFlow技术解析与实战>一书中的第3章,第3.1节,作者李嘉璇,更多章节内容可以访问云栖社区"异步社区"公众号查看 第3章 可视化Te ...

  2. 《TensorFlow技术解析与实战》——第3章 可视化TensorFlow

    本节书摘来异步社区<TensorFlow技术解析与实战>一书中的第3章,作者:李嘉璇,更多章节内容可以访问云栖社区"异步社区"公众号查看. 第3章 可视化TensorF ...

  3. 《TensorFlow技术解析与实战》——1.2 什么是深度学习

    本节书摘来异步社区<TensorFlow技术解析与实战>一书中的第1章,第1.2节,作者:李嘉璇,更多章节内容可以访问云栖社区"异步社区"公众号查看. 1.2 什么是深 ...

  4. 《TensorFlow技术解析与实战》——导读

    前言 2017年2月,TensorFlow的首届开发者峰会(2017 TensorFlow Dev Summit)在美国的加利福尼亚州举行.在会上,谷歌公司宣布正式发布TensorFlow 1.0版本 ...

  5. TensorFlow学习笔记——《TensorFlow技术解析与实战》

    著名历史学家斯塔夫里阿诺斯在<全球通史>中,曾以15世纪的航海在"物理上"连通"各大洲"作为标志将人类历史划分为两个阶段.在我正在写作的<互联 ...

  6. 《TensorFlow技术解析与实战》欢迎来到异步社区!

    欢迎来到异步社区! 异步社区的来历 异步社区(www.epubit.com.cn)是人民邮电出版社旗下IT专业图书旗舰社区,于2015年8月上线运营. 异步社区依托于人民邮电出版社20余年的IT专业优 ...

  7. 重磅发布 | 承载亿级流量的开发框架,闲鱼Flutter技术解析与实战大公开

    简介: 闲鱼是国内最早接触使用 Flutter 的团队,经过多次研讨验证并大规模上线,在App性能.稳定性.开发效率上收益甚多.现在,闲鱼将这个过程中的一手实践知识和技术沉淀,整理成册 --<F ...

  8. 技术解析+代码实战,带你入门华为云政务区块链平台

    摘要:政务区块链平台是行业区块链平台的初步实践,未来在区块链技术的发展下,还会打造面向其他领域的链管平台,构建多方协同的分布式账本,让区块链应用更便捷高效的为产业服务. 本文分享自华为云社区<技 ...

  9. 《TensorFlow技术解析与实践》之实战篇--李佳璇

    <第二篇 实战篇>代码及实现(https://blog.csdn.net/longji/article/category/6840109/1) 1. 第一个TensorFlow程序 2.T ...

最新文章

  1. Leetcode 40组合总数(回溯)Ⅱ41缺失的第一个正数42接雨水
  2. 如何去除Windows8测试版界面“水印”
  3. C# 中xml数组的序列和反序列化方法
  4. java反射机制的原理与简单使用
  5. 数据库编程——intro to JDBC
  6. Eclipse中单元测试
  7. python调用存储过程怎么传多个参数_Python - pyodbc调用具有参数名称的存储过程...
  8. 【英语学习】【Level 07】U07 Stories of my Life L2 I actually did it!
  9. docker相关配置
  10. Hive学习之Metastore及其配置管理
  11. 如何将ANSYS19 Structural 图形界面背景底色更改为白色
  12. 数据结构第5版李春葆上机实验题答案(全部)
  13. 从零搭建一辆ROS小车
  14. python设置中文字体_python-docx设置中文字体
  15. 20210526一日总结
  16. Android固定帧率录屏
  17. 技术报告 | 华为云中国信通院:云原生2.0 白皮书.pdf(附下载链接)
  18. 【计算机毕业设计】123网上商城系统设计与实现
  19. iOS adhoc 版本App 如何制作安装
  20. c 语言获取系统时间并打印机,C# 获取打印机当前状态的方法

热门文章

  1. 真革命!老罗发布坚果R1后,世界再无锤子
  2. linux 2.6.23时钟中断与调度分析,进程调度Linux内核分析ppt课件
  3. 销售为什么爱“撒谎”
  4. 如何剪切音乐的一部分?来试试这个方法
  5. 【转载】【超级简单入门】用Python从海量文本抽取主题
  6. UE4事件图表选项卡学习
  7. 安卓强制恢复出厂_恢复出厂设置都没用,安卓木马病毒xHelper究竟该如何清除?...
  8. 关于一些自己需要的资料记录
  9. 获取ipa安装包的最新方式
  10. Yacc和lex的部分翻译