• 2025年8月29日 星期五

4.1自编码器-引入

8 月 28, 2025

自编码器的分层初始化(Layer-wise Pretraining)思想,其实就是 2006 年 Hinton 等人提出的 深度网络逐层无监督预训练 方法。

1. 背景

  • 在深度学习早期(2000 年前后),深层神经网络训练很难:
    • 随机初始化 → 反向传播时梯度消失 / 爆炸;
    • 没有足够标注数据,深层网络容易陷入局部最优。
  • Hinton 提出利用 自编码器 逐层无监督训练网络,把深度模型拆解成若干层来初始化参数。

2. 分层初始化的核心思想

逐层训练 + 自底向上堆叠

  1. 先训练一个浅层自编码器(输入层 → 隐层 → 重构输出层),学到第一层特征。
  2. 固定第一层权重,只保留隐层表示,作为“输入”去训练第二个自编码器,得到第二层特征。
  3. 重复以上过程,层层堆叠,直到得到多层网络的参数。
  4. 最后把这些预训练好的权重作为深度神经网络的 初始化参数,再用有监督的目标(分类/回归)进行 整体微调(fine-tuning)

3. 为什么有效?

  • 缓解梯度消失问题:每一层都先单独学会“有用的特征”,不依赖深层反向传播。
  • 更好的初始化:比随机初始化更接近“合适区域”,微调时更容易收敛。
  • 利用无标签数据:自编码器训练不需要标签,可以充分利用海量未标注农作物图像。

Matlab代码

3.function sae= sae create(SIZE)
    sae =nn create([SIZE(1),SIZE(2),SIZE(1)]) %输入和输出都是SIZE1,中间层是SIZE2 这是各层训练初始化的过程
4.function sae =sae train(sae,option,train_x)
    sae.encoder = 1;
    sae=nn train(sae,option,train_x,train_x)
end
Avatar photo

李星海

简介: 2025-今 浙江农林大学 | 2022-今 广州白蓝碗蛋科技有限公司 | 2022-2024 广州商学院 | 2019-2022 广东工贸职业技术学院 | 服务宗旨:心始至客,行亦致远。