NN Q&A

Q1: 手写数字识别为什么不用二进制而用向量表示结果?
A:图形的形状要素与二进制数值最高位很难建立联系。当然如果要求输出结果为二进制,只需要再加一层神经元即可,将向量表转换成二进制。
Q2:泛化?
A:机器学习的核心指标,表示模型对未见过的数据的适应与预测能力,可以类比人类的学习过程。
提升泛化能力的主要途径:1、选择适当的网络深度和神经元数量,2、数据增强、合理采样,3、动态调整学习率,采用正则化技术。
Q3:交叉熵
A:
交叉熵损失函数适用于分类任务,概率分布优化,均方误差适用于回归,连续值预测。
Q4:正则化
模型训练阶段对权重参数进行约束
一、L1正则化(稀疏性约束)
‌函数名‌: L1 或 l1
‌语法示例‌:

点击查看代码
from tensorflow.keras import regularizers
#方式1:直接设置正则化系数(推荐)
model.add(tf.keras.layers.Dense(  
    units=64,  
    activation='relu',  
    kernel_regularizer=regularizers.L1(l1=0.01)  # L1正则化,系数λ=0.01  
))  
#方式2:快捷函数(等效写法)
model.add(tf.keras.layers.Dense(  
    units=64,  
    activation='relu',  
    kernel_regularizer=regularizers.l1(0.01)  
))
‌作用‌: 惩罚权重绝对值之和,推动部分权重趋近于0,实现特征选择13; 适用于高维稀疏数据(如文本分类)3。

二、L2正则化(权重衰减)
‌函数名‌: L2 或 l2
‌语法示例‌:

点击查看代码
#方式1:显式指定正则化类型
model.add(tf.keras.layers.Conv2D(  
    filters=32,  
    kernel_size=(3,3),  
    kernel_regularizer=regularizers.L2(l2=0.001)  # L2正则化,系数λ=0.001  
))  
#方式2:快捷函数
model.add(tf.keras.layers.Dense(  
    units=10,  
    activation='softmax',  
    kernel_regularizer=regularizers.l2(0.001)  
))
‌作用‌: 惩罚权重平方和,限制权重幅度,防止模型过拟合35; 广泛用于深度学习模型(如全连接层、卷积层)4。 三、组合正则化(L1+L2,弹性网络) ‌函数名‌: L1L2 ‌语法示例‌:
点击查看代码
#同时应用L1和L2正则化(λ1=0.01, λ2=0.001)
model.add(tf.keras.layers.Dense(  
    units=128,  
    kernel_regularizer=regularizers.L1L2(l1=0.01, l2=0.001)  
))
‌作用‌: 平衡稀疏性与平滑性,适用于需要同时优化特征选择和泛化能力的场景5。 四、核心参数说明(参数‌--功能) l1--L1正则化系数(默认0) l2--L2正则化系数(默认0) kernel--是否对权重矩阵正则化(默认True) bias--是否对偏置项正则化(默认False,通常不推荐)3 五、完整代码示例
点击查看代码
import tensorflow as tf  
from tensorflow.keras import layers, regularizers  
#定义带正则化的模型
model = tf.keras.Sequential([  
    layers.Dense(64, activation='relu',  
                 kernel_regularizer=regularizers.l1_l2(l1=0.01, l2=0.005)),  # 弹性网络正则化  
    layers.Dense(10, activation='softmax',  
                 kernel_regularizer=regularizers.l2(0.001))  # 输出层L2正则化  
])  

#编译模型
model.compile(  
    optimizer='adam',  
    loss='categorical_crossentropy',  
    metrics=['accuracy']  
)
六、注意事项 ‌1、正则化系数(λ)调参‌: 2、λ过大导致欠拟合,λ过小无法抑制过拟合,建议通过网格搜索确定35; ‌3、作用范围‌:正则化通常仅作用于权重(kernel_regularizer),而非偏置(避免引入额外偏差)3; ‌4、性能影响‌:正则化会增加训练时间,但对推理阶段无影响4。 通过合理选择L1/L2正则化及其组合,可显著提升TensorFlow模型的泛化能力。 **Q5:二次代价函数** A:
posted @ 2025-05-12 18:35  Jenny43473  阅读(34)  评论(0)    收藏  举报