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. java基础---->java调用oracle存储过程

    存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.今天 ...

  2. LeetCode——Generate Parentheses

    Description: Given n pairs of parentheses, write a function to generate all combinations of well-for ...

  3. CodeForces - 512B Fox And Jumping[map优化dp]

    B. Fox And Jumping time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  4. SRC常见WEB漏洞系列之HTTP-HOST头攻击

    一.背景: web程序需要知道网站的域名比较麻烦,需要使用HTTP的 host头字段: <?php _SERVER["HTTP_HOST"] ?> @app.route ...

  5. 主流品牌服务器(Dell、HP、IBM)远程管理卡IP配置参考

    版权声明:个人网络收集整理,欢迎转载! https://blog.csdn.net/niufenger/article/details/80737878 ※Dell服务器iDRAC IP配置 ※HP服 ...

  6. C# 验证码生成

    后台: //生成验证码 public void CreateImage() { //获取4位验证码,并转成小写. ).ToLower(); //验证码赋值Cookie HttpCookie myCoo ...

  7. 【BZOJ4424】Cf19E Fairy DFS树

    [BZOJ4424]Cf19E Fairy Description 给定 n 个点,m 条边的无向图,可以从图中删除一条边,问删除哪些边可以使图变成一个二分图. Input 第 1 行包含两个整数 n ...

  8. 【BZOJ2453】维护队列/【BZOJ2120】数颜色 分块

    [BZOJ2453]维护队列 Description 你小时候玩过弹珠吗? 小朋友A有一些弹珠,A喜欢把它们排成队列,从左到右编号为1到N.为了整个队列鲜艳美观,小朋友想知道某一段连续弹珠中,不同颜色 ...

  9. highmaps如何自定义 区间的颜色刻度

    https://api.highcharts.com/highmaps/colorAxis.dataClassColor http://jsfiddle.net/gh/get/library/pure ...

  10. oneThink添加成功,返回到当前请求地址!

    其实没什么,就一行代码: $this->success('已采纳',$_SERVER['HTTP_REFERER']);