【CNN|卷积神经网络】CNN ResNet-18

41 阅读11分钟

1.学习算法

1.1李沐 深度学习 --- "使用数据集来选择参数的元程序---> 学习算法"

(使用数据集来选择参数的元程序被称为学习算法(learning algorithm)] ([[1. 引言 — 动手学深度学习 2.0.0 documentation (d2l.ai)])

使用数据集来选择参数的元程序被称为学习算法(learning algorithm)【机器学习领域中的一个核心概念,它指的是一个更高层次的、自动化的过程,用于确定一个模型如何才能最好地从数据中学习。】

  • 学习算法 在最基本的机器学习中,“学习算法”通常是指用来从数据中构建模型的程序。例如,线性回归、决策树、支持向量机 (SVM) 等,它们通过迭代、优化等方法来寻找模型中的参数
  • Parameters 模型在训练过程中从数据中学到的、用于进行预测的内部变量。

image.png

image.png

  • 使用数据集来选择参数的元程序(Meta-program for selecting parameters using a dataset)
    • “parameters” “Meta-program”
    • selecting parameters 通常指的是超参数(HyperParameters)
      • 超参数是设置在学习过程之前的配置变量,它们决定了学习算法将如何工作。学习算法不能直接从数据中学习超参数。
    • 元程序(Meta-program): 这是一个更高层次的程序或算法,它不像基础的学习算法那样直接学习模型参数w,bw, b),而是学习或选择学习算法本身最佳配置

“使用数据集来选择参数的源程序被称为学习算法”,更多强调的是::

  • 元程序实际上是一个超参数优化或元学习算法
  • 它通过在数据集上运行多个基础学习算法(或者同一个算法的不同超参数组合),并评估它们的性能,来“选择”最佳的超参数配置(这是更高层次的“参数选择”)。
  • 在广义上,这种自动化地寻找最佳学习配置的程序也被称为一种学习算法,因为它也是一个从数据(训练结果)中学习的过程。

image.png

总之,在更复杂的机器学习实践中,我们有一个自动化程序(元程序),他的任务就是基于对dataset的评估,来选择一个基础模型应该使用的最佳配置/超参数。这种配置选择的过程本身,也被视为一中更高阶的学习算法。

注意

在开始用机器学习算法解决问题之前,我们必须精确地定义问题,确定输入(input)和输出(output)的性质,并选择合适的模型族。

1.2学习 learning

在机器学习中,学习(learning)是一个训练模型的过程。(换句话说,我们用数据训练模型)

1.2.1训练模型步骤

训练过程通常包含如下步骤:

  1. 从一个随机初始化参数的模型开始,这个模型基本没有“智能”;
  2. 获取一些数据样本(例如,音频片段以及对应的是或否标签);
  3. 调整参数,使模型在这些样本中表现得更好;
  4. 重复第(2)步和第(3)步,直到模型在任务中的表现令人满意。

image.png


总而言之,我们没有编写唤醒词识别器,而是编写了一个“学习”程序。 如果我们用一个巨大的带标签的数据集,它很可能可以“学习”识别唤醒词。 这种“通过用数据集来确定程序行为”的方法可以被看作*用数据编程*(programming with data)。 比如,我们可以通过向机器学习系统,提供许多猫和狗的图片来设计一个“猫图检测器”。 检测器最终可以学会:如果输入是猫的图片就输出一个非常大的正数,如果输入是狗的图片就会输出一个非常小的负数。 如果检测器不确定输入的图片中是猫还是狗,它会输出接近于零的数…… 这个例子仅仅是机器学习常见应用的冰山一角, 而深度学习是机器学习的一个主要分支.

1.3机器学习的关键组件

核心组件:

  1. 可以用来学习的数据data
  2. 如何转换数据的模型model
  3. 一个目标函数objective fct,用来量化模型的有效性;
  4. 调整模型参数以优化目标函数的算法algorithm

