极客时间
21天打卡行动 24/21
<<人工智能基础课26>>空竹里的秘密:自编码器
回答老师问题:
深度神经网络既可以用于分类,也可以用于特征提取,而自编码器恰恰具有提取特征的作用。那么如何看待基于深度学习的特征提取和基于人工经验的特征提取之间的区别呢?
我的理解是alphago zero和alphago 的区别,一个是在于让机器自己感知更多的维度,另一个是
人工干预的结果;
今日所学:
1,自编码器(auto-encoder)是一类执行无监督学习任务的神经网络结构,它的目的是学习一组数据的重新表达,也就是编码。
2,自编码器结构由编码映射和解码映射两部分组成;
3,如果以均方误差作为网络训练中的损失函数,自编码器的目的就是找到使均方误差最小的编解码映射的组合;
4,从信息论的角度看,编码映射可以看成是对输入信源 X 的有损压缩。有损压缩的特点决定了它不可能对所有输入都具有较小的信息量损失,因而学习的作用就是习得在训练数据集上更加精确的映射,并希望这样的映射在测试数据上同样表现良好,也就是使自编码器具有较好的泛化性能。
5,在实际中,训练深度自编码器的普遍策略是先训练一些浅层自编码器,再利用这些浅层自编码器贪心地预训练深度结构,因而浅层自编码器可以看作深度自编码器的中间件。
6,用浅层自编码器搭建成的深度自编码器被称为栈式自编码器(stacked autoencoder)。
7,栈式自编码器的训练策略可以归结为两个步骤:无监督预训练 + 有监督微调;
8,自编码器面对的一个问题是,对输入信号什么样的表达才能称为好的表达呢?同深度学习领域中的大多数问题一样,这个问题也不存在标准答案。从不同的角度回答它,得到的就是对原始自编码器的不同改进。前文中提到的过度完备的自编码器就是改进之一。由于在高维的隐藏层中,大部分神经元是被抑制的,只有少数能够输出特征表达,因而这类结构又被称为稀疏自编码器(sparse autoencoder);
9,逆概率最大化问题可以转化为负对数似然的最小化,并利用基于梯度的方法求解。另一种训练方法是得分匹配,
10,去噪自编码器的作用是对抗信号中的噪声,收缩自编码器(contractive autoencoder)的作用则是对抗信号中的微小扰动,这可以通过在损失函数中添加显式的正则化项来实现。正则化项首先要计算隐藏层输出值关于权重的雅各比矩阵(Jacobi matrix),再来计算得到的雅各比矩阵的 Frobenius 范数,也就是矩阵所有元素平方和的平方根。通过雅各比矩阵和 F 范数的计算,收缩自编码器就能抑制训练样本在低维度流形曲面上的扰动。
11,由于均方误差只适用于描述不同数值之间的差异,而不能描述不同概率分布的区别,因而变分自编码器同样使用 KL 散度作为误差度量。在有限的训练数据集上,变分自编码器能够学习到样本的概率分布,并利用这个概率分布进一步生成新的样本,因而可以作为生成模型使用。
重点提取:
1,自编码器是一种无监督学习方式,目的在于学习数据的重新表达;
2,多个浅层自编码器级联可以得到深度的栈式自编码器,并使用无监督预训练结合有监督微调的方式加以训练;
3,稀疏自编码器利用稀疏的高维表达提取出训练集中隐含的统计规律;
4,变分自编码器对隐藏层做参数化处理,可以用于学习数据的生成模型。
展开