深度學習究竟是什麼,舉個例子解釋一下

2021-09-16 12:42:44 字數 3579 閱讀 1485

人工智慧,就好像第四次工業革命,正從學術界的私藏,轉變為一種能夠改變世界的力量。尤其,以深度學習取得的進步為顯著標誌。

它讓匍匐前進60年的人工智慧一鳴驚人。

我們正降落到一片新大陸。深度學習帶來的這場重大技術革命,有可能顛覆過去20年網際網路對技術的認知,實現技術體驗的跨越式發展。

那麼,深度學習到底是什麼?怎麼理解它的重要性?

我們先從概念和現象入手。

我總結了一句話,學術上看未必嚴謹,但從我的理解角度看——深度學習是基於多層神經網路的,海量資料為輸入的,規則自學習方法。

深度學習所基於的多層神經網路並非新鮮事物,甚至在80年代被認為沒前途。但近年來,科學家們對多層神經網路的不斷演算法優化,使它出現了突破性的進展。

以往很多演算法是線性的。而這世界上大多數事情的特徵是複雜非線性的。比如貓的影象中,就包含了顏色、形態、五官、光線等各種資訊。深度學習的關鍵就是通過多層非線性對映將這些因素成功分開。

那為什麼要深呢?多層神經網路比淺層的好處在哪兒呢?

簡單說,就是可以減少引數。因為它重複利用中間層的計算單元。我們還是以認貓為例好了。它可以學習貓的分層特徵:最底層從原始畫素開始學習,刻畫區域性的邊緣和紋;中層把各種邊緣進行組合,描述不同型別的貓的器官;最高層描述的是整個貓的全域性特徵。

它需要超強的計算能力,同時還不斷有海量資料的輸入。特別是在資訊表示和特徵設計方面,過去大量依賴人工,嚴重影響有效性和通用性。深度學習則徹底顛覆了「人造特徵」的正規化,開啟了資料驅動的「表示學習」正規化——由資料自提取特徵,計算機自己發現規則,進行自學習。

你可以理解為——過去,人們對經驗的利用,靠人類自己完成。在深度學習呢?經驗,以資料形式存在。因此,深度學習,就是關於在計算機上從資料中產生模型的演算法,即深度學習演算法。

問題來了,幾年前講大資料,以及各種演算法,與深度學習有什麼區別呢?

過去的演算法模式,數學上叫線性,x和y的關係是對應的,它是一種函式體現的對映。但這種演算法在海量資料面前遇到了瓶頸。國際上著名的imaginenet影象分類大賽,用傳統演算法,識別錯誤率一直降不下去,上深度學習後,錯誤率大幅降低。在2023年,獲勝的系統只能正確標記72%的;到2023年,多倫多大學的geoffhiton利用深度學習的新技術,帶領團隊實現了85%的準確率。2023年的imaginenet競賽上,乙個深度學習系統以96%的準確率第一次超過了人類(人類平均有95%的準確率)。

計算機認圖的能力,已經超過了人。尤其影象和語音等複雜應用,深度學習技術取得了優越的效能。為什麼呢?其實就是思路的革新。

舉幾個腦洞大開的例子。

1.先說計算機認貓。

我們通常能用很多屬性描述乙個事物。其中有些屬性可能很關鍵,很有用,另一些屬性可能沒什麼用。我們就將屬性被稱為特徵。特徵辨識,就是乙個資料處理的過程。

傳統演算法認貓,也是標註各種特徵去認。就是大眼睛,有鬍子,有花紋。但這種特徵寫著寫著,有的貓和老虎就分不出來,狗和貓也分不出來。這種方法叫——人制定規則,機器學習這種規則。

深度學習方法怎麼辦呢?直接給你百萬張,說這裡有貓,再給你上百萬張圖,說這裡沒貓。然後再訓練乙個深度網路,通過深度學習自己去學貓的特徵,計算機就知道了,誰是貓。

2.第二個例子是谷歌訓練機械手抓取。

傳統方法肯定是看到那裡有個機械手,就寫好函式,move到xyz標註的空間點,利用程式實現一次抓取。

而谷歌現在用機械人訓練乙個深度神經網路,幫助機械人根據攝像頭輸入和電機命令,**抓取的結果。簡單說,就是訓練機械人的手眼協調。機械人會觀測自己的機械臂,實時糾正抓取運動。

所有行為都從學習中自然浮現,而不是依靠傳統的系統程式。

為了加快學習程序,谷歌用了14個機械手同時工作,在將近3000小時的訓練,相當於80萬次抓取嘗試後,開始看到智慧型反應行為的出現。據公開資料,沒有訓練的機械手,前30次抓取失敗率為34%,而訓練後,失敗率降低到18%。

這就是乙個自我學習的過程。

3.有人問了,深度學習,能學習寫文章嗎?

