---
# System prepended metadata

title: 第三章 深度學習的基礎
tags: [AI_book]

---

###### tags:  `AI_book`
# 第三章 深度學習的基礎

# 3.1 認識深度學習
## 前言
> 深度學習是機器學習的分支
> 演算法為模仿人類的大腦的==類神經網路==(Artificial Nerual Networks, ANNs)
## 3.1.1 人工智慧、機器學習、深度學習關係
> 深度學習提高了機器學習的發展，最終幫助實現人工智慧。
## 3.1.2 what is deep learning?
>深度學習是模仿大腦神經元的==神經網路架構==(Nerual Network Architectures)
![](https://i.imgur.com/2d0m4is.png =x300)

> 流程: 資料 -> 輸入層(進入神經網路) -> 隱藏層(經過) -> 輸出層(輸出) -> 結果
> 基本上，2層隱藏層+1層輸入層+1層輸出層 = 深度神經網路 = 深度學習
![](https://i.imgur.com/HSMVWvz.png =x300)
## 3.1.3 深度學習就是一個函數集
> 深度學習的神經網路是使用一個函數集來執行多次矩陣相乘的非線性轉換運算
> 函數集如果完成訓練，把特徵資料送入神經網路
> 經過每層神經元的輸入輸出(將一個向量映射到另一個向量的過程)
> 神經網路 即可輸出最佳解
> ![](https://i.imgur.com/8fVYnlv.png)

> 根據==辨識結果的誤差來調整函數集參數的過程，就是神經網路在進行學習==


# 3.2 深度學習的基礎知識
## 3.2.2 向量與矩陣
> 輸入層送入和輸出層輸出的資料都稱之為==張量==(Tensor)
> 數學上的向量和矩陣就是一種張量
### 向量(Vector)
> 具有大小及方向性，一維陣列表示。
### 矩陣(Martix)
> 類似向量
> 將純量排列成二維表格的列(row)或欄(col)

## 3.2.3 微分與偏微分
> 深度學習簡單的說就是一個數學模型
> 由許多函數組成
> 調整函數及參數即可得到最佳解
> 最常使用==微分與偏微分==
### 微分 Differentiation
> 目的求==瞬間的變化量==
> 單變數的函數
### 偏微分 Partial Differentiation
> 多變數的函數
> 對x微分 或 對y微分
### 連鎖律 Chain Rule
> 因為深度學習的神經網路有很多層，其產生的函數是一種合成函數。
> 合成函數 = 前一層的輸出函數變成下一層的輸入函數
> 範例: f(x) = g(h(x))
> 一層一層向內微分
> 範例: 假設f(x)為合成函數
> ![](https://i.imgur.com/M2u9H9N.png =x350)

# 3.3 深度學習的神經網路-建構你的計算圖
## 3.3.1 神經元
> 深度學習的神經網路 = 模仿人類大腦
> 透過==人工神經元和感知器==模擬腦細胞的神經元
### 腦神經細胞的神經元
> 擁有多輸入，單輸出
> 訊號必須足夠強烈才會被激活
### 人工神經元(Artificial Neuron)
> 數學模型
> 0和1代表訊號
> 使用加權圖形的權重來加權訊號強度
> 依據閥值(臨界值) 判斷是否輸出訊號1或0
> 加總後值 > 閥值，輸出1；小於則反之。

## 3.3.2 感知器 Perceptron
### 認識感知器
> 單一感知器 = 最簡單的二層神經網路
> 輸入層+輸出層
> 加總後會加上一個常數b(偏量bias)，可以幫助我們得到解

## 3.3.3 深度學習的神經網路總類
> Tips: 類神經網路(ANNs)是一個泛稱，包含MLP, RNN, LSTM, CNN, GRU, DNN等等
### 多層感知器MLP (Multilayer Perceptron)
> 傳統類型的類神經網路
> 處理機器學習的==分類與迴歸==
> 前饋神經網路FNN(Feedforward Neural Network) = 單向從輸入層向輸出層的神經網路
> ![](https://i.imgur.com/38PVuaO.png =x250)
### 捲積神經網路CNN (Convolutional Neural Network)
> 模仿人類視覺，==影像處理==
> 輸入層 + 多組捲積層、池化層來萃取特徵 + 輸出層
> 前饋神經網路FNN(Feedforward Neural Network) = 單向從輸入層向輸出層的神經網路
> ![](https://i.imgur.com/hfLjhXc.png =x250)

### 循環神經網路RNN (Recurrent Neural Network)
> 處理==聲音、語言和影片==等序列資料的神經網路
> 擁有==短期記憶能力==的神經網路
> 讓前一次的輸出成為下一次的輸入
> 實務上被 LSTM和GRU取代==很廢==
> ![](https://i.imgur.com/hjDDRdt.png =x250)

# 3.4 深度學習的資料-張量
## 3.4.1 張量的種類
### 0D 張量
> 純量值(Scalar)
> 純量值張量(Scalar Tensor)
### 1D 張量
> 向量
> 一個維度的一維陣列
> 軸數(ndim): 1
### 2D 張量
> 矩陣
> 兩個維度的二維陣列
> 軸數(ndim): 2
### 3D 張量
> 三個維度的三維陣列
> 一維的矩陣
> 軸數(ndim): 3
> 對於真實的特徵資料: 特徵資料擁有==時間間距==(Timesteps)和循序性
### 4D 張量
> 四個維度的四維陣列
> 軸數(ndim): 4
> 例如: 圖片(樣本數, 寬, 高, 色彩數)
### 5D 張量
> 五個維度的五維陣列
> 軸數(ndim): 4
> 例如: 影片(樣本數, 畫面數, 寬, 高, 色彩數)
> 每一秒有多少個畫面

## 3.4.2 張量運算
### 逐元素運算 Element-wise Operations

### 點積運算 Dot Product


