由单个神经元到神经网络:简单全连接神经网络工作解析
由单个神经元到神经网络:简单全连接神经网络工作解析
神经网络是机器学习和深度学习的核心组件,它通过模拟人脑神经元的工作方式来处理和分析数据。本文将从单个神经元出发,逐步介绍神经网络的构建、激活函数的作用以及反向传播与梯度下降的优化过程。
由单个神经元到神经网络
在上一篇文章中,我们已经了解了单个神经元的具体架构。现在,我们将从单个神经元出发,探寻简单全连接神经网络的工作过程。
单个神经元其实就是一个函数,现在我们假设单个神经元的结构都为线性结构(即 (y=wx+b))如图:
多个神经元相互连接就构成了神经网络:
在上图中蓝色正方形分别代表一个参数,我们将其称为 (x_1, x_2, x_3, x_4),上图中每一条线都代表一个权重参数(也就是 (y=wx+b) 中的 (w)):
也就是说我们可以得到,在上图中的最终运算表达式为:
[y = r_1 \cdot r_1 + r_2 \cdot r_2 + r_3 \cdot r_3]
[= w_{11} \cdot x_1 + w_{12} \cdot x_2 + W_{13} \cdot x_3 + w_{14} \cdot x_4 + b_1]
[+ w_{21} \cdot x_1 + w_{22} \cdot x_2 + W_{23} \cdot x_3 + w_{24} \cdot x_4 + b_2]
[+ w_{31} \cdot x_1 + w_{32} \cdot x_2 + W_{33} \cdot x_3 + w_{34} \cdot x_4 + b_3]
至此我们得出了此神经网络的预测值。
激活函数的引入
其实通过上面的运算过程不难发现,虽然这个神经网络增加了两个神经元,但是似乎对结果的影响微乎其微。我们将上述表达式稍作整理:
[y = r_1 \cdot (w_{11} \cdot x_1 + w_{12} \cdot x_2 + W_{13} \cdot x_3 + w_{14} \cdot x_4 + b_1)]
[+ r_2 \cdot (w_{21} \cdot x_1 + w_{22} \cdot x_2 + W_{23} \cdot x_3 + w_{24} \cdot x_4 + b_2)]
[+ r_3 \cdot (w_{31} \cdot x_1 + w_{32} \cdot x_2 + W_{33} \cdot x_3 + w_{34} \cdot x_4 + b_3)]
[= (r_1 \cdot w_{11} + r_2 \cdot w_{21} + r_3 \cdot w_{31}) \cdot x_1]
[+ (r_1 \cdot w_{12} + r_2 \cdot w_{22} + r_3 \cdot w_{32}) \cdot x_2]
[+ (r_1 \cdot w_{13} + r_2 \cdot w_{23} + r_3 \cdot w_{33}) \cdot x_3]
[+ (r_1 \cdot w_{14} + r_2 \cdot w_{24} + r_3 \cdot w_{34}) \cdot x_4]
[+ r_1 \cdot b_1 + r_2 \cdot b_2 + r_3 \cdot b_3]
[= w_1 \cdot x_1 + w_2 \cdot x_2 + w_3 \cdot x_3 + w_4 \cdot x_4 + B]
结果发现本神经网络 (y) 的运算结果其实和一个神经元的情况下似乎没有差别,其实用大白话来讲就是无论多少根直线加在一起,结果还是直线。
但是我们生活中亟待解决的问题有相当一部分是非线性的问题,那么如何让线性神经元拟合非线性函数呢?很简单,让直线“变软”就行了,这就是激活函数干的事情:让直线“变软”使其能够拟合非线性函数,在每个神经元得出结果后,将这个结果输入激活函数,然后再把他传到下一层神经元。
反向传播与梯度下降
前面两部分其实就是神经网络前向传播的全过程,接下来我们来研究神经网络中的 optimization,也就是反向传播与梯度下降。
在上一篇文章中我们知道了,对于单个神经元,梯度下降其实就是优化参数,优化 (y=wx+b) 中的 (w) 和 (b),使 loss 值变得更小,优化方式为:
对于神经网络而言,梯度下降的意义并没有发生改变,无非就是参数变多了而已,以这张图为例:
如果我要更新 (w_{11}) 的参数,那么根据上文得出的 (y) 计算方式:
[y = r_1 \cdot r_1 + r_2 \cdot r_2 + r_3 \cdot r_3]
[= r_1 \cdot (w_{11} \cdot x_1 + w_{12} \cdot x_2 + W_{13} \cdot x_3 + w_{14} \cdot x_4 + b_1)]
[+ r_2 \cdot (w_{21} \cdot x_1 + w_{22} \cdot x_2 + W_{23} \cdot x_3 + w_{24} \cdot x_4 + b_2)]
[+ r_3 \cdot (w_{31} \cdot x_1 + w_{32} \cdot x_2 + W_{33} \cdot x_3 + w_{34} \cdot x_4 + b_3)]
我们由链式求导法则可得:
[\frac{\partial L}{\partial w_{11}} = \frac{\partial L}{\partial y} \cdot \frac{\partial y}{\partial r_1} \cdot \frac{\partial r_1}{\partial w_{11}}]
(loss function 为损失函数,是关于 (y) 的函数)
其他参数梯度下降方式与 (w_{11}) 一样。