1.3.1 数据

数据,大多时候,遵循独立同分布(independently and identically distributed, i.i.d.)。

  • 样本(example,sample) 数据点(data point )/数据实例(ddata instance)
    • 通常,每个样本由一组 称为特征(features,或协变量covariates)的属性组成。
    • 属性 标签 label 目标target

当处理图像数据时,每一张单独的照片即为一个样本,它的特征由每个像素数值的有序列表表示。 比如,200×200彩色照片由200×200×3=120000个数值组成,其中的“3”对应于每个空间位置的红、绿、蓝通道的强度。 再比如,对于一组医疗数据,给定一组标准的特征(如年龄、生命体征和诊断),此数据可以用来尝试预测患者是否会存活。

当每个样本的特征类别数量都是相同的时候,其特征向量是固定长度的,这个长度被称为数据的维数(dimensionality)。。固定长度的特征向量是一个方便的属性,它可以用来量化学习大量样本。

1.3.1.1区别 传统机器学习
  • 与传统机器学习方法相比,深度学习的一个主要优势是可以处理不同长度的数据
  • 数据集的由小变大为现代深度学习的成功奠定基础。 在没有大数据集的情况下,许多令人兴奋的深度学习模型黯然失色。 就算一些深度学习模型在小数据集上能够工作,但其效能并不比传统方法高
  • 深度学习与经典方法的区别主要在于:前者关注的功能强大的模型,这些模型由神经网络错综复杂的交织在一起,包含层层数据转换,因此被称为深度学习(deep learning)。
1.3.1.2 数据的有效性正确性
  • 仅有海量数据是不够的,还需要确保数据的正确性。 Garbage in,garbage out.
  • 数据集还应该均衡。

image.png

  • 数据集尽可能具有充分代表性。

1.3.2 模型

进行数据转换

image.png

1.3.3目标函数

机器学习介绍为“从经验中学习”。 这里所说的“学习”,是指自主提高模型完成某些任务的效能。 但是,什么才算真正的提高呢? 在机器学习中,我们需要定义模型的优劣程度的度量,这个度量在大多数情况是“可优化”的,这被称之为目标函数(objective function)。 通常定义一个目标函数,并希望优化它到最低点。 因为越低越好,所以这些函数有时被称为损失函数(loss function,或cost function)。

  • 在试图预测数值时,最常见损失函数平方误差 squared error,即 预测值与实际值之差平方。
  • 分类问题,目标函数:最小错误率,即 预测与实际情况不符的样本比例。

损失函数是根据模型参数定义的,并取决于数据集。

数据集划分
  • 训练集(拟合模型参数)
  • 测试集(评估拟合模型)

(过拟合、欠拟合)

1.3.4优化算法

我们拥有了 数据源、模型、损失函数、,接下来我们需要有 优化算法---能够搜索出最佳参数,以最小化损失函数。

深度学习中,大多流行的优化算法通常基于一种基本方法–梯度下降(gradient descent)。 简而言之,在每个步骤中,梯度下降法都会检查每个参数,看看如果仅对该参数进行少量变动,训练集损失会朝哪个方向移动。 然后,它在可以减少损失的方向上优化参数。

1.4 机器学习问题

1.4.1 监督学习

监督学习(supervised learning)擅长在“给定输入特征”的情况下预测标签。 每个“特征-标签”对都称为一个样本(example)。 有时,即使标签是未知的,样本也可以指代输入特征。 我们的目标是生成一个模型,能够将任何输入特征映射到标签(即预测)。

  • *监督学习(supervised learning)擅长在“给定输入特征”的情况下预测标签。
    • Input feature 输入特征 用来描述事物或现象的数据点。
    • 标签 label 你要预测的结果
    • 目标:监督学习就是为了训练出一个模型,让它能够根据特征(原因)来准确地预测出标签(结果)
  • 样本---“特征-标签”对
    • 有时,即使标签是未知的,样本也可以指代输入特征(在测试集中的样本)
  • 生成模型(Generate a Model): 通过在包含“特征-标签”对的数据集上进行训练,学习算法会生成一个函数/规则集,这就是模型
  • 映射(Mapping): 模型的作用就是建立一个规则,将新的输入(特征)转换或关联到预期的输出(标签/预测)。

