当前位置:网站首页>神经网络学习笔记4——自动编码器(含稀疏,堆叠)(更新中)
神经网络学习笔记4——自动编码器(含稀疏,堆叠)(更新中)
2022-07-30 09:58:00 【奥利奥好吃呀】
目录
配套讲解视频
建议配合视频阅读博文
10分钟学会自动编码器从原理到编程实现_哔哩哔哩_bilibili
10分钟学会自动编码器从原理到编程实现
1.程序和数据集
链接:https://pan.baidu.com/s/1aSNq94BJuKsiKO5gNGF29Q
提取码:6666
--来自百度网盘超级会员V5的分享
2.自动编码器
2.1自编码器原理
通过无监督学习的方式来学习一组数据中的有效编码


自编码器的目标:重新提取特征,降低维度,最小化重构错误
目标函数:使重构错误为0

简单的两层自编码器实示例

2.2代码实现
1.数据导入
D=xlsread('C:\Users\86188\Desktop\B站ppt\ae\RaisinDataset.xlsx');
data=D(:,1:7)';
label=D(:,8)';2.数据集处理
k=rand(1,900);
[m,n]=sort(k);
input_train=data(:,n(1:750));
input_test=data(:,n(751:900));
output_train=label(:,n(1:750));
output_test=label(:,n(751:900));
x = input_train;
t=ind2vec(output_train);
t=full(t)3.设置网络结构
ae1=trainAutoencoder(x,5);
features=encode(ae1,x);
softmax=trainSoftmaxLayer(features,t);
nets=stack(ae1,softmax);4.显示结果,测试网络
view(nets)
output_test
y=nets(input_test) 
5.计算准确率
for i=1:150
output_fore(i)=find(y(:,i)==max(y(:,i)));
end
right1=0;
for i=1:150
if output_fore(i) == output_test(i)
right1=right1+1;
end
end
right=right1/1503.堆叠式自编码器
对于很多数据来说,仅使用两层神经网络的自编码器还不足以获取一种好的数据表示,为了获取更好的数据表示,我们可以使用更深层的神经网络,深层神经网络作为自编码器提取的数据表示一般会更加抽象,能够更好地捕捉到数据的语义信息。
在实践中经常使用逐层堆叠的方式来训练一个深层的自编码器。称为堆叠自编码器(StackedAuto-EncoderSAE)堆叠自编码器一般可以采用逐层训练(Layer-WiseTraining)来学习网络参数
4.稀疏自编码器
4.1稀疏编码
稀疏编码的优点
(1).计算量
稀疏性带来的最大好处就是可以极大地降低计算量。
(2)可解释性
因为稀疏编码只有少数的非零元素,相当于将一个输入样本表示为少数几个相关的特征。这样我们可以更好地描述其特征,并易于理解。
(3)特征选择
稀疏性带来的另外一个好处是可以实现特征的自动选择,只选择和输入样本相关的最少特征,从而可以更好地表示输入样本,降低噪声并减轻过拟合。
4.2.稀疏自编码器
通过给自编码器中隐藏层单元z加上稀疏性限制,自编码器可以学习到数据中一些有用的结构。
目标函数

W表示自编码器中的参数
和稀疏编码一样,稀疏自编码器的优点是有很高的可解释性,并同时进行了隐式的特征选择.
结构图

边栏推荐
- GNOME 新功能:安全启动被禁用时警告用户
- 系统设计精选 | 基于FPGA的CAN总线控制器的设计(附代码)
- 自适应控制——仿真实验一 用李雅普诺夫稳定性理论设计自适应规律
- Domino服务器SSL证书安装指南
- Detailed explanation of JVM memory layout, class loading mechanism and garbage collection mechanism
- The method of parameter passing
- Four ways the Metaverse is changing the way humans work
- 4. yolov5-6.0 ERROR: AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor' solution
- 606. Create a string from a binary tree (video explanation!!!)
- Flink_CDC搭建及简单使用
猜你喜欢
![[Qualcomm][Network] 网络拨号失败和netmgrd服务分析](/img/76/49054ff8c7215eca98cc479ab1d986.png)
[Qualcomm][Network] 网络拨号失败和netmgrd服务分析

你真的懂Redis的5种基本数据结构吗?

Flink_CDC construction and simple use

Verilog之数码管译码

【HMS core】【FAQ】HMS Toolkit典型问题合集1

New in GNOME: Warn users when Secure Boot is disabled

多线程保证单个线程开启事务并生效的方案

【HMS core】【Analytics Kit】【FAQ】如何解决华为分析付费分析中付款金额显示为0的问题?

flowable workflow all business concepts

百度推广助手遇到重复关键字,验证错误,怎么一键删除多余的
随机推荐
105. Construct binary tree from preorder and inorder traversal sequence (video explanation!!)
flowable工作流所有业务概念
梅科尔工作室-看鸿蒙设备开发实战笔记五——驱动子系统开发
Re21:读论文 MSJudge Legal Judgment Prediction with Multi-Stage Case Representation Learning in the Real
线程池方式开启线程--submit()和execute()的区别
A new generation of free open source terminal tool, so cool
105. 从前序与中序遍历序列构造二叉树(视频讲解!!)
线上靶机prompt.ml
你真的懂Redis的5种基本数据结构吗?
Js array operating mobile for encapsulation
Multi-threading scheme to ensure that a single thread opens a transaction and takes effect
Do you really understand the 5 basic data structures of Redis?
Re18:读论文 GCI Everything Has a Cause: Leveraging Causal Inference in Legal Text Analysis
Array of Shell System Learning
OC-ARC (Automatic Reference Counting) automatic reference counting
Materialist Dialectics - Conditionalism
OC-手动引用计数内存管理
北京突然宣布,元宇宙重大消息
这种叫什么手法
MySQL |子查询