當前位置:
首頁 > 最新 > 深度學習初論:構建基礎思維框架

深度學習初論:構建基礎思維框架

自16年Google的AlphaGO擊敗李世石,並再接再厲毫不留情的擊垮棋壇一哥柯潔後,人工智慧中的分支領域:深度學習和神經網路瞬間火遍大江南北。如今深度學習幾乎成為人工智慧的代名詞,特別是它是最能讓人工智慧技術在現實產業中真正落地,併產生實用價值的人工智慧技術,iPhoneX的人臉識別,百度和特斯拉的自動駕駛技術,微軟的對話機器人小冰,以及蘋果的Siri,亞馬遜的智能音箱等技術無不基於深度學習技術。

從理念上看,我們很容易把深度學習,機器學習和人工智慧所混淆。他們的關係如下:

人工智慧 > 機器學習 > 深度學習

為了掌握深度學習的思維方式,我們需要對機器學習演算法的基本流程做一個大概的了解。機器學習演算法的基本要義是:對大量的數據進行統計分析,從數據中抽取出一般規律或模式。為了實現機器學習,我們必須實現三個基本點:

1,輸入足量分析數據。如果我們的任務是要實現語音識別,那麼就需要對話語音文件,如果要做的是圖像識別,那麼我們就需要足夠多的目標圖像文件。

2,期待輸出樣本。例如我們要完成語音識別,那麼我們需要有人們講話的音頻文件,同時還得有對應的說明文件,這個說明文件可以是用文字來指明音頻所描述的內容。如果是做圖像識別,那麼我們需要一定量的打上標籤的圖片,例如一堆貓狗圖片,並分別在圖片上做標記,用以標明圖片是貓還是狗。

3,一種衡量演算法運行效果的評價方式。例如我們要做圖像識別,識別圖片中是貓是狗,那麼當演算法運行輸出結果後,我們通過計算演算法判斷正確的圖片數所佔總圖片數的比例來衡量演算法的效果,同時演算法根據這個結果來調整它自己的運行方式,這種自我調整就是機器學習中,『學習』二字的要義。

機器學習的過程就是對輸入數據進行分析統計,並得出一組規則,依靠這組規則就在將來對新的數據進行分類或判斷。我們看一個具體例子:

我們看到上圖坐標里分布著一些數據點,通過人眼不難判斷,這組數據點其實分為兩組,一組是白色點,一組是黑色點。機器學習的任務就是通過讀取點的信息,找到區分出這兩組點的辦法。我們把大量的點坐標輸入給機器學習模型,並告訴它那些點是白點,哪些點是黑點,接著模型會統計白色數據點的坐標,分析出它們的分布特性,同時統計黑色點的坐標,分析出黑色點的分布特性,根據這些特性,慢慢的轉動坐標軸,使得坐標軸把這兩組點涇渭分明的區分開來,其過程如下所示:

上圖中,最左邊的圖示是數據輸入模型時的情形,最右邊的圖像是模型對數據進行一系列加工後,把坐標軸調整後的結果。根據第三幅圖像中坐標軸的調整結果,有新數據時,機器就能對其作出判斷,例如當面對一個新的數據點(x,y),模型讀取數據點的x坐標,如果x < 0, 那麼模型就判斷新數據點屬於白色,如果x > 0 那麼模型就判斷新數據點屬於黑色。

然而模型對坐標軸的變換不是一撮而就。它會按照某種規則一點一滴的嘗試去對坐標軸進行變換,例如把坐標軸右移一個單位,或者把坐標軸逆時針旋轉10度左右,每做完一個動作,它就評估該動作產生的效果,所謂效果就是看當前動作完成後,通過新坐標軸區分出的白點和黑點的正確率是否增加了,例如當坐標軸逆時針旋轉10度後,模型發現在新坐標軸下正確區分白點和黑點的數量比原來有所提高,根據這個反饋,它下次就繼續逆時針旋轉坐標軸,這個根據反饋決定下一次所採取動作的過程就叫「學習」。

如何理解深度學習的「深」

深度學習是機器學習的一個分支,它的工作流程跟上面我們描述的機器學習流程沒有太大區別,只不過它有自己獨到的數據處理方法。深度學習會對輸入數據進行多個層次的加工,數據輸入模型後,經過第一層工序,加工處理得到新的結果,新結果再輸入第二層工序,加工處理後又得到新的處理結果,於是加工工序的多少就對應於所謂的深度。我們看一個例子:

上圖展示的就是一個深度學習過程。最左邊是一幅圖案,這幅圖案表示手寫的數字「4」,中間4條白桿表示用來加工最左邊數字圖案的4道工序,數字圖案輸入模型後,先經過第一道白桿的處理,得到的處理結果發送給第二道白桿,依次類推,最後一道白桿輸出一組新數據,我們看到最右邊的黑杠中,只有數字4所在的地方是白色,其他地方是黑色,它意思是說,圖片裡面的圖案表示數字4。由此我們也可以說,上面機器學習的模型「深度」為4,因為它有四道關口進行數據處理。

