深度学习-了解

news2024/11/17 1:48:49

1.机器学习的分类

  • 监督学习(Supervised Learning)是指从已标注的训练数据中学习判断数据特征,并将其用于对未标注数据的判断的一种方法。
  • 无监督学习(Unsupervised Learning)不同于监督学习,它的学习算法是从没有标注的训练数据中学习数据的特征。

2.深度学习和机器学习的区别

二者提取特征的方式不同:深度学习具备自动提取抽象特征的能力,机器学习大多是手动选取特征和构造特征。

3.深度学习的典型特点

  • 多层结构:深度学习模型通常由多层神经网络组成。
  • 自动特征学习:深度学习模型能够自动从原始数据中学习有用的特征表示。
  • 高模型容量和表达能力:深度学习模型能够拥有足够多的参数和层级,以适应更复杂、更抽象的任务。
  • 分布式并行计算,利用CPU、TPU等计算资源。
  • 强大的泛化能力。

4.深度学习的发展历程

在这里插入图片描述

  • 第一阶段:萌芽期(20世纪40年代~80年代) 1943年,美国神经生理学家沃伦·麦卡洛克(Warren McCulloch)和数学家沃尔特·皮兹(Walter
    Pitts)通过对生物神经元建模,首次提出了人工神经元模型,该模型被称为M-P模型。
  • 第二阶段:发展期(20世纪90年~2011年) 20世纪80年代,罗森•布拉特提出的适用多层感知机的反向传播算法(Back Propagation,BP)解决了线性不可分问题,引起了神经网络的第二次热潮。BP算法的提出使得神经网络的训练变得简单可行。到了1989年,被称为卷积神经网络之父的杨立昆 (Yann LeCun)利用BP算法训练多层神经网络并将其用于识别手写邮政编码,这个工作可以认为是卷积神经网络(Convolutional Neural Network,CNN)的开山之作。
  • 第三阶段:爆发期(2011年至今) 硬件资源发展,开始使用GPU 2012年Hinton课题组构建了AlexNet。2014年,由牛津大学VGG(Visual Geometry
    Group)提出的VGG-Net获得ImageNet竞赛定位任务的第一名和分类任务的第二名,同年分类任务的第一名则是被Google的Inception网络夺得。2015年,ResNet横空出世,在ILSVRC和COCO大赛上获得冠军。2017年,Google提出的移动端模型MobileNet以及CVPR2017的DenseNet模型在模型复杂度以及预测精度上又做了很多贡献。

5.深度学习基础框架

  • TensorFlow:由Google开发的开源深度学习框架,提供了丰富的工具和库,支持跨多个平台和设备进行高性能计算。TensorFlow使用静态计算图来定义和执行计算任务。
  • PyTorch:由Facebook开发的开源深度学习框架,具有简单易用的API和动态计算图的特点。PyTorch的设计理念更贴近Python编程风格,使得模型的构建和调试更加方便。
  • Keras:一个高级神经网络API,可以作为TensorFlow、PyTorch等后端运行。它提供了简洁的API接口,使得深度学习模型的构建、训练和评估更加快捷和便利。
  • MXNet:一个可扩展、高效的深度学习框架,支持多种编程语言,包括Python、R、Julia等。MXNet提供了符号式和命令式两种编程方式,具有良好的灵活性。
  • Caffe:一个用于快速搭建神经网络的深度学习框架,以速度和效率为重点。Caffe采用了C++编写,支持CPU和GPU加速,适合在计算资源有限的情况下进行快速原型开发。

6.M-P神经元模型、感知机模型和多层感知机模型的区别?

M-P神经元模型

在这里插入图片描述
该模型旨在模拟从多输入到单输出的信息处理单元。
M-P模型的工作步骤:

  • 神经元接受n个输入信号。
  • 将输入与权值参数进行加权求和并经过激活函数激活。
  • 将激活结果作为结果输出。

人为设定参数值。

