赞
踩
定义:是一种人工智能的分支,机器学习的目标是让计算机具备从经验中学习的能力。
分类:
子领域:
损失函数定义:用于度量模型的预测值与实际值之间的差距或误差
损失函数目标:是将这种差距最小化
目标函数:更广泛的术语,它可以用来表示整个机器学习或深度学习任务的优化目标。损失函数是目标函数的一个组成部分
训练误差:模型在训练集上的误差,误差大小等于训练时的损失函数的值
泛化误差:模型在测实际上的性能
模型复杂度和误差的关系:
模型复杂度越高训练误差越小,但是泛化误差不一定最小,优化深度学习模型的目标就是降低模型的泛化误差
过拟合
表现:过拟合表现为模型在训练数据上表现很好(训练误差好),但在测试数据或实际应用中的新数据上表现不佳(泛化误差不好)
原因:
解决办法:增加训练数据,简化模型,正则化引入权重衰减,丢弃法将隐藏单元按一定概率丢弃,使用交叉验证来评估模型的性能
欠拟合
表现:模型无法得到较低的训练误差
深度学习问题分为两大类:分类问题和回归问题
分类问题:
回归问题:
ReLU函数
R
e
L
U
(
x
)
=
m
a
x
(
x
,
0
)
ReLU(x)=max(x,0)
ReLU(x)=max(x,0)
仅保留正数元素,负数元素清零
优势:
劣势:
sigmoid函数
s
i
g
m
o
i
d
(
x
)
=
1
1
+
e
x
p
(
−
x
)
sigmoid(x)=\frac{1}{1+exp(-x)}
sigmoid(x)=1+exp(−x)1
将元素的值变到0到1之间
优势:
劣势:
tanh函数:双曲正切
t
a
n
h
(
x
)
=
1
−
e
x
p
(
−
2
x
)
1
+
e
x
p
(
−
2
x
)
tanh(x)=\frac{1-exp(-2x)}{1+exp(-2x)}
tanh(x)=1+exp(−2x)1−exp(−2x)
优势:
劣势:
注:线性回归,softmax回归和MMLP都是深度学习常用的模型算法
损失函数:根据问题类型,选择适当的损失函数,如均方误差用于回归问题,交叉熵用于分类问题
优化算法:选择梯度下降法的变体来最小化损失函数,以更新模型的参数
前向传播:将输入数据传递到网络中,得到模型的预测值
计算损失:使用选定的损失函数计算模型预测与真实值之间的误差
反向传播:利用链式法则计算损失函数对每个参数的梯度,以便更新参数
参数更新:根据优化算法的规则,使用梯度信息更新模型的权重和偏置
重复以上步骤:重复进行多次迭代,直到模型收敛或达到预先定义的停止准则
将训练好的模型部署到实际应用中,用于实时或批量处理新的数据。
在部署过程中,可能需要考虑模型的性能、效率、内存占用等因素。
n h × n w k h × k w n_h×n_w\\k_h×k_w nh×nwkh×kw
( n h − k h + 1 ) × ( n w − k w + 1 ) (n_h-k_h+1)×(n_w-k_w+1) (nh−kh+1)×(nw−kw+1)
填充和步幅是两个超参数,用于改变输出形状
填充:在输入高和宽两侧填充元素(一般是补零),用于增加输出高和宽
( n h − k h + p h + 1 ) × ( n w − k w + p w + 1 ) (n_h-k_h+p_h+1)×(n_w-k_w+p_w+1) (nh−kh+ph+1)×(nw−kw+pw+1)
通常情况下,可以按下列设置方法得输入输出等尺寸:
p
h
=
k
h
−
1
p
w
=
k
w
−
1
p_h=k_h-1\\p_w=k_w-1
ph=kh−1pw=kw−1
通常情况下,采用奇数高和宽的卷积核,因为可以让两段填充个数相等
[ ( n h − k h + p h + 1 ) / s h ] × [ ( n w − k w + p w + 1 ) / s w ] [(n_h-k_h+p_h+1)/s_h]×[(n_w-k_w+p_w+1)/s_w] [(nh−kh+ph+1)/sh]×[(nw−kw+pw+1)/sw]
三维数组:【c通道数×h高×w宽】
要求:卷积核的通道数ci要与输入数据的通道数ci相同,这样才能做互相关
计算:
多输入单输出:
多输出通道:
池化层与卷积层一样,每次对输入数据的一个固定形状窗口(池化窗口)中的元素计算输出
位置:卷积层之后
作用:
常见:
也具有填充和步幅,用于调整输出形状
不同:对多通道分别池化而不用相加,因此输入通道数与输出通道数相等(卷积层多通道维度=1)
位置:一系列卷积和池化层后
作用:以便进行最终的分类或回归等任务
作用:随机地将一部分神经元的输出置为零,是一种减少过拟合的正则化技术
位置:
评价:
作用:是一种用于加速深度网络训练的技术,通过对每一层的输入进行归一化来加速训练过程
原理:标准化处理后输入数据各个特征分布相近,往往容易训练处有效模型
位置:
在全连接层中仿射变换和激活函数之间
x = W u + b φ ( B N ( x ) ) x=Wu+b\\φ(BN(x)) x=Wu+bφ(BN(x))
考虑一个由m个样本组成的小批量,仿射变换的输出也是一个小批量B={x1,…,xm}
先对小批量B求均值μb和方差σb
对每个x做标准化
x ^ = x − μ b σ b 2 + ϵ \hat{x}=\frac{x-μ_b}{\sqrt{σ_b^2}+ϵ} x^=σb2 +ϵx−μb
ε是一个小常数保证分母大于0
BN层引入了两个科学系参数拉伸γ和偏移β,两个参数与x尺寸一样
y = γ ⊙ x ^ + β y=γ\odot\hat{x}+β y=γ⊙x^+β
卷积计算后和激活函数之前
如果是计算多输出通道,需要这些通道的输出分别做批归一化
解决问题:网络中添加更多层训练效果不升反降,即使添加BN层使得训练更容易问题依旧存在
残差网络,希望学习出残差映射f(x)-x(残差块)
作用:
结构设计:
包含稠密快和过渡层
稠密快:在前向传播时,每个快的输入和输出通道维度上连接
过渡层:用于控制模型复杂度
卷积神经网络:有效处理空间信息
循环神经网络:有效处理时序信息,引入状态变量存储过去信息 ,并用其与当前输入共同决定输出
假设一段长度为T的文本,词依次是w1,w2,w3,w4,…,wT
语言模型将计算改序列的概率:
p
(
w
1
,
w
2
,
.
.
.
,
w
T
)
p(w_1,w_2,...,w_T)
p(w1,w2,...,wT)
语言模型是一种用于自然语言处理的重要技术,它是一个数学模型,用于预测或生成文本的概率分布。语言模型的主要任务是理解并建模文本的语法、语义和上下文,以便生成自然流畅的文本或评估给定文本的概率。
P ( w 1 , w 2 , w 3 , w 4 ) = ∏ t = 1 T p ( w t ∣ w 1 , . . . , w t − 1 ) P(w_1,w_2,w_3,w_4)=\prod_{t=1}^{T} p(wt\lvert{w_1,...,w_t-1}) P(w1,w2,w3,w4)=t=1∏Tp(wt∣w1,...,wt−1)
随着序列长度增加,计算概论难度呈指数等级增加
n元语法通过马尔科夫假设,简化概率计算,是基于n-1阶马尔科夫链的语言模型
马尔科夫假设:一个词的出现只有前面n个词相关,即n阶马尔科夫链
n=1时:
p ( w 3 ∣ w 1 , w 2 ) = p ( w 3 ∣ w 2 ) p(w_3\lvert{w_1,w_2})=p(w_3\lvert{w_2}) p(w3∣w1,w2)=p(w3∣w2)
如果是n-1阶马尔科夫链,则语言模型:
P ( w 1 , w 2 , w 3 , w 4 ) ≈ ∏ t = 1 T p ( w t ∣ w t − ( n − 1 ) , . . . , w t − 1 ) P(w_1,w_2,w_3,w_4)\approx\prod_{t=1}^{T} p(wt\lvert{w_{t-(n-1)},...,w_t-1}) P(w1,w2,w3,w4)≈t=1∏Tp(wt∣wt−(n−1),...,wt−1)
考虑输入数据存在时间相关性
假设:
H t = φ ( X t W x h + H t − 1 W h h ‾ + b h ) H_t=φ(X_tW_{xh}+\underline{H_{t-1}W_{hh}}+b_h) Ht=φ(XtWxh+Ht−1Whh+bh)
O t = H t W h q + b q O_t=H_tW_{hq}+b_q Ot=HtWhq+bq
上图展示了循环神经网络三个相邻时间步的计算逻辑
X_t W_xh+H_t-1 Whh等价于将Xt和H_t-1相连接矩阵乘以W_xh和W_h
原因:在循环神经网络中,网络的层次结构是动态的,因为它们在时间上展开,形成了一个时间序列。BPTT 正是针对这种情况进行了设计。
步骤:
在循环神经网络(Recurrent Neural Network,RNN)中,“时间步数”(time steps)和"时间步"(time step)是与序列数据建模相关的重要概念。它们用来描述 RNN 处理序列数据的方式。
时间步数(Time Steps):
时间步数通常表示在序列数据中的数据点的数量或序列的长度。如果你正在处理一个文本序列,时间步数就表示文本中的单词数或字符数。如果你正在处理时间序列数据,时间步数表示观测值的数量
时间步数告诉你有多少个时刻需要经过 RNN 处理。在训练和推断过程中,RNN 将按照时间步数逐个时刻地处理输入序列
时间步(Time Step):
时间步是指序列数据中的一个特定时刻或时间点。在自然语言处理中,时间步可以对应于一个单词或一个字符。在时间序列数据中,时间步对应于一次观测或采样
RNN 在每个时间步接收当前时间步的输入,并生成相应的输出。这些输出通常与该时间步的输入和前一个时间步的隐藏状态有关
R i = σ ( X i H x r + H t − 1 W h r + b r ) Z i = σ ( X i H x z + H t − 1 W h z + b z ) R_i=σ(X_iH_xr+H_{t-1}W_{hr}+b_r)\\Z_i=σ(X_iH_xz+H_{t-1}W_{hz}+b_z) Ri=σ(XiHxr+Ht−1Whr+br)Zi=σ(XiHxz+Ht−1Whz+bz)
当前时间步重置门与上一时间隐藏状态元素乘法
如果重置门元素接近0,那么意味着重置对应隐藏状态元素为0,,丢弃上一时间步的隐藏状态
如过元素接近1,那么保留上一时间步的隐藏状态
按照元素乘法的结果与当前时间步的输入连接
通过含有激活函数tanh的全连接层计算出候选隐藏状态
H ^ = t a n h ( X t W x h + ( R ⊙ H t − 1 ) W h h + b h ) \hat{H}=tanh(X_tW_{xh}+(R\odot{H_{t-1}})W_{hh}+b_h) H^=tanh(XtWxh+(R⊙Ht−1)Whh+bh)
最后时间步t的隐藏状态H_t的计算:
当前时间步的更新门Z来对上一时间步的隐藏状态H_t-1和当前时间步候选隐藏状态做组合
H t = Z t ⊙ H t − 1 + ( 1 − Z t ) ⊙ H t ^ H_t=Z_t\odot{H_{t-1}}+(1-Z_t)\odot{\hat{H_t}} Ht=Zt⊙Ht−1+(1−Zt)⊙Ht^
更新门:控制了用多少过去历史信息,确定在当前时刻应该存储哪些新信息
综上所述:
I t = σ ( X t W x i + H t − 1 W h i + b r i ) F i = σ ( X t W x f + H t − 1 W h f + b f ) O t = σ ( X t H x o + H t − 1 W h o + b o ) I_t=σ(X_tW_xi+H_{t-1}W_{hi}+b_ri)\\F_i=σ(X_tW_xf+H_{t-1}W_{hf}+b_f)\\O_t=σ(X_tH_xo+H_{t-1}W_{ho}+b_o) It=σ(XtWxi+Ht−1Whi+bri)Fi=σ(XtWxf+Ht−1Whf+bf)Ot=σ(XtHxo+Ht−1Who+bo)
C t ^ = t a n h ( X t W x c + H t − 1 W h c + b c ) \hat{C_{t}}=tanh(X_tW_{xc}+H_{t-1}W_{hc}+b_c) Ct^=tanh(XtWxc+Ht−1Whc+bc)
C t = F t ⊙ C t − 1 + I t ⊙ C t ^ C_t=F_t\odot{C_{t-1}}+I_t\odot{\hat{C_t}} Ct=Ft⊙Ct−1+It⊙Ct^
遗忘门:控制上一时间步的记忆细胞C中的信息是否传递到当前记忆细胞
输入门:控制当前时刻的输入X通过候选记忆细胞C~如何流入当前记忆细胞
如果遗忘门为0输入门为1,则过去记忆细胞将一直通过时间保存并传递至当前时间步
H t = O t ⊙ t a n h ( C t ) H_t=O_t\odot{tanh(C_t)} Ht=Ot⊙tanh(Ct)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。