手撕神经网络-正/反向传播

摘要:最近的ChatGpt非常火热,强大的智能能力让人不禁感叹,人类是不是要被AI取代了,有人惶恐、有人兴奋。每一次新技术的爆发,必然会带动一部分就业,我们要抱着积极的态度去了解他。

    今天,我们分享一下,什么是正向传播,什么是反向传播,有哪些理论依据。随着机器学习这门专业的发展,传统的机器学习已经不能够满足AI行业的发展了,随之诞生出来的神经网络、深度神经网络这些课程。

    将学习过程想象成自然界中神经信息传递的过程,拟态到神经网络中,让计算机“拥有”了自然界中的“神经元”。粗略地说,接收信息被大脑捕获,这个过程可以看作是一个正向的过程。大脑下达的指令可以看作是一个反向的过程。那计算机是如何处理和优化这个过程的呢。

先看图1.1

图1.1

图1.1 简单模拟了神经信息的传递,假设每个圈代表着神经的接触端(可以发出信号、也可以接收信号),每个带箭头的线段代表着信息传递的方向(表示可以传递给下一个或者多个接触端)。当然这些都是以生物学的角度来衡量的,但是以计算机的角度来说,这其实就是一个图的计算,唯一要注意的是,这个图计算的不是节点的数据,而是节点和权重的数据。

    我们先做一个假设以此来计算,假设有如下数据:

    x1=1,x2=1,Y=5,w11=1,w12=1,w21=1,w22=1,b=1

说明下:x1、x2 作为输入参数也就是样本,Y作为样本对应的真实值,w11、w12、w21、w22作为权重,b作为偏移常数,圆圈代表输入或者输出节点:x系列代表输入层、z系列代表隐藏层、a系列代表隐藏层(激活),y代表样本预测。

    通过说明我们知道,唯一可以确定的数据就是样本数据:x1,x2,Y,那么我们需要做的就是要能够获取到合适的w11、w12、w21、w22的值,使得y更加接近Y。

    那么,我们看下第一次的预测结果是什么,通过数据带入得到以下数据:

    z1=x1*w11+x1*w12+b=1*1+1*1+1=3

    z2=x2*w21+x2*w22+b=1*1+1*1+1=3

这里我们介绍下激活函数使用Relu函数,如图1.2

图1.2

       a1=3,a2=3

整理下:

    z1=x1*w11+x1*w12+b=1*1+1*1+1=3

    a1=3

    z2=x2*w21+x2*w22+b=1*1+1*1+1=3

    a2=3

    y=a1+a2+b=3+3+1=7

这个过程就是一个正向传播的过程。

    我们看下误差偏移了多少,这里我们定义一个损失函数J(lossfunction)

    J==2

    我们发现预测值y与真实Y存在一定的差异,说明w11、w12、w21、w22的数据不合适,需要调整,调整的过程我们就称之为反向过程。那么就以w11为例,w11=w11-l*w11_gradient。

w11:w11的值。

l:表示学习率,作为超参可以自己定义,这里定义为0.02。

w11_gradient:这个表示求w11的梯度。

通过上述的公式,我们发现,只要获取到w11_gradient,那么w11的数据就会被更新了。也就说我们需要对误差进行梯度。

w11_gradient=dJ/dw11=(dJ/dy) * (dy/da1)*(da1/dz1)*(dz1/dw11)

将数据进行带入dJ/dw11=(y-Y)*1*1*1=(7-5)*1=2

所以w11_gradient=2,w11=1-0.02*2=0.96,最后,w11更新为了0.96。

至此,上述过程为反向传的过程,重复这个过程,直到达到满意的一个预测结果,就可以结束这个过程了。

上述的过程我们发现了初始化的数据对训练会产生影响,所以你发现在哪里产生影响了吗?

今天就到这里了,下次再聊。

如有疑问请添加群:195889612

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值