功能「智障」但用上了AI技術:《矽谷群瞎傳》中的熱狗識別App真的被做出來了!

2017.07.01 by
36氪
36氪 查看更多文章

36氪是中國領先的科技新媒體,報導最新的互聯網科技新聞以及最有潛力的互聯網創業企業。

功能「智障」但用上了AI技術:《矽谷群瞎傳》中的熱狗識別App真的被做出來了!
HBO
雖然這個傻傻的app看上去似乎沒有任何用處(我們自己難道沒辦法分辨出來嗎?),但它可是有著純正的矽谷極客血統,扎扎實實地應用了最新潮的人工智慧技術。

HBO的熱門喜劇《矽谷群瞎傳》已經紅了整整四季,這部相較之下最為貼近矽谷真實動態的情景喜劇為我們帶來無窮歡樂的同時,也引發了我們對於矽谷,對於科技生態的思考。

而現在,《矽谷群瞎傳》也終於迎來了自己的周邊產品:

並不是魔笛手團隊身著的T卹,也不是Richard或者Elrich的人偶,而是第四季第四集中,由楊靖和巴赫曼帶領的See Food Inc開發出的「不是熱狗(Not Hotdog)」應用程式。這一app現在已登錄iOS和Android平台。

必須要感嘆一句,HBO深諳觀眾的口味,以最矽谷最nerd的方式又給自己做了一波免費宣傳。

雖然這個傻傻的app看上去似乎沒有任何用處(我們自己難道沒辦法分辨出來嗎?),但它可是有著純正的矽谷極客血統,扎扎實實地應用了最新潮的人工智慧技術。

甫一推出,熱狗app就在網絡上引爆了輿論。

在Hacker News上,網友們對Not Hotdog展開了熱烈的討論,一些網友表示這樣的應用(需要用到卷積神經網絡)在TensorFlow上經過約15萬張圖片的訓練即可實現。

而Not Hotdog的製作者在Github中宣稱他們只用到了著名圖像數據集ImageNet中1,857張不同熱狗的圖片,以及4,024張不是熱狗的圖片進行訓練。(不過根據他們最新的更新,確實應用到了15萬張圖片進行訓練,不得不佩服網友的智慧是無窮的。)

咦,僅經過這麼少的訓練做出來的應用,真的可靠嗎?

我們特地從應用商店下載了這個應用,決定親自試驗一下。

Not Hotdog界面。
36 氪
是不是覺得跟Snapchat界面十分相似呢?
36 氪

點開app後,撲面而來的就是一個神似Snapchat的極簡風格界面,甚至只有三個按鍵。左上為閃光燈,右上為打開相冊引入其中的照片進行測試,中間下方的黃色按鍵為拍照鍵。

熱狗app使用起來極其簡單,透過導入照片或利用手機進行拍照,之後app將自動分析照片中物體是否為熱狗。最後該應用程式給出「Yes」或「No」的結論,你可以選擇將結果分享。

紙上來得終覺淺,讓我們開始實驗吧!

36 氪

首先是檢驗網上找到的熱狗和皮鞋的圖片。嗯,它準確無誤地闖過了第一關。看來它對於這種簡單的任務還是得心應手的。

不過話說回來,要是這都判斷不對,真的還好意思叫「人工智慧」嗎?

既然熱狗是長條形的,那它是否會被別的長條形物體迷惑住呢?我們找來了牙膏進行測驗。表現不錯,這一次也沒有被欺騙到。

36 氪

看來它還是有點聰明啊,這大大地激發了筆者的好奇心,腦洞大開起地思索起來如何才能瞞過人工智慧呢?

長條形物體這個概述還是太簡陋了,筆者決定從熱狗的結構下手。嗯…兩片麵包夾著一根香腸?筆者找來了手邊的文具,擺出了熱狗的造型。

36 氪

唉,又讓它闖過了一關。

是不是剛才的「熱狗」顏色不太對,讓人工智慧看著太沒有食慾了呢?那這次,我們換個顏色試試看好了。

36 氪

哈哈哈哈,耍了個小聰明就成功擊敗了「人工智障」!

不難發現,這張圖中兩根紅色的筆實際完全不同,但這一簡陋的組合對付起初級的人工智慧還是相當綽綽有餘了。

不過這次能這麼順利地擊敗「人工智慧」,一定程度也多虧了研發人員和「不是熱狗」一起偷懶,沒有刻苦學習,在知識面上吃了大虧。

雖然這個app看上去沒有那麼靈光,但卻是一個幫助我們了解人工智慧應用研發及重要技術細節的寶貴案例。

開發「不是熱狗」的工程師Tim Anglade在一篇博客中,詳細記敘了開發這一產品中的技術難題及需要認真考慮的細節,可謂乾貨滿滿。

簡單來說,工程師們設計了一個可以直接在手機上運行的定制神經網絡,並用Google提供的機器學習開源框架Tensorflow,Keras和Nvidia的GPU對其進行訓練。

雖然這個應用的使用場景十分滑稽,但卻是一個同時應用深度學習和邊緣計算的範例。

所有的AI工作包括圖片的處理在內都在用戶的設備內完成,這使整個處理過程變得更為迅速,可離線使用且有著更好的隱私。而對於開發者來說,採取這種模式的最大優點當屬哪怕有超過百萬的用戶,應用的維護成本都可以被壓低到零元;在省錢這方面,可比傳統的雲端AI方法不知道高到哪裡去了。

這一app完美地詮釋了什麼叫做「易學難精」。工作人員僅用了一個週末的時間,便在了谷歌云平台提供的Vision API和React Native的幫助下構造出其原型;但隨後花了數週的時間來對其進行訓練,提高準確性,乃至優化iOS和Android用戶的使用體驗。

一開始的原型由搭載了Transfer Learning的Inception Arcitecture搭建;而這一模型失敗後,Tim Anglade選擇了更為精簡的網絡系統SqueezeNet,進行了大量的訓練。

但是這個版本的模型依然無法準確捕捉到熱狗的特質所在,會將所有塗有番茄醬的物體當成美味的熱狗,頗令人哭笑不得。

喂,我的胳膊可不是熱狗腸啊!
36 氪

好在這時,Google發表了他們名為MobileNets的論文,提出了在移動設備上運行神經網絡的新方法。該方法成功地在體積巨大的Inception和功能疲軟的SqueezeNet間找到了平衡點,得以兼顧運算的速度及結果的準確性。

Anglade從GitHub上找到了一個名為Keras的開源工具作為基石,做了一系列針對於模型和用戶體驗的優化。

最終的模型經歷了15萬照片的試煉,其中有3000張為形態各異的熱狗,另外的14萬7千張都是用來造成混亂,提高「不是熱狗」迅速做出正確判斷的圖片、

不難看出,一個小小的帶有戲謔性質的AI app,都需要經歷如此漫長複雜的開發過程,而且尚未能達到100%的準確性(還記得前文用兩根紅筆和一根熒光筆欺騙AI的故事麼?)。我們不難想像開發Alpha Go這樣功能強大得多的項目,會耗費全體研究人員多少的時間和心血。

如何尋找到最為合適的工具來進行開發?如何進行優化提升用戶體驗?如何降低維護成本? ……

想法設法攻克這些問題,已然成為每一個人工智慧開發者的必修課。

或許幾年後的AI開發者,隨著整個行業的迅猛發展,將再也不需要闖過這一道又一道的關卡。

但是現在AI還處於起步階段,我們只有不斷地深入鑽研,取得成果,那一天才有可能到來。

本文授權轉載自:36 氪

每日精選科技圈重要消息