Web開發工程師轉型機器學習的實戰經驗

摘要: 歷經兩個月對深度學習和計算機視覺領域進行探索,得到一些經驗與總結。算法

做爲一名Web開發人員,我發現計算機視覺和機器學習領域的快速發展是讓人感到興奮,可是我沒有任何使用這些技術的背景經驗。 最終,我決定用兩年的時間來轉型。數據庫

開始學習編程

在一本涵蓋深度學習和計算機視覺的書出版的時候,我開始了這段轉型之旅。 來自PyImageSearch.com的做者Adrian Rosebrock編寫了一個三卷鉅著,它涵蓋了計算機視覺和深度學習的高層思想和低層應用。在探索深度學習的同時,我遇到了對線性迴歸、樸素貝葉斯(Naive Bayesian)應用、隨機森林/決策樹學習等諸多新的算法。數組

圖片描述

我花了幾個星期的時間閱讀這本書,而且把全部已經讀過的各類博文和數學概念的隊列、抽象思惟的概念以及它實際的編程應用聯繫起來。我很快就讀完了這本書,從而更好地理解了如何從總體上走進這個領域。我得到的最大的結論:籌備本身的工具和硬件來構建計算機視覺軟件。安全

硬件實現網絡

受到啓發後,我找到一個樹莓派(Raspberry Pi)和RPI攝像機用來分析視頻流。我歷來沒想過配置樹莓派會花費這麼長時間。最初, 我但願僅僅用視頻流啓動和運行樹莓派,而且處理計算機上的視頻。我儘量的使樹莓派的操做系統能夠正常工做。一旦我意識到什麼出了問題,而後我就不當心安裝了錯誤的圖像驅動,並出乎意外的安裝了致使衝突的軟件。最初我覺得的視頻處理過程,結果變成了一個多小時的調試噩夢。架構

到目前爲止,我已經意識到調試機器是開始機器學習和計算機視覺所涉及到的一個大方面。框架

圖片描述

https://aiyprojects.withgoogl...機器學習

我最初基於樹莓派的靈感是一個想法,配置一個帶有攝像頭和GPS信號的簡單設備。這個想法是考慮到將來有多少車輛須要許多臺攝像機進行導航,不管是什麼樣的交通工具,都將須要許多的攝像機導航。不管是出於保險目的仍是基本功能的須要,能夠想象出將來將會建立和使用大量的視頻片斷。在這個過程當中,將會有大量的媒體庫被閒置,而且成爲了解世界的一個龐大的數據庫。工具

我結束了探索樹莓派的計算機視覺能力的工做,可是也沒如我所願成功的得到任何有趣的成果。我發現有不少價格便宜的類樹莓派設備,在一個比整個樹莓派小不少的的PCB板上仍具備互通性和攝像功能。我意識到與其走硬件路線,還不如使用舊的iPhone來開發一些軟件。

我在探索深度學習的硬件組成上進行了簡單的嘗試,這使我意識到應該儘量的堅持使用軟件。當軟件部分不能解決問題時,包含一個新的變量僅僅只會增長其複雜性。

開源工具

在處處尋找機器學習資源的第一個月中,我發現了不少啓動和運行都很是容易的開源工具。我瞭解到FANG科技公司提供了不少專有的服務,可是並不能肯定他們是如何和那些開源方案競爭的。在IBM, Google, Amazon和Microsoft上能夠被用做SAAS工具的圖像識別以及OCR工具使用起來比較簡單。令我感到驚訝的是,有不少優秀的開源方案值得配置來避免一些沒必要要的依賴項。

圖片描述

例如,幾年前,我啓動了一個IOS應用程序來收集和分享塗鴉照片。我從 Instagram 和Flickr等帶有地理標記圖像的公開API對圖像進行索引。利用這些資源,我使用像標籤和位置數據這樣的基本特徵來區分圖像是否被塗鴉。最初,我每週開始對數千張圖像進行索引,很快每個月就擴大到數十萬張。我很快的注意到,編入索引的不少圖像都沒有塗鴉,取而代之的則是對我努力創建的社區具備破壞性的圖像。我沒法阻止人們本身拍攝的低質量的圖像,或者從別人的種子下載的用起來有安全風險的標記不良的圖像。所以,我決定了關閉整個項目。

圖片描述

如今,利用爲對象檢測和人體檢測提供的機器學習服務和開源實現,我能夠推出本身的易用的檢索圖像服務。之前我須要付費服務作這個質量檢查,如即使是不花費數千美圓的API費用,也要花費數百美圓。相反,我如今能夠從一些「數據科學」AWS框架中下載一個AMI,建立本身的API來檢查不須要的圖像內容。

概論

在經歷這些過程之前,我覺得我在理論上已經理解了大部分圖像識別和機器學習的原理。開始的時候我將我所須要使用到的機器學習內容進行關聯以後,我對須要學習什麼概念就一目瞭然了。例如,我並不只僅知道線性代數對於機器學習很重要,如今我理解了如何將問題分解爲多維數組/矩陣,並對其進行批量處理,以便找到能夠在理論上表示的模式。在這以前,我知道在特徵之間存在一些抽象的概念,以及如何將它們表示爲能夠在一系列評估項目中進行比較的數字。如今我更清楚地理解到,在不少直接和間接相互關聯的因素下,機器學習的維度是如何表示的。矩陣數學的特徵檢測和評估的多維形式對我來講仍然是一個謎,可是我可以理解更高層次的概念。

圖片描述

之前難以辨認的網絡架構圖如今看起來很清晰

阿德里安·羅斯布羅克(Adrian Rosebrock)的書讓我對解碼機器學習算法的簡圖頓悟了。深度學習網絡架構的分解如今也能夠理解一些了,我還熟悉了用於各類圖像識別模型的基準數據集(MNIST,CIFAR-10和ImageNet)以及圖像識別模型(VGG-16,Inception等)之間的差別。

熟能生巧(動手去作纔是王道)

回顧我一直以來閱讀的資料,我發現大多數知識仍是不能熟練掌握,爲此我決定開展更多的行動來配合閱讀相關博客。或許只有理論和實踐相結合才能得到更快的成長速度。爲此,我購買了一個GPU有了它我不再須要由於訓練模型和操做數據集等問題有任何的限制。

若是你想要在機器學習的相關技術上有所提升,你必定不要只看論文和博客,必定要嘗試本身動手去作,這樣你纔有可能收穫更多。

原文連接本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索