「撥開迷霧看人工智慧」-3分鐘帶你看懂神秘的神經網路

投稿人:楊左使

2016年Google AlphaGo擊敗了頂尖的圍棋人類選手,令全球矚目。這一大事件把AlphaGo背後的人工智慧演算法——神經網路推向了風口浪尖。

熱門而神秘的「神經網路」是什麼?這篇文章我們將向你展示它的奧秘。

神經網路,全稱是人工神經網路,顧名思義這是從人類中樞神經系統受到的啟發,發明了人工神經網路這個概念。在人工神經網路中,簡單的人工節點,稱作神經元,連接在一起形成一個類似生物神經網路的網狀結構。

神經網路是深度學習的基礎,這是一門強大的機器學習方法,可以這麼說,正是神經網路快速發展帶來的變革,引發了今天人工智慧潮流的火爆。

那麼,什麼是神經網路?

神經網路最重要的用途是分類,為了讓你對分類有個直觀的認識,我們先看幾個例子:

貓狗分類:有一大堆貓、狗照片,把每一張照片送進一個機器里,機器需要判斷這幅照片里的東西是貓還是狗。

廣告識別:現在有一封電子郵件,把出現在裡面的所有辭彙提取出來,送進一個機器里,機器需要判斷這封郵件是否是營銷廣告郵件。

影像識別:病人把在醫院照的X光影像片交給醫生,醫生把照片送進一個機器里,機器需要判斷這個病人是否得病,得的什麼病。

這種能自動對輸入的東西進行分類的機器,就叫做分類器

分類器的輸入和輸出都是一堆數值,比如第一個例子里,分類器的輸入是照片,假如每一張照片都是100*100像素的紅綠藍三通道彩色照片,那麼分類器的輸入就是一個長度為100*100*3=30000的向量。輸出的時候,0則表示圖片中是狗,輸出1則表示是貓。

分類器的目標就是讓正確分類的比例儘可能高。一般我們需要首先收集一些樣本,人為標記上正確分類結果,然後用這些標記好的數據訓練分類器,訓練好的分類器就可以在新來的數據上工作了。

好,現在我們以輸出貓和狗為例,假設分類器的輸入是通過某種途徑獲得的兩個值,輸出是0和1,比如分別代表貓和狗。現在有一些樣本:

大家想想,最簡單地把這兩組特徵向量分開的方法是啥?當然是在兩組數據中間畫一條豎直線,直線左邊是狗,右邊是貓,分類器就完成了。以後來了新的向量,凡是落在直線左邊的都是狗,落在右邊的都是貓(如下圖)。

一條直線把平面一分為二,一個平面把三維空間一分為二,兩邊分屬不同的兩類,這種分類器就叫做神經元。

上圖的分類器好分,但是下圖呢?

當樣本的複雜程度增加的時候,一個神經元只能切一刀的缺點就會顯露。這時的解決辦法是多層神經網路,底層神經元的輸出是高層神經元的輸入。我們可以在中間橫著砍一刀,豎著砍一刀,然後把左上和右下的部分合在一起,與右上的左下部分分開;也可以圍著左上角的邊沿砍10刀把這一部分先挖出來,然後和右下角合併。

每砍一刀,其實就是使用了一個神經元,把不同砍下的半平面做交、並等運算,就是把這些神經元的輸出當作輸入,後面再連接一個神經元。這個例子中特徵的形狀稱為異或,這種情況一個神經元搞不定,但是兩層神經元就能正確對其進行分類。只要你能砍足夠多刀,把結果拼在一起,什麼奇怪形狀的邊界神經網路都能夠表示,所以說神經網路在理論上可以表示很複雜的函數/空間分布。

最後我們來說一下神經網路的訓練。它依靠反向傳播演算法:最開始輸入層輸入特徵向量,網路層層計算獲得輸出,輸出層發現輸出和正確的類號不一樣,這時它就讓最後一層神經元進行參數調整,最後一層神經元不僅自己調整參數,還會勒令連接它的倒數第二層神經元調整,層層往回退著調整。經過調整的網路會在樣本上繼續測試,如果輸出還是老分錯,繼續來一輪迴退調整,直到網路輸出滿意為止。這有點像小米式互聯網思維,從用戶終端聽取意見,優化需求更新產品功能,最終做出用戶喜歡的,強參與感的智能手機。

如果形象地打個比方,神經網路就像一個剛開始學習東西的小孩子,開始認東西,作為一個大人(監督者),第一天,他看見一隻京巴狗,你告訴他這是狗;第二天他看見一隻波斯貓,他開心地說,這是狗,糾正他,這是貓;第三天,他看見一隻蝴蝶犬,他又迷惑了,你告訴他這是狗……直到有一天,他可以分清任何一隻貓或者狗。

這就是神經網路,你看懂了么?

小結:

神經網路是一種把東西進行分類的機器,它由若干個神經元組成。每個神經元就像一把剪刀,可以把兩組數據一分為二;若干個神經元經過剪切、拼接、粘貼之後,最終可以把兩個東西區分開(例如區分貓和狗),這就是神經網路。

我是楊左使,上海谷歌社區人工智慧系列沙龍組織者,喜歡我的文章,請點贊;想來沙龍聽大牛分享,請打賞:)


推薦閱讀:

投資幾萬元在繁華地段做3D列印是否有可行性?可以選擇列印什麼項目?
夾娃娃有沒有什麼密不可傳的技巧?
唐本忠、李家洋領銜獲2017年度國家自然科學一等獎
中國科學家開發出新型二氧化碳分離技術,能夠大幅度減少廢氣污染
霍金在科學界到底是什麼水平?

TAG:神经网络 | 人工智能 | 科技 |