0、PlayGround可视化

Tensorflow新手通过PlayGround可视化初识神经网络

是不是觉得神经网络不够形象,概念不够清晰,如果你是新手,来玩玩PlayGround就知道,大神请绕道。

PlayGround是一个在线演示、实验的神经网络平台,是一个入门神经网络非常直观的网站。这个图形化平台非常强大,将神经网络的训练过程直接可视化。同时也能让我们对Tensorflow有一个感性的认识。

PlayGround的网址是:http://playground.tensorflow.org/

PlayGround页面如图所示,主要分为DATA(数据),FEATURES(特征),HIDDEN LAYERS(隐含层),OUTPUT(输出层)。

PlayGround主页面

DATA一栏里提供了4种不同形态的数据,分别是圆形、异或、高斯和螺旋。平面内的数据分为蓝色和黄色两类。

四种数据形态

我们的目标就是通过神经网络将这两种数据分类,可以看出螺旋形态的数据分类是难度最高的。除此之外,PlayGround还提供了非常灵活的数据配置,可以调节噪声、训练数据和测试数据的比例和Batch size的大小。

噪声的影响

训练数据和测试数据的比例

Batch size大小

Batch size就是每批进入神经网络数据点的个数。

FEATURES一栏包含了可供选择的7种特征:X1、X2、X1X1、X2X2、X1X2、sin(X1)、sin(X2)。

7种特征

X1可以看成以横坐标分布的数据特征,X2是以纵坐标分布的数据特征,X1X1和X2X2是非负的抛物线分布,X1X2是双曲抛物面分布,sin(X1)和sin(X2)正弦分布。我们的目标就是通过这些特征的分布组合将两类数据(蓝色和黄色)区分开,这就是训练的目的。

HIDDEN LAYERS一栏可设置多少隐含层。一般来讲,隐含层越多,衍生出的特征类型也就越丰富,对于分类的效果也会越好,但不是越多越好,层数多了训练的速度会变慢,同时收敛的效果不一定会更好,后面也会提到。

隐含层结构

因为在这里是一个分类的问题,隐含层设置为两层,刚好对应输出的类型。层与层之间的连线粗细表示权重的绝对值大小,我们可以把鼠标放在线上查看权值,也可以点击修改。

OUTPUT一栏将输出的训练过程直接可视化,通过test loss和training loss来评估模型的好坏。

输出模型

除了主要的四个部分外,在界面上还有一列控制神经网络的参数,从左到右分别是,训练的开关、迭代次数、学习速率、激活函数、正则化、正则化率和问题的类型。

神经网络控制参数

我们接下来尝试了几个例子,考虑到图片太多,直接讲一些结论,读者可以自行去摸索。

首先考虑的是激活函数的影响,比较了一下Sigmoid函数和ReLU函数:

1、选择Sigmoid函数作为激活函数,明显能感觉到训练的时间很长,ReLU函数能大大加快收敛速度,这也是现在大多数神经网络都采用的激活函数。

2、当把隐含层数加深后,会发现Sigmoid函数作为激活函数,训练过程loss降不下来,这是因为Sigmoid函数反向传播时出现梯度消失的问题(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失)。

接着我们选用ReLU函数作为激活函数,比较一下隐含层数量对结果的影响:

1、我们选用了3层隐含层,每层特征个数为8,8,2的模型和6层隐含层,每层特征个数为8,8,8,8,8,2的模型。3层隐含层模型大概200步就达到了test loss为0.005,training loss为0.005,而6层隐含层模型跑了700步,test loss为0.015,training loss为0.005,有点过拟合。

8,8,2模型

8,8,8,8,8,2模型

隐含层的数量不是越多越好,层数和特征的个数太多,会造成优化的难度和出现过拟合的现象。

如果你感兴趣,很多测试你都可以尝试一下。通过神经网络,我们的系统自己就能学习到哪些特征是有效的,哪些特征是无效的,通过自己学习这些特征,然后判断问题。值得一提的是,最近很热的AlphaGo zero通过自我学习的过程,从无到有,打败了参照人类知识学习的AlphaGo,可见机器自我学习,自我进化的速度太快了,远远超越了人类历史经验的总结。人生苦短,快用Tensorflow!

原文链接:https://www.jianshu.com/p/5f83defc7615

原文地址:https://www.cnblogs.com/wanshuai/p/9203096.html

时间: 2024-11-05 11:34:23

0、PlayGround可视化的相关文章

