深度学习基础知识整理

news2024/12/27 15:15:58

自动编码器

Auto-encoders是一种人工神经网络,用于学习未标记数据的有效编码。它由两个部分组成:编码器和解码器。编码器将输入数据转换为一种更紧凑的表示形式,而解码器则将该表示形式转换回原始数据。这种方法可以用于降维,去噪,特征提取和生成模型。
自编码器的训练过程是无监督的,因为它不需要标记数据。它的目标是最小化重构误差,即输入数据与解码器输出之间的差异。这可以通过反向传播算法和梯度下降等优化方法来实现。
自编码器有多种变体,包括稀疏自编码器,去噪自编码器,变分自编码器等。这些变体旨在强制学习到的表示具有某些有用的属性,例如稀疏性或噪声鲁棒性。
自动编码器作为一种前馈神经网络,由编码器和解码器两个阶段组成。编码器获取输入x,并通过如下非线性映射将其转换为隐藏表示
h = φ ( W x + b ) h=φ(Wx+b) h=φ(Wx+b)
其中φ是非线性激活函数,然后解码器通过如下方法将隐藏表示映射回原始表示
z = φ ( W ′ h + b ′ ) z=φ(W'h+b') z=φ(Wh+b)
对包括θ=[W,b,W′,b′]在内的模型参数进行优化,以最小化 z = f θ ( x ) z=f_{θ}(x) z=fθ(x)和x之间的重建误差。N个数据样本集合上平均重建误差的一个常用度量是平方误差,相应的优化问题可以写成
m i n θ 1 N ∑ i N ( x i − f θ ( x i ) ) 2 min_θ \frac{1}{N} \sum^{N}_{i}(x_i - f_θ(x_i))^2 minθN1iN(xifθ(xi))2
其中 x i x_i xi是第i个样本。这清楚地表明,AE可以以无监督的方式进行训练。隐藏表示h可以被视为数据样本x的一种更抽象、更有意义的表示。通常,隐藏大小应该设置为大于AE中的输入大小,这是经过经验验证的。

稀疏自编码器

在自编码器中,稀疏性是指编码器的输出中只有少量的非零元素。这可以通过向损失函数添加一个惩罚项来实现,以鼓励编码器生成更少的非零元素。这个惩罚项通常是L1正则化项,它是编码器输出向量中所有元素的绝对值之和。这个技巧被称为“稀疏自编码器”。 稀疏自编码器的目标是学习到一组稀疏的特征,这些特征可以更好地表示输入数据。这种方法可以用于特征提取和降维。相应的优化函数更新为
m i n θ 1 N ∑ i N ( x i − f θ ( x i ) ) 2 + ∑ j m K L ( p ∣ ∣ p j ) min_θ \frac{1}{N} \sum^{N}_{i}(x_i - f_θ(x_i))^2+\sum_{j}^{m}KL(p||p_j) minθN1iN(xifθ(xi))2+jmKL(p∣∣pj)
其中m为隐藏层大小,第二项是隐藏单元上KL发散的总和。第j个隐藏神经元上的KL散度为
K L ( p ∣ ∣ p j ) = p l o g ( p p j ) + ( 1 − p ) l o g ( 1 − p 1 − p j ) KL(p||p_j)=plog(\frac{p}{p_j})+(1-p)log(\frac{1-p}{1-p_j}) KL(p∣∣pj)=plog(pjp)+(1p)log(1pj1p)
其中p为预定义的平均激活目标, p j p_j pj是整个数据集上第j个隐藏神经元的平均激活。

Addition of Denoising

在自编码器中,去噪是指通过自动编码器去除输入数据中的噪声。这可以通过向损失函数添加一个惩罚项来实现,以鼓励编码器生成更少的非零元素。这个惩罚项通常是L1正则化项,它是编码器输出向量中所有元素的绝对值之和。这个技巧被称为“去噪自编码器”。
去噪自编码器的目标是学习到一组稀疏的特征,这些特征可以更好地表示输入数据。这种方法可以用于特征提取和降维。

