什麼是機器學習
- 機器學習(Machine Learning),就是利用機器的力量幫忙找出函式。
- Input 可以是
- Output 可以是
- Regression
- Classification
- Structed Learning(令機器產生有結構的東西 eg. text, image)
示意圖

什麼是深度學習
深度學習(Deep Learning),就是利用神經網路(neural network)的方式來產生函數。機器如何學習#
1. 基本原理(訓練三步驟)#

Step 1: 使用合適的 Model
- y=f(data)
- Function with unknown parameters
- Model: y=b+wx1
- w:weight
- b:bias
- x:feature
Step 2: 定義 Loss function
- Define loss from training data
- 以 Model 的參數 w,b 來計算 Loss
- 物理意義:Loss 愈大代表參數愈不好,Loss 愈小代表參數愈好。
- 計算方法:求估計的值與實際的值(label)之間的差距
- Loss function: L=N1n∑en
- MAE (mean absolute error): e=∣y−y^∣
- MSE (mean square error): e=(y−y^)2
- Cross-entropy: 計算機率分布之間的差距
- Error Surface: 根據不同的參數,計算出 loss 所畫出來的等高線圖。

Step 3: Optimization
找到 loss 最小的參數組合 (w,b)方法:Gradient Descent- w’=w−η∂w∂L∣w=w0,b=b0
- b’=b−η∂b∂L∣w=w0,b=b0
- η: 學習率 learning rate, 決定 gradient descent 的一步有多大步

2. Linear Model#
- f←y=b+j=1∑nwjxj
- 不只考慮前一天的觀看人數 x1,也考慮前二~七天 x2,x3,…,x7。
- 當參數變多時,命中率可望有效提升。
3. Piecewise Linear Curves(Sigmoid)#
- Sigmoid Function:y=c1+e−(b+wx1)1=c sigmoid(b+wx1)
- 將 wixi 替換成 ci sigmoid(bi+wixi)
- 特徵為1時,y=b+i∑ci sigmoid(bi+wix1)
- 特徵>1時,y=b+i∑ci sigmoid(bi+j∑wijxj)
- 意義:一條曲線可以由多個鋸齒狀的線段(hard sigmoid)的總合,我們可以用 sigmoid 函數來逼近 hard sigmoid。事實上,sigmoid 的個數就是神經網路中一層 neuron 的 node 數,至於使用幾個 sigmoid 是 hyper parameter。

可將公式轉成矩陣計算+激勵函數的形式:

- 以線性代數方式表示:y=b+cTσ(bi+Wx)
- 將 b、bi、W、cT 等所有參數統稱為 θ
- 故 Loss 可表示成 L(θ)
- 重覆 gradient descent 的方法,更新(update) 參數。
- 梯度 gradient,g=
⎣⎡∂θ1∂L∣θ=θ0∂θ2∂L∣θ=θ0⋮⎦⎤=∇L(θ0)
- 更新(update)計算:⎣⎡θ11θ21⋮⎦⎤←⎣⎡θ10θ20⋮⎦⎤−⎣⎡η∂θ1∂L∣θ=θ0η∂θ2∂L∣θ=θ0⋮⎦⎤
- 或寫成 θ1←θ0−ηg
batch training

- 將樣本依批次(batch)進行更新,當所有的 batches 都跑過一遍,稱為一個 epoch
4. ReLU#
- 用 hard sigmoid 的方式來表示。
- 其每一個 hard sigmoid 由兩個 Rectified Linear Unit(ReLU) 組成,
- 每一個 ReLU 寫成:c max(0,b+wx1)
- 故 Model 可以寫成:y=b+2i∑max(0,bi+j∑wijxj)
- 其中我們選用來逼近的函式,稱為 Activation function。
深度學習#
- Neural Network
- y=b+cTσ(bi+Wx)
- Multiple hidden layers -> Deep learning
