一文看懂计算机神经网络与梯度下降

1. 计算机神经网络与神经元

要理解神经网络中的梯度下降算法,首先我们必须清楚神经元的定义。如下图所示,每一个神经元可以由关系式 y = f ( ∑ i = 1 n w i x i + b ) y = f(\sum_{i=1}^nw_ix_i + b) y=f(i=1nwixi+b)来描述,其中 X = [ x 1 , x 2 , . . . , x n ] X = [x_1,x_2,...,x_n] X=[x1,x2,...,xn]就是N维的输入信号, W = [ w 1 , w 2 , . . . , w n ] W =[w_1,w_2,...,w_n] W=[w1,w2,...,wn]是与输入向量一一对应的n维权重, b b b bias 偏斜, y y y对应该神经元的输出, f f f函数称为激励函数,例如sigmoid函数,softmax函数等等。

那么一个神经网络是如何进行学习的呢?以一个神经元为例,在一组输入信号 X X X经过该神经元后,我们得到了一个输出信号称之为 y e t o i l e y_{etoile} yetoile,而训练集中给出的实际输出例如为 y y y,那么显而易见地,想要提高正确率,即正确地学习对于一组输入应该获得的输出 y y y,一个神经元所做的计算,就是一个最优化(最小化)问题,通过改变权重 W W W来最小化损失(误差) l ( y , y e t o i l e ) l(y,y_{etoile}) l(y,yetoile)。当然,这个误差的定义可以根据问题的不同有所区别,例如简单的向量L1,L2距离,MSE均方误差。对于整个训练集而言,当然不止包含了一组输入输出。因此整体而言,误差Loss Function L ( W ) = 1 N ∑ t = 1 K l ( y t , y t e t o i l e ) L(W) = \frac{1} {N}\sum_{t=1}^{K}l(y_t,y_{t_{etoile}}) L(W)=N1t=1Kl(yt,ytetoile) 是所有K组训练数据误差的总和的平均数。

我们已经知道了,Loss Function损失函数与神经元的权重息息相关,神经元要做的计算,就是找到能最小化该损失函数的权重 W W W。优化的算法纷繁多样,使用的较为广泛的就是梯度下降 g r a d i e n t    d e s c e n t gradient\space\space descent gradient  descent 及其衍生算法SGD随机梯度下降,BGD批量梯度下降。

在这里插入图片描述

2. 梯度下降算法 g r a d i e n t    d e s c e n t gradient\space\space descent gradient  descent

梯度下降算法,一言以蔽之,就是沿着梯度下降的方向不断迭代,最终逼近函数最小值的优化方法。如下图所示&#

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值