回覆列表
  • 1 # 研溼兄考研

    人工智慧已經發展了六七十年,經歷了幾度繁榮和衰落。雖然已取得不錯的進展,但是與理想中的人工智慧差距還是很大。

    AI與神經網路

    人工智慧三大學派:符號學派、連線學派、行為學派。符號學派認為,任何能夠將物理的某些模式或符號進行操作並轉化成另外一些模式或符號的系統,就可能產生智慧行為;連線學派認為高階的智慧行為是從大量神經網路的連線中自發出現的,透過大量神經元來模擬大腦;行為學派並沒有把目光聚焦到高階智慧的人類身上,而是關注低階的昆蟲能靈活走動並快速反應。上世紀的八九十年代形成三足鼎立的形勢。

    這幾年再度讓人工智慧火起來的是連線學派,連線學派透過深度學習將以往很多領域的表現都大幅提高,連線方式無疑已經成為目前最閃耀的人工智慧解決方案。連線派的模型都是以神經網路為基礎進行創新的,所以核心部分仍然是神經網路結構。

    關於分類

    人類對事物的識別其實很大程度就是對事物進行分類。就好比下面圖中的各種花,我們看到桔梗時就知道它是一種花,看到曼陀羅時也認為它是一種花,看到不同的花我們都對它們進行分類。類似的還有人、樹、汽車等等,都屬於分類概念,當看到相應事物時都會對其進行分類。

    分類是人工智慧的核心部分,神經網路則可以實現像人類這樣的識別分類能力。對於機器來說,所有資訊都是用離散的數字訊號來表徵的,神經網路的目標就是透過這些離散的訊號來進行分類從而達到識別效果。

    最簡神經網路

    感知器是最基礎的神經網路,它可以有多個輸入(x1,x2,…xn),每個輸入對應有一個權重(w1,w2…wn),除此之外還有一個偏置項w0。每個輸入和對應的權重相乘然後進行累加,再透過一個階躍函式,最簡神經網路就是這麼簡單。這麼簡單的模型有什麼用?其實它可用於線性分類。

    假如現在有兩類事物,分別用藍色和黃色表示。我們提取了兩個判斷因子x1和x2,現在準備使用簡單的神經網路函式來決定某個點屬於藍色還是黃色。先計算z = ax1+bx2+c,然後再將z值透過Sigmoid啟用函式,Sigmoid函式如圖,其值被壓縮到0-1之間,0.5作為藍黃色的分界線。

    現在的問題是a、b、c引數該怎麼確定才能正確地將藍色和黃色分開呢?我們先隨便猜三個值,比如a=0.20,b=-0.3,c=0.7,則此時的分類效果如下。

    繼續猜a=-0.20,b=-0.7,c=-0.5,這會運氣好,效果看起來挺不錯的,都正確分類了。可以肯定的是我們可以無限地猜測下去,而且會找到更加完美的分割線。但是哪條分割線是最好的,而且我們應該如何來尋找這些分割線呢?目前為止我們採取的是猜的策略,也許一猜就中,也許永遠都猜不中。

    更強大的神經網路

    簡單的感知機屬於線性模型,而透過巢狀多個神經網路層和增加神經元就可以解決很多複雜的問題。

    整個神經網路模型包含了三要素:線性變換、非線性變換和線性決策。線性與非線性變換實際上就是座標變換,將資訊聚合到其他空間中。從線性到非線性屬於特徵變換,將某種特徵轉成另外一種特徵。而多層神經網路就是做表徵學習。

    從數學上看,神經網路的巢狀就是多個函式巢狀,透過複雜的函式巢狀關係來描述特徵關係。

    同樣是對兩類事物進行分類,但這次的任務比較複雜,可以看到黃色和藍色並不能透過簡單的函式進行分割,這時最簡單的神經網路已經無能為力了,此時就需要巢狀多個神經網路層並且增加神經元來解決了。

    現在我們先對原來中間的網路層增加兩個神經元,並再增加一層網路,一共擁有兩個隱含層。

    最終這種多層的神經網路確實能夠完成對這種比較複雜的兩類事物的分類。

    訓練神經網路

    我們不可能靠猜測靠運氣吃飯,神經網路的引數也一樣,還是要踏踏實實地按照科學的方針來訓練神經網路。實際上我們常常用誤差逆傳播演算法來訓練神經網路,它使用的是梯度下降法,透過反向傳播不斷調整神經網路中各個權重從而使輸出層的誤差平方和最小。

    神經網路的輸出層我們會獲取到了一個最終的輸出,而這個輸出與目標值可能存在誤差,可以使用誤差平方和作為評判標準,這樣我們就可以判斷我們找到的函式的好壞。

    而且,誤差是會反向傳播的,每個神經元都會有對應的誤差。具體處理時透過梯度下降法便可以更新每一個神經元的權重,這樣就能解決了神經網路中連線的引數值了,即能確認所有函式的引數。

    大概流程為:

    計算從輸入到輸出的前饋訊號。根據預測值和目標值計算輸出誤差E。透過前一層中的權重和相關啟用函式的梯度對它們進行加權反向傳播誤差訊號。基於反向傳播誤差訊號和輸入的前饋訊號計算引數的梯度

  • 中秋節和大豐收的關聯?
  • 你有什麼和母親之間難忘的趣事嗎?