output = step_function(sum(inputs * weights) - threshold)

其中,inputs表示输入信号向量,weights表示权重向量,threshold表示阈值,sum表示求和操作,step_function表示阶跃函数,输出为0或1。

感知机模型

在这里插入图片描述

旨在建立一个线性超平面用来解决线性可分问题。
对样本数据的训练自动获得对参数的更新结果。

感知机学习机制

  • 准备训练样本和对权值参数进行初始化
  • 加入一个训练样本,并计算实际输出值
  • 比较实际输出值和期望输出值的大小,如果相同,则参数不变;如果不同,则需要通过误差修正调整参数大小
  • 对每个训练样本重复上述步骤,直到计算的误差为0或者小于某个指定的值

感知机运行原理
假设 𝑥1,𝑥2是输入信号;𝑤1,𝑤2是权重,控制输入信号的重要性;𝑦 是输出信号,在感知机中,只有两种输出,其中,0 代表“不传递信号”,1 代表“传递信号”。当输入信号被送往神经元时,分别乘以各自的权重,然后加总,如果总和超过阈值 𝜃 ,则𝑦的输出为 1 ,否则为 0 。抽象为公式如下:

在这里插入图片描述感知机模型局限性

仅对线性问题具有分类能力——它只能表示由一条直线分割的空间,而对由曲线分割而成的非线性空间却无能为力

多层感知机模型

就是在输入层和输出层之间加入了若干隐藏层,以形成能够将样本正确分类的凸域,使得神经网络对非线性情况的拟合程度大大增强。

在这里插入图片描述
层数计算:不计输入层,把除去输入层之后的神经网络从左至右依次计数得到的总层数,就是神经网络的最终层数。如上图层数为2。

上图网络又称为全连接神经网络。全连接是指神经网络模型中,相邻两层单元之间的连接方式,使用全连接方式时,网络当前层的单元与网络上一层的每个单元都存在连接。

激活函数的引入使得多层感知机具备了非线性建模的能力。

  • 非线性转换:
    激活函数将输入信号进行非线性转换,从而在每个节点上引入非线性操作。在单层感知机中,由于仅使用线性激活函数(如恒等函数),无法对输入数据进行非线性分类。这是因为线性函数的输出仍然是输入的线性组合,无法表达非线性关系。通过引入非线性激活函数,如ReLU、Sigmoid、Tanh等,可以在每个节点上引入非线性操作,使得多层感知机能够学习和表示更加复杂的非线性关系。
  • 多层叠加:
    多层感知机通过将多个全连接层叠加在一起,将前一层的输出作为后一层的输入。每个层都通过激活函数进行非线性转换,并传递给下一层。这种层叠的结构使得网络可以通过组合多个非线性操作来逐渐构建更加复杂的非线性模型。每一层都可以学习到不同层次的抽象特征,通过层层叠加,模型可以逐渐提取出更高级别、更复杂的特征表示。这样,多层感知机在处理复杂问题时能够更好地拟合数据,实现非线性建模。

7.激活函数的作用

激活函数是神经网络中的一个重要组成部分,它的作用主要有以下几点:

  • 1.引入非线性:激活函数的主要作用是将输入信号进行非线性变换。神经网络的每一层都使用激活函数对输入信号进行处理,从而使神经网络具有处理非线性关系的能力。如果没有激活函数,多层神经网络就会退化成线性模型,无法学习和表示复杂的非线性关系。
  • 2.增强表达能力:激活函数的非线性变换可以增加神经网络的表达能力,使得网络能够学习和表示更加复杂的函数关系。通过激活函数的作用,神经网络可以捕捉到不同特征之间的非线性关系,从而提高了网络对输入数据的建模能力。
  • 3.实现信号的稀疏性:有些激活函数具有稀疏性的特点,即对于某些输入值,激活函数的输出为0,称为稀疏激活。稀疏激活可以使得神经网络在处理大规模数据时,仅激活部分神经元,从而减少计算量和存储空间。
  • 4.归一化输入和输出:激活函数可以对输入和输出进行归一化处理,使得输入和输出值的范围在一个合适的区间内,利于神经网络的训练和优化过程。常用的激活函数如sigmoid、tanh 和 ReLU 等都具有将输入值映射到一定范围内的特性。

