-
自编码器:(目标:output = input)——无监督/自监督学习模型
自编码器的主要作用是通过编码—解码和重构训练,学习输入数据的低维紧凑表示,从而实现特征提取、降维或数据压缩,并为后续任务提供更有用的特征。
注:有些自编码器即使隐藏层维度不比输入小,也仍然能学到有用特征,比如加了稀疏约束、去噪约束时。
1、PCA与自编码器对比:
PCA 和自编码器都可以用于降维,其共同点是都希望在减少特征维度的同时尽可能保留原始数据中的主要信息。不同的是,PCA 本质上是线性变换方法,而自编码器依靠神经网络可以学习更复杂的非线性特征表示。
2、自编码器逻辑:
(1)重构任务 + 信息限制 = 有意义的特征学习
(2)模型学到的不是简单复制,而是数据的结构规律
3、欠完备自编码器、稀疏自编码器、去噪自编码器(用不同的方式限制模型,防止它学成简单复制)
(1)欠完备自编码器:隐藏层维度比输入层维度更小。
限制方式:直接压缩隐藏层维度,限制信息通道容量
(2) 稀疏自编码器:希望隐藏层里虽然神经元很多,但每次只有很少一部分被激活。
限制方式:约束隐藏层,仅少量神经元激活来获得稀疏表示
(3)去噪自编码器:输入加噪,但希望输出重构原始干净数据
限制方式:破坏输入细节,让模型不能依赖原始样本的每个局部细节来照抄
4、“每个样本稀疏”和“总体平均稀疏”区别(就稀疏自编码器而言):
每个样本稀疏:关注的是单个样本进来时,隐藏层有多少神经元被激活。通常通过在损失函数中加入L1正则项实现,直接约束单个样本的激活向量的稀疏性,让大部分激活值趋近于 0。
总体平均稀疏:关注的是从很多样本整体来看,每个神经元平均多久激活一次。最经典的实现方式是KL散度约束(比如经典的稀疏自编码器做法),先计算每个神经元在训练集上的平均激活率,再让这个平均激活率和一个很小的目标稀疏度(比如 0.05)做KL散度,强迫神经元平均激活次数变少。
例:样本1: h11 h12 h13 h14
样本2: h21 h22 h23 h24
样本3: h31 h32 h33 h34
每个样本稀疏关注的是单个样本进来时,比如样本1,只有少数几个神经元不为0,即少数h1x不为0;而总体平均稀疏则是关注列,就神经元1而言,要求其列平均值要小,即hy1的平均值要小。
补充1:L1正则与KL散度
L1正则:就是在原损失函数的后面,加上“参数绝对值之和”的惩罚项,用来约束模型不要不要把太多参数都搞的太大。

KL散度:(图中由信息论中的互信息定义推至KL散度)

补充2:超参数与参数的区别
参数:训练过程中学出来的权重、偏置等。
超参数:训练前人为设定的学习率、batch size、网络层数、正则化系数、稀疏目标等。

1万+

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



