https://www.boyuai.com/elites/
1) 第一次打卡内容(2月12日-14日)截止打卡时间:2/14-22:00
Task01:线性回归;Softmax与分类模型、多层感知机(1天)
Task02:文本预处理;语言模型;循环神经网络基础(1天)
讲座 + 休息(1天)
计算机相关专业同学的打卡:
https://github.com/windrise/14_days_d2l_pytorch
4、文本预处理
步骤:
1读入文本;2分词;3建立字典,将每个词映射到一个唯一的索引(index);4将文本从词的序列转换为索引的序列,方便输入模型。
Python strip()方法:移除字符串头尾指定的字符https://www.runoob.com/python/att-string-strip.html
正则表达式 re.sub()替换功能:
https://www.jianshu.com/p/8c1d1a38f9b9
https://blog.csdn.net/darkman_ex/article/details/80975764
python正则表达式:未完全掌握
https://www.runoob.com/python3/python3-reg-expressions.html
目前问题:对复杂的和较成熟的函数写法不能完全理解和掌握,如lines=[re.sub('[^a-z]+',' ',line.strip().lower())forlineinf],处于能勉强看懂的阶段
办法:学习python函数内容,提高编程水平
为了跟上进度,忽略一些功能模块的掌握,后期自己再自学
5、语言模型与数据集
5.1 语言模型的目标就是评估该序列是否合理,即计算该序列的概率。语言模型的参数是词的概率和给定前几个词情况下的条件概率。
基于神经网络的语言模型。
基于统计的语言模型:n元语法(n-gram)
n元语法通过马尔可夫假设简化模型,马尔科夫假设是指一个词的出现只与前面n个词相关,即n阶马尔可夫链(Markov chain of order n)。
思考:n元语法可能有哪些缺陷?
参数空间过大 数据稀疏
语言模型数据集:
回车与换行的区别https://www.pythontab.com/html/2017/linuxkaiyuan_0115/1116.html
list(set())的作用https://blog.csdn.net/weixin_40609919/article/details/100512403可用于中文去重,得到索引到字符的映射
5.2 时序数据的采样:
如果序列的长度为T,时间步数为n,那么一共有T−n个合法的样本,但是这些样本有大量的重合,我们通常采用更加高效的采样方式。我们有两种方式对时序数据进行采样,分别是随机采样和相邻采样。
6、循环神经网络(recurrent neural network)
目的是基于当前的输入与过去的输入序列,预测序列的下一个字符。
Ht的计算基于Xt和Ht−1,可以认为Ht记录了到当前字符为止的序列信息,利用Ht对序列的下一个字符进行预测。
学习和理解文本约1小时,编程实践约1小时。
自己的进度和掌握情况比起群里面很多计算机相关专业的要差不少,课程难度应该是计算机专业研究生水平。通过合适的方法减小学习非专业、有一定难度知识的挫败感。
课程团队B站账号:https://space.bilibili.com/447303411
与编程实践比起来,自己对于文本知识的学习更容易,更有成就感;相反由于自己python语言编程水平不够,对编程实践的挫败感、拖延症较强。先进行文本知识的学习。
2) 第二次打卡内容(2月15日-17日)截止打卡时间:2/17-22:00
Task03:过拟合、欠拟合及其解决方案;梯度消失、梯度爆炸;循环神经网络基础(1天)
Task04:机器翻译及相关技术;注意力机制与Seq2seq模型;Transformer(1天)
Task05:卷积神经网络基础;leNet;卷积神经网络进阶(1天)
7、过拟合、欠拟合及其解决方案
过拟合、欠拟合的概念
权重衰减
丢弃法
模型无法得到较低的训练误差,称该现象为欠拟合(underfitting);
模型的训练误差远小于它在测试数据集上的误差,称该现象为过拟合(overfitting);
K折交叉验证(K-fold cross-validation):把原始训练数据集分割成K个不重合的子数据集,然后我们做K次模型训练和验证。每一次,我们使用一个子数据集验证模型,并使用其他K-1个子数据集来训练模型。在这K次训练和验证中,每次用来验证模型的子数据集都不同。最后,我们对这K次训练误差和验证误差分别求平均。
权重衰减
权重衰减等价于 L2 范数正则化(regularization)。正则化通过为模型损失函数添加惩罚项使学出的模型参数值较小,是应对过拟合的常用手段。范数正则化令权重w1和w2先自乘小于1的数,再减去不含惩罚项的梯度。因此,L2范数正则化又叫权重衰减。
丢弃法
当对该隐藏层使用丢弃法时,该层的隐藏单元将有一定概率被丢弃掉。丢弃概率是丢弃法的超参数。在测试模型时,我们为了拿到更加确定性的结果,一般不使用丢弃法。
讨论摘取:
为什么优化器中只对权重参数设置衰减,而不对偏置参数设置衰减呢?
对偏置增加正则也是可以的,但是对偏置增加正则不会明显的产生很好的效果。而且偏置并不会像权重一样对数据非常敏感,所以不用担心偏置会学习到数据中的噪声。而且大的偏置也会使得我们的网络更加灵活,所以一般不对偏置做正则化。