梯度下降与数据获取:原理、实践与应用
1. 梯度下降基础
1.1 梯度下降原理
梯度下降是一种优化算法,用于寻找函数的最小值。其基本思想是从一个随机起始点开始,计算函数在该点的梯度,然后沿着梯度的反方向迈出一小步,不断重复这个过程,直到找到函数的最小值。
如果函数有唯一的全局最小值,梯度下降很可能找到它;如果有多个局部最小值,可能会陷入错误的局部最小值,此时可以从不同的起始点重新运行该过程;如果函数没有最小值,梯度下降可能会无限进行下去。
1.2 梯度估计
1.2.1 单变量函数的导数
对于单变量函数 (f(x)),其在点 (x) 处的导数衡量了 (x) 发生微小变化时 (f(x)) 的变化情况。导数的定义是差商的极限:
from typing import Callable
def difference_quotient(f: Callable[[float], float],
x: float,
h: float) -> float:
return (f(x + h) - f(x)) / h
当 (h) 趋近于 0 时,差商趋近于导数。例如,对于平方函数 (f(x) = x^2),其导数为 (f’(x) = 2x):
def square(x: float) -> float:
re
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



