## SCAICT 三月課程第二堂
### 機器學習理論與實作(一)aka數學先修班
<br>深度學習
---
## 簽到

---
## 從上次作業出發
https://colab.research.google.com/github/ChiuDeYuan/linear_regression_example/blob/main/homework/homework_323.ipynb
---
## 認識sigmoid
----
這是用線性迴歸算出來的擬合曲線

----
但是有許多不合理處(預測值>1或<0)

----
而且這條方程式有點太過生硬

----
所以就有了sigmoid

----
$sigmoid(x)=\frac{1}{1+e^{-x}}$

----
sigmoid將值域縮在0~1

也就是將輸入值map到0~1區間的值
----
所以就可以進行比較準確的二元分類了

----
### 但不是這樣(也是可以啦)

----
因為這條直線才是$x$的函數

----
所以我們把線性方程式的預測值先畫出來

注意這個數據是經過剛剛的線性方程式算出來的
----
然後再用sigmoid

這有點像是屬於類別為1(有糖尿病)的機率
----
### 這就是邏輯迴歸
----
比較 線性&sigmoid
<div style="display:flex;"><img src=https://hackmd.io/_uploads/rkSrxD5Ap.png>
<img src=https://hackmd.io/_uploads/By3FGzrJR.png></div>
----
### 但是sigmoid適用於所有分類問題嗎?
----
# NO
----
## 因為每種資料的分布都不一樣
例如高斯、白努利、泊松...
----
所以顯然sigmoid比較適用於二元分類
其他種資料有不同預測曲線
----
#### 事實上這個預測曲線是由
### 廣義線性模型<br>Generalized Linear Models
#### 推廣而來
----
### 但沒有時間
### 有興趣自己去查
----
### 只要知道對於不同任務<br>我們可以選擇一個適合的方式來預測
例如Gaussian分布資料就用線性恆等函數
Bernoulli就用sigmoid
---
### 另一種函數
## ReLU
### 線性整流單元
#### Rectified Linear Unit
----
我們前面預測房價的曲線可能會有負值

----
所以我們需要ReLU

----
$relu(x)=max(x, 0)$

----
ReLU跟sigmoid都是一種函數
將輸入的$x$映射至另一個值
----
也可以說我們的資料先經過**線性方程式**
再透過ReLU或sigmoid輸出最終預測

----
### 其他種轉換函式

---
## 深度學習
----
### 單個神經元(感知器)

>w : 之前的$\theta_1$~$\theta_d$
>b : 之前的$\theta_0$
----
我們把計算結果這樣表示
$a=f(w^Tx+b)$
>$f(x)$ : 活化函數
>w : 之前的$\theta_1$~$\theta_d$
>b : 之前的$\theta_0$
----
### 複雜思考

----
我們可以這樣表示每個神經元
$a_1=ReLU(w_1x+w_2x+b_1)$
$a_2=ReLU(w_3x+b_2)$
$a_3=ReLU(w_4x+w_5x+b_3)$
>$a$ : 該神經元的輸出值
----
最後輸出(最後一個神經元)
$\bar h_\theta(x)=w_6a_1+w_7a_2+w_8a_3+b_4$
---
## 活化函數


----
### 引進非線性要素
----
如果沒有活化函數則是一個線性模型
$\begin{aligned}h_\theta(x)&=W^{[3]}W^{[2]}W^{[1]}x\\&=\hat Wx\end{aligned}$
----
非線性問題

----
### 神經元閾值
----
神經電位

----
真實神經元的activation function

----
各種activation function

---
## 訓練的神經網路流程
----
* 設計神經網路架構
* 初始化權重(w、b)
* 優化權重
* 預測
---
## 神經網路架構
----
各層功能

* 輸入層(input layer) : 讀取特徵
* 隱藏層(hidden layer) : 學習權重
* 輸出層(output layer) : 讀出預測
----
神經元數量

* 輸入層(input layer) : 特徵數量
* 隱藏層(hidden layer) : 模型複雜程度
* 輸出層(output layer) : 1 or 類別數量-1
----
#### 前饋神經網路(FNN)

你也可以把它叫做多層感知器(MLP)
是最簡單的神經網路模型
----
### 一些神經網路種類
* 前饋神經網路(FNN)
* 卷積神經網路(CNN)
* 長短記憶(LSTM)
* 循環神經網路(RNN)
* 圖神經網路(GNN)
---
## 沒了

---
### 回饋表單

深度學習實作等下次課程,還有一些東西沒講
---
{"title":"三月主題課程第二堂","description":"type:slide","contributors":"[{\"id\":\"8270ce89-c16d-4965-af18-50cdee721260\",\"add\":6112,\"del\":1711}]"}