日本小哥如何使用深度学习和TensorFlow种黄瓜?

◆ ◆ ◆

导读

现在说机器学习和深度学习的应用只受限于人们的想象力并不夸张。不仅全世界的数据科学家们为之着迷,甚至在日本的农场,一位小哥为了减轻妈妈的工作负担,也开始尝试采用深度学习和Tensor Flow种黄瓜。

大约一年前,曾为日本汽车业内一名嵌入式系统设计师的MakotoKoike开始在父母的黄瓜种植园帮工。根据大小形状颜色和其他属性来分选黄瓜这件事所需的工作量令他吃惊。

Makoto Koike那一生致力于提供鲜脆黄瓜的父亲就很为他那些仍带有细刺的扎手黄瓜感到自豪。颜色鲜艳又直又粗并且有许多刺的黄瓜被认为是高档的,可在市场上要价更高。

但是MakotoKoike很快就了解到分选黄瓜就如把它们种出来一样难。“每只黄瓜的颜色、形状、质量、新鲜度都不同”,Makato说。


零售店里和Makoto Koike家农场的黄瓜

在日本,每家农场都有自己的分类方法,并且没有行业标准。MakotoKoike家农场把黄瓜分为9个不同的等级,由他妈妈亲自分选所有黄瓜,——这在收获的峰季是最高每天8小时的工作量。

“分选工作不是一项简单易学的任务。你不只要看它的大小粗细,还要看颜色质地,有没有小的划痕,是不是奇形怪状,有没有刺。这些需要好几个月才能学会,所以在最忙的时节雇临时工行不通。我自己也是最近才学得能把这些黄瓜分选好”,Makoto说到。

歪歪扭扭的黄瓜被评为次品

市面上也有(黄瓜)自动分选机,但在性能和费用方面都有局限,所以小型农场不大会用它们。

Makoto认为分选黄瓜不是瓜农的一项重要任务。“瓜农希望把注意力和功夫花在培养可口蔬菜上。我想在接手父母的农场生意之前把分选工作自动化。”

Makoto Koike(中间)和他的父母在自家黄瓜农场

◆ ◆ ◆

深度学习的众多用途

Makoto试用机器学习来分选黄瓜的创意最初来自一个完全不同的应用实例:谷歌阿尔法狗与世界顶尖职业围棋手对弈。

“当我看到谷歌的阿尔法狗,我意识到这里确实在发生一些很严肃的事情,”Makoto说,“这触发我开始开发带有深度学习技术的黄瓜分选机。”

深度学习用于图像识别,允许电脑从训练数据集中学习到什么是图像的重要“特征”。使用大量的人工神经元分层,深度学习可以高精度地自动分类图像。因此神经网络可以从图像中识别出不同种类的猫,或是不同型号的汽车和飞机。神经网络有时会在特定应用中超过人眼的表现。(如需更多信息,请看我过去的博客文章Understanding neuralnetworks with TensorFlow Playground.)

◆ ◆ ◆

TensorFlow将深度学习的权力民主化

但是计算机是否真能学会妈妈的黄瓜分选技艺?Makoto开始着手使用谷歌的开源机器学习库TensorFlow来看看自己能不能用深度学习技术来进行分选。

“谷歌刚刚开源了TensorFlow,所以我就开始把它试用于我的黄瓜图像上,”Makoto说。“这是我第一次尝试机器学习或是深度学习技术,马上就得到高过预期的准确度。那给了我信心:它能解决我的问题。”

有了TensorFlow,你不需要知道施用深度神经网络所需的高阶数学模型和优化算法。只要下载示例代码并阅读教程,你可以马上就可以开始用它。TensorFlow显著降低了机器学习的门槛,自从谷歌于去年11月开源了这个程序库,许多“非机器学习”的工程师已经开始通过他们自有的数据和应用来摆弄这项技术。

◆ ◆ ◆

黄瓜分选系统的设计

下图是Makoto设计的黄瓜分选机的系统图解。该系统以Raspberry Pi 3为主控制器用一架相机为每根黄瓜拍照。在最初阶段,系统在TensorFlow上运行小规模的神经网络来检测这是否是黄瓜的照片。系统接下来将这张照片转发至Linux服务器上的一个更大的TensorFlow神经网络执行更加精细的分类。

黄瓜分选机的系统图解

