當前位置:秀麗範 >

情感 >學習 >

普通程序員如何入門深度學習

普通程序員如何入門深度學習

人工智能到底有多火

普通程序員如何入門深度學習

我相信大家之所以能來看這篇文章,也間接說明了人工智能這幾年的火爆。自從基於深度學習技術的算法2012年在ImageNet比賽中獲得冠軍以來,深度學習先是席捲了整個學術界,後又在工業界傳播開來,一瞬間各大企業如果沒有AI部門都不好意思對外宣傳了。BAT中,百度宣佈“All In AI”,阿里建立了達摩院及AI實驗室,騰訊也在前不久會議上宣佈“Ai In All”,並具有騰訊優圖、AI Lab和微信AI實驗室。2017年7月20日,國務院發佈《新一代人工智能發展規劃》,將人工智能上升爲國家戰略,爲中國人工智能產業做出戰略部署,對重點任務做出明確解析,搶抓重大機遇,構築我國人工智能發展的先發優勢。

技術的發展往往遵循一個可預期的模式,即先是萌芽,然後炒作,而後幻滅,接着纔是技術成熟後的穩步爬升,最後到達應用高峯。研究分析機構Gartner每年都會推出這樣一個分析新興技術發展趨勢的技術炒作週期報告。前段時間,Gartner發佈了2017年的新興技術炒作週期報告,報告聚焦了前端、後端與平臺發展的三大趨勢,提出了AI將無所不在(人工智能),體驗將透明化和沉浸式(AR、VR),以及平臺全面數字化(區塊鏈)的觀點,建議企業架構師和對技術創新有追求的人員應該積極探索和關注這三大趨勢,從而瞭解掌握這三大趨勢對自己公司和自己職業發展的未來影響。簡單來說這三大趨勢分別對應於括號中我備註的大家平時耳熟能詳的詞語。從曲線圖可以看出,物聯網、虛擬助手、深度學習、機器學習、無人車、納米電子、認知計算以及區塊鏈正處在炒作的高峯。實際上AR、VR屬於計算機視覺,也可以歸於人工智能範疇,因此總體上來說,未來人工智能將無處不在。

Gartner把深度學習、強化學習、常規人工智能、無人車、認知計算、無人機、會話式用戶接口、機器學習、智能微塵、智能機器人、智能工作環境等均列爲AI技術範疇。在人機大戰等吸引眼球的活動助推下,很多AI技術目前正處在炒作的高峯期。比如深度學習、機器學習、認知計算以及無人車等。對比2016年的炒作週期曲線可以發現,有些太過超前的概念仍然不慍不火,比如智能微塵。有些概念因爲炒作過高已經迅速進入到了幻滅期,比如商用無人機去年還處在觸發期,今年就已經接近幻滅期邊緣了。相對而言,正處在炒作高峯的深度學習和機器學習技術有望在2到5年內達到技術成熟和模式成熟。

除了人工智能這麼火之外,對於軟件工程師,尤其是移動端開發工程師,有一點我們更要關注,那就是移動端深度學習逐漸成爲新的深度學習研究趨勢。未來會有越來越多的基於深度學習的移動端應用出現,作爲開發者的我們瞭解深度學習更有助於我們開發出優秀的應用,同時提升自身能力,積極抓住機會,應對未來各種變化。

什麼是機器學習(Machine Learning,ML)?

深度學習的基礎是機器學習,事實上深度學習只是機器學習的一個分支。因此我們要入門深度學習就要先了解一些機器學習的基礎知識。機器學習最基本的做法,是使用算法來解析數據、從中學習,然後對真實世界中的事件做出決策和預測。與傳統的爲解決特定任務、硬編碼的軟件程序不同,機器學習是用大量的數據來“訓練”,通過各種算法從數據中學習如何完成任務。

有人曾舉過一個例子,很形象生動,當你使用手機的語音識別進行喚醒時,有沒有想過實現這一功能的全部內部流程呢?我們日常交互的大部分計算機程序,都可以使用最基本的命令來實現,但是基於機器學習的程序卻沒有那麼簡單,想象下如何寫一個程序來回應喚醒詞,例如“Okay,Google”,“Siri”,和“Alexa”。如果在一個只有你自己和代碼編輯器的房間裏,僅使用最基本的指令編寫這個程序,你該怎麼做?不妨思考一下……這個問題非常困難。你可能會想像下面的程序:

