Class1-线性回归
本节课主要介绍线性回归模型基础知识,该方法的python实现及pytorch实现
1.1 线性回归模型:
1.2 专有名词
数据集:训练集、测试集、样本、特征、标签
1.3 损失函数
1.4 优化方法
小批量随机梯度下降
Class2 – softmax和分类模型
2.1 softmax基本知识
为了归一化表示概率的输出结果,面向分类等问题,softmax将所有类别的结果归一化到[0,1]之间,并使得所有类别结果和为1
2.2 结合神经网络表示
2.3 损失函数
考虑到分类问题的特点,即只需要概率最大的结果符合真值,因此使用交叉熵作为损失函数:
化简为:
(issue: 如何化简?)
数据
FashionMNIST
Class3–模型选择、过拟合和欠拟合
训练误差(training error)–代表模型在训练数据集的表现
泛化误差(generalization error)–代表模型在任意未见过的数据集上的表现
我们的目标是在现有的训练数据集上训练,以达到最好的泛化误差
数据集
一个数据集被分为三个部分:训练集、测试集、验证集。
在训练过程中,只有训练集和验证集参与调参。在训练结束后,得到的模型、参数被用于测试集评估结果
验证集从训练集中选择一部分形成,具体方法可以是K折交叉验证 (K-fold cross-validation)
过拟合、欠拟合
欠拟合:模型训练无法得到较低的训练误差;
过拟合:训练误差远远雄安与测试数据集误差
过拟合、欠拟合与数据集大小、模型复杂度具有直接关系。一般来说,过拟合更容易由于数据集过小导致
缓解过拟合欠拟合现象–权重衰减(正则化)
权重值过大、多个权重值之间不平均等问题,常常导致过拟合等问题出现。
为了防止训练出的权重值过大、不平均等问题,我们常常通过在损失函数中增加惩罚项,来控制权重值在合理的范围内。
比如常用的一种即为L2-norm惩罚项的增加
上式第二项即为用于防止权重值
ω
\omega
ω过大的惩罚项
缓解过拟合欠拟合现象–丢弃法(drop out)
选择神经网络层中的某些隐藏单元进行丢弃,以使得训练得到的神经网络不过多依赖某个神经元。
具体操作中,设神经元被丢弃的概率为P,则新的隐藏单元表达式为:
上述操作不改变输入的期望值
Class10–文本预处理
本节课主要介绍操作,原理性质内容不多.
python及相关包有很多线程文本处理指令,使得操作变得简单
一般文本处理流程:
- 读入文本
- 分词
- 建立字典,将每个词映射到一个唯一的索引(index)
- 将文本从词的序列转换为索引的序列,方便输入模型
文本读入根据输入类型进行,txt…
对每个句子进行词语划分,划分的得到的词叫做token。目前,针对不同语言,已经有一些成熟的分词方法:spaCy和NLTK等。
得到分词结果后,构建字典,得到单词-index和index-单词的结果
Class11–语言模型
马尔可夫过程
根据经验可以得知:一个文章中,一个单词的出现依赖于前后文。
我们可以将个句子抽象看作一个序列,序列中每个token的出现与其前面已经出现的token有关,这样的抽象即为马尔可夫过程,在语言处理中,假设一个token与前
n
−
1
n-1
n−1个token有关,这样的机制成为
n
n
n元语法。下式即为T元语法
n n n元语法的缺陷有以下几点:1.参数空间过大;2. 数据稀疏
时序数据的采样
随机采样:在随机采样中,每个样本是原始序列上任意截取的一段序列,相邻的两个随机小批量在原始序列上的位置不一定相毗邻。
相邻采样:相邻的两个随机小批量在原始序列上的位置相毗邻。
关键词:
batch_size:每个小批量的样本数
num_steps:每个样本所包含的时间步数
Class12–循环神经网络
循环神经网络与普通神经网络不同之处在于带有时序性,在语言模型中,时间步t的隐藏变量
H
t
H_t
Ht同时与本时刻
X
t
X_t
Xt和
t
−
1
t-1
t−1时刻的隐藏变量
H
t
−
1
H_{t-1}
Ht−1有关,其表达式如下:
关键概念–one-hot向量
将一个文本对应为一个one-hot向量,向量长度等于词典大小N,每个字符即对应一个字典中的索引,
关键概念–裁剪梯度
循环神经网络比较容易出现梯度衰减或梯度爆炸的问题,对于梯度爆炸,有一种裁剪梯度的方法:
裁剪后的梯度L2范数不超过
θ
\theta
θ
关键概念–困惑度
困惑度为概率分之一