首页 > 其他分享 >【NLP 3、深度学习简介】

【NLP 3、深度学习简介】

时间:2024-12-01 21:32:59浏览次数:8  
标签:NLP 函数 训练 简介 模型 损失 参数 深度 print

列夫托尔斯泰写:“如果你能感受到痛苦,那么你还活着;如果你能感受到他人的痛苦,那么你才是人”

                                                                                                                            —— 24.11.27

一、引例 —— 猜数字游戏

给出一个范围,从其中进行猜测数字,对每次猜测结果给出一定反馈,首先随机给出一个初始值,根据反馈计算损失函数loss,根据损失函数得到loss值调整下一次猜测的大小,一次次猜测使得猜测与结果的差距不断减小,直到猜对为止

import random

x = random.randint(0,100)
i = 1;
while(i < 6):
    print("请输入一个数字")
    y = int(input())
    if(y > x):
        print("输入的数字大于目标数字")
        if(5 - i == 0):
            print("很遗憾,您没有猜对")
            print(f"游戏结束,答案是:{x}")
        print(f"这是第{i}次猜测,您还有{5-i}次机会")
    elif(y < x):
        print("输入的数字小于目标数字")
        if(5 - i == 0):
            print("很遗憾,您没有猜对")
            print(f"游戏结束,答案是:{x}")
        print(f"这是第{i}次猜测,您还有{5-i}次机会")
    else:
        print(f"这是第{i}次猜测,恭喜你,猜对了")
        break
    i += 1


优化

1.随机初始化

假如一开始猜的数字就是最终答案,则损失函数直接为0

NLP的预训练模型实际上是对随机初始化的技术进行优化

2.优化损失函数

假如损失函数定义的是返回精确的差距 loss = (y_true - y_pred),则只需进行一次猜数字流程就可以得出精确的值

损失函数选的越好,优化越简单

3.调整参数的策略

将参数的调整依照一定的策略,选择合适的策略

本例中可以采用二分法调整参数

4.调整模型的结构

选取初识的函数或公式,本质是因为不同模型能够拟合不同的数据集,不同模型结构适用于不同的任务


二、深度学习相关概念

1.隐含层/中间层

神经网络模型输入层和输出层之间的部分

隐含层可以有不同的结构:

RNN        CNN        DNN        LSTM        Transformer        ……

它们本质上的区别只是不同的运算公式

2.随机初始化

隐含层中会含有很多的权重矩阵,这些矩阵需要有初始值,才能进行运算

初始值的选取会影响最终的结果

一般情况下,模型会采取随机初始化,但参数会在一定范围内

在使用预训练模型一类的策略时,随机初始值被训练好的参数代替

好的开始是成功的一半!所以初始值的选取也很重要

3.损失函数

损失函数用来计算模型的预测值与真实值之间的误差

模型训练的目标一般是依靠训练数据来调整模型参数,使得损失函数到达最小值。

损失函数有很多,选择合理的损失函数是模型训练的必要条件

4.导数与梯度

导数表示导数曲线上的切线斜率

除了切线的斜率,导数还表示函数在该点的变化率

5.梯度下降

梯度告诉我们函数向哪个方向增长最快,那么他的反方向,就是下降最快的方向

梯度下降的目的是找到函数的极小值

为什么要找到函数的极小值?

因为我们最终的目标是损失函数值最小

6.优化器(公式)

知道走的方向,还需要知道走多远

假如一步走太大,就可能错过最小值,如果一步走太小,又可能困在某个局部低点无法离开

学习率(learningrate),动量(Momentum) 都是优化器相关的概念

7.Mini Batch / epoch

一次训练数据集的一小部分,而不是整个训练集,或单条数据

它可以使内存较小、不能同时训练整个数据集的电脑也可以训练模型。

它是一个可调节的参数,会对最终结果造成影响

不能太大,因为太大了会速度很慢。也不能太小,太小了以后可能算法永远不会收敛

我们将遍历一次所有样本的行为叫做一个 epoch,epoch 是一个重要的概念,它指的是训练过程中整个训练数据集被完整地通过模型一次。

8.人工神经网络

人工神经网络(Artificial Neural Networks,简称ANNs),也简称为神经网络(NN)。

它是一种模拟动物神经网络行为特征,进行分布式并行信息处理的算法数学模型


三、深度学习是怎样进行

训练迭代进行

模型训练好后把参数保存,即可用于对新样本的预测

首先选取一个模型结构(公式),对模型的参数进行随机初始化,选用训练样本中的X代入模型中预测出对应的预测值Y,然后用这个预测值和对应的真实值用提前选好的损失函数算出对应的损失,再用优化器(另一个公式)对模型的参数进行优化,然后迭代重复以上步骤,我们重复迭代,优化损失函数,使损失函数变小,小到一定程度损失函数不再下降,我们就认为该模型收敛了,此时模型中的参数值是多少,就是我们最终需要的模型