輸入數據沒經過一道關口進行處理輸出後,它的內容會發生巨大的改變:

我們可以看到,每經過一層數據形式的變化與輸入時相差得就越大。你可以把深度學習的邏輯模型想像成純凈水的過濾。在一開始時,水裡含有很多雜質,上圖中的每一個白桿如同一種過濾網,水每流經一個過濾網,水中某種雜質就會被隔離出來,經過的過濾網越多,最後流出來的水其純凈度顯然就越高。

到現在我們基本上明白,所謂機器學習其實就是把輸入數據轉換成某種具體的實操規則,面對新數據,計算機根據實操規則進行處理後得出一種具體的結論。接下來我們就深入探討一下,上面的那些」白桿「,是如何對輸入數據進行「過濾」的,這個過程其實很簡單。

觀察上圖,」Input X」對應著輸入數據,也就是前面圖案展示的手寫數字圖案,右邊的大方塊對應著前面我們所說的」白桿「,它負責對數據進行加工處理,每個大方塊左邊都對應著一個小方塊叫「權重」,所謂「權重」其實就是一系列數字的集合,當數據輸入第一層時,它會用其對應的「權重」跟輸入它的數據做一系列的運算,運算後所得結果就是第一層的輸出,第一層的輸出結果再當做輸入數據傳入第二層,第二層有它自己對應的「權重」,也就是它左邊那個小方塊,也是一系列數字的集合,它把第一層處理後傳入的數據跟它自己的權重數據結合在一起做一系列的運算,所得的結果就是最終結果。

然而此時得到的結果還不是適用的結果。模型會把當前結果與「標準答案」進行比較,看看處理效果如何,上圖中的」loss function」 指的是處理結果與「標準答案」的比對過程。形象點說,我們還是回到「過濾水」這個例子,上圖中的」Input X」對應的就是含有雜質的水,Y』就是經過過濾後得到的水,而右邊那個Y就是滿足衛生標準的純凈水,這時候我們需要檢測左邊過濾出來的水與右邊符合衛生標準的水到底有多大差距,例如符合衛生標準的純凈水要求含鈣量不得超過0.5克每升,但是左邊處理出來的水含鈣量達到1克每升,中間這個」lose function」相當於一個化學成分檢測器,它通過化學檢測得出一個結論:「左邊處理的水含鈣量超標,超出標準0.5克」。

得到的結果會反饋給模型,模型根據所得結果調整每一層數據處理層對應的參數,調整完後再對數據處理一遍,所得結果再次與標準結果進行比較,看看調整後,模型對數據處理的結果是否與」標準答案「更接近了,對應於過濾水的例子,我們把「處理水的含鈣量超出標準0.5克」這個結果反饋給工廠,於是工廠讓工人對機器進行調整,調整後再次對相同的水進行過濾,然後再比對結果,如果調整後,生產出來的純凈水含鈣量與標準純凈水相比,只超標0.3克,那意味著工廠的調整方案是正確的,那麼工廠繼續按原方案加大調整力度以便讓最終水的含鈣量進一步下降。

上述流程反覆循環進行,知道最後的處理結果符合標準為止。這個根據處理結果調整處理流程的過程,就叫機器學習的過程。

當前深度學習所取得的成果

深度學習的爆發從2010年開始,至今還不到十年,但卻達到了驚人成效。它解決了人類認知方面的很多難題,通過深度學習技術,計算機學會了像人一樣「看」和」聽」。這些看起來完全是出自於人的本能能力,在深度學習出現以前,計算機根本就無法與人相比。深度學習在一下領域都達到,甚至是超過了一般人所擁有的水準,例如:

1,它使得計算機像人一樣能對圖片進行識別分類。

2,它使得計算機像人一樣能聽懂由人說出來的話。

3,它大大改進了機器翻譯的效果。

4,它實現了語音到文本的轉換。

5,它引發了一系列數字助手例如iPone里的Siri.

6,它實現了超出人類水平的駕駛能力。

7,使得廣告投放更加精準。

8,讓搜索引擎能夠直接理解人口頭表達的問題並給出答案。

9,碾壓人類水平的圍棋能力。

目前我們還處於深度學習的暴發前期。在不久的將來,深度學習的應用一定會超越「看」和「說」,甚至進入到「思考」的領域,以深度學習為基礎的人工智慧將全面滲透到經濟生活的各個領域,為人類的文化發展和科學研究產生巨大的推動作用。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Coding迪斯尼 的精彩文章:

TAG:Coding迪斯尼 |