这一节终点是线性回归模型。大佬讲了LMS(least mean square)最小二乘。求解的方法有梯度下降和正规方程。我觉得最triky的是矩阵的求导,单列出来。
notations:
θ:parameter or weight
x:input features
y:output or target
(x,y):an training example
m:number of training examples
n:number of features (x will be n+1 dimentional features)
LMS模型:
就假设y和x为线性,由于权重是n+1维的(有常数项)为了式子的美观,将x也弄成n+1维的,令x0为1(intercept term).
先从感性的认知,定义cost function为每个数据求出的h(x)-y的平方求和。前面的系数二分之一是为了求导方便。这个最小二乘之后会通过极大似然进行证明,暂时不管 。现在目标就成为了让cost最小,问题变成了一个最优化问题。
gradient descent 梯度下降:
基本梯度下降的原理不说了,我已经很熟了。
这里为了计算简单,先给出了只有一个training example 的情况:
对于一个example,显然只有这样一种更新θ的方法:
但是有n个数据怎么进行更新,之前没有仔细考虑过。大佬讲了两种方法:batch gradient descent 批处理和stochastic gradient descent 随机下降。
batch gradient descent
就是要更新比方说θ1就把所有的偏导都算出来,去一个平均,用它去乘α进行更新。优点是会收敛。缺点就是每次都要遍历整个数据集比较复杂。
stochastic gradient descent
相对简单,每次用一条数据进行更新,简化了计算量。尽管最后会在一个几乎稳定的区域波动,但是永远也不会收敛,因为他用的数据一直在变化。
小批量梯度下降
大佬简单提了一下,在cs230会有,就介于二者之间。一次用一百条左右更新一次,然后用下一百条。
normal equation 正规方程
它的核心思想是让cost function对θ求导让导数是零。中间的数学推导在矩阵求导那个里面。好处是一步到位,缺点是数据维度大的时候计算复杂。
首先把x,y都弄成行向量,这样y-xθ就成了行向量。
最小二乘就可以表示为y-xθ乘以它的转置,进行矩阵化。
让j(θ)关于θ求导为零就得到了正规方程。