神经元是什么?在深度学习中的数学表达是什么?
理解"神经元"是理解深度学习的基础。让我们从生物灵感开始,逐步深入到数学表达。
第一部分:神经元是什么?
1. 生物灵感:大脑中的神经元
在我们的大脑中,神经元是一个个微小的处理单元。它的基本工作方式如下:
- 树突:接收来自其他神经元的电信号。
- 细胞体:整合所有接收到的信号。
- 轴突 :如果整合后的信号强度超过某个阈值,神经元就会被"激活",产生一个电脉冲,并通过轴突传递给其他神经元的树突。
简单来说:一个生物神经元接收多个输入信号,进行汇总,如果汇总后的信号足够强,它就"点火"并传递信号;如果不够强,它就保持沉默。
2. 人工神经元:一个简化的数学模型
人工神经元是对生物神经元的极度简化和抽象,其核心思想是 "加权求和 → 添加偏置 → 非线性变换"。
下图展示了这个过程的完整流程:
输入 Inputs 加权求和
Weights 偏置 Bias 求和与偏置
z = Σwᵢxᵢ + b 激活函数
Activation Function 输出
y = f (z)
第二部分:深度学习中的数学表达
现在,我们来详细拆解上面流程图中的每一步。
1. 输入
一个神经元接收来自前一层 nnn 个神经元的输入信号。我们将这些输入表示为一个向量:
x=[x1,x2,...,xn]\mathbf{x} = [x_1, x_2, ..., x_n]x=[x1,x2,...,xn]
2. 权重
每个输入连接都有一个权重 ,代表了该输入的重要性和影响程度。权重也是一个向量:
w=[w1,w2,...,wn]\mathbf{w} = [w_1, w_2, ..., w_n]w=[w1,w2,...,wn]
- 正权重 表示兴奋性连接(鼓励神经元激活)。
- 负权重 表示抑制性连接(阻止神经元激活)。
3. 加权求和
神经元将所有输入与其对应的权重相乘,然后求和:
z=∑i=1nwixi=w1x1+w2x2+...+wnxnz = \sum_{i=1}^{n} w_i x_i = w_1x_1 + w_2x_2 + ... + w_nx_nz=∑i=1nwixi=w1x1+w2x2+...+wnxn
这可以简洁地写成向量的点积形式:z=w⋅xz = \mathbf{w} \cdot \mathbf{x}z=w⋅x
4. 偏置
然后,神经元会加上一个偏置 项 bbb :
z=w⋅x+bz = \mathbf{w} \cdot \mathbf{x} + bz=w⋅x+b
偏置的作用是调整神经元被激活的难易程度。你可以把它想象成生物神经元中的"阈值":
- 一个很高的正偏置意味着神经元很容易被激活。
- 一个很大的负偏置意味着神经元需要非常强的输入信号才能被激活。
5. 激活函数
最后,将加权求和加上偏置的结果 zzz 输入一个激活函数 fff :
y=f(z)=f(w⋅x+b)y = f(z) = f(\mathbf{w} \cdot \mathbf{x} + b)y=f(z)=f(w⋅x+b)
这个 yyy 就是该神经元的最终输出。
激活函数至关重要,它引入了非线性。 如果没有非线性激活函数,无论堆叠多少层神经网络,其整体效果仍然等价于一个单层线性模型,无法学习复杂模式。
第三部分:常见的激活函数
激活函数决定了神经元的"触发"特性。以下是一些最常见的:
-
Sigmoid
- 公式 : f(z)=11+e−zf(z) = \frac{1}{1 + e^{-z}}f(z)=1+e−z1
- 特点: 将输出压缩到 (0, 1) 之间。曾非常流行,但现在多用于输出层(如二分类问题),因为存在梯度消失问题。
-
Tanh
- 公式 : f(z)=tanh(z)=ez−e−zez+e−zf(z) = \tanh(z) = \frac{e^{z} - e^{-z}}{e^{z} + e^{-z}}f(z)=tanh(z)=ez+e−zez−e−z
- 特点: 将输出压缩到 (-1, 1) 之间,均值为0。通常比Sigmoid表现更好。
-
ReLU - 最流行的选择
- 公式 : f(z)=max(0,z)f(z) = \max(0, z)f(z)=max(0,z)
- 特点 : 当 z>0z > 0z>0 时,输出 zzz;当 z≤0z \leq 0z≤0 时,输出 000。
- 优点: 计算简单,能有效缓解梯度消失问题,加速训练。
-
Softmax - 用于多分类输出层
- 公式: 将多个神经元的输出转换为概率分布,所有输出值之和为1。
- 特点: 用于多分类问题的最后一层,每个输出代表属于某一类的概率。
总结:一个完整的例子
假设一个神经元有3个输入: [x1,x2,x3]=[0.5,0.1,0.8][x_1, x_2, x_3] = [0.5, 0.1, 0.8][x1,x2,x3]=[0.5,0.1,0.8]
其权重为: [w1,w2,w3]=[0.4,−0.2,0.6][w_1, w_2, w_3] = [0.4, -0.2, 0.6][w1,w2,w3]=[0.4,−0.2,0.6]
偏置为: b=0.1b = 0.1b=0.1
激活函数使用 ReLU。
计算过程如下:
- 加权求和 : z=(0.5∗0.4)+(0.1∗−0.2)+(0.8∗0.6)+0.1z = (0.5*0.4) + (0.1*-0.2) + (0.8*0.6) + 0.1z=(0.5∗0.4)+(0.1∗−0.2)+(0.8∗0.6)+0.1
- 计算 : z=0.2−0.02+0.48+0.1=0.76z = 0.2 - 0.02 + 0.48 + 0.1 = 0.76z=0.2−0.02+0.48+0.1=0.76
- 激活函数 : y=ReLU(0.76)=0.76y = ReLU(0.76) = 0.76y=ReLU(0.76)=0.76
所以,这个神经元的最终输出是 0.76。
总而言之,神经元是深度学习的基本构建块。它通过"权重"学习输入的重要性,通过"偏置"调整激活倾向,再通过"激活函数"引入非线性,从而共同赋予了神经网络强大的学习和表示能力。