#你好機器人# 我估計很多人都會提到深度學習算法。這個算法在計算機視覺方面是革命性的。深度學習算法其實是一種神經網絡算法,而神經網絡又是機器學習算法的一種。所謂機器學習算法,可以理解為一種“計算算法”的算法。比方說我們有一個計算公式,用於計算一個西瓜是不是熟的。這個計算公式需要一些輸入,可能

"#你好機器人# 我估計很多人都會提到深度學習算法。這個算法在計算機視覺方面是革命性的。深度學習算法其實是一種神經網絡算法,而神經網絡又是機器學習算法的一種。所謂機器學習算法,可以理解為一種“計算算法”的算法。比方說我們有一個計算公式,用於計算一個西瓜是不是熟的。這個計算公式需要一些輸入,可能包括西瓜的品種、重量、顏色、生長天數以及敲擊以後產生出來的聲響。我們需要用這個計算公式來準確計算一個西瓜是不是熟的,但我們並不知道怎麼用這些輸入量來計算這個結果。那麼我們就拿出一堆西瓜,把每個西瓜的這些數據都記錄下來,然後把西瓜切開,確定每個西瓜是不是熟的。然後把這些數據統統輸入一個機器學習算法,讓這個算法來計算每一個輸入量的係數,最終形成一個儘可能準確的計算公式。以後我們就可以用這個計算公式來計算西瓜是不是熟的了。(當然這只是機器學習的一類,叫做監督學習算法,其他還有增強學習算法和無監督學習算法)。神經網絡算法在80年代剛提出來的時候是顛覆性的。因為之前的機器學習算法,大部分還是很容易理解的,甚至是可以用數學嚴格證明的。機器學習這個算法,用起來就很怪,你把這個算法實施了,算完了,你也不知道如何理解它的各個環節到底在計算最終結果的過程中起到的作用。我們打個比方,假如說我們要蓋個房子,傳統機器學習算法就像是搭鋼筋水泥,你知道這部分是梁,這部分是牆,你知道他們彼此之間的承重關係是什麼樣的。你基於這樣的理解,可以很容易地擴建、改建房屋。但是神經網絡算法不一樣,用它蓋房子,就好像從火山裡面抽了一堆岩漿,然後讓它在平地上凝固,在凝固的過程中東敲敲、西敲敲,讓整團岩漿看起來像個房子的樣子。建完房子以後,你只知道它能住,你並不知道它內部的承重關係是怎麼樣的,你也不知道你是不是可以把面前那堵牆拆瞭然後去擴建。搞不好你在那面牆上敲了一榔頭,整個房子就塌了。90年代,在深度學習算法發明的時候,神經網絡算法是處在一個低谷期。這是因為一方面,神經網絡算法的計算結果很難理解,很難遷移,很難“擴建”,另一方面,神經網絡算法又很難算,需要很長的計算時間。尤其是,它輸出的結果也並不比其他算法強到哪裡去。而深度學習的計算難度比一般的神經網絡更加複雜。受限於當時的計算機技術,稍微複雜點的深度學習算法的計算時間幾乎是個天文數字,這更加讓人懷疑這個算法的價值。深度學習領域的幾位先驅,一開始投論文都都不太容易被髮表。到2000年代,事情發生了變化。隨著計算機領域的發展,計算速度越來越快。但最關鍵的轉變在於計算機顯卡的應用。計算機顯卡本來是用於三維圖像計算的,這種任務需要完成大量可以同步進行的簡單運算。而深度學習算法恰恰也要完成類似的運算。顯卡幾乎可以說是為深度學習量身定做的專用設備,能夠成百倍地縮短深度學習算法的運算時間。這才彌補了深度學習算法的短板,而讓它的優勢展現出來:它可以不加區分地接受無數的輸入量,能夠協調無數的輸入量算出結果。這就給圖像識別算法帶來了革命。計算機視覺領域有個國際頂級學術會議叫CVPR(計算機視覺和模式識別會議)。我2010年的時候作為志願者參加過一次,那個時候絕大多數學者都在用傳統算法。到2015年的時候,我又去看了一回,那時就已經到處都是深度學習這個,深度學習那個了。由於深度學習算法大幅度提高了圖像識別的準確性,很多原來只能存在於實驗室裡的技術迅速應用到了生活中,比如現在的刷臉,比如視頻身份認證,比如人員和車輛檢測等等。在短短几年間,深度學習算法就從學術界火到了產業界。現在已經幾乎人人皆知。


分享到:


相關文章: