【Datawhale AI夏令营】Task02学习笔记
我要吃小脆筒 2024-07-22 13:31:01 阅读 64
了解深度学习(Deep Learning)
机器学习和深度学习(深度学习是机器学习一个子集)
深度学习进行训练
深度学习与迁移学习
常见的图像分类网络
1.AlexNet
2.ResNet
3.EfficientNet
这次学习主要是了解深度学习、机器学习,学习几个常见网络。
了解深度学习(Deep Learning)
深度学习是机器学习一个分支,通过神经网络模拟人脑的学习方式,可以处理大量数据并且从中自动学习和提取特征,进行预测。
类似人类的神经元,在人工智能中,可以用数学模型来模拟其行为:
输入:神经元树突接收到的信号权重:调整信号强度的小调节器激活函数:决定是否产生输出输出:传递给其他神经元的信号
深度学习就是将这些 神经元模型层层堆叠起来的复杂结构,按一定的层次形成一个庞大的网络,从网络最底层接收输入数据;然后通过每一层的处理,逐步提取出更高级别的特征;最后在顶层输出结果。现如今科学家将基本的神经元模型组合起来形成了多层次的网络结构,这些网络称之为神经网络。
为了进一步提高模型的准确性和泛化能力,可以对模型进行以下优化
改进激活函数权重初始化正则化技术梯度下降的变种使用新的网络结构:CNN/RNN等。
机器学习和深度学习(深度学习是机器学习一个子集)
机器学习:通常使用相对简单的算法(如线性回归、决策树)处理数据。需要人工设计特征工程来提高模型性能。
典型的机器学习算法:线性回归、逻辑回归、决策树、随机森林、SVM(支持向量机)、K-近邻(KNN)等。
线性回归(输入特征与输出标签之间存在线性关系、训练集中的数据独立且同分布)决策树(每个特征在决策过程中是相互独立的、特征可以是离散的)神经网络(通过非线性激活函数建模数据中的复杂非线性关系、分层结构)
深度学习:通过深层神经网络自动学习特征,能够处理和学习高维度和复杂的数据模式,适用于图像识别、自然语言处理等复杂任务。(自动从原始数据中学习到有用的特征:端到端)
学习基础的神经网络结构,理解神经元、层、前进传播和反向传播等,进而学习相关模型。
深度学习进行训练
通过大量的数据反复训练来调整权重,进而使网络更准确地完成特定任务。
梯度下降算法:损失函数梯度指向函数增长最快的方向。如果要减少损失函数的值,就需要沿着梯度的反方向调整模型的参数。
步骤:1.训练前对数据进行加载、预处理和分割 2.训练代码包括前向传播、计算损失、反向传播和参数更新(多轮)。
首先,我们需要准备一批图片数据(通过train_loader
)和这些图片对应的正确标签(target
)。
在开始训练之前,将模型设置为训练模式( model.train()
)。
接着,开始喂给模型图片数据,并让它尝试预测这些图片的内容。
模型会基于它目前的学习给出预测结果(output
),而会计算这些预测结果与实际标签之间的差异,这个差异就是损失(loss
)。
为了让模型学会准确预测,需要指出它的错误,并更新它的内部参数来减少这些错误(通过loss.backward()
和optimizer.step()
)。
这个过程就像是模型在自我调整,以便在下一次遇到类似图片时能够做出更准确的预测。
深度学习与迁移学习
迁移学习:一种机器学习技术,将已在一个任务所学应用到另一个任务。
通常使用在大规模数据集上预训练的模型作为起点,在预训练模型基础上使用少量标记对模型微调来适应新任务。
实现方法:微调。将预训练模型适配到新的目标任务上,常涉及以下步骤:
替换输出层冻结预训练模型中的大部分层(可做可不做)使用目标任务的数据集对模型进行训练。
优势:
(1)可以快速训练出一个理想的结果。
(2)数据集较小时也能训练出理想的效果。
常见的迁移学习方式:
(1)载入权重后训练所有参数。(效果更好)
(2)载入权重后只训练最后几层参数。(更快)
(3)载入权重后再原网络基础上再添加一层全连接层,仅训练最后一个全连接层。(更快)
常见的图像分类网络
1.AlexNet
AlexNet包含八个层次结构,前五个是卷积层,其中一些后面跟最大池化层,最后三个是全连接层。具体如下:
卷积层:AlexNet的前五个层次都是卷积层,每个卷积层后面跟着一个ReLU激活函数,以引入非线性。这些卷积层旨在提取图像的特征。
局部响应归一化(LRN):在某些卷积层后使用了局部响应归一化,这是一种提高模型泛化能力的正则化方法。
最大池化层:在部分卷积层之后使用最大池化层来降低特征的空间维度,减少计算量和过拟合的风险。
全连接层:网络的最后三个层次是全连接层,其中最后两个全连接层后跟有Dropout,以进一步防止过拟合。
输出层:最后一个全连接层后是线性层,然后是softmax激活函数,输出1000个类别上的概率分布。
2.ResNet
引入残差学习,缓解梯度消失和梯度爆炸的问题。
ResNet的核心是残差块(residual block),网络通过堆叠这些残差块来构建。一个基本的残差块包含以下几部分:
跳跃连接(Skip Connections):这是ResNet最关键的创新,通过跳跃连接,输入可以直接绕过一个或多个层传到输出,输出是输入与这些层的输出的加和。这种结构使得网络可以学习输入到输出的残差,而不是直接学习输出,这有助于缓解梯度消失问题。
卷积层:残差块内部包含多个卷积层,通常使用小尺寸的卷积核(如3x3),并且通常会有批量归一化(Batch Normalization)和ReLU激活函数。
池化层:在某些残差块之间会插入最大池化层来降低特征图的空间维度。
左边针对网络层数较少的网络所使用的残差结构,右边主要针对网络层数较多的网络所使用的结构。1*1的卷积层保证了shape相同的情况下减少参数。
3.EfficientNet
EfficientNet的复合缩放方法的直觉在于,如果输入图像更大,网络就需要更多的层来增加感受野,以及更多的通道来捕捉更细粒度的模式。
参考文章:Task2:从baseline入门深度学习 - 飞书云文档 (feishu.cn)
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。