Stacking Structure

几个降噪自编码器可以堆叠在一起形成深度网络,通过将第l层输出作为输入提供给第(l+1)层来学习高级表示,训练是贪婪地一层一层完成的。

由于自动编码器可以以无监督的方式进行训练,因此自动编码器,特别是堆叠去噪自动编码器(SDA),可以通过初始化深度神经网络(DNN)的权重来训练模型,从而提供有效的预训练解决方案。在SDA的逐层预训练之后,可以将自动编码器的参数设置为DNN的所有隐藏层的初始化。然后,执行有监督的微调以最小化标记的训练数据上的预测误差。通常,在网络顶部添加一个softmax/回归层,以将AE中最后一层的输出映射到目标。与任意随机初始化相比,基于SDA的预训练协议可以使DNN模型具有更好的收敛能力。
image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1388891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高级分布式系统-第15讲 分布式机器学习--分布式机器学习算法

高级分布式系统汇总:高级分布式系统目录汇总-CSDN博客 分布式机器学习算法 按照通信步调,大致可以分为同步算法和异步算法两大类。 同步算法下,通信过程中有一个显式的全局同步状态,称之为同步屏障。当工作节点运行到同步屏障 …

MySQL索引创建原则和失效问题

一.索引创建原则 数据量较大,且查询比较频繁的表常作为查询条件、分组、排序的字段字段内容区分度高内容较长,使用前缀索引尽量创建联合索引要控制索引的数量如果索引列不能存储NULL值,请在创建表示使用NOT NULL约束它 二.索引失效 违反最左前缀法则范围查询右边的列,不能使用…

可持续技术:2024 年技术趋势的绿色创新

随着我们步入2024年,对可持续技术解决方案的关注从未如此强烈。从可再生能源到环保小工具,科技行业正朝着更环保、更可持续的未来大步迈进。 在快速发展的技术领域,创新是推动我们走向可持续未来的动力。随着我们步入2024年,对可持…

基于Docker Compose单机实现多级缓存架构2024

文章目录 一、环境参考二、专栏简介三、扩展 一、环境参考 NameVersionDocker Desktop for Windows4.23.0Openjdk8MySQL8.2.0Redis7.2Canal1.1.7OpenResty1.21.4.3-3-jammy-amd64Lua-Caffeine- 二、专栏简介 多级缓存实现过程比较长,将拆分为多个文章分步讲述。如…

[我的rust付费栏目]rust跟我学(一)已上线

