目录
一、Gradient descent for liner regression - 线性回归:
2."Batch" Gradient Descent - 批量梯度下降法:
二、Matrices and Vectors - 矩阵和向量:
1.Addition and scalar multiplication - 加法和标量乘法:
2.Matrix - Vector multiplication - 矩阵&向量乘法:
3.Matrix-Matrix multiplication - 矩阵&矩阵乘法:
4.Matrix multiplication properties - 矩阵特性:
6.Inverse and transpose - 矩阵逆运算&转置:
一、Gradient descent for liner regression - 线性回归:
编辑
我们通过使用Gradient descent algorithm(梯度下降算法)来使得J()(损失函数)最小化或局部最小化。
1.线性回归的梯度下降法:
编辑
不断重复进行迭代计算,直到最终结果收敛!
注意:Update and simultaneously
数学推导:
编辑
Convex Function:
编辑
类似于这样的回归则会有全局且是唯一的最优解。
编辑
2."Batch" Gradient Descent - 批量梯度下降法:
"Batch": Each step of gredient descent uses all the training examples.
梯度下降算法需要对损失函数求梯度,也就是求导。
批量梯度下降法是最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行梯度的更新。
对损失函数求偏导(对 和 求偏导):
编辑
更新值:
编辑
不断重复这一步直到算法收敛,也就是对参数不断更新,直到梯度为0。但是,我们的每次迭代更新,都要对所有的m个样本数据进行求和。
如何检测是否已经收敛了呢?
- 一种是检验两次迭代,如果两次迭代中,是否改变了很多,如果在两次迭代中没怎么改变,我们或许就可以说算法有可能收敛了。
- 另一种,更常用的方法是,检验的值,如果你试图最小化的量不再发生很大的改变时,你也许就可以认为它收敛了。
优点:
- 一次迭代是对所有样本进行计算,此时利用矩阵进行运算,实现了并行。
- 由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。当目标函数为凸函数时,批量梯度下降一定能够得到全局最优解。
缺点:
- 有时我们会遇到样本数目 m 很大的训练集合,如果有几十上百万,甚至上亿的训练样本。这意味着我们每执行一次批梯度下降算法,都要对m个样本进行求和。我们的程序也就需要检测这上百万的样本,甚至我们完成值下降的第一步都十分困难。这样会导致,训练过程很慢,花费很长的时间。
二、Matrices and Vectors - 矩阵和向量:
1.Matrix:
Matrix: Rectangular array of numbers:
编辑
Dimension of matrix: number of rows x number of cloumns
2.Vector:
编辑
三、矩阵&向量运算:
1.Addition and scalar multiplication - 加法和标量乘法:
Matrix Additon: 对应位置上的元素进行直接相加减(只有同型矩阵才能进行该运算)。
Scalar Multiplication: 常数乘除上矩阵响应位置上的元素,结果所得到的矩阵型式不变。
2.Matrix - Vector multiplication - 矩阵&向量乘法:
编辑
3.Matrix-Matrix multiplication - 矩阵&矩阵乘法:
编辑
编辑
4.Matrix multiplication properties - 矩阵特性:
编辑
矩阵&矩阵间的乘法:不满足乘法交换律,满足乘法结合率!
5.特殊矩阵:
编辑
编辑
单位矩阵和任何可乘的矩阵相乘,仍然等于该矩阵!
6.Inverse and transpose - 矩阵逆运算&转置:
矩阵的逆:
Not all numbers have an inverse.
编辑
矩阵和该矩阵的逆相乘等于单位矩阵!
编辑
矩阵的转置:
编辑
编辑