文章目录
第9章:神经网络基础
本章将带你从最基本的神经元模型出发,逐步深入到构成现代深度学习模型的基石:多层感知机、激活函数、反向传播算法以及各类优化器。理解这些,你才能真正理解深度学习是如何“学习”的。
9.1 从感知机到多层感知机 (MLP)
核心思想
一切要从最简单的模型——感知机 (Perceptron) 说起。你可以把它想象成一个最基础的决策单元。它接收多个输入信号,将它们加权求和,然后通过一个简单的阶跃函数(如果总和超过某个阈值就输出1,否则输出0),做出一个二元决策。
然而,单个感知机有一个致命的弱点:它只能解决线性可分的问题。对于像“异或 (XOR)”这样简单的非线性问题,它便无能为力。为了克服这个限制,我们将多个感知机以前馈的方式连接起来,构建成多层感知机 (Multilayer Perceptron, MLP),也称为全连接神经网络。通过在神经元之间引入隐藏层 (Hidden Layers) 和非线性激活函数,MLP 获得了拟合复杂非线性关系的能力,从而奠定了现代深度学习的基础。
数学原理
-
感知机模型:
给定输入向量 x = ( x 1 , x 2 , . . . , x n ) x = (x_1, x_2, ..., x_n) x=(x1,x2,...,xn) 和权重向量 w = ( w 1 , w 2 , . . . , w n ) w = (w_1, w_2, ..., w_n) w=(w1,w2,...,wn) 以及偏置 b b b,其输出 y y y 由以下函数决定:y = f ( ∑ i = 1 n w i x i + b ) y = f(\sum_{i=1}^{n} w_i x_i + b) y=f(i=1∑nwixi+b)
其中 f f f 是一个简单的阶跃函数 (Step Function)。 -
多层感知机 (MLP):
一个典型的MLP包含输入层、至少一个隐藏层和输出层。每一层的神经元都与下一层的所有神经元完全连接。
对于一个隐藏层中的神经元,其输出 a a a 的计算方式为:a = g ( W x + b ) a = g(W x + b) a=g(Wx+b)
其中, x x x 是上一层的输出(或原始输入), W W W 是权重矩阵, b b b 是偏置向量, g g g 是一个非线性激活函数(详见9.2节)。这个输出 a a a 将作为下一层的输入,如此层层传递,直到输出层。
面试热点
-
为什么单个感知机无法解决异或问题?
- 回答思路: 异或问题在二维空间中不是线性可分的。你可以在纸上画出四个点 (0,0), (0,1), (1,0), (1,1),会发现无法用一条直线将属于同一类别的点划分在同一侧。而感知机的决策边界本质上是一条直线(或高维空间中的超平面),因此它无法解决这个问题。
-
MLP相比于感知机,关键的改进是什么?
- 回答思路: 有两点核心改进。第一是增加了隐藏层,这使得网络可以学习到数据更复杂的层次化特征表达。第二是使用了非线性的激活函数,这是至关重要的一点。如果没有非线性激活函数,那么无论叠加多少层,整个网络本质上仍然等价于一个单层的线性模型,无法学习非线性关系。
9.2 激活函数 (Activation Functions)
核心思想
激活函数是神经网络的灵魂所在,它负责向网络中引入非线性。正是因为有了它,神经网络才具备了学习和表示复杂非线性函数的能力,从而能够解决现实世界中绝大多数的非线性问题。
常用激活函数对比
| 激活函数 | 数学公式 | 导数 | 优点 | 缺点 |
|---|---|---|---|---|
| Sigmoid | σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+e−z1 | σ ′ ( z ) = σ ( z ) ( 1 − σ ( z ) ) \sigma'(z) = \sigma(z)(1-\sigma(z)) σ′(z)=σ(z)(1−σ(z)) | 输出在(0,1)之间,可用作概率表示;函数平滑,易于求导。 | 1. 梯度消失:输入值很大或很小时,导数趋近于0,导致反向传播时梯度消失,模型训练困难。 2. 输出非零中心:输出恒为正,会导致下一层输入的非零中心化,影响收敛速度。 |
| Tanh | tanh ( z ) = e z − e − z e z + e − z \tanh(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}} tanh(z)=ez+e |

最低0.47元/天 解锁文章
17万+

被折叠的 条评论
为什么被折叠?