ifinput_command==‘Okey,Google’:run_voice_assistant()

但實際上,你能拿到的只有麥克風裏採集到的原始語音信號,可能是每秒44,000個樣本點。怎樣才能識別出語音內容?或者簡單點,判斷這些信號中是否包含喚醒詞。

如果你被這個問題難住了,不用擔心。這就是我們爲什麼需要機器學習。

雖然我們不知道怎麼告訴機器去把語音信號轉成對應的字符串,但我們自己可以。換句話說,就算你不清楚怎麼編寫程序,好讓機器識別出喚醒詞“Alexa”,你自己完全能夠識別出“Alexa”這個詞。由此,我們可以收集一個巨大的數據集(dataset),裏面包含了大量語音信號,以及每個語音型號是否對應我們需要的喚醒詞。使用機器學習的解決方式,我們並非直接設計一個系統去準確地辨別喚醒詞,而是寫一個靈活的程序,並帶有大量的參數(parameters)。通過調整這些參數,我們能夠改變程序的行爲。我們將這樣的程序稱爲模型。總體上看,我們的模型僅僅是一個機器,通過某種方式,將輸入轉換爲輸出。在上面的例子中,這個模型的輸入是一段語音信號,它的輸出則是一個回答{yes,no},告訴我們這段語音信號是否包含了喚醒詞。

如果我們選擇了正確的模型,必然有一組參數設定,每當它聽見“Alexa”時,都能觸發yes的回答;也會有另一組參數,針對“Apricot”觸發yes。我們希望這個模型既可以辨別“Alexa”,也可以辨別“Apricot”,因爲它們是類似的任務。這時候你大概能猜到了,如果我們隨機地設定這些參數,模型可能無法辨別“Alexa”,“Apricot”,甚至任何英文單詞。在而大多數的深度學習中,學習就是指在訓練過程中更新模型的行爲(通過調整參數)。

換言之,我們需要用數據訓練機器學習模型,其過程通常如下:

1、初始化一個幾乎什麼也不能做的模型;

2、抓一些有標註的數據集(例如音頻段落及其是否爲喚醒詞的標註);

3、修改模型使得它在抓取的數據集上能夠更準確執行任務;

4、重複以上步驟2和3,直到模型看起來不錯。

什麼是機器學習算法?從本質上講,機器學習採用了可以從數據中學習和預測數據的算法。這些算法通常來自於統計學,從簡單的迴歸算法到決策樹等等。

什麼是機器學習模型?一般來說,它是指在訓練機器學習算法後創建的模型構件。一旦有了一個經過訓練的機器學習模型,你就可以用它來根據新的輸入進行預測。機器學習的目的是正確訓練機器學習算法來創建這樣的模型。

機器學習已廣泛應用於數據挖掘、計算機視覺、自然語言處理、生物特徵識別、搜索引擎、醫學診斷、檢測信用卡欺詐、證券市場分析、DNA序列測序、語音和手寫識別、戰略遊戲和機器人等領域。雖然深度學習技術的發展,也促進了語音和文本領域的發展,但變化最顯著的還是屬於計算機視覺領域。而且由於作者是做計算機視覺的,因此這裏也沒法深入介紹語音和自然語言處理領域的過多細節,就簡要介紹下計算機視覺領域的技術發展和相關的應用,後續的實驗環節,大部分也會是基於深度學習的圖像應用爲主。

機器學習四要素

針對識別喚醒語的任務,我們將語音片段和標註(label)放在一起組成數據集。接着我們訓練一個機器學習模型,給定一段語音,預測它的標註。這種給定樣例預測標註的方式,僅僅是機器學習的一種,稱爲監督學習。深度學習包含很多不同的方法,我們會在後面的章節討論。成功的機器學習有四個要素:數據、轉換數據的模型、衡量模型好壞的損失函數和一個調整模型權重來最小化損失函數的算法。

數據(Data)

越多越好。事實上,數據是深度學習復興的核心,因爲複雜的非線性模型比其他機器學習需要更多的數據。

模型(Models)

標籤: 程序員 學習
  • 文章版權屬於文章作者所有,轉載請註明 https://xiulifan.com/qinggan/xuexi/4rrr3g.html