大家好,我是开源库get_local_info的作者带剑书生,get_local_info诞生半个月,现在已经获得500的下载量,并获社区日更前五名,后被西安城市开发者社区收录(【我的Rust库】get_local_info 0.1.5发布_rust_科比布…

CMake 实战构建TcpServer项目 静态库/动态库

爱编程的大丙CMake: 20. 举例 - 下_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV14s4y1g7Zj?p20&spm_id_frompageDriver&vd_sourcea934d7fc6f47698a29dac90a922ba5a3 hehedalinux:~/Linux/LinuxServerCpp$ ls Buffer.cpp Log.h Buffe…

墙地砖外形检测的技术方案-图像分割

基础原理 由于对碗口进行缺口检测,因此只需要碗口的边界信息。得到陶瓷碗区域填充后的图像,对图像进行边缘检测。这是属于图像分割中的内容,在图像的边缘中,可以利用导数算子对数字图像求差分,将边缘提取出来。 案例…

shell脚本算术运算

算术运算符 注意: 不是单引号,是键盘左上角那个反单引号条件表达式要放在方括号之间,并且要有空格,例如:[ a a ab]是错误的,必须写成[ $a $b ]。cost_Minexpr $cost_time / 60 前后不能有空格,否则出…

【第十四课】并查集(acwing-836合并集合 / 做题思路 /c++代码)

目录 错误思路(但能骗分emm)--邻接矩阵(可以跳过) 思路 存在的问题 代码如下 并查集 思路 代码如下 一些解释 错误思路(但能骗分emm)--邻接矩阵(可以跳过) 思路 刚看到这道题我自己做的时候,因为之前学的trie树的时候意识到使用二维数组的含义,…

如何配置Pycharm服务器并结合内网穿透工具实现远程开发

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,…

开启C++之旅(下):引用、内联函数及现代特性(auto和范围for循环)

上次介绍了:开启C之旅(上):探索命名空间与函数特性(缺省参数和函数重载) 今天就接着进行c入门的知识讲解 文章目录 1.引用1.1引用概念1.2引用特性1.3常引用其他情况 1.4引用使用场景1.4.1做参数1.4.2做返回…

使用VSCode内的jupyter编写R语言:绘制中国省份地区热力图

R语言绘制中国省份地区热力图教程 1、R语言的安装和编辑器的选择 对于一门从未接触过的编程语言,相信大家的吐槽点和我一样:又要安装软件,配置环境!其实R语言的安装和环境配置并不复杂,只需要安装两部分内容&#xf…

第15届蓝桥STEMA测评真题剖析-2023年12月17日Scratch编程初中级组

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第166讲。 第15届蓝桥第3次STEMA测评,这是2023年12月17日举办的STEMA,比赛仍然采取线上形式。这…

ESP32-Touch(Arduino)

Touch Touch传感器是一种外围设备,具有内部振荡器电路,可在固定时间段内测量相应GPIO引脚上的充电/放电频率。 因此,这些触摸传感器也被称为电容式传感器。例如,如果您触摸这些引脚中的任何一个,手指电荷将改变这个周…

Vue学习计划-Vue3--核心语法(十)Proxy响应式原理

Proxy响应式原理 1.Vue2的响应式 实现原理: 对象类型:通过Object.defineProperty()对属性的读取、修改进行拦截(数据劫持)数组类型:通过重写更新数组的一系列方法来实现拦截,(对数组的变更方法…

【数学建模】图论模型

文章目录 图的基础理论及networkx简介图的基本概念图的表示及Networkx简介图的表示NetworkX简介 最短路算法及其Python实现固定起点到其余各点的最短路算法每对顶点间的最短路算法最短路应用 最小生成树算法及其networkx实现基本概念最小生成树算法最小生成树应用 匹配问题最大…

【JavaEE进阶】 利用Spring简单实现加法计算器和用户登录

文章目录 🎍序言🌳加法计算器🚩准备工作🚩约定前后端交互接⼝🌲后端服务器代码的书写 🌴用户登录🚩效果展示🚩准备工作🚩约定前后端交互接⼝🎈需求分析&#…

【leetcode刷题】模拟专题

模拟 一、替换所有的问号1、题目链接2、解析3、代码 二、提莫攻击1、题目链接2、解析3、代码 三、Z字形变换1、题目链接2、解析3、代码 四、外观数列1、题目链接2、解析3、代码 五、数青蛙1、题目链接2、解析3、代码 一、替换所有的问号 1、题目链接 leetcode链接 2、解析 3、…

【排序算法】一、排序概念和直接插入排序(C/C++)

「前言」文章内容是排序算法之直接插入排序的讲解。(所有文章已经分类好,放心食用) 「归属专栏」排序算法 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、排序概念的介绍二、直接插入排序2.1 原理2.2 代码实现(C/C&#xf…

鸿蒙开发-UI-布局-层叠布局

鸿蒙开发-UI-布局 鸿蒙开发-UI-布局-线性布局 文章目录 前言 一、基本概念 二、对齐方式 三、Z序控制 四、使用场景 总结 前言 上文详细学习了线性布局,学习了线性容器内子元素在主轴以及交叉轴上的排列方式,子元素自适应相关的知识点,本文继…