深度學習很難?一文讀懂深度學習!
深度學習是機器學習(人工智慧機制)的一個特定子集。它的編程框架看起來非常複雜,但其實思路很好理解,無非就是「以人腦為模型實現計算機系統智能化。」
在過去的十幾年裡,研發人員進行了很多努力,研發出了模仿人類大腦工作方式的演算法,由此也催生出了很多有價值的分析工具。
神經網路及其使用方式
深度學習的名稱來源於它分析「非結構化」數據(或者其他未被標記過的數據)的方式。它需要仔細分析數據是什麼,並對數據進行重複測試,最終得出可用結論。傳統的計算機不擅長分析這樣的非結構化數據。
從寫作的角度理解:如果你讓十個人寫同一個單詞,由於書寫、紙張、墨水和個人癖好的不同,每個人寫出來的單詞都是不一樣的,但即便如此,人腦也能識別出這些單詞都是同一個單詞,因為人腦對這些因素都足夠了解。但如果是一個普通的計算機系統便做不到這些,因為計算機只能從表象上分析。
神經網路因此而出現,它是一種模擬大腦神經元相互作用的演算法。神經網路試圖以思維的方式來分析數據。它們的目標是處理混亂的數據,並得出有用的結論。為了方便理解,我們可以將神經網路分成三個重要部分。
輸入層
在輸入層,神經網路吸收所有未分類的數據。這意味著需要把信息分解成數字,然後把它們轉換成非數據或「神經元」。如果你想教神經網路識別單詞,那麼輸入層就會用數學方法定義每個字母的形狀,把它分解成數字語言,這樣網路就可以開始工作了。輸入層可能非常簡單也可能非常複雜,具體要取決於數學方式所表達的內容的難易程度。
隱藏層
打開今日頭條,查看更多精彩圖片神經網路的中心是隱藏層——從一個到多個。這些層是由它們自己的數字神經元構成的。單個神經元是一個基本的模型,但是層是由長鏈神經元組成的,並且不同的層之間可以相互作用,從而產生複雜的結果。我們的目標是讓神經元能夠識別不同的特徵,然後組合成一個單一的實現。就像我們在學習英文之前,都需要學習26個英文字母,然後組合在一起識別出一個完整的單詞,後續即便這個單詞寫得潦草我們也能識別出來。
隱藏層是大量深度學習訓練的地方。例如,如果演算法不能準確地識別一個單詞,程序員就會發送「對不起,您輸入有誤」,演算法會重新調整數據的權重,直接找到正確的答案。通過重複這個過程(程序員可以手動調整權重),神經網路便可以建立強大的隱藏層,通過大量的試驗以及外部的一些指令找到正確的答案,這個過程就如同人類大腦的工作方式一樣。如上圖所示,隱藏層也可能變得非常複雜!
輸出層
輸出層的「神經元」相對較少,因為它是最終決策的地方。在這裡,神經網路應用最終分析,確定數據的定義,並根據這些定義得出編程結論。例如,「大量的數據線表明這個單詞是lake,而不是lane。」最終,網路傳輸的所有數據都會被縮小到輸出層的特定神經元。因為這是最終目標實現的地方,所以它通常是網路創建的第一部分。
應用
目前,深度學習的應用已經非常廣泛,我們使用的現代技術中,很多都應用了深度學習演算法。例如Alexa、谷歌助手,它們都基於神經網路去理解語音命令。包括如今的各種搜索系統、攝像監控系統等都離不開深度學習。
該領域還有許多其他的應用,例如醫學就是一個很有潛力的領域,在該領域,深度學習可以被用來分析DNA的缺陷或者分子化合物的潛在益處。在物理方面,越來越多的機器和車輛使用深度學習來預測設備何時需要維修,以防出現嚴重故障。
深度學習的未來
深度學習的未來特別光明!神經網路的優點在於擅長處理大量的不同的數據(就如同我們大腦每天需要處理所有的事情一樣)。在目前的高級感測器時代,這一點尤為重要,而傳統的計算機在海量數據處理方面就顯得尤其艱難。
另外,深度學習可以處理我們正在收集的海量數據。事實上,與其他分析方法相比,數據量越大,深度學習的效率就越高。這就是為什麼像谷歌這樣的巨頭企業會在深度學習演算法上投入這麼多。
※Kubernetes 再升級,安全和穩定性是1.12版最大亮點
※一張圖看完「華為雲中國行2018·廈門站」全場精彩看點
TAG:IT168企業級 |