Makoto 采用了名为DeepMNIST for Experts的TensorFlow示例代码,经过一些对卷积层,池化层和最后一层的微调后,改变网络设计以适应黄瓜图像的像素格式和黄瓜分选的等级数。

下图是Makoto的黄瓜分选机,已于七月投入使用。

下图是分选臂以及相机接口的特写镜头。

◆ ◆ ◆

挑战深度学习的极限

深度学习目前面临的挑战之一是它需要大量的训练数据。为了训练模型,Makoto花了大约三个月时间,拍摄了7000张他母亲所分选的黄瓜的照片,但这恐怕还是不够。

“当我用测试图像进行验证时,识别准确度超过95%。但如果在实际操作中运用这个系统,准确度就会下降到70%左右。我怀疑神经网络模型由于训练图像的数量不够,存在“过度拟合”的问题(神经网络中的现象:模型被训练得只适于少量的训练数据)。”

深度学习的第二个挑战是它消耗大量的运算容量。现在这架分选机用一台普通的Windows台式电脑来训练神经网络模型。尽管它将黄瓜的照片转成80*80像素的低分辨率图像,但对基于7000张照片的模型,它仍需2-3天时间来完成训练。

“即使处理这样低像素的图像,这个系统也只能根据黄瓜的形状、长度和弯度来将其分类。它不能识别色泽、纹理、划痕和刺”,Makoto解释道。提高像素来放大黄瓜的图像可以提高准确度,但训练所需时间也将大大增加。

为了改进深度学习,一些大公司已经开始进行大规模分布式训练,但那些服务器往往需要巨额成本。谷歌推出了云机器学习(CloudML)这个用于训练和预测的低成本云平台,它可以投入数以百计的云服务器来使用TensorFlow训练神经网络。在Could ML平台上,谷歌会来搭建用于分布式训练的大规模集群,而你只需购买你要用到的,这让开发者们可以更容易地试用深度学习而无需大量资本投资。

这些专用服务器曾被用于阿尔法狗的比赛

 

Makoto对CloudML充满期待。“我可以在Cloud ML上使用更高分辨率的图像和更多的训练数据来训练模型。我还可以试着改变神经网络的各种设置、参数和算法来看看这些如何提高准确度。我已经迫不及待地想试用了。”

 原文发布时间为:2016-09-06

时间: 2024-10-30 02:09:02

日本小哥如何使用深度学习和TensorFlow种黄瓜?的相关文章

深度学习框架TensorFlow在Kubernetes上的实践

什么是深度学习? 深度学习这个名词听了很多次,它到底是什么东西,它背后的技术其实起源于神经网络.神经网络最早受到人类大脑工作原理的启发,我们知道人的大脑是很复杂的结构,它可以被分为很多区域,比如听觉中心.视觉中心,我在读研究中心的时候,做视频有计算机视觉研究室,做语言有语言所,语音有语音所,不同的功能在学科划分中已经分开了,这个和我们人类对大脑理解多多少少有一些关系.之后科学家发现人类大脑是一个通用的计算模型. 科学家做了这样一个实验,把小白鼠的听觉中心的神经和耳朵通路剪断,视觉输入接到听觉中心

深度学习的三种硬件方案 ASICs、FPGAs 和 GPU,开发者需要知道什么?

今年三月 AlphaGo 和李世石的"世纪之战"炒红了深度学习-- AlphaGo 采用了人工神经网络技术,充分挖掘了深度学习的潜力.简单来说,深度学习是一个包含了许多层级数据处理的神经网络,以自动化方式组合起来解决问题. 人机大战之前,相当多的人并不看好 AlphaGo,包括许多围棋.AI 业内人士 .但公众并不清楚的是:当时谷歌手中握着一张王牌--AlphaGo 的计算设备搭载了特制硬件,一个被谷歌称为"Tensor Processing Unit"(TPU)的

《白话深度学习与TensorFlow》——2.5 小结

2.5 小结 深度学习是一种前景非常好的应用领域,也就是我们平时说的"看不到天花板",它几乎在任何一个细分领域都可以有比较好的应用,并且能够产生大量的剩余价值,发展生产力.而且随着计算机计算性能的不断提升,深度学习的应用也将积累更快,落地更廉价.我们有充分的理由相信,深度学习的发展将是未来几十年内世界科技发展的最为重要的领域之一.不过像阿西莫这样的机器人的训练过程,不会仅仅只依赖一套深度神经网络来充当其大脑的,远没有那么简单.除去所有制造性质的环节不说,就是机器人本身也很可能有着多套功

