閱讀412 返回首頁    go 阿裏雲 go 技術社區[雲棲]


日本小哥如何使用深度學習和TensorFlow種黃瓜?


0?wx_fmt=jpeg

 ◆ 

導讀


現在說機器學習和深度學習的應用隻受限於人們的想象力並不誇張。不僅全世界的數據科學家們為之著迷,甚至在日本的農場,一位小哥為了減輕媽媽的工作負擔,也開始嚐試采用深度學習和Tensor Flow種黃瓜。


大約一年前,曾為日本汽車業內一名嵌入式係統設計師的MakotoKoike開始在父母的黃瓜種植園幫工。根據大小形狀顏色和其他屬性來分選黃瓜這件事所需的工作量令他吃驚。


Makoto Koike那一生致力於提供鮮脆黃瓜的父親就很為他那些仍帶有細刺的紮手黃瓜感到自豪。顏色鮮豔又直又粗並且有許多刺的黃瓜被認為是高檔的,可在市場上要價更高。


但是MakotoKoike很快就了解到分選黃瓜就如把它們種出來一樣難。“每隻黃瓜的顏色、形狀、質量、新鮮度都不同”,Makato說。


0?wx_fmt=jpeg
零售店裏和Makoto Koike家農場的黃瓜


在日本,每家農場都有自己的分類方法,並且沒有行業標準。MakotoKoike家農場把黃瓜分為9個不同的等級,由他媽媽親自分選所有黃瓜,——這在收獲的峰季是最高每天8小時的工作量。


“分選工作不是一項簡單易學的任務。你不隻要看它的大小粗細,還要看顏色質地,有沒有小的劃痕,是不是奇形怪狀,有沒有刺。這些需要好幾個月才能學會,所以在最忙的時節雇臨時工行不通。我自己也是最近才學得能把這些黃瓜分選好”,Makoto說到。


0?wx_fmt=png歪歪扭扭的黃瓜被評為次品


市麵上也有(黃瓜)自動分選機,但在性能和費用方麵都有局限,所以小型農場不大會用它們。


Makoto認為分選黃瓜不是瓜農的一項重要任務。“瓜農希望把注意力和功夫花在培養可口蔬菜上。我想在接手父母的農場生意之前把分選工作自動化。”

0?wx_fmt=png

0?wx_fmt=pngMakoto Koike(中間)和他的父母在自家黃瓜農場


 ◆ 

深度學習的眾多用途


Makoto試用機器學習來分選黃瓜的創意最初來自一個完全不同的應用實例:穀歌阿爾法狗與世界頂尖職業圍棋手對弈。


“當我看到穀歌的阿爾法狗,我意識到這裏確實在發生一些很嚴肅的事情,”Makoto說,“這觸發我開始開發帶有深度學習技術的黃瓜分選機。”


深度學習用於圖像識別,允許電腦從訓練數據集中學習到什麼是圖像的重要“特征”。使用大量的人工神經元分層,深度學習可以高精度地自動分類圖像。因此神經網絡可以從圖像中識別出不同種類的貓,或是不同型號的汽車和飛機。神經網絡有時會在特定應用中超過人眼的表現。(如需更多信息,請看我過去的博客文章Understanding neuralnetworks with TensorFlow Playground.


 ◆ 

TensorFlow將深度學習的權力民主化


但是計算機是否真能學會媽媽的黃瓜分選技藝?Makoto開始著手使用穀歌的開源機器學習庫TensorFlow來看看自己能不能用深度學習技術來進行分選。


“穀歌剛剛開源了TensorFlow,所以我就開始把它試用於我的黃瓜圖像上,”Makoto說。“這是我第一次嚐試機器學習或是深度學習技術,馬上就得到高過預期的準確度。那給了我信心:它能解決我的問題。”


有了TensorFlow你不需要知道施用深度神經網絡所需的高階數學模型和優化算法。隻要下載示例代碼並閱讀教程你可以馬上就可以開始用它。TensorFlow顯著降低了機器學習的門檻,自從穀歌於去年11月開源了這個程序庫,許多“非機器學習”的工程師已經開始通過他們自有的數據和應用來擺弄這項技術。


 ◆ 

黃瓜分選係統的設計


下圖是Makoto設計的黃瓜分選機的係統圖解。該係統以Raspberry Pi 3為主控製器用一架相機為每根黃瓜拍照。在最初階段,係統在TensorFlow上運行小規模的神經網絡來檢測這是否是黃瓜的照片。係統接下來將這張照片轉發至Linux服務器上的一個更大的TensorFlow神經網絡執行更加精細的分類。


0?wx_fmt=png黃瓜分選機的係統圖解


Makoto 采用了名為DeepMNIST for ExpertsTensorFlow示例代碼,經過一些對卷積層,池化層和最後一層的微調後,改變網絡設計以適應黃瓜圖像的像素格式和黃瓜分選的等級數。


下圖是Makoto的黃瓜分選機,已於七月投入使用。

0?wx_fmt=png


下圖是分選臂以及相機接口的特寫鏡頭。

0?wx_fmt=png


 ◆ 

挑戰深度學習的極限


深度學習目前麵臨的挑戰之一是它需要大量的訓練數據。為了訓練模型,Makoto花了大約三個月時間,拍攝了7000張他母親所分選的黃瓜的照片,但這恐怕還是不夠。


“當我用測試圖像進行驗證時,識別準確度超過95%。但如果在實際操作中運用這個係統,準確度就會下降到70%左右。我懷疑神經網絡模型由於訓練圖像的數量不夠,存在“過度擬合”的問題(神經網絡中的現象:模型被訓練得隻適於少量的訓練數據)。”


深度學習的第二個挑戰是它消耗大量的運算容量。現在這架分選機用一台普通的Windows台式電腦來訓練神經網絡模型。盡管它將黃瓜的照片轉成80*80像素的低分辨率圖像,但對基於7000張照片的模型,它仍需2-3天時間來完成訓練。


“即使處理這樣低像素的圖像,這個係統也隻能根據黃瓜的形狀、長度和彎度來將其分類。它不能識別色澤、紋理、劃痕和刺”,Makoto解釋道。提高像素來放大黃瓜的圖像可以提高準確度,但訓練所需時間也將大大增加。


為了改進深度學習,一些大公司已經開始進行大規模分布式訓練,但那些服務器往往需要巨額成本。穀歌推出了雲機器學習(CloudML)這個用於訓練和預測的低成本雲平台,它可以投入數以百計的雲服務器來使用TensorFlow訓練神經網絡。在Could ML平台上,穀歌會來搭建用於分布式訓練的大規模集群,而你隻需購買你要用到的,這讓開發者們可以更容易地試用深度學習而無需大量資本投資。


0?wx_fmt=png

這些專用服務器曾被用於阿爾法狗的比賽

 

MakotoCloudML充滿期待。我可以在Cloud ML上使用更高分辨率的圖像和更多的訓練數據來訓練模型。我還可以試著改變神經網絡的各種設置、參數和算法來看看這些如何提高準確度。我已經迫不及待地想試用了。

 原文發布時間為:2016-09-06

本文來自雲棲社區合作夥伴“大數據文摘”,了解相關信息可以關注“BigDataDigest”微信公眾號

最後更新:2017-06-06 17:02:15

  上一篇:go  關於數據分析,管理者的4個常規錯誤
  下一篇:go  重溫計算機簡史:從石頭計數到計算機