--- tags: Neural Network, Deep Learning --- # 從零開始的深度學習 現在正紅的AI,其精隨正在於深度學習、類神經網路, 簡而言之,可以想像成「把所有的問題化成參數量超多的聯立方程式」, 也就是 y = ax + b 情況的複雜版 ## 背景知識 常見的深度學習專有名詞,可以聽到捲基層(convolution layer)、池化層(pooling layer)、 全連接層(Fully Connected Layer)...... 以下會一一介紹 ## 捲基層(convolution layer) 卷積運算就是將原始圖片的與特定的Feature Detector(filter)做卷積運算(符號⊗), 卷積運算就是將下圖兩個3x3的矩陣作相乘後再相加, 以下圖為例 0*0 + 0*0 + 0*1+ 0*1 + 1 *0 + 0*0 + 0*0 + 0*1 + 0*1 =0 ![](https://i.imgur.com/EDaicP7.png) 依序做完整張表 ![](https://i.imgur.com/RP7rLoi.png) --- ### 池化層 在Pooling Layer這邊主要是採用Max Pooling,Max Pooling的概念, 很簡單只要挑出矩陣當中的最大值就好, Max Pooling主要的好處是當圖片整個平移幾個Pixel的話對判斷上完全不會造成影響, 以及有很好的抗雜訊功能。 ![](https://i.imgur.com/Jy83JAk.png) ![](https://i.imgur.com/LGlJPT3.png) ### Fully Connected Layer 全連接層 基本上全連接層的部分, 就是將之前的結果攤平之後接到最基本的神經網絡了 ![](https://i.imgur.com/enbq6Eg.png) ![](https://i.imgur.com/Zd3j5c4.png) ![](https://i.imgur.com/KfGuw8G.png) --- ## 額外的架構 ### 長短期記憶網路(Long Short-Term Memory) LSTM適合於處理和預測時間序列中間隔和延遲非常長的重要事件, 但有研究顯示,若時間長度不夠長,使用時間序列的CNN效果會比較好, 大概提升2%左右的準確度 ### 自動編碼器(Auto Encoder) 自動編碼器用於分類,聚類和特徵壓縮, 其架構就是由編碼器(Encoder)、解碼器(Decoder), 編碼器就是由數個CNN與Maxpooling做成, 解碼器是由Upsampling或是 learnable Upsampling、Deconvolution, 如下圖所示, ![](https://i.imgur.com/krIK5iU.png) ### 生成對抗網路(Generative Adversarial Network) 是非監督式學習的一種方法,通過讓兩個神經網路相互博弈的方式進行學習 生成對抗網絡由一個生成網絡與一個判別網絡組成。 生成網絡從潛在空間(latent space)中隨機取樣作為輸入,其輸出結果需要盡量模仿訓練集中的真實樣本。 判別網絡的輸入則為真實樣本或生成網絡的輸出,其目的是將生成網絡的輸出從真實樣本中盡可能分辨出來 而生成網絡則要盡可能地欺騙判別網絡。兩個網絡相互對抗、不斷調整參數, 最終目的是使判別網絡無法判斷生成網絡的輸出結果是否真實 ![](https://i.imgur.com/GkvWZPp.jpg) ### 圖卷機網路(Graph Convolutional Network) CNN的捲積不是數學定義上的連續捲積,而是一種定義的離散捲積。 我們用這種捲積來處理圖像(image),從圖像中提取特徵, 並且透過神經網路來學習捲積的權重(weight)。 以下所稱的捲積都是指這種局部的離散捲積。 ![](https://i.imgur.com/bbuRnWm.png) 要了解圖的Convolution,要先了解Convolution本質上是一種aggregation操作, 它是一種局部加權平均的運算。 對圖的頂點(vertex)來說,局部指的是它的鄰居, 而它的鄰居由邊(edge)的存在與否,綜合邊的權重(weight)大小去定義。 簡單起見,把有邊(edge)的權重都定為1,沒邊(edge)的權重都定為0 ![](https://i.imgur.com/FrFIfok.png) ###### tags: `Neural Network` `Deep Learning`