揭秘自编码器,一种捕捉数据最重要特征的神经网络(视频+代码)

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: YouTube网红小哥Siraj Raval系列视频又和大家见面啦!今天要讲的是自编码器Autoencoder。 时长8分钟 有中文字幕 点击观看 ▼ 首先,自编码器是一个神经网络。 如果我们得到的数据是正确标注的,不论是图像或音频或文本,我们就很幸运了。

YouTube网红小哥Siraj Raval系列视频又和大家见面啦!今天要讲的是自编码器Autoencoder。

时长8分钟

有中文字幕

点击观看

4fac3fd7814b418a7bbb4d650c4a1603525de7f3

首先,自编码器是一个神经网络。

如果我们得到的数据是正确标注的,不论是图像或音频或文本,我们就很幸运了。深度学习在有标注数据集上非常有效。这是因为总有一个函数代表了变量之间的关系。

比如如果我们的输入数据是一堆数字,还有定义了输入数据是偶数或者奇数的标签,那么代表这两列数字关系的函数就很简单:如果输入数据能被2整除,则这个数是偶数,不然就是奇数。

a1db5ddd0034fb2ef7ee0b91bf14a0684f0c2fb3

所有数据类型(视频或文本)均可用数字表示。因此总是有一个函数能映射关系。只不过比我们刚刚讨论过的函数更复杂一点。

所以我们现在可以跟电脑说话,真是太不可思议了。

-OK Google, do you love me?

-Ha ha ha ha, No.

(文摘菌:这段绝对不容错过!1'30''左右,一定要去原视频听听谷歌讽刺的笑声,是个女高音)

语音识别就是深度学习应用在标记数据集的结果。如果一个开发团队想要创建语音识别引擎,他们会使用以其转录本为标签的音频剪辑数据集。音频的每一个字节可以被分解成一系列数字,文字记录也可以。一些运算组合将输入转换成标签,这个组合就是函数。

神经网络可以通过反复的优化过程(也就是训练的过程)来慢慢逼近这个函数,简而言之就是每次迭代都最小化错误值。因此给定一个新的音频剪辑,它可以容易地预测到它的转录本会是什么样。

深度学习本质上是在完成从a到b的映射。更准确地说,它在完成通用函数逼近。

意思是有足够数据的话,神经网络可以逼近任何函数。

170a519f0c32bfc406b22720f484e1d95c17c1fe

输入一个贷款申请,输出客户会偿还的可能性;输入电子邮件,输出它是垃圾邮件或非垃圾邮件的概率……

深度学习不仅仅能用来找到未知的函数,还能找到我们是如何发现一个已知函数的。

所有神经网络都是复合函数,也就是函数套函数。网络上的层数越多,其嵌套函数也越多。对于一个三层网络来说,我们要用第一个权重矩阵乘以输入,对它应用一个激活函数,再重复这个过程。

这次我们使用输出作为我们新的输入。输入时间,等待,激活,结果是我们的输出。这可以表示为复合函数,因为我们用第一个函数的输出作为下一个函数的输入。

不过,假设我们的目标不是找到一个标签Y,而是重建原始输入X呢?

如果我们的输入是由几个数字组成的数组,在应用一系列运算之后,我们的网络应该以完全相同的数字输出这些相同的输入。我们将第一部分,可以将压缩输入成更少比特数的网络的,称为编码器。我们可以将第二部分,建立视觉图像的,称为译码器。

我们为什么要关心这个呢?我们不关心输出,因为输出只是复制了输入,我们关心的是隐藏层。如果一个网络能够重建输入,那么隐藏层必须包含足够信息给输出。如果隐藏层比输入层和输出层小,那么它代表的是低密度的相同信息,是从学习中得到的输入数据的集中代表。

f8024c2ba6939cd56ae0de8584b23401db4cdc18

也有别的更好的办法来压缩数据,不过自编码器在某些领域还是很有用的,例如降维。它也可以被用在分类问题上。如果自编码器能正确地构建示例,这个示例很可能和用于训练的类别属于同一类。另外一个用途是异常检测。我们用正常例进行训练,这样可以很容易发现异常。如果我们训练它检测训练集中的异常,它只会发现那些已经见过的异常,而通常情况下异常值是比较少的。

好啦!更多有关自编码器的分类和代码的内容,可以自行看视频和通过文末的链接下载代码喔。以下是视频的重点总结:

神经网络可以缓慢地逼近各种函数,它可以通过训练(迭代优化过程)从而映射输入为输出。如果我们把输出设置为输入,就可以称这个神经网络为自编码器。自编码器有很多类型,包括最近出现的变分自编码器(VAE)。

最后附上一个视频里有关语音助手的笑话:

贝佐斯:Alexa,买点Whole Food的吃的做晚餐。

Alexa:好的,正在买Whole Food。

(指语音助手误会这位CEO的意思让亚马逊直接收购Whole Food)

1afa40d7f939ad1999c2b77fdbb617b820d78fea


原文发布时间为:2018-04-21

本文作者:文摘菌

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“大数据文摘”。

相关文章
|
10月前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
244 0
|
10月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
623 2
|
10月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
242 8
|
10月前
|
算法 数据挖掘 区块链
基于遗传算法的多式联运车辆路径网络优优化研究(Matlab代码实现)
基于遗传算法的多式联运车辆路径网络优优化研究(Matlab代码实现)
293 2
|
10月前
|
机器学习/深度学习 缓存 算法
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
717 1
|
9月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
1154 0
|
9月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
353 0
|
9月前
|
传感器 机器学习/深度学习 数据采集
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)
574 0
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
512 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
379 10

热门文章

最新文章