总之,激活函数在神经网络中起到了非常重要的作用,通过引入非线性变换和增强表达能力,它使得神经网络可以学习和表示复杂的非线性关系,从而提高了网络的建模能力。

8.分别在什么场合下应用

不同的激活函数适用于不同的场合。以下是常见的场合和适用的激活函数:

sigmoid 激活函数:

  • 二分类问题:sigmoid 函数的输出范围在 (0, 1) 之间,可以将输出解释为概率值,适用于二分类问题的输出层。(输出层)
  • 强调信号的非线性:sigmoid 函数具有平滑的 S 形曲线,适用于在神经网络中引入非线性,使得网络能够学习和表示非线性关系。(隐藏层)

tanh 激活函数:

  • 多分类问题:tanh 函数的输出范围在 (-1, 1) 之间,可以用作多分类问题的输出层,代表不同类别的概率分布。
  • 强调信号的对称性:tanh 函数是关于原点对称的,可以保持输入数据的正负号,适用于需要保持输入数据的符号信息的场景。

ReLU 激活函数(Rectified Linear Unit):

  • 隐藏层激活函数:ReLU 函数将负数输入映射为0,而对于正数输入则保持不变,可以有效地缓解梯度消失问题,适用于神经网络的隐藏层激活函数。
  • 提升稀疏性:ReLU 函数的输出在正数范围内全为非零值,对于稀疏性的要求较高的任务,如自动编码器等,ReLU 函数可以更好地实现。

9.神经网络的训练流程

在这里插入图片描述
Epoch(时期)是指将全部训练数据在神经网络上正向传播和反向传播的次数。

  • 一个 Epoch 表示模型使用整个训练数据集(包含多个样本)进行一次前向传播和一次反向传播的过程。在每个 Epoch
    中,模型对所有的训练样本进行处理并更新模型的参数。一个 Epoch
    的完成意味着模型已经完整地遍历了一次整个数据集,并通过反向传播来更新了所有的权重和偏置等参数。
  • 为什么要使用 Epoch
    这个概念呢?因为训练神经网络的过程中,通常需要进行多次的迭代训练才能使模型达到较好的性能。每次迭代训练都会更新模型参数,但并不保证模型已经完全学习到数据的特征。通过多次迭代训练,模型可以逐渐优化,提高自己的性能。而一个Epoch 则表示了一次完整的数据集遍历,可以看作是迭代训练的一个单元。
  • 在训练过程中,经常会设置一个合适的 Epoch 数量来控制模型的训练轮数。选择恰当的 Epoch数量取决于问题的复杂度、数据集规模和模型的收敛速度等因素。较小的 Epoch 数量可能导致模型欠拟合,而较大的 Epoch数量则可能导致过拟合,因此需要进行适当的调节和实验。

一般来说,在深度学习的训练过程中,我们需要使用大规模的数据集来训练模型。如果一次性将所有的数据都用于训练,会导致内存占用过大,而且训练时间也会非常长。因此,我们通常将训练数据切分成小的批次(batch),每个批次中包含固定数量的数据样本,然后在这些批次上进行训练

