Stacked Autoencoders学习笔记

SAE
上图是一个栈式自编码算法模型,属于无监督学习。栈式自编码神经网络是一个由多层自编码器组成的神经网络,其前一层自编码器的输出作为其后一层自编码器的输入。通过将重构的x与输入的x相减来计算误差。
encoder部分从原始2000维特征降至50维(根据实际情况,自定义特征数),有三个隐层,每一层都是提取的高维特征,最后一层作为降维后的特征可用作分类和回归。decoder部分输出重构的x,通过调整encoder和decoder的参数,使得重构误差最小。

含有一个隐层的AE模型
一个隐层的AE

栈式自编码算法代码解读
代码来源:Matlab Toolbox for Dimensionality Reduction

function [model, mappedX] = train_deep_autoenc(X, layers, lambda)
%TRAIN_DEEP_AUTOENC Trains a deep feedforward autoencoder on X
%X是原始数据集,NxD。layers是一维数组,存放每层降维的特征数,按上述图中,则是[1000 500 50]。lambda是L2规则项的系数(默认为0),

    if ~exist('lambda', 'var') || isempty(lambda)
        lambda = 0;
    end

    % Pretrain model using stacked denoising auto-encoders
    no_layers = length(layers);%encoder的层数,上述图片中是3层
    model = cell(2 * no_layers, 1);%初始化SAE模型,6层
    mappedX = X;
    for i=1:no_layers  %预训练encoder部分的参数W和b
        noise = 0.1;
        max_iter = 30;
        [network, mappedX] = train_autoencoder(mappedX, layers(i), noise, max_iter);%传入每一个隐层的特征数
        model{i}.W        = network{
   1<
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值