---
# System prepended metadata

title: 深度學習原理與實務 part.II
tags: [DeepLearning, '20200801']

---

# 深度學習原理與實務 part.II
###### tags: `20200801` `DeepLearning`
蔡炎龍
政治大學應用數學系

前有[Part.I](https://hackmd.io/@EM091/B162sHGZv)

## 偏微分
Ｘ偏微分的時候把Ｙ當作常數。（騙人的微分）

## Gradient Descent
很潮

## 第一個神經網路
### TensorFlow
google support

### 手寫辨識
為了方便，圖片要一樣的大小(28x28)

28x28在數學上已經是很大的數字了

MNIST美國國家標準暨技術研究院，有一個手寫辨識的資料集

#### 結構
輸入784 輸出10

#### 手把手
3層隱藏層
第一層：256個神經元
第二層：128個神經元
第三層：64個神經元

## CNN
> 不是全連結的神經網路，也是可以的 - LeCun(Facebook AI Director)
> 

2011 ImageNet 冠軍 XRCE -> SVM是最強的
2012 ImageNet 冠軍 AlexNet -> 狂勝XRCE 10%

> CNN 變成 圖形辨識的天下
> 

### convolution layer
filters 3x3 的大小
大部分都選奇數

做內積，其實就是加權和，只是寫成了矩陣

透過加padding把輸出層的矩陣弄成跟輸入時一樣大

### Max-Pooling
在一個區域當中，選最大值出來

### 結果
可以一直重複 convolution 跟 pooling，最後再加一層Dense收集最終的結果。

> filter會越來越多
> 因為第一層是看比較大的元件
> 隨著每一層會越看越小，就需要更多的filter
> 

### NN vs CNN
如果只有圖都是用CNN
如果是數據，就再說

## RNN
> 有記憶的神經網路

一般神經網路是沒有記憶功能的

> NN CNN RNN 都是標準作法
> 

1. 感覺很像是全連結的神經網路。
2. 比全連結神經網路，還要多的輸入值。

### 經典案例：對話機器人

### 缺點
1. 會有回圈導致無法平行處理
2. 會有梯度消失的問題

### 改良型的RNN
1. LSTM
2. GRU

已經很少使用純正的RNN了。
所以必須使用Vanilla RNN來專指原始版本的RNN。

### 案例：全壘打
輸出前一年的資料預測這一年的資料
看了十年之後再來做預測

最終使用one-hot encoding

只用一層LSTM，看十年預測下一年

因為只預測數字太難，所以改預測區間

## 深度學習心法
如果不知道當然就用ＮＮ
有圖型當然使用ＣＮＮ
有文章就用ＲＮＮ

* 不要只想一種函數去解決問題

1. “我們的model很少第一次就成功的。” - 清華大學陳宜欣老師
2. “數據量大的時候，深度學習通常比一般方法好。”
3. “要相信神經網路一定學得會！” - 交通大學魏澤人老師
4. “學不好的時候考慮一些「正則化」的方法。”

## 超展開的問問題的方式
兩個有趣的模型

### 生成對抗網路
常使用在創作

為什麼要討論AI是否可以創作這個問題？
1. 因為想知道機器是否可以通過圖靈測試
2. 人類是可以透過片段來想像，所以希望機器也可以

> 如果不能創造，那就是不了解 - 費曼

#### 生成模式
輸入特徵向量，生成圖片。
生出照片不是一件難事。

困難的事輸入的特徵要怎麼產生

1. 隨便放
2. AutoEncoder

#### AutoEncoder
latent vector m >> k
兩邊都很胖，中間很瘦的神經網路

等於是有兩個神經網路
前面一段是encoder
後面一段是decoder

但答案是不太行，無法創作

#### VAE
把神秘編碼都符合某個常態分布

但不會有大幅度的創作，無法創造感動

#### GAN
用兩個神經網路來學，而不是一個

1. iGAN
2. Progressive GAN
3. Pix2Pix
4. cycleGAN





