來源:玉剛說 作者:Anymake 2018-06-14 11:34:12
摘要: 作為一名軟件工程師,我們應該活到老學到老,時刻與不斷發(fā)展的框架、標準和范式保持同步。同時,還要能活學活用,在工作中使用最合適的工具,以提高工作效率。隨著機器學習在越來越多的應用程序中尋得了一席之地,越來越多的程序員加入AI領域,那么,入行AI領域需要哪些技能呢?
人工智能到底有多火
我相信大家之所以能來看這篇文章,也間接說明了人工智能這幾年的火爆。自從基于深度學習技術的算法2012年在ImageNet比賽中獲得冠軍以來,深度學習先是席卷了整個學術界,后又在工業(yè)界傳播開來,一瞬間各大企業(yè)如果沒有AI部門都不好意思對外宣傳了。BAT中,百度宣布“All In AI”,阿里建立了達摩院及AI實驗室,騰訊也在前不久會議上宣布“Ai In All”,并具有騰訊優(yōu)圖、AI Lab和微信AI實驗室。2017年7月20日,國務院發(fā)布《新一代人工智能發(fā)展規(guī)劃》,將人工智能上升為國家戰(zhàn)略,為中國人工智能產業(yè)做出戰(zhàn)略部署,對重點任務做出明確解析,搶抓重大機遇,構筑我國人工智能發(fā)展的先發(fā)優(yōu)勢。
技術的發(fā)展往往遵循一個可預期的模式,即先是萌芽,然后炒作,而后幻滅,接著才是技術成熟后的穩(wěn)步爬升,最后到達應用高峰。研究分析機構Gartner每年都會推出這樣一個分析新興技術發(fā)展趨勢的技術炒作周期報告。前段時間,Gartner發(fā)布了2017年的新興技術炒作周期報告,報告聚焦了前端、后端與平臺發(fā)展的三大趨勢,提出了AI將無所不在(人工智能),體驗將透明化和沉浸式(AR、VR),以及平臺全面數字化(區(qū)塊鏈)的觀點,建議企業(yè)架構師和對技術創(chuàng)新有追求的人員應該積極探索和關注這三大趨勢,從而了解掌握這三大趨勢對自己公司和自己職業(yè)發(fā)展的未來影響。簡單來說這三大趨勢分別對應于括號中我備注的大家平時耳熟能詳的詞語。從曲線圖可以看出,物聯(lián)網、虛擬助手、深度學習、機器學習、無人車、納米電子、認知計算以及區(qū)塊鏈正處在炒作的高峰。實際上AR、VR屬于計算機視覺,也可以歸于人工智能范疇,因此總體上來說,未來人工智能將無處不在。
Gartner把深度學習、強化學習、常規(guī)人工智能、無人車、認知計算、無人機、會話式用戶接口、機器學習、智能微塵、智能機器人、智能工作環(huán)境等均列為AI技術范疇。在人機大戰(zhàn)等吸引眼球的活動助推下,很多AI技術目前正處在炒作的高峰期。比如深度學習、機器學習、認知計算以及無人車等。對比2016年的炒作周期曲線可以發(fā)現(xiàn),有些太過超前的概念仍然不慍不火,比如智能微塵。有些概念因為炒作過高已經迅速進入到了幻滅期,比如商用無人機去年還處在觸發(fā)期,今年就已經接近幻滅期邊緣了。相對而言,正處在炒作高峰的深度學習和機器學習技術有望在2到5年內達到技術成熟和模式成熟。
除了人工智能這么火之外,對于軟件工程師,尤其是移動端開發(fā)工程師,有一點我們更要關注,那就是移動端深度學習逐漸成為新的深度學習研究趨勢。未來會有越來越多的基于深度學習的移動端應用出現(xiàn),作為開發(fā)者的我們了解深度學習更有助于我們開發(fā)出優(yōu)秀的應用,同時提升自身能力,積極抓住機會,應對未來各種變化。
什么是機器學習(Machine Learning,ML)?
深度學習的基礎是機器學習,事實上深度學習只是機器學習的一個分支。因此我們要入門深度學習就要先了解一些機器學習的基礎知識。機器學習最基本的做法,是使用算法來解析數據、從中學習,然后對真實世界中的事件做出決策和預測。與傳統(tǒng)的為解決特定任務、硬編碼的軟件程序不同,機器學習是用大量的數據來“訓練”,通過各種算法從數據中學習如何完成任務。
有人曾舉過一個例子,很形象生動,當你使用手機的語音識別進行喚醒時,有沒有想過實現(xiàn)這一功能的全部內部流程呢?我們日常交互的大部分計算機程序,都可以使用最基本的命令來實現(xiàn),但是基于機器學習的程序卻沒有那么簡單,想象下如何寫一個程序來回應喚醒詞,例如“Okay,Google”,“Siri”,和“Alexa”。如果在一個只有你自己和代碼編輯器的房間里,僅使用最基本的指令編寫這個程序,你該怎么做?不妨思考一下……這個問題非常困難。你可能會想像下面的程序:
ifinput_command=='Okey,Google':
run_voice_assistant()
但實際上,你能拿到的只有麥克風里采集到的原始語音信號,可能是每秒44,000個樣本點。怎樣才能識別出語音內容?或者簡單點,判斷這些信號中是否包含喚醒詞。
如果你被這個問題難住了,不用擔心。這就是我們?yōu)槭裁葱枰獧C器學習。
雖然我們不知道怎么告訴機器去把語音信號轉成對應的字符串,但我們自己可以。換句話說,就算你不清楚怎么編寫程序,好讓機器識別出喚醒詞“Alexa”,你自己完全能夠 識別出“Alexa”這個詞。由此,我們可以收集一個巨大的數據集(dataset),里面包含了大量語音信號,以及每個語音型號是否 對應我們需要的喚醒詞。使用機器學習的解決方式,我們并非直接設計一個系統(tǒng)去準確地 辨別喚醒詞,而是寫一個靈活的程序,并帶有大量的參數(parameters)。通過調整這些參數,我們能夠改變程序的行為。我們將這樣的程序稱為模型?傮w上看,我們的模型僅僅是一個機器,通過某種方式,將輸入轉換為輸出。在上面的例子中,這個模型的輸入是一段語音信號,它的輸出則是一個回答{yes, no},告訴我們這段語音信號是否包含了喚醒詞。
如果我們選擇了正確的模型,必然有一組參數設定,每當它聽見“Alexa”時,都能觸發(fā)yes的回答;也會有另一組參數,針對“Apricot”觸發(fā)yes。我們希望這個模型既可以辨別“Alexa”,也可以辨別“Apricot”,因為它們是類似的任務。這時候你大概能猜到了,如果我們隨機地設定這些參數,模型可能無法辨別“Alexa”,“Apricot”,甚至任何英文單詞。在而大多數的深度學習中,學習就是指在訓練過程中更新模型的行為(通過調整參數)。
換言之,我們需要用數據訓練機器學習模型,其過程通常如下:
1.初始化一個幾乎什么也不能做的模型;
2.抓一些有標注的數據集(例如音頻段落及其是否為喚醒詞的標注);
3.修改模型使得它在抓取的數據集上能夠更準確執(zhí)行任務;
4.重復以上步驟2和3,直到模型看起來不錯。
什么是機器學習算法?從本質上講,機器學習采用了可以從數據中學習和預測數據的算法。這些算法通常來自于統(tǒng)計學,從簡單的回歸算法到決策樹等等。
什么是機器學習模型?一般來說,它是指在訓練機器學習算法后創(chuàng)建的模型構件。一旦有了一個經過訓練的機器學習模型,你就可以用它來根據新的輸入進行預測。機器學習的目的是正確訓練機器學習算法來創(chuàng)建這樣的模型。
機器學習已廣泛應用于數據挖掘、計算機視覺、自然語言處理、生物特征識別、搜索引擎、醫(yī)學診斷、檢測信用卡欺詐、證券市場分析、DNA序列測序、語音和手寫識別、戰(zhàn)略游戲和機器人等領域。雖然深度學習技術的發(fā)展,也促進了語音和文本領域的發(fā)展,但變化最顯著的還是屬于計算機視覺領域。而且由于作者是做計算機視覺的,因此這里也沒法深入介紹語音和自然語言處理領域的過多細節(jié),就簡要介紹下計算機視覺領域的技術發(fā)展和相關的應用,后續(xù)的實驗環(huán)節(jié),大部分也會是基于深度學習的圖像應用為主。
機器學習四要素
針對識別喚醒語的任務,我們將語音片段和標注(label)放在一起組成數據集。接著我們訓練一個機器學習模型,給定一段語音,預測它的標注。這種給定樣例預測標注的方式,僅僅是機器學習的一種,稱為監(jiān)督學習。深度學習包含很多不同的方法,我們會在后面的章節(jié)討論。成功的機器學習有四個要素:數據、轉換數據的模型、衡量模型好壞的損失函數和一個調整模型權重來最小化損失函數的算法。
數據(Data)
越多越好。事實上,數據是深度學習復興的核心,因為復雜的非線性模型比其他機器學習需要更多的數據。
模型(Models)
相關推薦:
小升初試題、期中期末題、小學奧數題
盡在奧數網公眾號
歡迎使用手機、平板等移動設備訪問幼教網,幼兒教育我們一路陪伴同行!>>點擊查看