数学本质:为什么"线性变换+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个隐藏层,神经元数=输入特征数(或输入特征数的2倍)。
例:输入5个特征(面积、房龄、地段等)→ 隐藏层5-10个神经元。
分类任务(如二分类):1-2个隐藏层,神经元数=输入特征数(或√输入特征数)。
例:输入20个特征(用户行为数据)→ 隐藏层10-20个神经元
参数的个数统计原理
假设全连接层的输入维度为 576(如展平后的特征图),输出维度为 10(如MNIST分类任务的10个类别):
权重参数(Weights):每个输出神经元需要与所有输入神经元连接,因此权重数量为:
输入维度×输出维度=576×10=5760
偏置参数(Biases):每个输出神经元有一个偏置,因此偏置数量为:
输出维度=10
总参数数量:
5760 (权重)+10 (偏置)= 5770
2025年目前的常用激活函数列表
Sigmoid
Tanh

ReLu
leaky ReLu
Swish

SoftMax
GELU

