昨天,Google发布了Tensorflow游乐场。Tensorflow是Google今年推出的机器学习开源平台。而有了Tensorflow游乐场,我们在浏览器中就可以训练自己的神经网络,还有酷酷的图像让我们更直观地了解神经网络的工作原理。今天,就让硅谷周边带你一起去Tensorflow游乐场快乐地玩耍吧!
昨天,Google深度学习部门Google Brain的掌门人,也是Google里受万众景仰的神级别工程师Jeff Dean,在Google Plus上发布了Tensorflow游乐场的消息:

于是小伙伴们都十分激动地去Tensorflow的网站上玩神经网络了!游乐场的地址是:http://playground.tensorflow.org。让我们快点一起去看看游乐场里有哪些好玩的东东吧。
一打开网站,就看见上面的标语:

“在你的浏览器中就可以玩神经网络!不用担心,怎么玩也玩不坏哦!”
这简直太令人振奋了!面对这么多可以随便点的按钮,咱们从哪儿开始呢?

首先让我们来看看数据。在这个游乐场中,我们有4种不同形态的数据可以玩:

每组数据,都是不同形态分布的一群点。每一个点,都与生俱来了2个特征:x1和x2,表示点的位置。而我们数据中的点有2类:橙色和蓝色。我们的神经网络的目标,就是通过训练,知道哪些位置的点是橙色、哪些位置的点是蓝色。
如果橙色是橙子,蓝色是蓝莓。假设我们有2000个散落在各处的橙子和蓝莓。前1000个,我们知道坐标(1,1)的是蓝莓,(2,2)的是橙子,(0.5,0.5)的是蓝莓等等。我们要用这些信息来训练我们的神经网络,让它能够准确地预测出后1000个哪些是橙子、哪些是蓝莓。
看上面的4组数据,我们会发现,前3中都能相对简单地区分开,而最后一组螺旋数据会是最难的。
Tensorflow游乐场中的数据十分灵活。我们可以调整noise(干扰)的大小,还可以改变训练数据和测试数据的比例多少。下图是不同noise的数据分布。

当我们把每一个数据点的信息喂给机器学习系统时,我们需要做feature extraction,也就是特征提取。如果我们真的是在区分蓝莓和橙子的话,大小、颜色等等都会是我们的特征。而这里,每一个点都有x1和x2两个特征。除此之外,由这两个特征还可以衍生出许多其他特征:

抽象来说,我们的机器学习classifier(分类器)其实是在试图画一条或多条线。如果我们能够100%正确地区分蓝色和橙色的点,蓝色的点会在线的一边,橙色的会在另一边。
上面这些图其实非常的直观。第一张图中,如果x1作为我们的唯一特征,我们其实就是在画一条和x1轴垂直的线。当我们改变参数时,其实就是在将这条线左右移动。其他的特征也是如此。
很容易可以看出,我们需要智能地结合这其中一种或多种的特征,才能够成功地将蓝色点和橙色点分类。这样的feature extraction,其实往往是机器学习应用中最难的部分。好在我们有神经网络,它能够帮我们完成大部分的任务。
如果我们选定x1和x2作为特征,我们神经网络的每一层的每个神经元,都会将它们进行组合,来算出结果:

而下一层神经网络的神经元,会把这一层的输出再进行组合。组合时,根据上一次预测的准确性,我们会通过back propogation给每个组合不同的weights(比重)。这里的线越粗,就表示比重越大:

下面就让我们用最难的螺旋形数据,来试试这个神经网络的表现吧!
在神经网络出现前,我们往往会竭尽所能地想出尽可能好的特征,把它们全都喂给系统。而系统会是个十分浅的系统,往往只有一层。用这样的方法来完成分类。
让我们先来实验传统的方法。在这里,我们将所有能够想到的7个特征都输入系统,并选择只有1层的神经网络:

最后的结果是这样的,可以看出我们的单层神经系统几乎完美地分离出了橙色点和蓝色点:

接下来,让我们来体验神经网络真正的魔法。神经网络最大的魔力,就在于我们根本不需要想出各种各样的特征,用来输入给机器学习的系统。我们只需要输入最基本的特征x1, x2, 只要给予足够多层的神经网络和神经元,神经网络会自己组合出最有用的特征。
在这次试验中,我们只输入x1, x2,而选择1个6层的,每层有8个神经元的神经网络:

最后的结果是这样的。我们发现,通过增加神经元和神经网络的层数,即使没有输入许多特征,我们也能够成功地分类:

神经网络的伟大之处就在于此。当我们在解决分类橙色点和蓝色点这样的简单问题时,想出额外的特征似乎并不是难事。但是,当我们要处理的问题越来越复杂,想出有用的特征就变成了最最困难的事。比如说,当我们需要识别出哪张图片是猫,哪张图片是狗时,哪些特征是真正有效的呢?
而当我们有了神经网络,我们的系统自己就能学习到哪些特征是有效的、哪些是无效的,这就大大提高了我们解决复杂机器学习问题的能力,简直是太酷啦!
看了以上的文章,你是不是对神经网络有了更直观的认识呢?好奇的小伙伴们,欢迎去http://playground.tensorflow.org/自己试试看,真的非常好玩!
作者简介
硅谷周边,本科毕业于Carnegie Mellon University(卡耐基梅隆大学),主修电子与计算机工程和机器人。先后在苹果(Macintosh Systems, iPod)和Google(Android, Google Glass)工作。现在是Google的一名软件工程师。