PLAYGROUND 可视化

PLAYGROUND 可视化 由 王巍 (@ONEVCAT) 发布于 2015/09/23 在程序界,很多小伙伴都会对研究排序算法情有独钟,并且试图将排序执行的过程可视化,以便让大家更清晰直观地了解算法步骤.有人把可视化排序做得很正统明了,也有人把它做到了艺术层次. 想在 Cocoa 中做一个可视化的排序算法演示可不是一件容易的事情,很可能你会需要一套绘制图形的框架,并且考虑如何在屏幕上呈现每一步的过程.但是在 Playground 中事情就变得简单多了:我们可以使用 XCPlayground 

《PCL点云库学习&VS2010(X64)》Part 8 PCL1.72(VTK6.2.0)可视化例程

Part 8 PCL1.72(VTK6.2.0)可视化例程                                                                                                PCL1.72 VTK6.20 控制台程序 加入.props属性表文件 1.Cloud_Viewer Cloud_Viewer.cpp代码: #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRendering

下载和安装mongodb4.2.0+robmongo可视化工具

一.mongodb下载安装 1.mongodb下载地址:https://www.mongodb.com/download-center/community?jmp=nav 下了很久很久,可以找其他途径,百度就可以了. 2.我下载的.zip文件,解压后的文件如图.除了红色部分,data和log文件是新加的. 在安装目录\data\下创建一个db目录,作为安装目录\data\的备用目录,,在 log 文件夹下创建新文件 mongo.config(安装目录\log\mongo.config) 3.建好

eclipseMARS2.0使用可视化设计界面——配置window builder

1.查看eclipse版本 不同版本的eclipse对应不同的版本window builder,如果不知道版本的话可以通过,点击HELP——>about eclipse来查看自己eclipse的版本 2.在官网上找到对应版本的window builder window builder下载网址:http://www.eclipse.org/windowbuilder/download.php,进入该链接页面如下图 点击对应版本的link,得到相应的网址,复制这个网址 3.进入eclipse,点击h

zabbix3.2+Grafana4.0实现可视化监控图形

Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编辑器.Grafana 是开源的,功能齐全的度量仪表盘和图形编辑器,支持 Graphite,InfluxDB 和 OpenTSDB.Grafana 主要特性:灵活丰富的图形化选项:可以混合多种风格:支持白天和夜间模式:多个数据源:Graphite 和 InfluxDB 查询编辑器等等.

vue2.0+echarts可视化图形开发中遇到的问题总结

项目首页如上图所示: 先说说我的想法吧,此页面共包含title,tabs(选项栏),materchart(仪表盘),loading(等待加载提示),btns(按钮)四个组件, 1.表盘组件所用到的数据由首页以属性的方式传递, 因为数据从服务器端是异步获取,因此直接写入请求数据会出错,因为在页面渲染时异步请求未完成,所以此处加入了loading模块,在请求的过程中显示loading状态,等待请求完毕时更改v-if的值,来达到异步显示图表的目的. 这里先简单记录一下自己的思路. 2.下面说一下首页t

MicroSurvey.CAD.2010.v10.0加拿大测绘软件

用友U8.61网络三用户 用友U870 速达3000XP.V8.65网络版 188用户  速达3000XP v7.60 Build 20060109单机零售版 速达3000.net8.53 速达E.net2.86商业版 速达5000工业网络版v2.86 4096用户 速达5000 PRO工业版3.43 20080116_9999用户 速达物业管理全能版v2.2 速达服装管理5.5 e8进销存财务管理系统8.5 管家婆服装2008+ 10.4.1.48 管家婆辉煌2008++ v4.1 88用户

可视化日历_Java实现

//刚刚学Java,写的小程序 1 package cn.xiaocangtian.testDate; 2 3 import java.text.DateFormat; 4 import java.text.ParseException; 5 import java.text.SimpleDateFormat; 6 import java.util.Calendar; 7 import java.util.Date; 8 import java.util.GregorianCalendar; 9

一套完整的印刷电路板设计系统DipTrace.v1.0

CEETRON.GLView.Inova.v9.1.03.Linux 1CD Geometric.Glovius.Pro.v4.0.0.254.Win32_64 2CD Software.Companions.GerbView.v8.14.Win32_64 2CD Ansys Products 16.1 Win64-ISO 5DVD Ansys Products 16.1 Linux64-ISO 6DVD Ansys Products 16.1 Documentation 1DVD Ansys.