阿里云建设网站,本地wordpress登录,中国新闻社是国企还是私企,自己建设网站怎么被百度收入QA 1x1 卷积层在深度学习中的作用#xff1f; 1x1 卷积层在深度学习中具有几个重要的作用#xff1a; 通道压缩#xff1a;1x1卷积可以通过调整输出通道数来减少特征图的深度#xff0c;从而降低计算成本和参数数量。这有助于在保持特征的情况下简化模型。特征融合A 1x1 卷积层在深度学习中的作用 1x1 卷积层在深度学习中具有几个重要的作用 通道压缩1x1卷积可以通过调整输出通道数来减少特征图的深度从而降低计算成本和参数数量。这有助于在保持特征的情况下简化模型。特征融合1x1 卷积可以看作是对每个像素点的不同通道进行线性组合能够有效地融合不同通道的信息增强特征表示能力。增加非线性在1x1卷积后通常会加上激活函数如ReLU这可以引入非线性变换从而使模型更具表达能力。作为瓶颈层在Inception模块和其他网络架构中1x1卷积常被用作瓶颈层先进行降维再进行更大尺寸卷积如3x3或5x5以减少后续层的计算量。提高网络深度通过在网络中引入多个 1x1 卷积层可以构建更深的网络结构从而学习更复杂的特征。
二分类模型中权重更新
更新公式 w i w i Δ w i Δ w i η y i x i w_i w_i\Delta w_i \\ \Delta w_i \eta y_ix_i wiwiΔwiΔwiηyixi
其中 η ∈ ( 0 , 1 ) \eta \in (0,1) η∈(0,1) 是学习率感知器的输出为 y i ^ \hat{y_i} yi^真实标签值为 y i y_i yi 情景1 y i 1 y_i 1 yi1 , 但模型预测 y ^ i − 1 \hat{y}_i -1 y^i−1
这个情景表示 真实标签 y i y_i yi 是 1 1 1表示正类。 模型当前的预测 y ^ i \hat{y}_i y^i 是 − 1 -1 −1表示模型预测错误判为负类。 y i ^ s i g n ( w T x i ) − 1 \hat{y_i} sign(w^Tx_i) -1 yi^sign(wTxi)−1 根据 y ^ i sign ( w T x i ) − 1 \hat{y}_i \text{sign}(w^T x_i) -1 y^isign(wTxi)−1 可以推出当前的权重 w T x i 0 w^T x_i 0 wTxi0 即权重和输入特征的点积小于 0 0 0导致预测错误。 更新后的推导过程
模型希望通过调整权重来更正分类结果。因此采用梯度更新的方式 更新公式 y ^ i n e w sign ( ( w η y i x i ) T x i ) \hat{y}_i^{new} \text{sign}((w \eta y_i x_i)^T x_i) y^inewsign((wηyixi)Txi) 展开推导 y ^ i n e w sign ( w T x i η y i x i T x i ) \hat{y}_i^{new} \text{sign}(w^T x_i \eta y_i x_i^T x_i) y^inewsign(wTxiηyixiTxi) 再进一步简化为 y ^ i n e w sign ( w T x i η ∥ x i ∥ 2 2 ) \hat{y}_i^{new} \text{sign}(w^T x_i \eta \|x_i\|_2^2) y^inewsign(wTxiη∥xi∥22) 其中 ∥ x i ∥ 2 2 \|x_i\|_2^2 ∥xi∥22 是输入特征 x i x_i xi 的 L 2 L2 L2 范数平方。 学习率的选择条件
为了使模型的更新后预测正确即 y ^ i n e w y i 1 \hat{y}_i^{new} y_i 1 y^inewyi1 需要满足以下条件 w T x i η ∥ x i ∥ 2 2 0 w^T x_i \eta \|x_i\|_2^2 0 wTxiη∥xi∥220
通过选择合适的学习率 η \eta η 保证这个不等式成立即模型能够将输入正确分类为正类。 总结
这部分课件展示了如何通过梯度更新权重来纠正分类错误。其核心思想是当模型错误地预测时利用标签信息 y i y_i yi 来调整权重使得更新后的点积 w T x i w^T x_i wTxi 加上一个正数项 η ∥ x i ∥ 2 2 \eta \|x_i\|_2^2 η∥xi∥22 后变为正值从而让模型的预测变得正确。
这个过程是感知机算法Perceptron或神经网络权重更新中的典型步骤之一。通过合适的学习率控制每次调整都能逐步逼近正确分类。
直观解释
对于任一直线 W 0 W 1 X 1 W 2 X 2 0 W_0 W_1X_1 W_2X_20 W0W1X1W2X20当 W 1 0 W_10 W10 时左边的点代入方程小于 0 0 0 右边的点则大于 0 0 0。
**注**事实上任何直线的方程都可以写成 W 0 W 1 X 1 W 2 X 2 0 W_0 W_1X_1 W_2X_20 W0W1X1W2X20且 W 1 0 W_10 W10的形式。
深度神经网络
梯度下降
批量梯度下降Batch Gradient DescentBGD 批量梯度下降法是最原始的形式它是指在每一次迭代时使用所有样本来进行梯度的更新。
优点
1一次迭代是对所有样本进行计算此时利用矩阵进行操作实现了并行。
2由全数据集确定的方向能够更好地代表样本总体从而更准确地朝向极值所在的方向。当目标函数为凸函数时 B G D BGD BGD 一定能够得到全局最优。
缺点
1当样本数目 m m m 很大时每迭代一步都需要对所有样本计算训练过程会很慢。
随机梯度下降Stochastic Gradient DescentSGD 随机梯度下降法不同于批量梯度下降随机梯度下降是每次迭代使用一个样本来对参数进行更新。使得训练速度加快。
优点
1由于不是在全部训练数据上的损失函数而是在每轮迭代中随机优化某一条训练数据上的损失函数这样每一轮参数的更新速度大大加快。
缺点
1准确度下降。由于即使在目标函数为强凸函数的情况下 S G D SGD SGD 仍旧无法做到线性收敛。
2可能会收敛到局部最优由于单个样本并不能代表全体样本的趋势。
3不易于并行实现。
小批量梯度下降Mini-Batch Gradient Descent, MBGD 小批量梯度下降是对批量梯度下降以及随机梯度下降的一个折中办法。其思想是每次迭代 使用 batch_size 个样本来对参数进行更新。
优点
1通过矩阵运算每次在一个 b a t c h batch batch 上优化神经网络参数并不会比单个数据慢太多。
2每次使用一个 batch 可以大大减小收敛所需要的迭代次数同时可以使收敛到的结果更加接近梯度下降的效果。(比如上例中的30W设置batch_size100时需要迭代 3000 次远小于 S G D SGD SGD 的 30 W 30W 30W 次)
3可实现并行化。
缺点
1batch_size的不当选择可能会带来一些问题。
batcha_size的选择带来的影响
1在合理地范围内增大batch_size的好处
a. 内存利用率提高了大矩阵乘法的并行化效率提高。
b. 跑完一次 epoch全数据集所需的迭代次数减少对于相同数据量的处理速度进一步加快。
c. 在一定范围内一般来说 Batch_Size 越大其确定的下降方向越准引起训练震荡越小。
2盲目增大batch_size的坏处
a. 内存利用率提高了但是内存容量可能撑不住了。
b. 跑完一次 epoch全数据集所需的迭代次数减少要想达到相同的精度其所花费的时间大大增加了从而对参数的修正也就显得更加缓慢。
c. Batch_Size 增大到一定程度其确定的下降方向已经基本不再变化。
交叉熵损失函数Cross-Entropy Loss
也称为对数损失函数log loss。其数学表达式如下 L C E ( y , f ( w ; x ) ) − ∑ c 1 C y c log ( f ( w ; x ) c ) L_{CE}(y, f(\mathbf{w}; \mathbf{x})) - \sum_{c1}^{C} y_c \log(f(\mathbf{w}; \mathbf{x})_c) LCE(y,f(w;x))−c1∑Cyclog(f(w;x)c)
交叉熵损失函数这是用于分类问题中的一种常用损失函数特别适用于多分类任务。在这种情况下模型的输出是每个类别的概率分布交叉熵度量了真实类别标签与模型预测的概率分布之间的差异。公式中的符号 y c y_c yc 是实际的标签它是一个独热向量one-hot vector在正确的类别位置上为 1 1 1其他位置为 0 0 0。 f ( w ; x ) c f(\mathbf{w}; \mathbf{x})_c f(w;x)c 是模型对类别 c c c 的预测概率 w \mathbf{w} w 是模型的权重 x \mathbf{x} x 是输入数据。 C C C 表示类别总数。 log ( f ( w ; x ) c ) \log(f(\mathbf{w}; \mathbf{x})_c) log(f(w;x)c) 是预测概率的对数交叉熵函数通过求和计算每个类别的对数损失。 直观理解交叉熵损失衡量的是模型预测的概率分布和真实标签之间的距离。它惩罚模型对正确类别的预测概率较低的情况。当模型预测的类别概率与真实标签越接近损失越小如果模型偏离真实标签的预测较远损失则会增大。
交叉熵Cross-Entropy: 公式为 H ( p , q ) − E p [ log q ] − ∑ i 1 n p ( x i ) log q ( x i ) H(p, q) -E_p[\log q] -\sum_{i1}^n p(x_i) \log q(x_i) H(p,q)−Ep[logq]−i1∑np(xi)logq(xi) 这里的 p p p 和 q q q 分别代表两个概率分布。交叉熵表示两个分布之间的不确定性程度。它在信息论中用于衡量实际分布 p p p 与估计分布 q q q 的差异。 交叉熵值越小说明两个分布越接近。
总结来说
交叉熵损失函数是机器学习中常用的损失函数用于优化分类模型使其预测分布更接近真实分布交叉熵则是衡量两个概率分布相似性的度量。
焦点损失函数Focal Loss 焦点损失函数公式 F L ( p t ) − ( 1 − p t ) γ log ( p t ) FL(p_t) - (1 - p_t)^{\gamma} \log(p_t) FL(pt)−(1−pt)γlog(pt) 其中 p t ( f ( w ; x ) ) t p_t (f(\mathbf{w}; \mathbf{x}))_t pt(f(w;x))t 表示模型对真实标签 t t t 的预测概率 t ∈ { 1 , … , C } t \in \{1, \dots, C\} t∈{1,…,C} 表示样本的真实标签类别。 γ \gamma γ 是一个调节参数用于调整对难分类样本和易分类样本的关注度。较大的 γ \gamma γ 值会增加对难分类样本的惩罚。 焦点损失的意义 焦点损失的引入是为了应对类别不平衡问题尤其在目标检测任务中通常存在大量的背景负样本和少量的目标物体正样本。通过 ( 1 − p t ) γ (1 - p_t)^{\gamma} (1−pt)γ 这一项焦点损失会对预测概率较低的难分类样本赋予更高的权重而对易分类样本的损失权重减小。这样模型可以更多地关注那些难以分类的样本。
卷积神经网络
基础知识
卷积激活函数引入非线性功能池化Pooling 减少特征维度提升效率对小幅度平移保持不变
卷积 输入 N × N N \times N N×N
卷积核 F × F F \times F F×F
步长 S S S
输出 [ ( N − F ) / S 1 ] × [ ( N − F ) / S 1 ] [(N-F)/S1]\times[(N-F)/S1] [(N−F)/S1]×[(N−F)/S1]
padding 输入 N × N N \times N N×N
卷积核 F × F F \times F F×F
步长 S S S
填充 P P P
输出 [ ( N − F 2 P ) / S 1 ] × [ ( N − F 2 P ) / S 1 ] [(N-F2P)/S1]\times[(N-F2P)/S1] [(N−F2P)/S1]×[(N−F2P)/S1]
常见网络
AlexNet网络【2012】
参考链接
https://zhuofujiang.github.io/2019/11/20/卷积神经网络结构-AlexNet/https://xinpingwang.github.io/2019/12/15/alexnet/ 网络结构如上图所示共有5个卷积层3个最大池化层3个全连接层。这是2012年由Alex Krizhevsky等人提出的卷积神经网络用于图像分类。让我逐层解释 输入层输入的图像尺寸为 224x224x3表示 224x224 像素的RGB图像。 第一层卷积层卷积核大小为 11x11步长为 4输出尺寸为 55x55x48之后跟随了一个最大池化层。 48 是什么意思 图中标注的“48”表示第一层卷积层中使用了48个卷积核或滤波器。这意味着这一层会输出48个特征图每个特征图的尺寸为55x55。因此这一层的输出是一个尺寸为55x55x48的三维张量。 第二层卷积层卷积核大小为 5x5步长为 1输出尺寸为 27x27x128之后也跟随一个最大池化层。 第三、第四、第五层卷积层卷积核大小为 3x3步长为 1。第三层输出 192 个特征图第四层和第五层分别输出192和128个特征图。第五层后也有一个最大池化层。 全连接层接下来是三个全连接层每层有 4096 个神经元。这三层全连接层用于将特征映射到分类空间。 输出层最后的输出层有1000个神经元对应ImageNet数据集中的1000个类别。
创新点
首次在CNN中采用ReLU激活函数首次在CNN中采用dropout技术采用大量数据增强
LeNet网络【1998】
参考链接https://1187100546.github.io/2020/01/14/lenet-5/ 这是 1998 年由 Yann LeCun 等人提出的卷积神经网络主要用于手写数字识别如 MNIST 数据集。LeNet 是较早的卷积神经网络之一在图像分类任务中开创了深度学习的先河。
输入层输入图像大小为 32x32在 MNIST 数据集中通常将 28x28 的图像填充为 32x32。C1层卷积层使用 6 个 5x5 的卷积核输出 6 个特征图每个特征图的尺寸为 28x28。这个层提取了局部的图像特征。S2层池化层进行 2x2 的平均池化步长为2输出6个特征图每个特征图的尺寸为14x14。池化层用于降低特征图的尺寸同时保留重要特征。C3层卷积层使用 16 个 5x5 的卷积核输出16个特征图每个特征图的尺寸为10x10。S4层池化层进行2x2的平均池化步长为2输出16个特征图每个特征图的尺寸为5x5。C5层全连接层这一层可以看作是卷积层或全连接层有120个节点每个节点连接到S4层的所有16个5x5特征图。F6层全连接层有84个神经元使用Sigmoid激活函数。输出层最后输出10个节点对应于10个类别如0到9的数字分类。
net nn.Sequential(nn.Conv2d(1, 6, kernel_size5), nn.Sigmoid(),nn.AvgPool2d(kernel_size2, stride2),nn.Conv2d(6, 16, kernel_size5), nn.Sigmoid(),nn.AvgPool2d(kernel_size2, stride2), nn.Flatten(), // 将多维特征图展平为一维以便输入到全连接层中。nn.Linear(16 * 5 * 5, 120), nn.Sigmoid(),nn.Linear(120, 84), nn.Sigmoid(),nn.Linear(84, 10)
)定义一个二维卷积层输入通道为 1灰度图像输出通道为 6卷积核大小为 5x5。这个层对应于 LeNet 中的 C1 层。激活函数使用 S i g m o i d Sigmoid Sigmoid 将输出值映射到 ( 0 , 1 ) (0,1) (0,1) 之间。定义一个 2x2 的平均池化层步长为 2。该层会将特征图尺寸缩小一半对应 LeNet 中的 S2层。全连接层输入大小为 16x5x5S4层的输出特征图展平为400个特征输出大小为 120对应LeNet 中的 C5 层。
VGG 网络【2014】
参考链接https://zh.d2l.ai/chapter_convolutional-modern/vgg.html VGG网络是一种深度卷积神经网络架构由牛津大学的视觉几何组Visual Geometry Group在2014年提出。VGG网络以其简单而有效的设计而闻名主要特点包括
统一的卷积核大小VGG网络使用了多个3x3的小卷积核所有的卷积层都采用相同大小的卷积核这种设计使得网络结构非常简单而易于理解。深度结构VGG网络通常有多个卷积层和全连接层的堆叠典型的模型如VGG16和VGG19分别具有16和19个权重层包括卷积层和全连接层。深度的网络结构使得VGG能够捕捉到更复杂的特征。池化层在卷积层之后VGG使用2x2的最大池化层进行下采样这有助于逐渐减小特征图的尺寸同时增加特征的抽象程度。全连接层在网络的最后VGG包含几个全连接层用于将提取到的特征映射到最终的分类结果。较少的参数量尽管VGG网络很深但由于使用了小卷积核其参数数量比一些其他深度网络如GoogleNet要少这使得VGG在一定程度上避免了过拟合。
VGG网络在图像分类、目标检测等任务中表现出色并且其设计理念影响了后续的网络架构如ResNet等。由于其结构简单VGG也成为了很多研究和应用中的基准模型。
创新点
相比AlexNet网络更深仅采用3x3卷积核和2x2最大池化
GoogleNet 网络【2014】 GoogLeNet架构
Inception块的架构
GoogleNet也称为Inception V1是一种深度卷积神经网络架构由谷歌团队在2014年提出。它在ImageNet挑战赛中表现出色以其创新的Inception模块而闻名。以下是GoogleNet的一些关键特点
Inception模块GoogleNet的核心是Inception模块它通过并行的卷积层和池化层对输入特征进行多尺度处理。这些模块能够同时提取不同大小的特征增强网络的表现力。深度和宽度的平衡GoogleNet使用了多个Inception模块使网络既深又宽同时在计算效率和性能之间取得平衡。辅助分类器为了缓解梯度消失问题GoogleNet在中间层引入了辅助分类器。这些分类器可以在训练过程中提供额外的梯度信号帮助优化深层网络。减少参数数量GoogleNet通过使用1x1卷积层有效地减少了参数数量避免了过拟合。这使得网络在保持高性能的同时计算成本较低。全局平均池化在网络的最后GoogleNet采用全局平均池化替代传统的全连接层这不仅减少了模型参数还有效提高了泛化能力。
GoogleNet的设计理念影响了后续的深度学习模型特别是在高效性和灵活性方面推动了Inception系列网络的发展。
创新点
相比VGG网络更深22层采用Inception模块没有全连接层参数仅有5百万仅AlexNet的1/12
ResNet 网络【2015】
参考链接https://zh.d2l.ai/chapter_convolutional-modern/resnet.html ResNet-18 架构 残差块
ResNetResidual Network是一种深度神经网络架构最早由何恺明等人在2015年提出。它的主要创新是:
引入了**“残差学习”框架**通过使用跳跃连接skip connections使得网络能够更容易地学习到残差函数从而缓解深度网络训练中的梯度消失和爆炸问题。
ResNet的结构由多个残差块residual blocks组成每个块包含两个或更多的卷积层以及一个跳跃连接这样可以将输入直接加到块的输出上。通过这种方式网络能够学习到恒等映射从而在深层网络中保持有效的信息流。
创新点
更深的网络可以构建非常深的网络如152层或更深而不出现性能退化。易于训练残差结构使得网络更容易优化降低了训练的难度。高效的特征学习能够有效地捕捉和学习数据中的特征。
DNN 网络
DNNDeep Neural Network指的是深度神经网络的一个通用概念通常用于描述**包含多个隐藏层的神经网络。**DNN的主要特点和组成包括
多层结构DNN 由输入层、多个隐藏层和输出层组成。隐藏层的数量和神经元的数量可以根据任务的复杂性进行调整。非线性激活函数DNN 中的每个神经元通常使用非线性激活函数如ReLU、sigmoid或tanh来引入非线性使得网络能够学习复杂的映射关系。特征学习DNN 能够从原始输入数据中自动学习特征无需手动提取特征。这使得它在许多任务如图像分类、语音识别、自然语言处理等中非常有效。反向传播DNN使用反向传播算法进行训练通过计算损失函数的梯度来更新网络中的权重以最小化预测误差。应用广泛DNN在各个领域的应用非常广泛包括计算机视觉、语音识别、自然语言处理等推动了深度学习的快速发展。
DNN是一种非常基础的深度学习模型许多复杂的网络架构如卷积神经网络CNN、循环神经网络RNN等都是在DNN的基础上发展而来的。