image.png

1.4.1.1 回归问题

任何有关“有多少的”问题很可能是就是回归问题。

1.4.1.2 分类问题

分类模型 分类问题是希望该模型能预测样本属于哪个类别。 最简单的分类问题是只有两类,这被称之为二项分类(binomial classification)。 当有两个以上的类别时,我们把这个问题称为多项分类(multiclass classification)问题。

与回归问题bong,不同,分类问题中常见的损失函数---交叉熵(cross-entropy)

image.png

image.png

1.4.1.3 标记问题

学习预测不相互排斥的类别的问题称为多标签分类(multi-label classification) (”相互排斥”指的是一个样本是否限制只能属于一个类别

image.png

image.png

1.4.1.4 搜索

搜索的结果中的排序也很重要。

image.png

1.4.1.5 推荐系统 recommender sys

搜索、排名相关的问题。 image.png

1.4.1.6 序列学习

序列学习---连续的、有顺序的

传统的机器学习都是 输入输出是固定的,模型只是用输入特征作为“原材料”进行一次预测。

序列学习的定义和特征:

  • 序列学习是机器学习中最令人兴奋的应用之一。
  • 它需要提取序列预测序列,或者同时进行。
  • 输入和输出的长度通常是可变的(例如,长短不一的句子或音频片段)。

解决了传统机器学习无法处理连续且有依赖关系的数据序列的问题,强调了模型在处理视频、语言和医疗数据等序列时需要“记忆”历史信息的能力。

1.4.2 无监督学习

  • 聚类
  • 主成分分析
  • 因果分析
  • 生成对抗性网络

1.4.3 与环境互动

image.png

image.png

1.4.4 强化学习

强化学习必须不断的做出选择*--- 是利用当前最优的策略,还是进一步探索策略空间。

环境可被完全观察到时,强化学习问题被称为马尔可夫决策过程(markov 决策过程)。 当状态不依赖于之前的作时,我们称该问题为上下文赌博机(contextual 土匪问题)。 当没有状态,只有一组最初未知回报的可用动作时,这个问题就是经典的多臂赌博机(multi-arm 土匪问题)。



# CNN

CNN --- 卷积神经网络

CNN |

ResNet-18

resnet-18-发明者原论文

RetNet(ReNet residual )

残差网络引入了(残差连接)residual connections。 他不再强制每一层学习全新表示,而是允许每一层学习残差,也就是学习输入与输出的差异。 通过跳跃连接实现,跳跃连接可以绕过一层或多层,使梯度在训练过程中更容易流动?这项架构的创新使得训练拥有数百甚至上千层的神经网络成为可能,而这一切都始于ResNet-18.

ResNet-18 由十八层构成,包括卷积层、激活层(ReLU函数)和全连接层。 与CNN不同的是层的组织方式。 ResNet模型是由一系列模块构成,每个模块包含两个卷积层以及一个快捷链接(跳跃连接)。

image.png

这些捷径允许模型在前向传播和反向传播过程中跳过某些层,从而有助于保留信息并在训练过程中保持稳定。ResNet-18 使用更简单的模块,使其计算量更小、速度更快,同时保留了残差学习的优势

在处理小型数据集或受限的计算环境时,ResNet-18 是首选模型。它在常见的场景中表现出色,例如快速构建计算机视觉模型原型、需要可解释性和快速训练的教育项目,以及任何需要速度快但模型规模小的场景。尽管规模较小,ResNet-18 在许多基准测试中已被证明是一个强大的基准模型。