李宏毅機器學習課程筆記-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)\),梯度下降算法如下(若模型有多個參數,按相同方法更新各參數)

  1. 初始化參數

    隨機選取一個\(w^0\)\(w^0\)並不一定是隨機選取),令\(w=w^0\)

  2. 計算梯度

    \(\frac{dL(f)}{dw}|_{w=w^0}\)

    如果小於0,此時\(w\)增大則\(L(f)\)會減小;如果大於0,此時\(w\)減小則\(L(w)\)會減小。

    如果模型有多個參數,則計算損失函數在各個參數方向上的偏導數。

  3. 更新模型參數

    \(w^1=w^0-lr\frac{dL(f)}{dw}|_{w=w^0}\)

    \(w\)的變化量取決於梯度和學習率(Learning Rate)的大小:梯度絕對值或學習率越大,則\(w\)變化量越大。

    如果模型有多個參數,則用上一步計算出的偏導數對應更新各參數。

  4. 重複第2步和第3步

    經過多次參數更新/迭代(iteration),可以使損失函數的值達到局部最小(即局部最優,Local Optimal),但不一定是全局最優。


Github(github.com):@chouxianyu

Github Pages(github.io):@臭鹹魚

知乎(zhihu.com):@臭鹹魚

博客園(cnblogs.com):@臭鹹魚

B站(bilibili.com):@絕版臭鹹魚

微信公眾號:@臭鹹魚的快樂生活

轉載請註明出處,歡迎討論和交流!