它是机器学习的一个子集,专注于使用多层神经网络来建模和理解数据中的复杂模式。
神经网络是一种机器学习算法,旨在通过根据预测误差调整神经元之间的连接权重来从数据中学习。
神经网络的基本单元是人工神经元,通常简称为神经元。人工神经元受到人脑生物神经元的启发,负责在网络中执行小型的特定计算。
1) 每个神经元接收一个或多个输入,处理它们(通常通过应用数学函数),然后产生输出。
2)神经元通常应用其输入的加权和,然后使用激活函数来引入非线性。然后,该函数的输出会传递到网络的下一层,或者如果位于输出层,则作为最终输出。
输入: 感知器接收多个输入,每个输入由一个浮点数表示。
权重:每个输入乘以相应的权重,权重也是一个浮点数。权重决定了决策过程中输入的重要性。
求和:然后将加权输入相加以生成单个值。
阈值(或偏差):感知器将求和结果与阈值进行比较
输出:
如果总和大于0(或阈值),感知器输出 1(或在某些版本中为1)。
如果总和小于或等于0,感知器输出-1(或在某些版本中为0)。
(注意:感知器仅限于解决线性可分离的问题,这意味着它们只能对可以由直线分离的数据进行分类)
大多数有趣的问题,甚至一些非常简单的问题,都被证明超出了感知器解决的能力。这一时期大约持续 1970 年代到 1990 年代,被称为人工智能冬天
这一时期的特点是对专家系统等早期人工智能技术的失望,这些技术在可扩展性和实际应用方面遇到了困难。结果,政府和组织的资金枯竭,人工智能研究速度显着放缓。
1) 更改 1:
它是添加一个称为偏差的额外输入。与其他输入不同,偏差不依赖于任何外部数据或先前神经元的输出。
偏差是一个常数值,直接添加到加权输入的总和中。它充当每个神经元具有的单独参数,并且有助于独立于输入值调整输出。
2) 更改 2:
我们可以将总和(包括偏差)通过数学函数传递,而不是仅仅将总和与阈值进行比较并输出-1或1。该函数将输出一个新的浮点值,该值可以是一定范围内的任何位置
激活/数学/传递函数
它根据神经元接收到的输入确定神经元的“活跃”程度。许多激活函数引入了非线性,使网络能够学习非线性关系,这对于解决更复杂的问题至关重要。
例如
Sigmoid 函数: 输出 0 到 1 之间的值。对于二元分类问题很有用。
Tanh(双曲正切)函数: 输出 -1 到 1 之间的值。它与 sigmoid 类似,但以 0 为中心。
ReLU(整流线性单元):如果输入为正则输出,否则输出 0。
Leaky ReLU:与 ReLU 类似,但当输入为负时允许小的非零梯度,有助于避免“垂死的 ReLU”问题。
激活函数的类型:
1) 直线函数
a.身份函数:
恒等函数是一个直线函数,其输出完全等于输入。
f(x)=x
b.线性函数:
线性函数是任何可以表示为直线的函数。
f(x) = mx b
2) 步进函数
a.阶梯函数:
阶梯函数由多个线性段组成,这些线性段在某些输入值处会突然变化。它的特点是离散的跳跃而不是平滑的曲线。
例如
该函数对于 0 到略小于 0.2 之间的输入输出 0,对于从 0.2 到略小于 0.4 之间的输入输出 0.2,依此类推。
b.单位阶跃函数:
对于小于阈值的输入值输出 0,对于等于或大于阈值的输入值输出 1。
c.海维赛函数:
3) 分段线性函数
a. ReLU(修正线性单元)
函数定义:
对于 x≥0:
f(x)=x
对于 x
f(x)=0
b.泄漏 ReLU
函数定义:
对于 x≥0:
f(x)=x
对于 x
f(x)=αx(其中 α 是一个小常数,例如 0.01)
c.参数化 ReLU (PReLU)
函数定义:
对于 x≥0:
f(x)=x
对于 x
f(x)=αx(其中 α 是可学习参数)
4) 平滑的激活功能
a. Softplus功能
它是 ReLU 函数的平滑逼近。它通过提供连续且可微的替代方案来解决零处的急剧过渡。
Softplus(x) = ln(1 ex)
b. S 型函数
sigmoid 函数将输入值压缩到 0 到 1 之间的范围
σ(x)= 1 / 1 e−x
c.双曲正切 (tanh) 函数
tanh 函数与 sigmoid 类似,但将输入值压缩到 [−1,1] 范围内。它以零为中心,因此对于标准化数据非常有用。
tanh(x)=ex e−x
/ex−e−x
softmax 函数是神经网络分类任务中的关键组成部分,特别是当目标是预测多个类别的概率时。
Softmax 将输出神经元的原始输出分数(通常称为 logits)转换为各个类别的概率分布。每个输出值都会转换为所有类中总和为 1 的概率。
1) 前馈神经网络
前馈网络是一种人工神经网络,其中神经元之间的连接不形成循环。换句话说,数据从输入到输出单向流动,不会循环返回。
结构:
前馈网络分为多个层:输入层、一个或多个隐藏层以及输出层。
每个神经元接收来自前一层的输入,对这些输入应用权重,将它们相加,添加偏差项,并将结果传递给激活函数以产生输出。
前馈网络的类型:
单层感知器:
最简单形式的前馈网络,只有输入层和输出层
前任。用于数据线性可分的二元分类问题。
多层感知器(MLP):
它在输入层和输出层之间包含一个或多个隐藏层。
前任。它用于分类、回归和函数逼近等任务。
径向基函数(RBF)网络
它使用径向基函数作为隐藏层中的激活函数。
前任。它用于函数逼近和模式识别。
应用:
图像识别
语音识别
医学诊断
它是数据从输入传递到输出所经过的层数。这些是输入层和输出层之间的层(不包括输入层)。网络的深度由这些隐藏层的数量决定。
这些是一组神经元,每个神经元接收来自前一层的每个神经元的输入。如果拼了一层
仅由密集层组成,有时称为全连接网络。
零维数组
例如
如果神经网络层只有一个神经元,则其输出是单个标量值。从数学上来说,这个输出可以表示为一个零维数组。
一维数组(1D Array)
例如
当神经网络中的层具有多个神经元时,输出可以描述为值列表或向量。例如,如果一个层包含 12 个神经元,则输出是一个包含 12 个元素的一维数组。
(注意:无论我们的神经网络有多大或多复杂,如果它没有激活函数并且它们是线性函数,例如加法、减法等;那么它将始终相当于单个神经元。)
一个通用术语,用于表示以任意维数排列成盒状形状的数字数组。它包含一维(向量)、二维(矩阵)、三维(体积)和更高维数组。
训练神经网络涉及调整网络的权重以最大限度地减少预测错误。这是通过迭代更新网络参数以降低成本或损失函数的过程来完成的
它们是一种用于无监督学习的神经网络。关键思想是将输入压缩为低维代码,然后根据该代码重建原始输入。
编码器:
这部分将输入数据压缩为紧凑的表示形式。
示例:对于图像,编码器可能会将其尺寸从 128x128 像素 减少到更小的向量,例如 32 维
解码器:
这部分从压缩表示中重建原始输入数据。
示例:解码器将采用 32 维向量并尝试重新创建 128x128 像素图像。
它们经过训练,可以最小化输入和重建输出之间的差异。这通常使用损失函数来完成,例如用于连续数据的均方误差(MSE)或用于二进制数据的二进制交叉熵。目标是调整网络的权重,使重建尽可能接近原始输入。
1) 去噪自动编码器
2) 变分自编码器
3)稀疏自编码器
1) 无损:
它是一种数据压缩,可以从压缩数据完美地重建原始数据。这意味着压缩过程中不会丢失任何信息,解压后的数据与原始数据相同。
算法:使用熵编码和基于字典的技术等方法。示例包括:霍夫曼编码:使用较短的代码对频繁出现的符号进行编码,使用较长的代码对出现频率较低的符号进行编码。Lempel-Ziv-Welch (LZW):根据数据构建序列字典,并对常见序列使用较短的代码。游程编码(RLE):通过存储字符及其计数来压缩重复字符的序列。 PNG、FLAC、ZIP
2) 有损:
它通过删除一些数据来减小文件大小,通常以人类感官不太明显的方式,但会导致保真度有所损失。目标是显着减小文件大小,同时保持预期用途可接受的质量。
前任。 JPEG、H.264 或 HEVC、MP3 转换编码:将数据转换到不同的域(如频域)并对其进行量化。示例包括:离散余弦变换 (DCT):用于 JPEG 图像压缩。离散小波变换 (DWT):用于 JPEG 2000。
1) 降维
2) 去噪
优化器:调整权重以最小化损失函数。
损失函数:衡量模型的预测与实际值的匹配程度。
激活函数:为模型添加非线性,使其能够学习复杂的模式。
保持联系!
如果您喜欢这篇文章,请不要忘记在社交媒体上关注我以获取更多更新和见解:
推特: madhavganesan
Instagram:madhavganesan
领英: madhavganesan
以上是深度学习要点的详细内容。更多信息请关注PHP中文网其他相关文章!