DeepLearnToolbox代码详解——SAE,DAE模型

一:引言.sae,dae,dropout模型简介

上面提到的三个模型都是在经典的多层神经网络的基础上加深构架得到;例如sae(Stack autoencoder)就是理堆叠多个autoencoder,然后使用fine_tuning过程;dae(Denoising autoencoder)是在标准的sae基础上给输入数据加入噪声,利用污染后的数据进行sae;dropout 则是随机忽略隐层节点来训练多个不同的模型,然后通过模型平均来预测。

下面就详细讲解一下这个sae框架的训练过程,以及调用函数的说明。

二:实例讲解

1.  试验准备:

DeepLearnToolbox-master代码:https://github.com/rasmusbergpalm/DeepLearnToolbox

2. 文件配置:

2.1 首先打开新建的test_sae.m文件;

2.2 然后把current folder,窗口转到……matlabdlToolBox\DeepLearnToolbox-master

2.3 在command 窗口输入:addpath(genpath('.'));

2.4 打开test_sae.m,运行就ok了

2.5 等着出结果

3.网络结构说明

本文以minist手写数字识别为例,输入数据为784,即visible层为784个节点。

假设我们训练的网络结构为:784——200—— 100—— 10,也就是说有4层,一个输入层,2个中间隐层;1个输出隐层,来进行预测分类。

网络结构如图:


4.主函数代码:test_sae.m

clear all; close all; clc;

%% //导入数据

load mnist_uint8;

train_x = double(train_x)/255;

test_x  = double(test_x)/255;

train_y = double(train_y);

test_y  = double(test_y);

 

%%一:采用autoencoder进行预训练

rng(0);%高版本的matlab可以使用这个语句,低版本会出错

sae = saesetup([784 200 100]);

sae.ae{1}.activation_function      = 'sigm';

sae.ae{1}.learningRate             = 1;

sae.ae{1}.inputZeroMaskedFraction  = 0.;

sae.ae{2}.activation_function      = 'sigm';

sae.ae{2}.learningRate             = 1;

sae.ae{2}.inputZeroMaskedFraction  = 0.;

opts.numepochs =   1;

opts.batchsize = 100;

visualize(sae.ae{1}.W{1}(:,2:end)')

%二:fine_tuning过程

% Use the SDAE to initialize a FFNN

nn = nnsetup([784 200 100 10]);

nn.activation_function             = 'sigm';

nn.learningRate                    = 1;

%add pretrained weights

nn.W{1} = sae.ae{1}.W{1};

nn.W{2} = sae.ae{2}.W{1};

% Train the FFNN

opts.numepochs =   1;

opts.batchsize = 100;

nn = nntrain(nn, train_x, train_y, opts);

[er, bad] = nntest(nn, test_x, test_y);

str = sprintf('testing error rate is: %f',er);

disp(str)


三:pre_training阶段代码详解

3.1:网络结构建立

    Sae网络就是堆叠多个autoencoder网络,所以此网络结构由2个autoencoder构成,分别是:v—h1—v和h1—h2—h1.

此处主要利用saesetup函数来实现,

3.1.1  Saesetup函数说明

  • 6
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 31
    评论
DAE代码matlab是指使用matlab编写的用于实现深度自动编码器(Deep Autoencoder)的代码。在引用中提到了一个名为Vconv-dae代码库,其中包含了用于训练模型、可视化结果以及处理形状和混合数据的代码工具。这个代码库可以用于进行3D体积降噪的实验。另外,在引用中提到了一个使用matlab的代码示例,名为DAE demo,用于展示深度自动编码器的功能。这些代码提供了实现深度自动编码器的基本功能,可以用于数据降噪、特征学习等任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [smote的matlab代码-imbalanced-algorithms:基于Python的不平衡数据学习算法实现](https://download.csdn.net/download/weixin_38605604/19724371)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [去噪代码matlab-VCONV-DAE:3D体积降噪自动编码器(ECCV-16)的源代码](https://download.csdn.net/download/weixin_38588520/19116036)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [微分代数方程(DAE)的Matlab 解法.PDF](https://blog.csdn.net/weixin_36068199/article/details/115820899)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值