◆ ◆ ◆

导读

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

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

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

  1. 日本好的机器学习,深度学习相关书籍推荐

    日本好的机器学习,深度学习相关书籍推荐 日文书名:ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 中文书名:用Python从0开始深度学习理论与实践 作者: ...

  2. 小象学院梁斌python_Python数据分析_深度学习及TensorFlow.pdf

    法律声明  本课件包括:演示文稿,示例,代码,题库,视频和声 音等,小象学院拥有完全知识产权的权利:只限于善意 学习者在本课程使用,不得在课程范围外向任何第三方 散播.任何其他人或机构不得盗版.复制 ...

  3. 深度学习与TensorFlow

    深度学习与TensorFlow DNN(深度神经网络算法)现在是AI社区的流行词.最近,DNN 在许多数据科学竞赛/Kaggle 竞赛中获得了多次冠军. 自从 1962 年 Rosenblat 提出感 ...

  4. 在浏览器中进行深度学习:TensorFlow.js (四)用基本模型对MNIST数据进行识别

    2019独角兽企业重金招聘Python工程师标准>>> 在了解了TensorflowJS的一些基本模型的后,大家会问,这究竟有什么用呢?我们就用深度学习中被广泛使用的MINST数据集 ...

  5. TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络

    TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络 转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnote ...

  6. 2_初学者快速掌握主流深度学习框架Tensorflow、Keras、Pytorch学习代码(20181211)

    初学者快速掌握主流深度学习框架Tensorflow.Keras.Pytorch学习代码 一.TensorFlow 1.资源地址: 2.资源介绍: 3.配置环境: 4.资源目录: 二.Keras 1.资 ...

  7. TensorFlow损失函数(loss function) 2017-08-14 11:32 125人阅读 评论(0) 收藏 举报 分类: 深度学习及TensorFlow实现(10) 版权声明:

    TensorFlow损失函数(loss function) 2017-08-14 11:32 125人阅读 评论(0) 收藏 举报  分类: 深度学习及TensorFlow实现(10)  版权声明:本 ...

  8. 深度学习的三种硬件方案:ASIC,FPGA,GPU;你更看好?

    原文链接:http://www.sohu.com/a/123574005_465947 深度学习的三种硬件方案:ASIC,FPGA,GPU:你更看好? 2017-01-06 10:59 硬件十万个为什 ...

  9. 线性Frequency Principle动力学:定量理解深度学习的一种有效模型

    关于作者:本文的作者是来自上海交通大学致远学院 08 级理科班的四位研究人员.本文由许志钦执笔,张耀宇修改,罗涛和马征审阅校正.这个小组的研究兴趣主要是深度学习理论. 深度学习的广泛成功吸引了大量的科 ...

最新文章

  1. mysql 3.6.4_TOMCAT5+MYSQL5+JIRA3.6.4配置说明
  2. angular reactive form
  3. 定时器java执行越来越晚,虽然Java是解释型语言,但随着随着(???????????)编译器技术的发展,Java程序的运行速度越来越接近于C 等编译型语言。...
  4. 深入理解React(一)JSX与虚拟DOM
  5. WebKit 与 V8 的关系
  6. nfs文件共享+netstat相关 记录
  7. 数组的最后一位的下一位为什么是0?
  8. eclipse-4.4.2安装Groovy插件(其他版本eclipse可参考)
  9. 深入理解HashMap
  10. (20210116已解决)Windows下的CTF加载程序是什么?
  11. 云开发【云函数的使用】
  12. 2018版本及2017版本的IntelliJ IDEA破解步骤,非lanyu,到2099年
  13. 基于java火车购票系统
  14. Java word转pdf Linux/windows跨平台 格式完美(利用命令行调用libreoffice)
  15. solidworks报错合集
  16. 微软谷歌苹果耳机大战 智能竞赛的又一战场
  17. c语言int型变量写入char数组的方法
  18. 计算机网络学网络制图吗,计算机网络论文发表简述计算机设计制图教学改革
  19. 全新勒索病毒爆发:一样的套路这次没人上当了
  20. MAC电脑使用教程大全

热门文章

  1. 深圳智能蓝牙手环解决方案
  2. MapReduce 分析 Youtube 数据
  3. JetBrains调查:JavaScript最流行,Python超越Java
  4. 机器学习 入门笔记(1)
  5. 基于深度学习的细粒度分类研究及应用
  6. 软件测试的基本内容有哪些?
  7. 互联网摸鱼日报(2022-09-21)
  8. YOLOv5-Lite:更轻更快易于部署的YOLOv5
  9. 初相识 | 全方位认识 sys 系统库
  10. 让微积分穿梭于工作与学习之间(8):我自认为牛逼的成果之四:直接用定义求反正弦函数的导数