類神經網路(Deep neural network, DNN)介紹

本文語音介紹:Apple podcast連結Sound on連結

類神經網路是什麼?為什麼最近很熱門?為什麼在某些情境下一定需要這樣的技術呢?

類神經網路是一種AI的方法,這套方法的計算方式是類似人體裡面神經網路的概念。跟一般的AI方法相同,它就是從數據當中,給定預先想要的輸入與輸出,就可以用這套方法從數據當中自動歸納出輸入與輸出之間的關係。

之所以這樣的技術在現在會變得這麼熱門,是因為先前有舉辦一些影像辨識的比賽,所採用的AI方法,主要就是基於類神經網路的技術,再加上一些新概念的修正,打到最高分,而且其他方法是完全無法與其比較,因此,聲名大噪。(最近非常熱門的AI技術—ChatGPT也是基於類神經網路的所建立的方法,相關原理可參考1.淺談最近非常火紅的ChatGPT背後可能原理機制為何? 2.從ChatGPT探索GPT的原理概念:少量數據的解方—遷移學習技巧 3.ChatGPT是什麼?探索GPT原理:遷移學習(transfer learning)的奧秘—微調(fine-tuning)技巧)

為什麼在某些情境下一定需要這樣的技術呢?因為這個方法有以下特點

1.這套方法會隨著數據量增多,而有更好的精確度,是其他方法無法比擬的。

2.一般AI的方法需要人為去找出好的特徵,才能學得更好,而這套方法則是自動會擷取關鍵特徵。

圖1 類神經網路特點

類神經網路用途

先前提到了類神經網路使用上的好處與優勢的地方,那類神經網路的用途為何呢?

實際上當我們有一組輸入與輸出的數據,我們會發現輸入與輸出之間的關係,其實是由真實世界的運作模式去決定,由於這個運作模式是未知的,我們便無法了解輸入與輸出之間的關係,也因此真實世界的運作是不可預期的。

舉例來說,每日股票的趨勢變化,會受許多因素的變動影響,影響的模式相當複雜,我們難以了解這當中的運作關係,因此,股票趨勢變化是相當未知的一件事情。

而類神經網路就是企圖用一套數學的方法去描述真實世界運作的模式,使得我們可描述輸入與輸出之間的關係,就可進一步從輸入預測相對應的輸出。

舉例來說,假設我們可建立出一個完美描述股票趨勢變化的類神經網路模型,一旦得到模型後,我們就可預測未來的股票變化。

圖2 類神經網路的用途

類神經網路預測

基本原理