谷歌开源深度学习系统TensorFlow 的图片文字说明模型

谷歌开源深度学习系统TensorFlow 的图片文字说明模型 责任编辑:editor007 作者:aiko |  2016-09-23 22:27:27 本文摘自:36kr   今天,谷歌宣布开源图片文字说明模型 Show and Tell,该模型具有自动生成图片文字说明的功能,准确率达 93.9%. 谷歌于 2014 年发表论文首次介绍了 Show and Tell 这一系统模型,在 2015 年又对其进行了内容更新,对相关技术做了更加准确的改进.之后,谷歌一直在完善这一技术,最终作为谷歌 T

《白话深度学习与TensorFlow》——3.3 其他特点

3.3 其他特点 TensorFlow有很多的特点,当然这些特点不见得都是独一无二的. 1 .多环境与集群支持 首先,TensorFlow支持在PC的CPU环境.GPU环境甚至是安卓环境中运行.它不仅可以支持在单个计算单元(一颗CPU的多核心或一颗GPU的多核心)上进行运算,也支持一台机器上多个CPU或多个GPU上并行计算. 2016年4月14日,Google发布了分布式TensorFlow,能够支持在几百台机器上并行训练.分布式的TensorFlow由高性能的gRPC库作为底层技术支持.Ten

《白话深度学习与TensorFlow》——第2章 深度学习是什么 2.1 神经网络是什么

第2章 深度学习是什么 2.1 神经网络是什么 要说深度学习(deep learning),就必须先说神经网络,或者称人工神经网络(artificial neural network,ANN).神经网络是一种人类由于受到生物神经细胞结构启发而研究出的一种算法体系. 人的神经细胞就像图上这样,枝枝杈杈很多,远远看上去一边比较粗大一边比较纤细.最上端粗大的这一边就是细胞体的所在,细胞体上有一些小枝杈叫做树突,细长的这一条像尾巴一样的东西叫做轴突.不同细胞之间通过树突和轴突相互传递信息,它们的接触点叫

《白话深度学习与TensorFlow》——3.2 与其他框架的对比

3.2 与其他框架的对比 1)?TensorFlow:深度学习最流行的库之一,是谷歌在深刻总结了其前身 DistBelief 的经验教训上形成的:它不仅便携.高效.可扩展,还能在不同计算机上运行:小到智能手机,大到计算机集群:它是一款轻量级的软件,可以立刻生成你的训练模型,也能重新实现它:TensorFlow有强大的社区.企业支持,因此它广泛用于从个人到企业.从初创公司到大公司等不同群体. 2)?Caffe:卷积神经网络框架,专注于卷积神经网络和图像处理,是用C++语言写成 的,执行速度非常快.

《白话深度学习与TensorFlow》——导读

**前言**为什么要写这本书近些年来,伴随着计算机计算能力的不断升级,很多原来只有在科幻电影里才有的桥段越来越多地出现在我们身边了,并给了我们更多的想象空间与期待.在2016年,人工智能界最令人瞩目的事情莫过于谷歌的AlphaGo以4:1的悬殊比分轻松击败韩国著名九段围棋大师李世石.之后化名"Master"的AlphaGo更是一路大开杀戒,分别在对弈网站"弈城"和"腾讯围棋"登录,先后打败了柯洁九段.朴廷桓九段.陈耀烨九段以及创造日本大满贯传奇的

《白话深度学习与TensorFlow》——3.4 如何选择好的框架

3.4 如何选择好的框架 作为计算模型来说,深度学习中的绝大部分基本理论早已沉淀成了固化的计算模块.函数或者算法包.就计算模型本身来说,框架之间的差别不会太大,也不可能太大,除非这个领域的理论层面得到了极大的突破,而且这个突破还是不同方向且掌握在个别组织手里的.而现在框架之间的差别主要出现在这几个地方.第一,性能方面.这一属性主要由底层的实现语言决定,底层运行比较快的仍旧是实现的语言.理论上说,运行速度最快的仍旧是C或C++一类,离着CPU指令近一些语言效率高一些.笔者用过Torch.Tenso