机器学习的步骤主要分为三步:找模型——评估模型——找到最好的模型
找模型
假设采用线性模型\(y=b+\sum w_{i} x_{i}\),\(x_i\)是输入的各种attribute被称为feature
评估模型
知道模型是否好坏需要定义Loss function,来衡量一组参数的好坏
\[\mathrm{L}(w, b)=\sum_{n=1}^{10}\left(\hat{y}^{n}-\left(b+w \cdot x_{c p}^{n}\right)\right)^{2} \]找到最好的模型
\[\begin{aligned} &f^{*}=\arg \min _{f} L(f) \\ &w^{*}, b^{*}=\arg \min _{w, b} L(w, b) \\ &\quad=\arg \min _{w, b} \sum_{n=1}^{10}\left(\hat{y}^{n}-\left(b+w \cdot x_{c p}^{n}\right)\right)^{2} \end{aligned} \]其中arg表示取自变量(输入)
Gradient Descent的适用前提是函数可微分,Gradient Descent的解决步骤:
- 随机选取一个初始值\(W^0\)
- 计算函数在\(W^0\)处的微分值(函数为凸函数),\(w^{1} \leftarrow w^{0}-\left.\eta \frac{d L}{d w}\right|_{w=w^{0}}\)(\(\eta\)是学习率,learning rate)
- 微分值为负,需要增加自变量的取值
- 微分值为正,需要减小自变量的取值
- 计算函数在\(W^1\)处的微分值,重复上述步骤直到微分值为0
复杂的model在train data上可以得到更好的结果,但不一定在testing data上得到更好的效果,这种现象就是Overfitting
Regularization
解决过拟合问题,修改Loss function为\(L=\sum_{n}\left(\hat{y}^{n}-\left(b+\sum w_{i} x_{i}\right)\right)^{2} {+\lambda \sum\left(w_{i}\right)^{2}}\)
期望输出的参数越接近0,输出对输入改变越不灵敏,Loss function越平滑