# 陽明交大資訊人才培訓 期末考 ###### tags: `機器學習` 關於過擬合(overfitting):(20%) --- **如果深度神經網路發生overfitting,可以用哪些方法來改善(至少寫出三個方法,並個別解釋為何可以改善)。(10%)** **「研究題」:請解釋 underfitting 和 overfitting 的不同,並舉例說明如何判斷模型是 underfitting 或 overfitting?(10%)** 1. 當深度神經網路發生過渡擬合時,可以透過增加訓練資料數量、正規化和增加拋棄層來優化過度擬合的問題。 增加訓練資料數量:當一神經網路接收到更多筆訓練資料,他才能更有效、更完善的學習有關目標問題的各個細節。每一筆訓練資料都可以被轉為表徵,更多筆訓練資料可以更有機率的增加神經網路對於目標問題理解的程度,進而在測試上可以得到更好的表現。 常規化:常規化可以限制假設空間中能挑選的範圍,更具體來說,像是限制神經元權重的大小範圍,這樣就可以避免學習演算法在挑選模型時挑到比較複雜的模型。常規化可以限制學習演算法挑選比較簡單的模型來讓模型更有彈性。 增加拋棄層:加入拋棄層可以增加模型的一般性,神經網路在訓練時有時會遇到某些神經元被假設了卻沒有參與計算,這樣的神經元會增加模型的複雜度,而增加拋棄層可以剪掉一些表現較差的神經元來降低模型的複雜度。 2. underfitting 是當模型複雜度過低,模型不夠有彈性時,導致學習率過低,讓模型無法從訓練資料中學習到正常數量的表徵。underfitting的情形可以從損失中來發現,當模型經過大量資量訓練後,損失仍依舊不變或是變動的很少,就有可能是underfitting,因為此模型並沒有有效學習到訓練資量給的資訊,導致損失無變動,可以想像成沒有學到資料給的特徵,因此一直再犯同樣的錯誤。 overfitting 是當模型複雜度過高,模型過於彈性,太容易相信資料,導致學習率過高。因為每一筆訓練資料都存在著一定的噪音、或誤差,而overfitting會過度學習這些資訊,讓每一筆訓練資料都能答對,卻無法在測試資料上有良好的表現,就像把整張複習卷都背下來,考試時卻一題都不會寫。overfitting的情形可以從訓練和測試的正確率來發現,當模型學習訓練資料給的資訊後,能完全的還原訓練資料裡所有資訊,因此訓練的正確率會很高,但在測試時因為學習了訓練資料裡的所有內容,導致無法變通,在測試時正確率會降低。 關於深度神經網路中隱藏層的激活函數(Activation Function),請寫出:(20%) --- **相較於 Sigmoid函數,Relu 函數在深度神經網路的隱藏層之間更常作為激活函數來使用,原因為何?可畫出函數圖形說明。(10%)** **「研究題」:還有很多不同的激活函數,例如 LeakyRelu 和 Tanh ,請比較四者( Sigmoid、Relu、LeakyRelu 、 Tanh)的差異,並說明通常什麼情況下使用哪一個激活函數,以及其原因(10%)** 1. 在更新神經網路的參數時需用到微分來在層與層之間回推計算每個參數的變量,因此Relu 函數比 Sigmoid 函數更常被用到這件事可以從兩函數微分後(附圖)來觀察。訊號再層與層之間往回傳遞時經過 Sigmoid 函數,因為 Sigmoid 函數定義中只會回傳特定大小的訊號,甚至還會削弱,這可能會導致訊號到最後不見了,梯度消失的問題。相反的 Relu 函數在定義上可以保留較大範圍的訊號大小,並且如實地往回傳遞,這樣可以減緩梯度消失的問題。 ![](https://i.imgur.com/WIXhmtd.png) 2. LeakyRelu 屬於 Relu 的變化函數,本體與 Relu 相似,只是在x<0時還會有斜率,不像Relu 當x<0時y=0。這樣的特性可以避免當傳遞過來的訊號是負數時,Relu 會把訊號洗掉,而 LeakyRelu 則是會保留部分訊號。同樣 Relu 和 LeakyRelu 都是用於處理回歸問題,因為他們都會保留原本的訊號,但 LeakyRelu 可以提升訓練時的效率,因為 Relu 的把訊號洗掉這個特性會導致某些神經元沒有參與計算(因為沒有訓號),LeakyRelu 可以保留部分訊號來讓這些神經元持續參與計算,有可以保證一定的權重(因為這樣訊號會比較弱,相對加權後全中也比較小),但是也相對的,LeakyRelu 會增加模型訓練時的計算量。 tanh 屬於 Sigmoid 的變化函數,本體與 Sigmoid 相似,只是 tanh 的 y 範圍為 -1 ~ 1 而 Sigmoid 則是 0 ~ 1。這樣的特性不但可以保留部分複數的訊號,還可以用於另類的表示所有數字(轉換任意數字成介於-1和1的小數)。Sigmoid 常被用於呈現機率分布,因為他的有效範圍是0 ~ 1,而 tanh 則是用於常規化和限制訊號大小。 在機器學習領域中,關於特徵(feature)和表徵(Representation) :(25%) --- ***請寫出特徵(feature)和表徵(Representation)兩者的不同。(5%)*** **「研究題」: Word Embedding是什麼?(5%)它屬於特徵還是表徵?(5%)** **「研究題」: Feature Map是什麼?(5%)它屬於特徵還是表徵?(5%)** 1. 特徵是可以直接從資料上看到並取得用來表示某訊息的資訊,而表徵則是學習過後對於某物的內在認知象徵。特徵是資料實際表現出用來描述此筆資料的資訊,而表徵則是一假設性,基於特徵而構建的能表示外在現實的內在認知。 2. Word Embedding 是一將文字依據其意義而轉換成的矩陣空間。此舉陣空間將文字用距離隔開,進而表示字與字之間的關聯性與意義的相似性。Word Embedding 屬於表徵,因為他是經過學習文字之間的排列與關聯得來的一對於每個文字的理解的內在認知,並用距離來在高維空間中表示每個文字之間存在的意義。此舉陣空間是基於訓練資料文字上的特徵學習而來的關聯表徵。 3. Feature Map 是 CNN 中透過不同的 filter 所截取到的圖片特徵,並切將他會製成一張表來整理出一張圖片中出現的特徵。更具體的來說,像是如果要擷取圖片中物品的輪廓,則會將圖片銳化來取得其特徵,而這些 filter 都是透過訓練卷積核所獲得的。Feature Map 為特徵因為它呈現出了從訓練資料中擷取到的特徵,並且可以用於之後的表徵學習。 關於深度神經網路(Deep Neural Network):( 40%) --- **深度神經網路(Deep Neural Network)相較於傳統機器學習,較不需要人工選取特徵,試討論原因為何。(10%)** **試描述摺積神經網路(Convolutional Neural Network, CNN)架構、運作原理以及它的應用範圍。(10%)** **試描述遞迴式神經網路(Recurrent neural network, RNN)架構、運作原理以及它的應用範圍。(10%)** **「研究題」:最近研究領域熱門的Transformer是什麼?請描述其架構、運作原理以及它的應用範圍。(10%)** 1. 傳統機器學習因為基於計算機運算能力的限制,無法高效處理較為複雜的機器學習模型,特徵也需要依靠經驗去人工挑選。不過隨著計算機運算能力進步,較為複雜的深度神經網路可以被有效處理,這樣就可以達到自動提取適合的特徵的效果,這是因為深度神經網路在訓練時不但能學習目標問題的表徵,同時也可以學習要怎麼從資料中提取適當的特徵來提升學習效率。 2. 摺積神經網路通常會分為摺積層和正常的全聯接神經網路。首先摺積核會根據設定滑動跑過整份輸入資料,每一個摺積核可以被視為一個視窗,過程中摺積核會對視窗中的資料進行摺積,因為摺積後仍是線性資料,所以會把輸出存入一較高維的矩陣中。重複此過程後會得到一個面積較小但較高維的矩陣,這高為矩陣中每一層矩陣都叫特徵圖,最後得到的面積小但維度高的矩陣會被轉成線性矩陣來當作全聯接神經網路的輸入,這些輸入都可以被看作爲特徵而訓練出來的摺積合參數為表徵。摺機神經網路最常被用於圖像辨識,因為圖片可以剛好被轉成矩陣,適合用來做摺積,但哲基神經網路也可以用來處理其他可以轉成巨震的資料。 3. 遞歸神經網路通常只會保留一個結構並且透過記憶傳遞來不斷重新輪迴此結構,和普通神經網路不一樣因為遞歸神經網路有順序性,而普通神經網路的每個神經元只是上一層的加總而已。首先會有一層神經網路的向量,而每個輸入資料會經過一個U來轉成一個較小的向量並加入下一個時間點的神經網路中,同時現在的隱藏狀態h需要經過一個學習得到的權重W(決定哪些記憶重要),這個W會是一個矩陣,將這兩的東西加起來後再經過一個激活函數就會成為這個時間點的預測值,並傳入下一個時間點。遞歸神經網路最常被用於處理序列資料、順序性很重要的資料,更有人加以改進後用於機器翻譯。 4. Transformer 模型為加入了注意力機制的序列處理的神經網路模型,其中包含了編碼器、解碼器與注意力機制。首先輸入資料會被編碼器轉換為文字的表徵,其中會透過注意力機制學習哪些文字和哪些文字是這整段序列的重點,並且依據注意力機制學習到的如何將注意力轉移到某些地方上來調整文字的權重,進而達到訓練出能夠呈現文字先關聯性大小的表徵,隨後再透過解碼器將表徵轉換成適當的序列。Transformer 模型中優化了一些影響力較小的文字片段,並可以學習將重點放在重要的文字片段上,以提升學習效率。Transformer 模型最常被用於機器翻譯,像是中翻英等等問題,甚至可以被用於大多數序列轉序列問題。