b站来源:【清华NLP】刘知远团队大模型公开课全网首发|带你从入门到实战
神经网络的基本组成元素
激活函数
激活函数存在的原因:
如果没有激活函数,将产生如下现象
多层的神经网络和单层的神经网络一致(多层可以简化成单层,因为都是线性的),使得神经网络的效果变差。
常见的激活函数f(z):
输出层
定义
从过程集到结果(h代表中间过程的输出,y代表结果)
常见输出层方法
方法一:线性用于处理回归值
方法二:激活函数使值在0到1间解决二分类问题
方法三:得到概论分布解决多分类问题(类别数大于二)
如何去训练神经网络
例子1:通过电脑配件情况得出电脑价格
使最终价格的方差最小(即目标损失函数)
例子2:通过文本预测情感标签
使最终损失函数(交叉熵——衡量模型正确分类的-log的概论)
损失函数
定义
如何让它最小
通过梯度下降法
梯度下降法
定义
将大步骤拆分成一部分逐步完成
大体方法
寻找梯度最“陡峭”的点去下降,从而更快接近想要的结果
梯度
即微分
数学上计算具体的梯度大小
可使用微积分的链式法则得出b向量中结果s的梯度(微分)
算法上计算具体的梯度大小(反向传播算法)
先计算本地梯度(从前往后将每一次变换的过程都记录下来计算其梯度,方便后续使用)
从后往前一步步结算梯度
词向量:Word2Vec(神经网络简单例子)
词向量定义
词的低维表示形式
可以识别总结出不同词之间的关系
预测方法
滑动窗口:句子中连续出现的几个单词,可滑动
(如果在句子边缘则不完整情况如下图所示)
target word:目标词,在滑动窗口中间
context word:相关词,目标词前后,滑动窗口中除目标词之外的词
CBOW模型
通过相关词推测出目标词
skip-gram模型
通过目标词推出相关词
预测例子
never too late to learn
never + late---->too的过程:
CBOW模型
先转变成one-hot向量(只有一个元素为1,其他为0,表示词的维度)
找到对应的词向量
将问题转变成n分类问题(n为词表大小)
skip-gram模型
一个一个的预测,
提高计算效率
负采样(减少可能结果n的个数)
按词的出现频率来采样
其他(省了)
循环神经网络(RNN)
定义
处理序列数据(连续的一句话或音频)的时候会进行顺序的记忆(使大脑更容易识别序列数据)
结构
输入层:不定长的序列数据
隐藏层:不同时间步下的状态变量,储层过去、 当前输入的信息
输出层:输入对应的输出
结构单元
具体实例
never too late to --->?
应用场景
序列标注,序列预测,图片描述,文本分类
优缺点
优:处理变量数据,模型大小不会随输入变大
缺: 时间上比较慢,很早前的数据影响小
变体:GRU,LSTM
优化结构单元,达到解决很早前的数据影响小的问题
门控循环单元(GRU)
引入门控机制(对当前输入信息进行筛选,决定哪些信息可以传到下一层)
运算过程
重置门:获得一个新的临时的激活hi
新激活hi
更新门:权衡新得到激活hi与过去状态hi-1的影响
最终传输给下一层的隐藏状态hi
作用:权衡我们过去的信息(hi,hi-1)和输入信息的比重
图示GRU的变量运算过程
长短期记忆网络(LSTM)
结构单元:
增加cill状态来学习长期的依赖关系
遗忘门:决定哪些信息可以从cill状态中移除
输入门,待选信息变量Ct:决定当前哪些信息可以被存到cill中/
cill信息状态的更新
输出门:决定哪些状态可以输出
双向RNN
考虑到未来的影响(整个顺序序列)
卷积神经网络CNN
应用
应用于计算机视觉,NLP领域
擅长提取局部和位置不变的模式
方法
主要计算句子中所有可能的N元短语的表示
结构
输入层 形成向量矩阵
卷积层对象征矩阵进行卷积
最大化层 对特征进一步提取(选取最大值)
全连接层