天天看點

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

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

導讀

現在說機器學習和深度學習的應用隻受限于人們的想象力并不誇張。不僅全世界的資料科學家們為之着迷,甚至在日本的農場,一位小哥為了減輕媽媽的工作負擔,也開始嘗試采用深度學習和tensor flow種黃瓜。

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

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

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

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

零售店裡和makoto koike家農場的黃瓜

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

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

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

歪歪扭扭的黃瓜被評為次品

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

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

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

makoto koike(中間)和他的父母在自家黃瓜農場

深度學習的衆多用途

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

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

深度學習用于圖像識别,允許電腦從訓練資料集中學習到什麼是圖像的重要“特征”。使用大量的人工神經元分層,深度學習可以高精度地自動分類圖像。是以神經網絡可以從圖像中識别出不同種類的貓,或是不同型号的汽車和飛機。神經網絡有時會在特定應用中超過人眼的表現。(如需更多資訊,請看我過去的部落格文章understanding neuralnetworks with tensorflow playground.)

tensorflow将深度學習的權力民主化

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

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

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

黃瓜分選系統的設計

下圖是makoto設計的黃瓜分選機的系統圖解。該系統以raspberry pi 3為主要制器用一架相機為每根黃瓜拍照。在最初階段,系統在tensorflow上運作小規模的神經網絡來檢測這是否是黃瓜的照片。系統接下來将這張照片轉發至linux伺服器上的一個更大的tensorflow神經網絡執行更加精細的分類。

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

黃瓜分選機的系統圖解

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

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

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

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

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

挑戰深度學習的極限

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

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

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

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

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

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

這些專用伺服器曾被用于阿爾法狗的比賽

makoto對cloudml充滿期待。“我可以在cloud ml上使用更高分辨率的圖像和更多的訓練資料來訓練模型。我還可以試着改變神經網絡的各種設定、參數和算法來看看這些如何提高準确度。我已經迫不及待地想試用了。”

 原文釋出時間為:2016-09-06

本文來自雲栖社群合作夥伴“大資料文摘”,了解相關資訊可以關注“bigdatadigest”微信公衆号

繼續閱讀