最优化的入门
从简单问题出发
1.1 函数最小值
求 的极小值?
理解梯度小降法的三个层次:
了解层次
- 二次函数从某点出发,沿着梯度方向下降
- 从二次函数求最小值,数学公式的层次
初级入门层次
- 从零代码求二次函数最小值
- 简单的数学证明
入门层次
- 推广到机器学习
- 推广到一般的梯度下降法
min 二次函数
Gradient
一种直观理解,函数沿着切线方向下降?(不是)
w ←w-α*J'(w)
初始值:w0=1 α=0.01(学习速率)
J'(w)=2(w+1)
x=-1处为函数最小值,停止更新
若走过对称轴-1,自变量更新会往回走(接近于最小值的方向-1点)
初级入门层次:
# 定义函数
def J(w): return w**2 + 2*w + 1 # 函数导数 def J_prime(w): return 2*w + 2 # 梯度下降法,就是沿着梯度方向更新参数 # w ← w - α * J_prime(w) # epoch=1000,alpha=0.01 epoch = 100 alpha = 0.1 w = 1 for i in range(epoch): w = w - alpha*J_prime(w) print(w) #输出结果 向着-1一直接近 0.6 0.2799999999999999 0.023999999999999966 -0.18080000000