具体地,切分 batch 数据一般可以按照以下步骤进行:

  • 首先,我们需要加载并打乱整个训练数据集,以保证每个批次中的数据都是随机的。打乱的目的是为了避免样本之间的相关性,并使模型更好地泛化。
  • 接下来,我们需要将打乱后的训练数据集分割成多个大小相等的 batch。每个 batch
    的大小通常设置为2的次幂,比如32、64、128等,这样有利于 GPU 进行优化计算。
  • 在每个 epoch 中,将每个 batch 的数据送入模型进行训练。具体地,选择一个 batch,将该 batch
    中的数据输入给模型,得到该批次数据的预测值,并计算预测值与真实标签之间的损失。然后根据损失计算每个参数的梯度,并使用优化算法(如随机梯度下降)更新模型的权重。这样,经过多个
    epoch 的训练,模型的性能逐渐提高。
  • 在训练过程中,通常会对每个 batch 进行多次迭代训练,以进一步提高模型的学习效果。对于每个
    batch,可以设置一个固定的迭代次数,也可以在训练过程中动态调整。

10.损失函数

损失函数通常表示为真实值与预测值之间的距离。

  • 均方误差:回归
  • 交叉熵:分类

11.梯度下降、批量梯度下降、随机梯度下降的区别和联系

联系:都是基于梯度下降算法的策略
区别:执行一次所需的样本量不同

单个样本指的是训练数据集中的一个独立的数据样本,它由输入特征和对应的标签(或目标)组成。在机器学习和深度学习中,通常使用一组样本来训练模型。

一个小的随机子集是指从整个训练数据集中随机选择出的一部分样本。这个子集通常包含相对较少的样本,但足够大以代表整个数据集的特征。通过使用随机子集,可以在每次迭代中使用不同的样本来计算梯度,从而减少计算开销,并引入一定程度的随机性。

梯度下降使用整个训练集,批量梯度下降也使用整个训练集,而随机梯度下降只使用单个样本(或一个小的随机子集)。这导致了它们的计算代价和收敛速度不同。同时,随机梯度下降相对于另外两种算法来说更容易陷入局部最优解,但在大规模数据集上具有更高的效率。

12.改进批量梯度下降算法

动量梯度下降算法(Momentum Gradient Descent):
在标准的梯度下降算法中,参数更新的方向只取决于当前的负梯度。然而,这样的方法容易受到参数空间中的局部最优解和谷底的干扰,导致收敛速度较慢。动量梯度下降算法引入了动量项来解决这个问题。具体来说,动量项考虑了之前的梯度方向,并在参数更新时累积了一个速度。这样就产生了一个惯性效应,使得参数更新的方向不仅仅取决于当前的梯度,而是综合了之前的梯度信息。通过这种方式,动量梯度下降算法可以跳出局部最优解,并加快收敛速度。

均方根加速算法(Root Mean Square Propagation,RMSProp):
学习率是优化算法中一个非常重要的超参数,它控制着参数更新的步长。然而,固定的学习率在不同的参数空间和不同的方向上可能不适用。为了解决这个问题,RMSProp算法引入了自适应学习率的概念。具体来说,RMSProp算法通过对梯度进行指数加权移动平均,计算出每个参数的梯度方差的估计。然后,使用这个方差的估计值来调整学习率,以适应参数空间中不同方向的变化。这样就使得在梯度较大的方向上,学习率较小,而在梯度较小的方向上,学习率较大。这种自适应性可以提高训练的效果。

自适应矩估算法(Adaptive Moment Estimation,Adam):
Adam算法是一种结合了动量梯度下降和RMSProp的优化算法。它利用了梯度的一阶矩估计和二阶矩估计来自适应地调整学习率。具体来说,Adam算法使用了梯度的一阶矩(均值)的估计和二阶矩(方差)的估计来更新参数。通过计算一阶矩和二阶矩的移动平均,Adam算法能够自适应地调整每个参数的学习率。这种自适应性可以在训练过程中平衡不同参数的更新速度,并且在参数空间中变化较大的方向上减小学习率。Adam算法具有较快的收敛速度和较好的性能,在深度学习中被广泛使用。

这些改进算法在梯度下降过程中引入了动量信息、自适应学习率以及参数更新时的指数加权移动平均等机制,能够提高收敛速度、稳定性和全局最优解的搜索能力。根据具体情况,可以选择合适的算法进行优化。

13.解决过拟合的方法

