李宏毅機器學習課程筆記-2.1線性回歸模型
回歸模型應用案例(Regression Cases)
-
股票市場預測(Stock Market Forecast)
預測某個公司明天的股票情況
-
自動駕駛車(Self-Driving Car)
預測方向盤轉動角度
-
推薦系統(Recommendation)
預測某用戶購買某商品的可能性
線性回歸模型(Linear Regression Model)
如\(y=f(x)=w\cdot x+b\)
-
\(y\)是輸出;
\(\hat y\)是真實值/標籤(label)
-
\(w\)是權重(weight);
-
\(b\)是偏置(bias);
-
\(x\)是輸入(input),也可叫做特徵(feature)
數據集中一般包含多個object,每個object一般包含多個component。此時,上標是object的索引,下標是component的索引。
-
損失函數(Loss Function)
如果不考慮模型的好壞,衡量一個函數的好壞,其實是衡量模型參數的好壞。
以線性模型為例,就是衡量參數\(w\)和\(b\)的好壞。如\(L(f)=L(w,b)=\sum_{n=1}^{10}(\hat y-(b+w\cdot x^n))^2\),把所有樣本誤差的平方和作為損失函數
-
輸入
一個函數
-
輸出
多麼地不好(how bad it is)。損失函數值越大,則這個函數越差、與數據集中內容越不相符。
-
梯度下降(Gradient Descent)
梯度下降可以優化損失函數的值,使其盡量小,即可找到最好(在數據集上擬合效果最好)的模型參數。
現在假設模型\(f\)中只有一個參數\(w\),則損失函數為\(L(f)=L(w)\),梯度下降算法如下(若模型有多個參數,按相同方法更新各參數)
-
初始化參數
隨機選取一個\(w^0\)(\(w^0\)並不一定是隨機選取),令\(w=w^0\)。
-
計算梯度
\(\frac{dL(f)}{dw}|_{w=w^0}\)
如果小於0,此時\(w\)增大則\(L(f)\)會減小;如果大於0,此時\(w\)減小則\(L(w)\)會減小。
如果模型有多個參數,則計算損失函數在各個參數方向上的偏導數。
-
更新模型參數
\(w^1=w^0-lr\frac{dL(f)}{dw}|_{w=w^0}\)
\(w\)的變化量取決於梯度和學習率(Learning Rate)的大小:梯度絕對值或學習率越大,則\(w\)變化量越大。
如果模型有多個參數,則用上一步計算出的偏導數對應更新各參數。
-
重複第2步和第3步
經過多次參數更新/迭代(iteration),可以使損失函數的值達到局部最小(即局部最優,Local Optimal),但不一定是全局最優。
Github(github.com):@chouxianyu
Github Pages(github.io):@臭鹹魚
知乎(zhihu.com):@臭鹹魚
博客園(cnblogs.com):@臭鹹魚
B站(bilibili.com):@絕版臭鹹魚
微信公眾號:@臭鹹魚的快樂生活
轉載請註明出處,歡迎討論和交流!