Day13—大语言模型

定义

大语言模型(Large Language Models)是一种基于深度学习的自然语言处理(NLP)模型,用于处理和生成人类语言文本。

一、认识NLP

什么是NLP

​ NLP(Natural Language Processing),即"自然语言处理",主要研究使用计算机来处理、理解及运用人类语言的各种理论和方法,属于人工智能的一个重要研究方向。

​ 简单来说,NLP就是如何让计算机理解人类语言。

NLP的主要研究方向

​ NLP是一个庞大的技术体系,研究方向主要包括机器翻译、信息检索、文档分类、问答系统、自动摘要、文本挖掘、知识图谱、语音识别、语音合成等。

​ 相较于CNN重点应用于计算机视觉领域,RNN则更多地应用于NLP方向。

word2vec

word2vec介绍

​ word2vec是一种基于神经网络的词嵌入技术,通过训练神经网络得到一个关于输入X和输出Y之间的语言模型,获取训练好的神经网络权重,这个权重是用来对输入词汇X进行向量化表示的。

word2vec的两种模型
  • CBOW模型

​ CBOW(Continuous Bag-of-Words Model),即"连续词袋模型",其应用场景是根据上下文预测中间词,输入X是每个词汇的one-hot向量,输出Y为给定词汇表中每个词作为目标词的概率。

Skip-gram模型

也称为"跳字模型",应用场景是根据中间词预测上下文词,所以输入X为任意单词,输出Y为给定词汇表中每个词作为上下文词的概率。

二、全连接神经网络

全连接神经网络

​ 全连接神经网络是一种连接方式较为简单的人工神经网络结构,某一层的任意一个节点,都和上一层所有节点相连接。

神经网络的激活函数

在神经网络中可以引入非线性激活函数,这样就可以使得神经网络可以对数据进行非线性变换,解决线性模型的表达能力不足的问题。

常见的激活函数
  • Sigmoid激活函数

y = 1 1 + e − x \Large y=\frac{1}{1+e^{-x}} y=1+e−x1

  • Relu激活函数

y = m a x ( 0 , x ) \Large y=max(0,x) y=max(0,x)

  • tanh激活函数

y = e x − e − x e x + e − x = 1 − e − 2 x 1 + e − 2 x \Large y=\frac{e^x-e^{-x}}{e^x+e^{-x}}=\frac{1-e^{-2x}}{1+e^{-2x}} y=ex+e−xex−e−x=1+e−2x1−e−2x

  • Softmax激活函数

p l = e z l ∑ j = 1 k e z j \Large p_l=\frac{e^{z_l}}{\sum_{j=1}^ke^{z_j}} pl=∑j=1kezjezl

Softmax激活函数计算的结果是各个分类的预测概率值,常用于多分类问题

神经网络的过拟合问题

​ 神经网络因为隐藏层的存在可以实现复杂的非线性拟合功能。但随着神经网络层数加深,神经网络很容易发生过拟合现象(在训练集上表现很好,在未知的测试集上表现很差,即"泛化能力差")。

解决神经网络过拟合问题的方法
  • 正则化

​ 与很多机器学习算法一样,可以在待优化的目标函数上添加正则化项(例如L1、L2正则),可以在一定程度减少过拟合的程度。

  • Dropout(随机失活)

​ 可以将Dropout理解为对神经网络中的每一个神经元加上一道概率流程,使得在神经网络训练时能够随机使某个神经元失效。

**注意: **

  • 对于不同神经元个数的神经网络层,可以设置不同的失活或保留概率
  • 如果担心某些层所含神经元较多或比其他层更容易发生过拟合,则可以将该层的失活概率设置得更高一些
感知器工作机制

​ 感知器即单层神经网络,也即"人工神经元",是组成神经网络的最小单

前向传播与反向传播

前向传播

​ 计算输出值的过程称为"前向传播":将上一层的输出作为下一层的输入,并计算下一层的输出,一直到运算到输出层为止。

反向传播(Back Propagation,BP)

​ 反向传播(BP)说白了根据根据J的公式对W和b求偏导,也就是求梯度。因为我们需要用梯度下降法来对参数进行更新,而更新就需要梯度。

总结:

前向传播得到输出,反向传播调整参数,最后以得到损失函数最小时的参数为最优学习参数。

相关推荐
404.Not Found7 分钟前
Day46 Python打卡训练营
开发语言·python
love530love8 分钟前
【PyCharm必会基础】正确移除解释器及虚拟环境(以 Poetry 为例 )
开发语言·ide·windows·笔记·python·pycharm
凌辰揽月10 分钟前
Web后端基础(基础知识)
java·开发语言·前端·数据库·学习·算法
lifallen16 分钟前
深入浅出 Arrays.sort(DualPivotQuicksort):如何结合快排、归并、堆排序和插入排序
java·开发语言·数据结构·算法·排序算法
运维开发王义杰16 分钟前
Python: 告别 ModuleNotFoundError, 解决 pipx 环境下 sshuttle 缺少 pydivert 依赖的终极指南
开发语言·python
jingfeng51416 分钟前
数据结构排序
数据结构·算法·排序算法
能工智人小辰42 分钟前
Codeforces Round 509 (Div. 2) C. Coffee Break
c语言·c++·算法
DanCheng-studio43 分钟前
毕设 基于机器视觉的驾驶疲劳检测系统(源码+论文)
python·毕业设计·毕设
kingmax5421200843 分钟前
CCF GESP202503 Grade4-B4263 [GESP202503 四级] 荒地开垦
数据结构·算法
carpell1 小时前
【语义分割专栏】3:Segnet实战篇(附上完整可运行的代码pytorch)
人工智能·python·深度学习·计算机视觉·语义分割