吴恩达公开课-01
1. Introduction¶
1.1 Supervised Learning¶
一部分数据给出正确结果
预测结果类型
- Regression: 预测连续值
- Classfication: 预测离散值
1.2 Unsupervised Learning¶
不给出正确结果
1.2.1聚类算法 (Cluster Algorithm)¶
e.g.
- Google News, news with same topic are clustered together
- Astronomical data analysis 太空数据分析
- Cocktail Party Problem, 两个人同时说话,两个不同位置的麦克风记录两人的不同声音组合,分离两人的声音,算法用一行代码就可以实现
Octave
2. Model and Cost Function¶
2.1 Linear Regression¶
- h: A function output from learning algorithm (hypothesis)
(Input) Training Set -> Learning Algorithm -> Hypothesis (Output)
- h_\theta(x)=\theta_0+\theta_1x_1
2.2 Cost Funciton¶
如何选择h_\theta(x)中的\theta参数,让函数尽量好地和数据点拟合
即最小化\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2
定义代价函数J(\theta_0, \theta_1)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2
Squared error function, 这里的½项是为了方便梯度计算
2.3 Cost Function Intuition I¶
将函数简化为h(x)=\theta_1x, 则问题变成了
\min \limits_{\theta_1}\frac{1}{2m}\sum_{i=1}^{m}(\theta_1x^{(i)}-y^{(i)})^2
根据h_\theta(x)可以画出J(\theta_1)函数的图像,是一个关于x=1对称的函数
2.4 Cost Function Intuition II¶
回到原来的J(\theta_0, \theta_1)函数
函数三维图像,也是一个弓形曲面
3. Parameter Learning¶
算法自动找到合适的参数\theta
3.1 Gradient Descent¶
用梯度下降最小化J
- 选择初始值
- 梯度下降直到最小值
for j=0 to j=1
- \theta_j:=\theta_j-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0, \theta_1, ..., \theta_n)
注意是同时更新,即上式右边的\theta都是旧的值,计算后对结果进行暂存,之后统一更新
3.2 Gradient Descent Intuition¶
即使\alpha不变,梯度下降的步长也会逐渐减小,因为每个\theta的偏导逐渐减小
3.3 Gradient Descnet For Linear Regression¶
对J(\theta_0, \theta_1)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x_{(i)})-y_{(i)})^2中的\theta_0和\theta_1分别求偏导,就是Linear Regression
Batch Gradient Descent: 每一步都使用所有的训练样例来完成梯度下降
线性回归的代价函数J是凸函数,没有局部最优解
Normal Equation方法不用多次迭代,可以直接进行最小化计算,不过梯度下降scale better to larger data sets than normal equation method