上述有提到類神經網路是企圖用一套數學的方法去描述真實世界運作的模式,使得我們可從輸入預測相對應的輸出,到底類神經網路的預測是如何實現的呢? (此處為初步介紹,更詳細的介紹可參考類神經網路—前向傳播法

首先,為了方便簡單了解類神經網路計算的概念,我們只考慮一個很簡單的情形,就是只有一個節點,節點的左邊為輸入,節點的右邊為輸出。假設輸入為1和x,1代表常數,x代表輸入的變數,連結到這個節點的線,上面分別對應的b為偏差值,w為權重。輸入到這個節點當中運算的方式,基本上就是以線性方式計算wx+b,然後再將這個操作代入函數f(又稱為啟動函數或活化函數,詳細介紹可參考(1.類神經網路—啟動函數介紹(一): 深入解析Relu與Sigmoid函數:如何影響類神經網路的學習效果?2.類神經網路—啟動函數介紹(二): 回歸 vs. 分類: 線性函數與Tanh函數之原理探索 3.類神經網路—啟動函數介紹(三): 掌握多元分類的核心技術:不可不知的softmax函數原理 4.類神經網路—啟動函數介紹(四): 如何選擇最適當的啟動函數?用一統整表格讓您輕鬆掌握)當中,才會得到最終輸出為f(wx+b)。

這樣的計算方式就是類比於人體神經網路的結構,x代表的是接受來自上個神經元的輸入,到神經元的細胞體中,會決定要有多大的強度,才將這個訊號傳給下個神經元,此時的輸出訊號即為f(wx+b)。

圖3 節點計算說明

從數學上來看輸入與輸出的關係為f(wx+b),先只看函數裡面wx+b的意思,就是當今天從輸入端有個訊號傳進來,就會用權重去判定這個輸入的重要性,如果權重越大,就代表重要性越高。再將wx+b代入到函數當中形成f(wx+b),表示為wx+b大小,不見得能完全反應在f(wx+b),有可能wx+b很大,但最後出來f(wx+b)就很小。

這個就是類比成神經元的概念,當今天訊號傳進來,訊號就是為wx+b,儘管輸入訊號wx+b大,但如果wx+b大的幅度沒有超過神經元的閥值,神經元就不會反應,而最終輸出的訊號就是零。

也是因為有這個函數f的概念,因為這個函數f,有可能為非線性的函數,就可以讓我們描述輸入與輸出之間複雜的關係。

類神經網路架構

一般類神經網路架構如同下圖所示,分為輸入層,隱藏層,輸出層。輸入層是我們預先給定的輸入,而隱藏層是計算過程中的結果,通常我們不會關注在隱藏層的計算結果,因為這只是類神經網路運算過程中的情形,通常我們比較在乎的是最終計算的結果符不符合預期,而最終的計算結果就是會顯現在輸出層。(有關網路架構調整可參考類神經網路—揭開網路架構調整秘辛

一般而言,隱藏層可以有很多層,這邊是簡化表示,以一層當作代表。而在不同層下面,就會對應到若干節點,節點數目也是可以調控。

圖4 類神經網路架構

基本上運算的方式就是給定輸入後,只要決定每一條線上的權重跟偏差值,我們就可以採用一開始講的計算原理,一路從左邊計算到右邊的輸出。可以了解到在這麼複雜的架構下,輸出連結到輸入的數學關係,就是函數的函數的函數等等的關係,就是因為數學上有著複雜的關係,才可以用這套方法,用在找出一群資料點當中,輸入與輸出之間的關聯性。

類神經網路模型訓練

類神經網路如何找出輸入與輸出的關係?

類神經網路的學習方式其實就是透過數據去學習。而類神經網路學習方法又稱作是監督式的學習(詳細過程可參考機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法),因為在數據當中,不只要給定輸入,還要給定輸出,輸出其實就是標準解答,告訴類神經網路這個輸入就是對應到這個輸出(標準解答),才能讓類神經網路看過大量數據之後,不斷的自我學習成長。最終才能給定未知的輸入,也能準確預測相對應的輸出。(根據輸出特性的不同,須將問題類別釐清才能對症下藥,可參考機器學習面臨的問題種類介紹:回歸與分類

圖5 資料點示意圖

模型訓練方法

在給定訓練數據後,類神經網路該如何學習呢?(有關模型訓練文章可參考以下四篇文章: 1.類神經網路—反向傳播法(一): 白話文帶您了解反向傳播法 2.類神經網路—反向傳播法(二): 淺談梯度 3.類神經網路—反向傳播法(三): 五步驟帶您了解梯度下降法 4.類神經網路—反向傳播法(四): 揭開反向傳播法神秘面紗 5.類神經網路—反向傳播法(五): 用等高線圖讓您對學習率更有感)

類神經網路的學習方法是採用反向傳播法,簡單來說,當我們任意給定一組權重跟偏差值到類神經網路當中,依照我們預先給定的輸入,就可預測相對應的輸出值,而此時我們將這個輸出與標準答案相比,這之間的差距我們就稱為損失,損失又可看作是誤差值,代表我們預測的結果與標準答案偏離多少。這邊假設我們只有一個權重需要決定,這時候我們就可以畫出損失空間圖形,也就是縱軸是損失,橫軸是權重,可以預期的改變不同的權重,就會有不同損失,我們把這些結果畫起來就可得到損失變化的曲線。

而我們的目標就是找到一組權重,使得這組權重計算上所得到的損失是最小的,這組權重就會被我們視為是最佳的權重,代表類神經網路可最完美描述輸入與輸出之間的關係(因為預測輸出最貼近標準解答)。

而實際上在計算過程中,是看不到損失變化的圖形,反向傳播法的精神就是旨在用最有效率的方式,快速找到損失變化的最低點。如此一來,我們才可在短時間內得到訓練完成的類神經網路模型。

圖6 損失函數圖形

本文影片介紹:

[類神經網路基礎系列專文]:

1.類神經網路(Deep neural network, DNN)介紹

2.類神經網路—揭開網路架構調整秘辛

3.類神經網路—啟動函數介紹(一): 深入解析Relu與Sigmoid函數:如何影響類神經網路的學習效果?

4.類神經網路—啟動函數介紹(二): 回歸 vs. 分類: 線性函數與Tanh函數之原理探索

5.類神經網路—啟動函數介紹(三): 掌握多元分類的核心技術:不可不知的softmax函數原理

6.類神經網路—啟動函數介紹(四): 如何選擇最適當的啟動函數?用一統整表格讓您輕鬆掌握

7.類神經網路—前向傳播法

8.類神經網路—反向傳播法(一): 白話文帶您了解反向傳播法

9.類神經網路—反向傳播法(二): 淺談梯度

10.類神經網路—反向傳播法(三): 五步驟帶您了解梯度下降法

11.類神經網路—反向傳播法(四): 揭開反向傳播法神秘面紗

12.類神經網路—反向傳播法(五): 用等高線圖讓您對學習率更有感

[機器學習基礎系列專文]:

1.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法

2.機器學習面臨的問題種類介紹:回歸與分類

3.機器學習訓練: 批次訓練(mini-batch)是什麼?為何它可解決龐大數據面臨的痛點?

4.機器學習訓練完成的陷阱:何謂局部最小值?如何避免陷入局部最小值?

5.淺談關於機器學習訓練—不可不知的事情

6.淺談超參數:控制機器學習模型性能的關鍵因子

[類神經網路延伸介紹]:

1.卷積類神經網路(Convolution neural network,CNN)介紹

2.遞迴類神經網路(Recurrent neural network,RNN)介紹

[ChatGPT系列專文]:

1.淺談最近非常火紅的ChatGPT背後可能原理機制為何?

2.從ChatGPT探索GPT的原理概念:少量數據的解方—遷移學習技巧

3.ChatGPT是什麼?探索GPT原理:遷移學習(transfer learning)的奧秘—微調(fine-tuning)技巧

4.從自編碼器(autoencoder)到ChatGPT架構:探索大型語言模型(LLM)的原理與基本概念