Regression:Output a scalar。
Regression可以用於預測股票市場、無人駕駛、推薦系統,這裏的例子是可以預測寶可夢的CP值
Step 1:Model
所謂的Model就是a set of function。在這個例子中,我們可以把function寫成
y=b+w⋅xcp,因爲b跟w可以帶入各種值,所以function有無窮多個。這個model我們稱之爲Linear model:y=b+∑wi⋅xi (wi:weight,b:bias).
Step 2:Goodness of Function
首先準備好training data
我們需要使用Loss Function衡量function的效果好壞
Loss Function L: Input:a function,output:how bad it is
此時,可以如下定義Loss Function:
將Loss Function可視化繪圖,圖上每個點就是一個function,圖上藍色代表loss value很小,紅色代表loss value很大
Step 3:Best Function
可以用線性代數迅速求得解。還可以使用更general的方法,能夠用在各種不同的task上,這個方法就是Gradient Descent(梯度下降).
Gradient Descent首先隨機選取初始值,然後計算此處切線的斜率,斜率如果小於0,如圖上小猴子位置,顯然切線左邊高右邊低,此時應該把參數向右邊移以減少Loss的值。如果斜率大於0,說明切線左邊低右邊高,應該把參數向左邊移以減少Loss的值。
learning rate控制學習速度的快慢
有時候經過多次迭代會停在local minima,不是我們想要的global minima,所以不同的隨機會得到不同的結果,很看人品
當有兩個參數的時候,Gradient Descent的過程如上圖所示
Gradient Descent可視化過程如上圖所示。顏色代表Loss的值,越深代表值越小
參數如果走到一個saddle point(鞍點),Gradient Descent也會停下來
公式推導
How’s the results?
可以看出,在Testing Data的error略大於Training Data的error
Selecting another Model
根據上面的模型我們發現, 越複雜的model在訓練集上的error越小
一個比較複雜的model並不一定總是在testing data上給我們比較好的performance。
Overfitting就是model在training data上表現很好,在testing data上表現不好。
應對Overfitting的方法:
-
收集更多的數據。
-
以前的模型有一些隱藏的因素沒有考慮進去。所以我們需要重新設計一番
根據寶可夢種類採用不同的function
Regularization(正則化)
我們使用新的Loss Function:
使用這個Loss Function找到的最好的function不止可以讓L最小,同時還要是w很小的function。w很小的Function意味着Function是smooth(平滑)的。我們相信在多數的狀況下,smoother function更像是正確的function。λ設置的大一些,找到的function就會越smooth。
從上圖中可以發現,λ越大,Training Error越大。
我們希望選到smooth function,但是不要too smooth。
選擇λ,獲得最好的model。