來看這個例子。史丹福大學的計算機博士andrejkapathy曾用托爾斯泰的**《戰爭與和平》來訓練神經網路。每訓練100個回合,就叫它寫文章。100個回合後,機器知道要空格,但仍然有亂碼。500個回合後,能正確拼寫一些短單詞。1200個回合後,有標點符號和長單詞。2000個回合後,已經可以正確拼寫更複雜的語句。

整個演化過程是個什麼情況呢?

以前我們寫文章,只要告訴主謂賓。而以上過程,完全沒人告訴機器語法規則。甚至,連標點和字母區別都不用告訴它。不告訴機器任何程式。只是不停將原始資料進行訓練,一層一層訓練,最後輸出結果——就是乙個個看得懂的語句。

一切看起來都很有趣。人工智慧與深度學習的美妙之處,也正在於此。

4.我還去矽谷看過一家公司——完全顛覆以往的演算法,利用深度學習實現影象深度資訊的採集。

眾所周知,市面上已經有無人機,可實現人的跟蹤。它的方法是什麼呢?乙個人,在影象系統裡,一堆色塊的組合。通過人工的方式進行特徵選擇,比如顏色特徵,梯度特徵。拿簡單的顏色特徵舉例:比如你穿著綠色衣服,突然走進草叢,就可能跟丟。或,他脫了件衣服,幾個人很相近,也容易跟丟。

此時,若想在這個基礎上繼續優化,將顏色特徵進行某些調整,是非常困難的。而且調整後,還會存在對過去某些狀況不適用的問題。

總之,這樣的演算法需要不停迭代,迭代又會影響前面的效果。

而矽谷這個團隊,利用深度學習,把所有人腦袋做出來,只區分好前景和背景。區分之後,背景全部用數學方式隨意填充,再不斷生產大量背景資料,進行自學習。只要把前景學習出來就行。

據我所知,很多傳統方法,還在採用雙目視覺。用計算機去做區域性匹配,再根據雙目測出的兩個匹配的差距,去推算空間另乙個點和它的三角位置,從而判斷離你多遠。

可想而知,深度學習的出現,使得很多公司辛苦積累的軟體演算法直接作廢了。

「演算法為核心競爭力」,正在轉變為,「資料為核心競爭力」。

技術人員必須進入新的起跑線。

5.最後再舉個例子。

大家都做過胃鏡。尤其胃痛,很痛苦。腸胃鏡要分開做,而且小腸看不見。

有一家公司出了一種膠囊攝像頭。吃進去後,在你的消化道,每5秒拍一幅圖,連續攝像,此後再排出膠囊。所有關於腸道胃部的問題,全部完整記錄。但醫生光把那個圖看完,就需要五個小時。原本的機器主動檢測漏檢率高,要醫生複查。

後來,他們採用深度學習。採集8000多例資料灌進去,用機器不斷學,不僅提高診斷精確率,減少了醫生的漏診,以及對稀缺好醫生的經驗依賴。只需要靠機器自己去學習規則。

深度學習演算法,可以幫助醫生作出決策。

了解完深度學習,接著思考乙個問題——20世紀70年代末80年代初,個人電腦突飛猛進時,人工智慧的商業化卻步履維艱。賈伯斯曾這樣定義個人計算機的價值——「它是我們思維的自行車」。那麼,今天的人工智慧呢?深度學習呢?它給我們真正帶來的東西是什麼?未來,對行業和社會有什麼影響?中國公司的機會在哪?

人工智慧、大資料、雲計算和物聯網的未來發展值得重視,均為前沿產業,多智時代專注於人工智慧和大資料的入門和科譜,在此為你推薦幾篇優質好文:

人工智慧,機器學習和深度學習之間,主要有什麼差異?

深度學習初學者必須了解的基本知識

搞懂深度學習到底需要哪些數學知識

多智時代-人工智慧和大資料學習入門**|人工智慧、大資料、物聯網、雲計算的學習交流**

人工智慧,機器學習和深度學習之間,主要有什麼差異?

深度學習初學者必須了解的基本知識

搞懂深度學習到底需要哪些數學知識

Bundle 究竟是什麼?

bundle用於場景 在我印象中比較深刻的是,一般用於activity之間傳遞數值,也用於handler傳送訊息,如下 intent intent new intent bundle bundle new bundle bundle.putstring key value intent.putext...

分析EOF究竟是什麼

eof僅僅是一種狀態或者說條件,需要觸發。read呼叫遇到檔案結尾,觸發該條件,結果將返回0。針對eof,對於標準輸入裝置,普通檔案,管道檔案,網路套接字檔案是read如何觸發呢?下面程式將說明 server.c 是socket套接字服務端,目的為了網路套接字檔案是read如何觸發測試用的。serv...

分析EOF究竟是什麼

eof僅僅是一種狀態或者說條件,需要觸發。read呼叫遇到檔案結尾,觸發該條件,結果將返回0。針對eof,對於標準輸入裝置,普通檔案,管道檔案,網路套接字檔案是read如何觸發呢?下面程式將說明 server.c 是socket套接字服務端,目的為了網路套接字檔案是read如何觸發測試用的。serv...