李航统计学方法-第一章极大似然估计&梯度下降

1.1-极大似然估计

极大似然估计的核心思想就是此时此刻发生该事件的概率为最大,从而来计算待估参数。
举例说明
如图所示在掷硬币(质地不均匀)实验中求正面向上的概率 θ \theta θ
在这里插入图片描述

其中 x i x_i xi为实验结果,当重复实验做了n次,则似然函数为概率函数带未知数 θ \theta θ连乘的形式。做了n次实验,得到似然函数,似然函数的意义就是认为此时此刻正面朝上的概率为最大。
在这里插入图片描述

可以通过取对数,取对数的目的就是将原来的乘法变为加法,方便求导且与原函数极值点不变,求导之后等式为0的方式来求使得似然函数最大的未知参数 θ \theta θ,也可以将似然函数取对数在取反,接着使用梯度下降的方式进行参数估计。

1.2-梯度下降

首先要知道为什么需要梯度下降,因为相对一个函数直接求导等于0,从而求得位置参数,计算机更适合迭代的防暑,在计算量较小时,直接求导得到解析解速度占优,而在深度学习中全部是以矩阵的方式进行求导,且数据量很大,所以计算机更适合迭代式的梯度下降从而得到数值解。
在这里插入图片描述
如上图所示, x ∗ x^* x为使得f(x)得到最小值的点,假设f(x)首先是个凹函数,只有一个极值点,
首先第一步随机初始化 x 0 x^0 x0,第二步代入f(x)得到 y 0 y^0 y0,第三步计算x= x 0 x^0 x0的梯度,在满足迭代条件的情况下,更新 x x x,更新公式为 x k + 1 = x k − η ∗ g k x^k+1=x^k-\eta*g_k xk+1=xkηgk,其中 η \eta η为一个0到1之间的小数,接着再进行2步骤。如此循环,直至不满足迭代条件。其中gk有正有负,当求得f(x)在最小值点左侧,导数为负数,在更新时就会 x k x^k xk会加上一个正数,朝着最小值的方向移动,当求得f(x)在最小值点右侧,导数为正数,在更新时就会 x k x^k xk会减去一个正数,朝着最小值的方向移动,而就会其中迭代条件为可能是 x ∗ x^* x的精度,大部分可能是迭代次数。

自己定义一个一元二次函数,自定义初始点和步长,手动计算梯度下降法的前1000步。
定义y=x 2 ^2 2+3 ,其导数为2x

import numpy as np
import matplotlib.pyplot as plt 
%matplotlib qt5
# encoding=utf-8
import matplotlib.pyplot as plt
from pylab import *         #支持中文
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
x=0.9
lr=0.01
res=[]
x_=[]
for i in range(1000):
    y=x**2+3
    x=x-lr*2*x
    x_.append(x)
    res.append(y)
    index=[i for i in range(len(res))]

plt.plot(index,res,label='y变化曲线')
plt.plot(index,x_,label='x变化曲线')
plt.legend()
plt.show()

在这里插入图片描述
我们可以发现随着循环次数的加深,x越来越趋近0,y越来越趋近3。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值