神经网络入门:核心概念与Keras实践
1. 神经网络的优化引擎:基于梯度的优化
在神经网络中,基于梯度的优化是核心机制。在参数空间中,存在局部最小值和全局最小值。当使用小学习率的随机梯度下降(SGD)优化参数时,优化过程可能会陷入局部最小值,而无法达到全局最小值。
为避免这种情况,可以引入动量(momentum)的概念。动量的灵感来源于物理学,可将优化过程想象成一个小球在损失曲线上滚动。如果小球具有足够的动量,它就不会陷入山谷,而是最终到达全局最小值。
以下是一个简单的动量实现代码:
past_velocity = 0.
momentum = 0.1
while loss > 0.01:
w, loss, gradient = get_current_parameters()
velocity = past_velocity * momentum + learning_rate * gradient
w = w + momentum * velocity - learning_rate * gradient
past_velocity = velocity
update_parameter(w)
2. 链式求导:反向传播算法
在实际的神经网络中,函数通常由多个张量操作链式组成,每个操作都有简单且已知的导数。通过微积分中的链式法则,可以计算神经网络的梯度值,这就引出了反向传播算法(Backpropagation),也称为反向模式微分。
反向传播算法从最终的损失值开始,从顶层
超级会员免费看
订阅专栏 解锁全文
953

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



