CV第二课

Part1 深度学习是什么?

深度学习(Deep Learning)是机器学习的一个分支,它使用神经网络模拟人脑的学习方式,从大量数据中自动学习和提取特征,进行预测和决策。

深度学习依赖于多层神经网络,每一层神经元接受前一层神经元的输出,并通过权重和激活函数进行计算,传递到下一层神经元。

神经元模型是模拟生物神经元行为的计算模型,它在人工智能和机器学习领域扮演着核心角色。

神经元就像人体大脑中的微小开关,能够接收来自其他神经元的信号,并根据这些信号的产生反应。

在人工智能中,我们用数学模型来模拟这种生物神经元的行为。

一个简单的神经元模型包括输入、权重、激活函数和输出

  1. 输入就像神经元 树突 接收到的信号,

  2. 权重则像是调整信号强度的小调节器,

  3. 激活函数决定是否产生输出,

  4. 输出则是传递给其他神经元的信号。

深度学习则是由这些神经元模型层层堆叠起来的复杂结构。

深度将它们按照一定的层次连接起来,形成一个庞大的网络。这个网络的最底层接收输入数据,比如图片或文本,然后通过每一层的处理,逐渐提取出更高级别的特征,最后在顶层输出结果,比如识别图片中的物体或理解文本的含义。

从最基础的神经元模型出发,科学家们逐步构建了越来越复杂的神经网络模型,最初科学家们从模拟单个神经元的行为开始,创建了简单的神经元模型,这些模型能够接收输入信号并产生输出。这些基础模型为后续更复杂结构的构建奠定了基础

。随着对神经元理解的加深,科学家们开始将这些基本的神经元模型组合起来,形成了多层次的网络结构。这些网络,我们称之为神经网络,它们能够在各个层次上处理和传递信息,就像大脑中的神经回路一样。他们设计了一系列实验,使用不同类型的数据集来训练这些网络,比如图像、文本或声音数据。

为了进一步提高模型的准确性和泛化能力,科学家们引入了各种优化技术和算法,如

  1. 激活函数Activation Fuction的改进

  2. 权重初始化Weight Initilization方法

  3. 正则化技术Normalization以及

  4. 梯度下降的变种Gradient Gescent Optimization Algoritms

  5. 他们还开发了新的网络结构Network Structure,如卷积神经网络(CNN)循环神经网络( RNN ),以适应不同类型的数据和任务。

从机器学习到深度学习

机器学习:通常使用相对简单的算法(如线性回归、决策树)处理数据。需要人工设计特征工程来提高模型性能。

深度学习:通过深层神经网络自动学习特征,能够处理和学习高维度和复杂的数据模式,适用于图像识别、自然语言处理等复杂任务。

机器学习算法通过数据进行训练,识别数据中的模式和规律,并在此基础上进行预测或决策。随着数据量的增加和算法的优化,机器学习模型能够不断改进其性能,使其在特定任务上表现得越来越好。

  1. 线性回归:

  • 线性假设:假设输入特征与输出标签之间存在线性关系。

  • 独立同分布(IID):训练集中的数据是独立且同分布的。

  1. 决策树:

  • 独立性假设:每个特征在决策过程中是相互独立的。

  • 连续性假设:特征可以是连续的或离散的,算法通过找到最佳分割点来构建树。

  1. 神经网络:

  • 非线性假设:通过非线性激活函数来建模数据中的复杂非线性关系。

  • 层次化假设:通过分层结构来学习数据的不同层次和抽象。

传统的机器学习算法往往需要人工设计特征,这一过程称为特征工程,既费时又需要专业知识。

深度学习能够自动从原始数据中学习到有用的特征,减少了对人工特征工程的需求。

深度学习模型可以实现端到端的学习,即直接从原始输入数据到最终输出结果(如分类标签或翻译文本)的学习,而无需中间步骤。

对于初学者来说,通常建议先学习基础的机器学习知识,再逐步过渡到深度学习。

首先了解什么是机器学习,它的应用领域,以及它的主要类型(监督学习、无监督学习、半监督学习和强化学习)。

然后掌握一些经典的机器学习算法,如线性回归、逻辑回归、决策树、随机森林、SVM(支持向量机)、K-近邻(KNN)等。

接着从基础的神经网络结构开始,理解神经元、层、前向传播和反向传播等概念。