增加数据量,损失函数中加入正则化,使用Dropout方法。

Dropout 是一种广泛使用的正则化技术,通过在训练过程中随机丢弃一部分神经元的输出来减少连接的依赖关系,防止过拟合。通过随机地将一些神经元的输出置为零,Dropout 可以强制模型学习到多个相似的表示,从而提高模型的鲁棒性。
在这里插入图片描述
它强迫一个神经单元和随机挑选出来的其他神经元共同工作,减弱了神经元节点间的联合适应性,增强了泛化能力。

14.输出矩阵的维度

在这里插入图片描述

18.如何区分Inception,ResNet,DenseNet,MoblieNet的⽹络结构

Inception
在这里插入图片描述
在这里插入图片描述
ResNet
在这里插入图片描述
在这里插入图片描述
因为求偏导数之后有个1存在,所有梯度不会太小。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1065707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java 将字符串转为Base64格式与将Base64内容解析出来

首先要引入依赖包 import java.nio.charset.StandardCharsets; import java.util.Base64;然后对应一下两个代码 将字符串转为Base64 Base64.getEncoder().encodeToString(需要转换的字符串.getBytes(StandardCharsets.UTF_8));将 Base64 字符串解析成原来的内容 byte[] deco…

备份网络架构Host-Based/Lan-Based/Lan-Free/Server-Free

前言 常见的数据备份系统主要有 Host-Based LAN-Based 基于 SAN 结构的 LAN-Free LAN Server-Free 等多种结构。 Host-Based Host-Based 是传统的数据备份结构 该结构中磁带库直接接在服务器上 而且只为该服务器提供数据备份服务。一般情况 这种备份大多采用服务器上自带的磁…

基于生物地理学优化的BP神经网络(分类应用) - 附代码

基于生物地理学优化的BP神经网络(分类应用) - 附代码 文章目录 基于生物地理学优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.生物地理学优化BP神经网络3.1 BP神经网络参数设置3.2 生物地理学算法应用 4…

时序预测 | MATLAB实现ICEEMDAN-IMPA-GRU时间序列预测

时序预测 | MATLAB实现ICEEMDAN-IMPA-GRU时间序列预测 目录 时序预测 | MATLAB实现ICEEMDAN-IMPA-GRU时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 ICEEMDAN-IMPA-GRU功率/风速预测 基于改进的自适应经验模态分解改进海洋捕食者算法门控循环单元时间序列预…

AIGC革新,将文字或者LOGO融入AI视频基于PIKA-labs(Python3.10)

很多平台都会禁止用户使用带有网址或者二维码的头像以及文章配图,这样可以有效的防止用户的一些“导流”行为。当然,头像、文章或者视频现在都是AI来审,毕竟现在人工的成本实在太高,但是如果我们把文字元素直接融入图像或者视频之…

在微信公众号上怎么搭建付费课程功能

搭建付费课程功能是线上教育平台的重要组成部分,需要考虑到技术、用户体验、支付安全等多个方面。以下是搭建付费课程功能的几个关键步骤: 一、确定技术方案 搭建付费课程功能需要选择合适的技术方案,包括前端和后端的开发、数据库管理、服务…

编程每日一练(多语言实现)基础篇:求100~200之间的素数

文章目录 一、实例描述二、技术要点三、代码实现3.1 C 语言实现3.2 Python 语言实现3.3 Java 语言实现3.4 JavaScript 语言实现3.5 Go 语言实现 一、实例描述 求素数表中 100~200 之间的全部素数。运行结果如下图所示: 二、技术要点 素数是大于1的整数&#xff…

Verilog HDL阻塞赋值和非阻塞赋值笔记

