Google发布机器学习平台Tensorflow游乐场~带你玩神经网络

原文地址:http://f.dataguru.cn/article-9324-1.html>

摘要: 昨天,Google发布了Tensorflow游乐场。Tensorflow是Google今年推出的机器学习开源平台。而有了Tensorflow游乐场,我们在浏览器中就可以训练自己的神经网络,还有酷酷的图像让我们更直观地了解神经网络的工作原理。今 ...

网络 工具 机器学习 神经网络 Tensorflow

昨天,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的一名软件工程师。

 

Google发布机器学习平台Tensorflow游乐场~带你玩神经网络(转载)的更多相关文章

  1. Google发布机器学习术语表 (包括简体中文)

    Google 工程教育团队已经发布了多语种的 Google 机器学习术语表,该术语表中列出了一般的机器学习术语和 TensorFlow 专用术语的定义.语言版本包括西班牙语,法语,韩语和简体中文. 查 ...

  2. 机器学习与Tensorflow(4)——卷积神经网络与tensorflow实现

    1.标准卷积神经网络 标准的卷积神经网络由输入层.卷积层(convolutional layer).下采样层(downsampling layer).全连接层(fully—connected laye ...

  3. 机器学习与Tensorflow(5)——循环神经网络、长短时记忆网络

    1.循环神经网络的标准模型 前馈神经网络能够用来建立数据之间的映射关系,但是不能用来分析过去信号的时间依赖关系,而且要求输入样本的长度固定 循环神经网络是一种在前馈神经网络中增加了分亏链接的神经网络, ...

  4. Tensorflow游乐场

    昨天,Google发布了Tensorflow游乐场.Tensorflow是Google今年推出的机器学习开源平台.而有了Tensorflow游乐场,我们在浏览器中就可以训练自己的神经网络,还有酷酷的图 ...

  5. TensorFlow实现与优化深度神经网络

    TensorFlow实现与优化深度神经网络 转载请注明作者:梦里风林Github工程地址:https://github.com/ahangchen/GDLnotes欢迎star,有问题可以到Issue ...

  6. Google发布跨云Serverless管理平台Knative

    企业只要使用由Google与Pivotal.IBM.红帽和SAP等企业共同开发的跨云Serverless管理平台Knative,就能在支持Kubernetes的云平台上自由的迁移工作负载,无论是跨私有 ...

  7. 一站式机器学习平台TI-ONE是什么?——云+未来峰会开发者专场回顾

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 背景:5月23-24日,以“焕启”为主题的腾讯“云+未来”峰会在广州召开,广东省各级政府机构领导.海内外业内学术专家.行业大咖及技术大牛等在 ...

  8. Windows ML,系统内置的机器学习平台初探

    人工智能现在很火,虽然最近风头隐隐有被区块链盖过,但仍是未来技术转型的首选方向之一.作为AI核心的机器学习,目前也进化到了可以基于平台自动训练模型的地步,例如Azure Machine Learnin ...

  9. 机器学习入门 - Google的机器学习速成课程

    1 - MLCC 通过机器学习,可以有效地解读数据的潜在含义,甚至可以改变思考问题的方式,使用统计信息而非逻辑推理来处理问题. Google的机器学习速成课程(MLCC,machine-learnin ...

随机推荐

  1. saltstack远程执行命令.md

    saltstack 支持在master上向client 远程执行命令,并显示命令执行的结果 命令格式: salt '<操作目标>' <方法> [参数] 示例 示例1 ping检 ...

  2. 【Node.js】Mac 下安装node图文详解

    1  进入官网,下载node最新版 官网:https://nodejs.org/en/ 2 双击下载的安装包,一路默认安装就行 3  打开终端,输入以下命令查看结果,如出现下图信息则为安装成功 4   ...

  3. chrome中image图片预留位置的问题

    在项目中发现,当设置 <img src="" width="100" height="100"> 通过设置img的width属性 ...

  4. office2010如何使用excel冻结窗格

    当我们在制作一个Excel表格时,如果列数较多,行数也较多时,一旦向下滚屏,则上面的标题行也跟着滚动,在处理数据时往往难以分清各列数据对应的标题,事实上利用"冻结窗格"功能可以很好 ...

  5. hihocoder [Offer收割]编程练习赛14 剑刃风暴

    题目4 : 剑刃风暴 时间限制:20000ms 单点时限:2000ms 内存限制:256MB 描述 主宰尤涅若拥有一招非常厉害的招式——剑刃风暴,“无论是战士还是法师,都害怕尤涅若的武士刀剑技”. 现 ...

  6. 【BZOJ2901】矩阵求和

    Description 给出两个n*n的矩阵,m次询问它们的积中给定子矩阵的数值和. Input 第一行两个正整数n,m. 接下来n行,每行n个非负整数,表示第一个矩阵. 接下来n行,每行n个非负整数 ...

  7. 手机联系人信息获取(contacts) ---- HTML5+

    模块:contacts Contacts模块管理系统通讯录,用于可对系统通讯录进行增.删.改.查等操作.通过plus.contacts获取系统通讯录管理对象. 对象:联系人对象(属性:电话,地址等)针 ...

  8. 记录web项目部署到阿里云服务器步骤

    (使用 web项目.阿里云服务器.Xftp.Xshell),敬请参考和指正 1.将要部署的项目打包成WAR文件格式,可以在MyEclipse.Eclipse都可以完成打包,如下图: 2.安装Xshel ...

  9. 【JavaScript算法】---希尔排序

    一.什么是希尔排序 希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本.   思路:      希尔排序是把记录按下标的一定增量分组,对 ...

  10. oracle权限赋予

    上节讲的创建的software用户能否访问其他用户的表呢 1,创建software用户,密码设置为system create user software identified by system 2, ...