iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0

前言

我們知道神經網路是由許多的神經元所組成,昨天提到了ANN神經網路,其實典型的神經網路都是由好幾層 ( 線性層 ) 連接起來的,層與層之間能夠實現線性 ( linear ) 的轉換,層數累積的越多,訓練模型時的計算也就愈複雜,形成一個深度的神經網路 ( Deep Neural Networks , DNN ),進行所謂的深度學習 ( Deep Learning ),從最一開始的特徵資料輸入,稱為輸入層,下圖中輸入層的每個神經元就代表一個特徵資料,這些特徵資料再傳入給隱藏層,許多的隱藏層就會一層接著一層不斷的計算, DNN 學習的深度就取決於隱藏層的數量,直到傳到最後一層,就是輸出層 ( 也只有一層 ),也就是模型最後會輸出的結果,當然你也可以根據你要輸出的結果個數,控制輸出層中的神經元個數。

https://ithelp.ithome.com.tw/upload/images/20230924/20158157Z5zkQAYRhg.png

輸入層 Input Layer

輸入層是神經網路的第 0 層,且只會有一層,整個訓練過程的開端,負責接收原始的輸入資料,再傳到下一層的其他的神經元進行運算處理,而根據原始資料的不同,輸入層的設計和資料表示方式也會不一樣。

  • 資料輸入:輸入層接收外部的資料,資料可以是任何的形式傳入,例如圖像、文字或者是數值皆可
  • 特徵的表示:對於傳入資料的特徵表示,若資料為圖片,那輸入層中的每個神經元就代表圖片的每格像素,像素值的大小通常會介於 0 ~ 255 之間,關於圖片的特徵處理之後幾天會特別講,另外對於文字處理,可能會轉換成詞向量,對於數值,可能會是實數或者經標準化後的數值
  • 神經元數量:輸入層的神經元數量取決於輸入資料的特徵數量,拿圖片做舉例,若輸入一張 28 x 28 的彩色影像,每個神經元都會對映到一個像素值 ( RGB 值 ),所以會有 3 x 28 x 28 個神經元,因為圖片為彩色所以還要多乘 3,所以對於圖片的資料,輸入層中神經元數量的多寡取決於圖片的解析度大小。

輸入層的樣貌由你的任務需求來決定,在圖像識別中,將圖像轉換為像素值或向量來表示,在自然語言處理的任務中,將輸入的文字轉換為詞向量或字符嵌入,當你要做數值 Scaler 的預測時,輸入層就可接收數值的特徵。

隱藏層 Hidden Layer

在神經網路中,隱藏層的層數決定了處理更複雜問題的能力,夾在輸入層與輸出層之間,從輸入層接收資料經過一連串的計算再把結果傳到輸出層,隱藏層也同樣有許多神經元,彼此互相連接並經過激勵函數的非線性運算,隱藏層的存在能夠讓模型去應付更加複雜的傳入資料。

  • 特徵抽取與轉換:隱藏層的神經元通常會進行特徵資料的抽取操作,並將原本低級的特徵轉換為高級的特徵表示,因為每層的神經元可當作下一層神經元的特徵資料傳入,所謂低級的特徵就是其組成較為單純,像是下圖中,如果要得到耐用程度這個特徵,只需要從原始資料抽取出價格材質特徵即可,在成為特徵前經過的神經元數量較少,所以越往後面的層數的神經元 ( 特徵 ) 就越高即,像是要得到品質這個特徵,就必須先抽取原始資料得到耐用程度行銷費用,把這兩個特徵組合起來才會得到品質特徵,此特徵經過的神經元數量較多,特徵的組成較複雜,就是所謂的高級特徵,從原始資料經過神經元之間的傳遞,進一步結合與重組最後所計算出的結果作為特徵,因為只靠原始資料作為全部特徵訓練無法處理複雜的問題,這也就是為甚麼要有多個隱藏層,因為這樣才能夠確保有高級的特徵的存在,才會更適合處理複雜的問題,下圖參考自 https://grandmacan.com/ 我阿嬤都會的機器學習教學影片:

https://ithelp.ithome.com.tw/upload/images/20230924/20158157JhrC25MzTJ.png

  • 神經元數量:隱藏層的神經元數量可根據問題的複雜程度來設計,通常更多的神經元可以讓模型更加成熟以應付各種問題
  • 激勵函數:每個隱藏層最後都會經過激勵函數這個非線性函數的轉換,讓模型能夠處理非線性的關係就能夠擬和更多種類的資料
  • 層數:隱藏層的層數決定了你深度學習學得有多深,許多隱藏層組成的神經網路就為深度神經網路 DNN,至於層數到底要多少,這就要進行超參數的優化,找出訓練你的模型最適合的層數大小

輸出層 Output Layer

輸出層是神經網路的最後一層,在隱藏層的最後一層計算後由輸出層輸出,也就是最終的模型輸出。

  • 神經元數量:輸出層的神經元數量取決於你的需求,像是在多元分類問題中,你要分的類別共有 10 種,你可能就要讓最後的模型輸出 10 個值,分別是對映到 10 個類別的機率值,每個神經元就代表一個類別,用來表示該類別的預測機率。
  • 激勵函數:在二元分類問題中,常用的就是 Sigmoid 激勵函數,用來產生介於 0 到 1 之間的輸出,對於多元分類的問題通常會用 Softmax 激勵函數對輸出層輸出的值做處理,並產生每個類別對映的機率
  • 損失函數:通常會針對最後模型的輸出結果進行損失計算,評估輸出與實際結果之間的差距,回歸任務常用的方法為均方誤差 ( Mean Squared Error ),分類問題多用交叉熵 ( Cross Entropy )

小結

今天我們學到了:

  • 深度神經網路的架構與特性
  • DNN 中的網路層:輸入層、隱藏層、輸出層
  • 每個網路層的功能與特性

深度神經網路能夠讓整個神經網路複雜化,模型也因深度學習而變得成熟,也就能處理更加複雜的問題,而所謂模型的訓練,其實就是模型經過一次又一次正向傳遞 ( Forward Propagation ) 與反向傳遞 ( Backward Propagation ) 的過程,下一篇文章中,我們就要來介紹何謂正向傳遞與反向傳遞,我們下篇文章見 ~

參考資料

https://www.javatpoint.com/artificial-neural-network


上一篇
【Day 8】激勵函數 Activation Function
下一篇
【Day 10】人生,就是要不斷正向與反向傳遞
系列文
戀 AI ing - 我與機器學習的邂逅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言