# 深度學習書本資料整理 ## 前饋神經網路(Feedforward Neural Network,FNN) 1. 基本架構 - 輸入層接收資料 - 隱藏層處理資料 - 透過調整輸入層及上層隱藏層參數達成目的 - 輸出層輸出資料 2. 如何進行資料處理 - 每個節點擁有權重(Weight)及偏差(Bias) - 利用激勵函數(activation function)確認數值能否向下傳遞 - 常見激勵函數如 tanh , ReLU(線性整流函式) , sigmoid - 目的是將資料投射到0與1之間 - 完整計算過程: - y= a(W * x + b) 其中x是輸入向量 y是輸出向量 a是激勵函數 ![image](https://hackmd.io/_uploads/S1B7k8IyA.png) ## 卷積神經網路(Convolutional Neural Network,CNN) 1. 目的:為了降低輸入的參數,避免浪費大量算力 2. 原理: - 卷積:大圖片對應小特徵的相似程度 假設今天要判斷一個圖片是否為叉叉,我們可以先將線條分成左上右下及右上左下兩種,如例圖我們先使用左上右下的線條作為我們的kernel,疊合後依序相乘後取平均就得到了一個像素點「附近」跟對應特徵的相似度。 - -1代表1*-1或-1*1,即相反元素疊合在同一個位置 - 1代表1*1或-1*-1,即相同元素疊合在同一個位置 - 取平均後-1代表特徵與每個像素點剛好完全相反,1代表完全符合特徵 ![image](https://hackmd.io/_uploads/HkX5SIU1C.png) - 池化:壓縮圖片的同時盡量保留重要資訊 做法是取相鄰元素中最相似(最大值)的作為代表 ![image](https://hackmd.io/_uploads/S12c_UI10.png) 可以發現上圖經過池化之後資料減少到了1/4,然後我們這時就能做神經網路的處理了 ## Transformer神經網路 - 自我注意機制 在處理文字的時候,我們可以將一長串文字看成是一段序列,若想要求出輸出向量,只要將向量乘以注意力分數後相加即可,下圖為「牠」對每個字的注意力分數 - 這種做法的優點是能夠讓編碼器(decoder)同時關注輸入序列的不同元素,並關注他們長期的相依關係。 - 在開始解碼前會嵌入句首符號< s >並轉換為向量 - 重複解碼動作直到產生< end >特殊符號為止 ![image](https://hackmd.io/_uploads/ryjRutUkC.png)