专注于AI算法面经与踩坑经验分享!
BP(Back Propogation)算法是一种最有效的学习方法,主要特点是信号前向传递,而误差后向传播,通过不断调节网络权重值,使得网络的最终输出与期望输出尽可能接近,以达到训练的目的。前向过程中通过与正确标签计算损失,反向传递损失,更新参数,优化至最后的参数。
而面试的过程中,我们可以拿出一支笔,给面试官直接说,“老师,我来直接写一个吧,您看看呗?”
“你看哈,我这一个两层的神经网络。其中
是网络的输入,
是网络的输出,
是网络学习到的参数。"

“在这里,
的值就是我们需要更新的目标,但是我们只有一些
与跟它对应的真实
的值,所以呢?我们需要使用这两个值来计算
的值了,整个问题就转变成了下面的优化问题了,也就是我们需要求函数的最小值。”
我们在这令
,在代码中我们一般都是记为损失项。我们的目标就是使得求出一组参数
来使得
的值最小。
在实际中,这类问题有一个经典的方法叫做梯度下降法。意思是我们先使用一个随机生成的
,然后使用下面的公式不断更新
的值,最终逼近真实效果。
这里
是一个随机初始化的权重,
是表示当前误差对权重
的梯度。
是表示的学习率,通常不会很大,都是0.01以下的值,用来控制更新的步长。
若
,
,那么
,其中
。其中
。
当我们需要求
对
的导数
就需要使用链式求导了。根据我们之前学过的知识:
这里说的都还是以单变量作为例子,实际中,多维变量就是变成了求偏导数了。
OK!基本上面试的时候,答到这个份儿上了,差不多就已经够了!!
- END -

各位可以在菜单栏中看到之前的算法题汇总哦,持续更新中~欢迎观看养成区号主的成长之路!
大家好,我是灿视。目前是位算法工程师 + 创业者 + 奶爸的 时间管理大师!
我曾在19,20年联合了各大厂面试官,连续推出两版《百面计算机视觉》,受到了广泛好评,帮助了数百位同学们斩获了BAT等大小厂算法Offer。现在,我们继续出发,持续更新最强算法面经。
我曾经花了4个月,跨专业从双非上岸华五软工硕士,也从不会编程到进入到百度与腾讯实习。加我私信,与我分享你的困惑。