本周跟着上周的进度进行学习,在慕课网上继续跟着老师的网课学习。从torch.nn库开始,了解到nn库是专门用来为神经网络设计的模块化接口,构建于Autograd之上,可以用来定义和运行神经网络。在nn库中有Parameter,Linear、functional、Module等比较常用的函数。也了解到这几种函数的使用。其中nn与nn.functional的区别在于nn.functional是函数接口而nn是nn.functional的类封装。并且都继承与祖先nn.Module。后面了解到nn.Module是一个抽象的概念。它既可以表示神经网络中的某一个层,也可以表示一个包含很多层的神经网络。
最后简单学习了神经网络的基本概念。从人工智能到机器学习再到神经网络。神经网络包括输入层,输出层,隐藏层和多层感知器。了解到感知器的基本概念、前向运算、反向传播、以及反向传播算法。再往后了解到欠拟合和过拟合。欠拟合是指在训练上表现好,但是在测试集上效果差。过拟合是指模型拟合不够,在训练集上表现效果差没有充分利用数据,预测的准确度低。在后面的模型训练中尽量防止过拟合和欠拟合。
在b站上也看了李牧老师相对应的课程,对一些不理解的知识进行了互补。
简单的线性回归需要几个步骤:读取数据集、构造数据读取的对象、搭建神经网络、定义损失函数、定义优化算法、训练数据、测试数据。可以根据迭代的次数和学习率来进行优化调整。
后面在学习利用神经网络解决分类和回归问题的时候,在慕课网上跟着老师敲了一次代码,发现自己对每个方法的调用的理解还是不够深入。老师讲的时候自己还能懂,但是当自己去理解的时候就不太明白了,需要反复去看去理解。
在学习的过程中,虽然代码也写了一遍但是由于自己没有数据库也就没运行,而且感觉自己学的也很模糊,对函数的应用不熟练,理解不够好。