要点:

① 模型结构选择        ② 初始化方式选择        ③ 损失函数选择        ④ 优化器选择        ⑤ 样本质量数量


四、总结

机器学习的本质,是从已知的数据中寻找规律,用这个规律预测未知的数据

深度学习是机器学习的一种方法

深度学习的基本思想:

选取公式 ——> 参数随机初始化 ——> 标注数据算误差 ——> 根据误差调整参数 

简而言之,“先猜后调”

标签:NLP,函数,训练,简介,模型,损失,参数,深度,print
From: https://blog.csdn.net/m0_73983707/article/details/144075012

相关文章

  • ESLint CLI 深度解析:配置选项与高效工作流(5)
    CLI命令行工具关于CLI命令行工具,我们在第一节课的时候就用到过一个:eslint--fix.在官网,我们可以看到CLI命令行工具的基本格式为:eslint[options][file|dir|glob]*我们先来看后面的[file|dir|glob]*,这个部分主要是用来指定ESLint应该检查哪些文件:file:用......
  • Esbuild代码调用深度解析:Build API与Transform API的奥秘 (3)
    esbuild提供了丰富的API,允许你在Node.js代码中进行项目打包和代码转换。以下是esbuild的主要API和一些示例用法。项目打包——BuildAPIesbuild的BuildAPI主要用于项目打包,提供了build、buildSync和context三个方法。1.基本配置在项目根目录下创建esb......
  • MonoCD:具有互补深度的单眼3D物体检测
    MonoCD:具有互补深度的单眼3D物体检测   单眼3D对象检测因其能够以低成本,从单个图像中准确获得对象3D定位,而引起了广泛关注。由于2D到3D映射的不适定性,深度估计是单目3D对象检测的一个重要,但具有挑战性的子任务。许多方法探索多个局部深度线索,如物体高度和关键点,然后将物体深......
  • 代码随想录算法训练营第十四天 | 226.翻转二叉树、 101. 对称二叉树、104.二叉树的最
    文档讲解:代码随想录视频讲解:代码随想录状态:完成4道题226.翻转二叉树整体思路:交换每一个节点的左右孩子思考:使用哪种遍历方式?建议使用前序或后序遍历(中序遍历比较绕)​前序遍历#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,va......
  • 【NLP高频面题 - LLM架构篇】旋转位置编码RoPE如何进行外推?
    【NLP高频面题-LLM架构篇】旋转位置编码RoPE如何进行外推?重要性:★★★......
  • 动手学深度学习-2数据预处理、3线性代数
    目录数据预处理 读取数据集处理缺失值 转换为张量格式 小结线性代数标量向量长度、维度和形状 矩阵张量张量算法的基本性质 降维非降维求和 点积(DotProduct)矩阵-向量积 矩阵-矩阵乘法范数范数和目标 小结数据预处理为了能用深度学习来解决现......
  • AI大模型系列之二:ChatGPT科普(深度好文)
     目录引言语言模型的发展历程ChatGPT是什么?预训练ChatGPT分几步?第一步:如何炼成ChatGPT?第二步:如何微调ChatGPT?第三步:如何强化ChatGPT?GPT背后的黑科技Transformer是什么?Transformer在计算机视觉上CV最佳作品?ChatGPT模型的基本原理引言开篇之前,先用战略......
  • 深度学习笔记——BLIP2
    本文详细介绍多模态模型:BLIP2。推荐阅读:BLIP2-图像文本预训练论文解读【多模态】BLIP-2模型技术学习文章目录回顾BLIPBLIP的问题及BLIP2的优化1.模块化架构设计2.引入Q-Former模块3.分阶段训练策略4.减少计算开销BLIP2架构表征学习阶段RepresentationL......
  • 【每天一篇深度学习论文】基于CNN和Transformer的局部和全局特征提取模块
    目录论文介绍题目:论文地址:创新点方法整体结构实验结果即插即用模块代码论文介绍题目:LEFormer:AHybridCNN-TransformerArchitectureforAccurateLakeExtractionfromRemoteSensingImagery论文地址:https://arxiv.org/pdf/2308.04397创新点这篇文章介......
  • AI大模型系列之一:大模型原理科普(深度好文)
    AI大模型系列之一:大模型原理科普(深度好文)目录认识AI大模型家族AI是什么?机器学习是什么?机器学习有哪些分支?什么是强化学习?深度学习属于哪一类学习?生成式AI和深度学习是什么关系?大语言模型是什么?所有大语言模型都是生成式AI?大语言模型LLM(largelanguagemo......