机器学习笔记(1)常见符号,批次梯度下降,随机梯度下降

机器学习

一,常见符号

h(x) = ∑ θ j x j ∑θjxj θjxj 其中·的xj是输入的量,而θ则是线性回归时候的系数,通常x0等于1作为一个虚拟的特征,h是假设的。

θ = [ θ 1 , θ 2 , θ 3 ] T \theta=[\theta_{1},\theta_{2},\theta_{3}]^{T} θ=[θ1,θ2,θ3]T

x = [ x 1 , x 2 , x 3 ] T x=[x_{1},x_{2},x_{3}]^{T} x=[x1,x2,x3]T

θ = " p a r a m e t e r " \theta = "parameter" θ="parameter" theta 是参数。

M = #training examples 训练数目 #代表着数目。

x = “inputs”/feature x是输入,或者有叫特征。

y = “output”/target variable。

( x , y ) (x,y) (x,y)= training example 训练实例。

( x i , y i ) = i t h (x^{i},y^{i}) = i_{th} (xi,yi)=ith training example 第i个训练实例。

x a ( b ) x_a^{(b)} xa(b)表示的是第b个训练实例里面的第a个参数(上标指的是训练实例,下标指的是参数的顺序。

n = #feature n代表的是特征的个数,n=|x|-1,n=x的维度-1,因为x0是一个虚拟的特征,这个虚拟的特征是不算在n里面的。

h θ ( x ) = h ( x ) h_\theta(x) = h(x) hθ(x)=h(x) 方便书写,假设函数h其实是和θ有关的。

∇ θ J ( θ ) = [ ∂ J ( θ ) θ 0 , ∂ J ( θ ) θ 1 , ∂ J ( θ ) θ 2 ] T \nabla_\theta J(\theta)=[\frac{\partial J(\theta)}{\theta_0},\frac{\partial J(\theta)}{\theta_1},\frac{\partial J(\theta)}{\theta_2}]^T θJ(θ)=[θ0J(θ),θ1J(θ),θ2J(θ)]T 这条式子的意思是对成本函数求偏导,并且写成矩阵的形式。

对任意的 f ( A ) = t r A B f(A)= trAB f(A)=trAB (A,B是任意的矩阵,tr指的是迹:主对角线的元素之和, t r A B C = t r C A B = t r B C A trABC=trCAB=trBCA trABC=trCAB=trBCA迹的循环排列)

∇ θ f ( A ) = B T \nabla_\theta f(A) = B^T θf(A)=BT(证明用到 ∇ A t r A A T C = C A + C T A \nabla_A trAA^TC = CA+C^TA AtrAATC=CA+CTA,有点像 ∂ a 2 c ∂ a = 2 a c \frac{\partial a^2c}{\partial a} = 2ac aa2c=2ac

线性回归(linear regression)里面的目标就是使得

这个式子 J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\frac{1}{2}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^{2} J(θ)=21i=1m(hθ(x(i))y(i))2 最小化

其中的 1 2 \frac{1}{2} 21是为了保证等等求导的时候可以减少计算量。

批次梯度下降(收敛,全局最优)(Batch Gradient Descent,BGD)

那最小化这个 J ( θ ) J(\theta) J(θ)的方法算法是怎么呢,这里就要提到梯度下降算法(gradient descent)

1.将θ设置成一个0向量,作为一个初始值

2.持续更改θ来减少 J ( θ ) J(\theta) J(θ)

θ j : = θ j − α ∂ ∂ θ j J ( θ ) \theta_j:=\theta_j-\alpha\frac{\partial }{\partial \theta j}J(\theta) θj:=θjαθjJ(θ)

将每次的θj更换成右边的式子进行迭代,其中的 α \alpha α叫做学习率(learning rate),右边是J(θ)对θj的偏导数,这一步在一轮中要进行n次,每个特征都要做一次进行最小化。

∂ ∂ θ j J ( θ ) = ∂ 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 ∂ θ j \frac{\partial }{\partial \theta j}J(\theta) = \frac{\partial\frac{1}{2}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^{2}}{\partial \theta_j} θjJ(θ)=θj21i=1m(hθ(x(i))y(i))2对此求偏导数

h θ ( x ) = ∑ i = 0 n θ i x i h_\theta(x) = \sum_{i=0}^{n}\theta_ix_i hθ(x)=i=0nθixi

h θ ( x ) h_\theta(x) hθ(x)求偏导,首先得由于链式法则,平方的那个2要乘上去和1/2抵消,再乘上一个括号一样的东西。

由于是只对 θ i \theta_i θi偏导,所以别的项全变成了0,只依赖于对应的θiXi项。

最后第一步的转换就变成了这样了。

θ j : = θ j − α ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ∗ x j ( i ) \theta_j:=\theta_j - \alpha\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})*x_j^{(i)} θj:=θjαi=1m(hθ(x(i))y(i))xj(i)后面的那一大坨就是偏导数最后简化的结果了。

3.每一次都往最低的方向走下坡路,也就是沿着梯度最小的方向走babystep

4.梯度下降法的结果,取决于初始的θ值(不同的起点)

5.每次的操作是for(j=1,…,n)进行第3步的操作直到收敛。

6.每次的迭代都是对全局进行的,所以消耗将会非常非常大。

随机梯度下降****(Stochastic Gradient Descent,SGD)****

永远的震荡,并且不会收敛,但是允许不断变换,得到结果会更快

θ j : = θ j − ( h θ ( x ( i ) ) − y ( i ) ) ∗ x j ( i ) \theta_j:=\theta_j - (h_\theta(x^{(i)})-y^{(i)})*x_j^{(i)} θj:=θj(hθ(x(i))y(i))xj(i)

每次迭代的公式是这样的,并没有求和符号,并不是进行全局的

repeat{

θ j : = θ j − ( h θ ( x ( i ) ) − y ( i ) ) ∗ x j ( i ) \theta_j:=\theta_j - (h_\theta(x^{(i)})-y^{(i)})*x_j^{(i)} θj:=θj(hθ(x(i))y(i))xj(i) j从0到n

}i从1到m

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值