1. 泰勒级数的一阶展开
泰勒级数(Taylor series)用级数来表示一个函数,这些相加的项由函数在某一点的导数求得。泰勒级数是以于17发表了泰勒公式的英国数学家布鲁克·泰勒(Sir Brook Taylor)的名字来命名的,在近似计算中有重要作用。
【定义】如果函数f(x)f(x)f(x)在点x=x0x=x_0x=x0具有任意阶导数,则可以得到f(x)f(x)f(x)在x0x_0x0点的泰勒级数为
f(x)=∑n=0∞f(n)(x0)n!(x−x0)n=f(x0)+f′(x0)(x−x0)+f′′(x0)2(x−x0)2+⋯+f(n)(x0)n!(x−x0)n+⋯\begin{aligned} f(x)&=\sum_{n=0}^{\infty}\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n\\ &=f(x_0)+f'(x_0)(x-x_0)+\frac{f''(x_0)}{2}(x-x_0)^2+\cdots+\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n+\cdots \end{aligned} f(x)=n=0∑∞n!f(n)(x0)(x−x0)n=f(x0)+f′(x0)(x−x0)+2f′′(x0)(x−x0)2+⋯+n!f(n)(x0)(x−x0)n+⋯显然,如果xxx非常接近x0x_0x0,即x−x0x-x_0x−x0很小时,我们可以用泰勒级数的一阶展开来近似表示f(x)f(x)f(x),即
f(x)≈f(x0)+f′(x0)(x−x0).f(x)\approx f(x_0)+f'(x_0)(x-x_0). f(x)≈f(x0)+f′(x0)(x−x0).
2. 梯度下降法
(1)问题描述
对于某函数:J(θ0,θ1)J(\theta_0,\theta_1)J(θ0,θ1)
希望:minθ0,θ1J(θ0,θ1)\min \limits_{\theta_0,\theta_1}J(\theta_0,\theta_1)θ0,θ1minJ(θ0,θ1)
步骤:
从某个θ0,θ1\theta_0,\theta_1θ0,θ1的初值开始(例如θ0=0\theta_0=0θ0=0,θ1=0\theta_1=0θ1=0);持续改变θ0,θ1\theta_0,\theta_1θ0,θ1来减小J(θ0,θ1)J(\theta_0,\theta_1)J(θ0,θ1),直到得到我们希望的最小值。
(2)梯度下降算法
重复直至收敛{\{{
θj:=θj−α∂∂θjJ(θ0,θ1)(forj=0andj=1)\theta_j:=\theta_j-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1)\quad ({\rm for}\ j=0\ {\rm and}\ j=1)θj:=θj−α∂θj∂J(θ0,θ1)(forj=0andj=1)
}\}}
正确的方法:同时更新
temp0:=θ0−α∂∂θjJ(θ0,θ1):=\theta_0-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1):=θ0−α∂θj∂J(θ0,θ1)
temp1:=θ1−α∂∂θjJ(θ0,θ1):=\theta_1-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1):=θ1−α∂θj∂J(θ0,θ1)
θ0:=\theta_0:=θ0:=temp0
θ1:=\theta_1:=θ1:=temp1
不正确的方法:分别更新
temp0:=θ0−α∂∂θjJ(θ0,θ1):=\theta_0-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1):=θ0−α∂θj∂J(θ0,θ1)
θ0:=\theta_0:=θ0:=temp0
temp1:=θ1−α∂∂θjJ(θ0,θ1):=\theta_1-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1):=θ1−α∂θj∂J(θ0,θ1)
θ1:=\theta_1:=θ1:=temp1
α\alphaα:学习速率,更新参数的幅度大小
3. 梯度下降线性回归
对于一元线性回归问题,有
hθ(x)=θ0+θ1xJ(θ0,θ1)=12m∑i=1m[hθ(x(i))−y(i)]2\begin{aligned} h_{\theta}(x)&=\theta_0+\theta_1x\\ J(\theta_0,\theta_1)&=\frac{1}{2m}\sum_{i=1}^m[h_{\theta}(x^{(i)})-y^{(i)}]^2 \end{aligned} hθ(x)J(θ0,θ1)=θ0+θ1x=2m1i=1∑m[hθ(x(i))−y(i)]2
对代价函数求偏导,可以得到
∂∂θ0J(θ0,θ1)=1m∑i=1m[hθ(x(i))−y(i)]∂∂θ1J(θ0,θ1)=1m∑i=1m[hθ(x(i))−y(i)]x(i)\begin{aligned} \frac{\partial}{\partial \theta_0}J(\theta_0,\theta_1)&=\frac{1}{m}\sum_{i=1}^m[h_{\theta}(x^{(i)})-y^{(i)}]\\ \frac{\partial}{\partial \theta_1}J(\theta_0,\theta_1)&=\frac{1}{m}\sum_{i=1}^m[h_{\theta}(x^{(i)})-y^{(i)}]x^{(i)}\end{aligned} ∂θ0∂J(θ0,θ1)∂θ1∂J(θ0,θ1)=m1i=1∑m[hθ(x(i))−y(i)]=m1i=1∑m[hθ(x(i))−y(i)]x(i)