Tensorflow游乐场相关推荐

  1. 人工智能TensorFlow工作笔记010---TensorFlow 游乐场游戏,了解神经网络主要功能作用_工作流程

    技术交流QQ群[JAVA,C,.NET,BigData,AI]:170933152 看书写程序,边看边写... 看下面这个游戏网站地址,然后看介绍吧.主要是介绍一下,神经网络实现过程. http:// ...

  2. TensorFlow——入门基础

    TensorFlow原理: TensorFlow使用Graph来描述计算任务,图中的节点被称之为op.一个op可以接受0或多个tensor作为输入,也可产生0或多个tensor作为输出.任何一个Gra ...

  3. 独家 | 手把手教TensorFlow(附代码)

    上一期我们发布了"一文读懂TensorFlow(附代码.学习资料)",带领大家对TensorFlow进行了全面了解,并分享了入门所需的网站.图书.视频等资料,本期文章就来带你一步步 ...

  4. TensorFlow学习笔记之三(神经网络的优化)

    文章目录 1. 使用激活函数去线性化(为什么要用激活函数) 实验证明线性模型的局限性 常用激活函数 2. 神经网络复杂度:用网络层数和网络参数的个数表示 3. 损失函数(loss):预测值(y)与已知 ...

  5. TensorFlow:实战Google深度学习框架(二)实现简单神经网络

    3.4 TensorFlow实现神经网络 3.4.1 TensorFlow游乐场 3.4.2 前向传播 3.4.3 神经网络参数与TensorFlow变量 变量和张量的关系 变量的三个属性:张量.维度 ...

  6. TensorFlow相关工具

    TensorFlow游乐场是一个通过网页浏览器就可以训练简单神经网络 并实现了可视化训练过程的工具 http://playground.tensorflow.org/

  7. TensorFlow游乐园介绍及其神经网络训练过程

    TensorFlow游乐场是一个通过网页浏览器就可以训练简单神经网络.并实现了可视化训练过程的工具.游乐场地址为http://playground.tensorflow.org/ 一.TensorFl ...

  8. TensorFlow入门第一步

    1. 前言 从这篇起,我们开始讲解关于TensorFlow的相关技术,在后期,将会添加中国中文信息学会的前沿讲习班的笔记. 2. TensorFlow简介 深度学习算法的成功使人工智能的研究和应用取得 ...

  9. (转)Tensorflow 实战Google深度学习框架 读书笔记

    本文大致脉络: 读书笔记的自我说明 对读书笔记的摘要 具体章节的摘要: 第一章 深度学习简介 第二章 TensorFlow环境搭建 第三章 TensorFlow入门 第四章 深层神经网络 第五章 MN ...

  10. c# 数据可视化_#OpenVisConf上的22位数据可视化从业者的10点收获

    c# 数据可视化 by Siena Duplan 通过锡耶纳·杜普兰(Siena Duplan) #OpenVisConf上的22位数据可视化从业者的10点收获 (10 Takeaways from ...

最新文章

  1. 美国发布《评估和强化制造与国防工业基础及供应链弹性》报告
  2. 基于tcpdump的Android智能移动终端数据包捕获完整解决方案
  3. 机器学习练习数据哪里找?两行代码搞定!
  4. python解码base64_在python中解码Base64 Gzip
  5. Maven 在 mac os M1芯片 上的安装
  6. Android 自动化测试——Monkey测试
  7. 数组对象的filter方法
  8. 性能测试和性能分析的基础概念
  9. Eclipse的vim插件viPlugin的安装
  10. Django中QueryDict的坑
  11. VB如何直接显示内存中的二进制图像数据
  12. matlab axes坐标轴长度,[转载]Matlab 坐标轴(axes),数据提示(data
  13. 阶段3 1.Mybatis_07.Mybatis的连接池及事务_1 今日课程内容介绍
  14. 自定义RPC通讯框架,实现dubbo远程RPC服务治理功能
  15. 计算机的it入门知识,IT基础知识入门课程.ppt
  16. 两台服务器安装redis集群_两台服务器六节点redis集群环境搭建
  17. python爬贴吧回复内容_Python爬虫_获取贴吧内容
  18. Total和Tellurian签署意向性协议,对Driftwood项目和2.5 mtpa LNG进行股权投资;就增加对Tellurian投资签署普通股购买协议
  19. mscomm32.ocx 注册 和 web 调用案例
  20. 详细设计的工具——盒图(N-S图)

热门文章

  1. sign签名算法一致算法-.net、java、golang
  2. ORCLE conn连接报错
  3. 网游中的网络编程3:在UDP上建立虚拟连接
  4. hdu 1907 John (Nim变形)
  5. Windows 7 SP1开发完毕 已进入测试阶段
  6. whey some page need header when your fetch that page and some don't need
  7. http | 状态码
  8. mysql数据迁移到sqlserver_技术分享 | 使用OGG实现Oracle到MySQL数据平滑迁移
  9. 量子计算机与GIS,量子计算机系列---开篇,原理
  10. bat打包成exe_拜托!看完这篇文章别再问我怎么Python打包成exe了!