学习如何使用深度学习框架,如TensorFlow或PyTorch,它们提供了构建和训练深度学习模型所需的工具和API。

掌握卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆网络(LSTM)和Transformer等模型。

虽然 ChatGPT 是深度学习在自然语言处理领域的典型应用,并且深度学习在许多领域都取得了显著的成就,

但深度学习并不能解决所有问题。

深度学习通常需要大量的数据来训练模型,对于某些领域或问题,获取足够的高质量数据可能是不现实的。

Part2 深度学习如何训练的?

深度学习能够通过大量的数据和反复的训练来自动调整这些小开关(权重)的设置,使得整个网络能够越来越准确地完成特定的任务。

这个过程就像是在训练一个聪明的孩子,通过不断的练习和反馈,孩子学会了如何识别物体、理解语言,甚至解决复杂的问题。

梯度下降算法

https://blog.youkuaiyun.com/google19890102/article/details/69942970

梯度下降是一种优化算法,用于最小化函数。

梯度下降算法基于这样一个原理:损失函数的梯度指向函数增长最快的方向。

因此,如果我们希望减少损失函数的值,我们就需要沿着梯度的反方向调整模型的参数。

这样,每次迭代都会使模型参数朝着减少损失的方向移动。

在深度学习中,我们希望最小化损失函数,即模型预测值与真实值之间的差异。

梯度是损失函数关于模型参数的导数,它指示了参数的调整方向,以减少损失函数的值。

在训练循环中,我们首先加载一小批量数据,将其输入到神经网络中进行前向传播,计算出网络的输出。

然后,我们使用损失函数来计算当前批次的损失,并通过反向传播算法计算损失函数关于每个参数的梯度。

这些梯度告诉我们如何调整权重和偏置以减少损失。

当数据集非常大时,一次性处理所有数据可能会导致内存不足或计算过于缓慢。

通过将数据分成小批量,我们可以更频繁地更新模型参数,这使得训练过程更加高效

深度学习的训练代码虽然在细节上可能有所不同,但它们的核心结构和步骤是高度类似的。无论使用的是图像、文本还是音频数据,训练开始之前都需要对数据进行加载、预处理和分割。这部分代码通常涉及到数据加载器,它会将数据集分成小批量,并确保数据在训练过程中被正确地处理。训练代码包括前向传播、计算损失、反向传播和参数更新。这个过程会重复进行多轮(epoch),直到模型性能达到预期目标。

Part3 深度学习与迁移学习

迁移学习是一种机器学习技术,它将已在一个任务上学到的知识(如模型参数、特征表示等)应用到另一个相关任务上。

这种技术特别有用,因为它允许模型在数据稀缺的情况下也能表现出色。

通常使用在大规模数据集上预训练的模型作为起点,例如在ImageNet数据集上预训练的卷积神经网络(CNN)。

在预训练模型的基础上,使用少量标记数据对模型进行微调,以适应新任务。

迁移学习的实现方法

微调(Fine-tuning)是深度学习中一种有效的迁移学习策略,它允许我们利用预训练模型对特定任务进行优化。

其基本原理是,首先在一个大规模的数据集上预训练一个深度学习模型,捕捉通用的特征表示,

然后将这个预训练模型作为起点,在目标任务上进行进一步的训练以提升模型的性能。

微调的过程通常开始于选择一个在大型数据集上预训练的模型,这个预训练模型已经学到了丰富的特征表示,这些特征在广泛的领域内都是通用的。接着,我们将这个预训练模型适配到新的目标任务上。适配过程通常涉及以下步骤:

  • 我们会替换模型的输出层,以匹配目标任务的类别数量和类型。例如,如果目标任务是图像分类,而预训练模型原本用于不同的分类任务,我们就需要将模型的最后一层替换成适合新任务类别数的新层。

  • 【可做可不做】我们冻结预训练模型中的大部分层,这样可以防止在微调过程中这些层学到的通用特征被破坏。通常情况下,只对模型的最后一部分层进行解冻,这些层负责学习任务特定的特征。

  • 使用目标任务的数据集对模型进行训练。在这个过程中,我们会用梯度下降等优化算法更新模型的权重,从而使模型能够更好地适应新的任务。训练时,可能会使用比预训练时更低的学习率,以避免过度拟合目标数据集。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值