1. module test( input wire clk, input wire b, output reg a, output reg c ); always(posedge clk) begin ab; ca; end endmodule 上面的代码在vivado中综合后的电路为: 2. module test( input wire clk, input wire b, outp…

Java编程技巧:Excel导入、导出(支持EasyExcel和EasyPoi)

目录 1、EasyExcel:普通导出2、EasyExcel:普通导入3、EasyExcel:复杂导出4、EasyPoi:普通导出5、EasyPoi:普通导入6、EasyPoi:复杂导出7、EasyPoi:复杂导入8、代码 1、EasyExcel:普通…

使用chat-GPT接口提取合同中关键信息

1 业务需求 目前公司有几千份合同,而且还会不断的增长;现在需要将合同中的关键信息提取出来给业务使用,业务现在需要将这些关键字段信息录入存档到档案系统;人工去阅读整个合同去提取这些信息,是很浪费人力的&#xff…

数据库基础知识

数据库 什么是数据库, 数据库管理系统, 数据库系统, 数据库管理员? 数据库 : 数据库(DataBase 简称 DB)就是信息的集合或者说数据库是由数据库管理系统管理的数据的集合。数据库管理系统 : 数据库管理系统(Database Management System 简称 DBMS)是一种操纵和管理数据库的大…

“逆境中的经济悖论:衰退与通胀之争,解读未来的经济迷局!“

收益率和石油继续上涨,预示着通胀上升,但在经济衰退时这些东西都会下降。 美国十年期国债正在爆炸 更高的收益率意味着政府需要支付更高的利息、经济疲软、通胀更高、印钞更多,甚至收益率更高,该反馈循环的关键要素是更多印钞。 …

第二证券:买基金1w一个月能赚多少?

跟着经济的开展和出资观念的改动,越来越多的人开始出资基金,购买基金已成为普遍且盛行的出资方式之一。在这个商场中,人们最重视的问题莫过于“买基金1w一个月能赚多少?”本文将从多个角度分析这一问题,协助出资者更全…

Elasticsearch:多语言语义搜索

在此示例中,我们将使用多语言嵌入模型 multilingual-e5-base 对混合语言文档的 toy 数据集执行搜索。 使用这个模型,我们可以通过两种方式进行搜索: 跨语言,例如使用德语查询来查找英语文档在非英语语言中,例如使用德…

基于风驱动优化的BP神经网络(分类应用) - 附代码

基于风驱动优化的BP神经网络(分类应用) - 附代码 文章目录 基于风驱动优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.风驱动优化BP神经网络3.1 BP神经网络参数设置3.2 风驱动算法应用 4.测试结果&#x…

每日一题 901. 股票价格跨度(中等,单调栈)

理解题目,对于第 i 天,要求的是前 i - 1 天所满足条件的跨度 思路: 暴力搜索的方式是,对于每一个第 i 天都遍历搜索 i - 1, i - 2,…,直到第 j 天大于当前价格优化,考虑哪里进行了…

1500*B. Zero Array(贪心数学找规律)

Problem - 1201B - Codeforces 解析&#xff1a; 因为每次减少2&#xff0c;如果总和为奇数肯定无法实现。 特例&#xff0c;如果某个数大于其他所有数的总和&#xff0c;同样无法实现。 其他均可实现。 #include<bits/stdc.h> using namespace std; #define int long l…

数学王国找寻另一半:求一个整数的真因子总和

数学王国找寻另一半&#xff0c;求一个整数的真因子总和。 (本笔记适合python字符串、列表list熟悉的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不…

基于水循环优化的BP神经网络(分类应用) - 附代码

基于水循环优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于水循环优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.水循环优化BP神经网络3.1 BP神经网络参数设置3.2 水循环算法应用 4.测试结果&#x…

10月7日星期六今日早报简报微语报早读

10月7日&#xff0c;星期六&#xff0c;早报简报微语早读分享。 1、中秋国庆假期国内旅游8.26亿人次&#xff0c;旅游收入7534.3亿&#xff1b; 2、2023国庆档新片票房破27亿&#xff1b; 3、石宇奇、李诗沣会师决赛&#xff0c;国羽提前包揽男单金银牌&#xff1b; 4、德国大…