数学本质:为什么“线性变换+ReLU”能逼近任意函数?

这源于万能近似定理(Universal Approximation Theorem)
万能近似定理是非常关键的东西
在这里插入图片描述

1. 单层ReLU网络:能逼近什么?​

如果只有1层(输入→ReLU→输出,无线性变换),ReLU是f(x)=max(0,x),只能逼近“分段线性函数”(如V型、阶梯状),无法逼近曲线(如y=x²)。

例子:用1层ReLU(y=ReLU(wx+b))拟合y=x²,无论怎么调w和b,最多得到一条折线,无法拟合抛物线。

2. 多层“线性变换+ReLU”:如何逼近曲线?​

多层网络中,每一层的ReLU将前一层线性变换的结果“非线性折叠”,多层叠加后,就能形成复杂的曲线。

以2层网络拟合y=x²为例:

第1层(线性变换+ReLU):将x映射为5个非线性特征(如h1=ReLU(w1x+b1),h2=ReLU(w2x+b2),…);

第2层(线性变换):将这些特征加权求和(y=w1h1 + w2h2 + … + b),通过调整权重w1,w2,…,让总和逼近x²。

直观理解:就像用“乐高积木”搭曲线——每一层ReLU是“折角”,多层叠加后就能拼出任意曲线。

所以本质上就是用离散的线段来拟合曲线的概念,每一层可能有非常多的神经元,总共可能需要非常多的层数,所以可能产生上千亿个未知参数的问题,所以需要GPU农场才能计算得到结果

训练任务通常是未知函数形状的,那么猜就非常随机,这里有一些可以参考的前辈的经验

1. 任务复杂度​

简单任务(如线性回归、二分类手写数字“0/1”):函数关系简单,用浅层网络(1-2个隐藏层,每层几十个神经元)即可。

复杂任务(如ImageNet图像分类、语音识别):函数关系复杂(高维、非线性、多模态),需深层网络(10+层,每层数百至数千神经元)。

2. 数据规模​

小数据(样本数<1万):用简单结构(避免过拟合),如1-2个隐藏层,神经元数<100。

大数据(样本数>10万):可用复杂结构(数据足够“喂饱”模型),如5-10个隐藏层,神经元数数百至数千。

3. 计算资源​

资源有限(如手机端部署):用轻量化结构(如MobileNet,层数少、神经元少);

资源充足(如服务器训练):可尝试深层网络(如ResNet-101,101层)。

三、经验法则:从“简单到复杂”的试错流程​

虽然没有公式,但行业内有通用经验法则,帮你快速缩小试错范围。以下按“从简到繁”排序:

  1. 起点:用“最小可行结构”测试​

原则:先假设函数简单,用浅层小网络试跑,观察效果(是否欠拟合)。

回归任务(如预测房价):1个隐藏层,神经元数=输入特征数(或输入特征数的2倍)。

例:输入5个特征(面积、房龄、地段等)→ 隐藏层5-10个神经元。

分类任务(如二分类):1-2个隐藏层,神经元数=输入特征数(或√输入特征数)。

例:输入20个特征(用户行为数据)→ 隐藏层10-20个神经元

参数的个数统计原理

这个例子不全面 下文有更新,暂且保留此例
假设全连接层的输入维度为 576(如展平后的特征图),输出维度为 10(如MNIST分类任务的10个类别):

权重参数(Weights):每个输出神经元需要与所有输入神经元连接,因此权重数量为:

输入维度×输出维度=576×10=5760

偏置参数(Biases):每个输出神经元有一个偏置,因此偏置数量为:

输出维度=10

总参数数量:

5760 (权重)+10 (偏置)= 5770

UPDATE

计算每个可学习层的参数数量
•conv1(nn.Conv2d(3, 6, 5)):

参数数量 = 输出通道数×(输入通道数×卷积核尺寸 + 1)= 6×(3×5×5 + 1) = 6×76 = 456	个;

•conv2(nn.Conv2d(6, 16, 5)):

参数数量 = 16×(6×5×5 + 1) = 16×151 = 2416个;

•fc1(nn.Linear(16 * 5 * 5, 120)):

输入维度=16×5×5=400,输出维度=120,参数数量=120×(400+1)= 48120个;

•fc2(nn.Linear(120, 84)):

参数数量=84×(120+1)= 10164个;

•fc3(nn.Linear(84, 10)):

参数数量=10×(84+1)= 850个。

3. 求和得到总参数数量​
总参数 = 456 + 2416 + 48120 + 10164 + 850 = 61906个(约6万参数)。​

2025年目前的常用激活函数列表

Sigmoid
Tanh
在这里插入图片描述
ReLu
leaky ReLu
Swish
在这里插入图片描述
SoftMax
GELU
在这里插入图片描述
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