linear regression
LMS(最小均方差算法)
BGD vs SGD
[min J( heta )=frac{1}{2}sum_{i=1}^{m}left ( h_{ heta}(x^{(i)})-y^{(i)}
ight )^{2}
]
当仅有一个样本时:
[frac{partial }{partial heta_j}J( heta)=(h_ heta(x)-y)x_{j}
]
多样本时的更新算法:
BGD
Repeat until convergence:{
for every j:
[ heta_{j}= heta_{j}-alphasum_{i=1}^{m}(h_ heta(x^{(i)})-y^{(i)})x_{j}^{(i)}
]
}
SGD
Repeat until convergence:{
for i=1 to m {
for every j:
[ heta_{j}= heta_{j}-alphasum_{i=1}^{m}(h_ heta(x^{(i)})-y^{(i)})x_{j}^{(i)}
]
}
}
比较
method | 原理 | 性能 |
---|---|---|
BGD | 用所有样本依次更新每一个参数 | 慢、占内存 |
SGD | 每个样本都更新所有参数 | 快、常用 |
Newton's method
对于凸函数的代价函数最小化,除了SGD与BGD还有一个常用的算法:Newton's method
该方法的主要思想是每次学习的步长为(Delta)(根据梯度得出),而非固定学习率(alpha)
以LMS凸函数示例算法过程
当样本特征为多维的时候,( heta)也是一个向量,这时的更新方式为:
[ heta = heta - H^{-1}igtriangledown_{ heta}l( heta)
]
[H_{ij}=frac{partial^2 l( heta)}{{partial heta_i}{partial heta_j}}
]
Newton's method方法的缺点就在于:
- 海森矩阵的逆不一定存在,就算存在计算量也比较大
- 当n比特别大的时候,该算法不一定比SGD快
the normal equation
(igtriangledown _{A}f(A))含义
- f 本身代表一个关于矩阵的函数
- 表示f关于矩阵A的导数
- 其自变量为矩阵A
- 应变量为一个实数
- (igtriangledown _{A}f(A))是一个矩阵,矩阵的第i行j列的元素为f(A)关于(A_{ij})的偏导数
normal equation的推导
- tr operator:
[trA=sum_{i=1}^{n}A_{ii}
]
即矩阵A的迹为其对角线元素之和,为一个实数
2. 预备公式:
[trA = tr A^{T}
]
[traA=atrA
]
[igtriangledown_{A^{T}}trABA^{T}C=B^{T}A^{T}C^{T}+BA^{T}C
]
- 推导
[igtriangledown_{ heta}J( heta)=0
ightarrow heta=(X^{T}X)^{-1}Xvec{y}
]
cost function的概率解释
假设(epsilon^{(i)}=y^{(i)}- heta^{T}x^{(i)})服从独立同分布的高斯分布
则
[p(vec{y}|X; heta)=L( heta|X,vec{y})=L( heta)=prod_{i=1}^{m}frac{1}{sqrt{2pi}delta}e^{frac{(y^{(i)}- heta^{T}x^{(i)})^2}{2delta^{2}}}
]
函数 | 表达式 | 含义 |
---|---|---|
概率函数 | $p(vec{y} | X; heta)$ |
似然函数 | $L( heta | X,vec{y})$ |
求似然函数的最大值(leftrightarrow)求概率函数的最大值,也(leftrightarrow)求(frac{1}{2}sum_{i=1}^{m}(y^{i}- heta^{T}x^{(i)})^{2})的最小值(可推导)
但为什么要求概率函数的最大值呢?
- 使每一个样本尽可能预测准确(leftrightarrow)使每一个(p(y^{(i)}|x^{(i)}; heta))尽可能大
- 也可以从使每一个(epsilon^{(i)})尽可能接近于0的角度来理解