[AI小學堂(三)]神經網路是什麼? 淺談深度學習的神經網路Neural Network的架構-續

2023/05/30閱讀時間約 3 分鐘
interconnected neurons
這篇文章是繼上一篇文章之後,我們繼續講解神經網路的基本架構。我們先複習一下,上篇文章我們解說到了神經網路的基本架構包含了輸入層,輸出層,還有中間的隱藏層,也說明了這是一個把輸入資料拆解出特徵然後依照特徵做判斷的過程。
Neural network for number recognition
但是究竟每一層的神經網路,如何影響下一層的神經網路可以辨識出特徵呢? 這些中間的線條(連結)到底是什麼意義呢? 這就是這一篇要告訴你的。首先我們要知道第二層的每一個神經元跟第一層的每個神經元都是fully-connected,這是什麼意思? 也就是說每個第二層的神經元,都跟每個第一層的神經原有連接。
我們來假設我們挑選了第二層的某一個神經元,我們叫做神經元A好了,而這個神經元A是可以決定是否圖案中有這樣的一個短線(如下圖),那麼因為第一層的784個神經元都有連接到這個第二層的這個神經元A,所以我們可以說這784個神經元都有各自的權重Weight可以影響這個神經元A,所以這些神經元的數值再乘上各自的權重,就會是這個神經元A的值了。
Weight for the neurons
實際上這樣的公式叫做Activation function,還要加上sigmoid function跟誤差(Bias),這是為了要讓計算出來的數值可以維持在0~1之間的數值,因為我們的目的是要儘量簡單的介紹,所以這邊就不在繼續深究。重點是,這些誤差(Bias)跟權重(Weight),是會隨著我們訓練這個神經網路而變動的數值。
如果我們來想想這樣一個簡單的神經網路,輸入層有784個神經元,而中間兩層隱藏層僅有16 個神經元,輸出層只有10個神經元好了,那我們光是第一層到第二層的連結,就有784 (個神經元) x16個 權重,而每一條連結線都有自己不同的誤差值(Bias)
number of weights and biases
然後再往下計算整個神經網路的話,就會有總共有784*16加上16x16加上16x10的權重數,誤差值則是有16+16+10個。光是這樣的一個簡單的網路,就可以想像成有13002個數值會隨時變動,導致輸入的資料到輸出的結果會有不同的結果。
number of weights and biases for the whole network
這13002個會變動的權重Weight跟誤差值Bias就是我們希望神經網路透過學習而能夠得到最佳值的,我們相信,經過學習的神經網路,可以替這13002的數值找到最佳的解答,然後我們輸入的數字圖片都可以被正確的辨識。
這麼簡單基礎的神經網路,都會需要13002個數值,不是很可怕嗎? 而且實際上的神經網路,每一層可能都有遠超768的神經元,而且神經網路的層數也可能會有數百層以上,可以想像這些權重Weight跟誤差值Bias是一個非常非常驚人的數量。但是我們回頭想想,如果神經網路沒有很複雜其實才可怕,畢竟神經網路是被認為可以邏輯推理的人工智慧的雛形,所以是應該會具備一定的複雜程度的。
關於神經網路的架構我們就很基礎的介紹到這邊,如果有興趣了解裡面的數學式的,請務必去看原本的英文影片,下一篇我們會介紹神經網路是如何透過餵進大量的資料去學習的,我們下次見囉。
為什麼會看到廣告
技術PM的AI實驗室,是以輕鬆的角度深入簡出的探討各種生成式AI工具的使用。無論你是想理解AI到底是怎麼運作的? 想知道有那些好用的生成式AI工具? 或者是對AI繪圖有興趣的,都歡迎加入我們的AI實驗室一起輕鬆地玩耍,我們邊玩邊學,學習跟AI一起共創新的可能。
留言0
查看全部
發表第一個留言支持創作者!