第一次作业:深度学习基础
【第一部分】视频学习心得及问题总结
视频学习心得:
第一个视频主要讲了人工智能的发展史、前景、应用和介绍了人工智能是什么。机器学习是人工智能的一方面,可以根据有无监督、是否应用神经网络分为很多种,深度学习是其中的一种。第二个视频介绍了深度学习,先讲解了深度学习的几个“不能”,学习了深度学习和神经元的相似,然后学习了神经网络激活函数,知道了单层感知和多层感知的区别,通过实验举例直观的明白了单层不能完成非线性,也知道了层数并不是越多越好,了解了梯度下降和误差反向传播问题,并简单学习了一些相关的解决方案。
问题总结:关于反向传播和梯度消失问题不是很明白。
【第二部分】代码练习
2.1 pytorch基础练习
将老师给的代码逐条在colab上运行,前面的代码都没有出现问题,都成功运行除了结果,但是到了这里就报错了。
然后通过观察报错原因和上网搜索答案发现要将v改成float型,于是进行运行,得到成功结果
还有最后的两张图形也成功运行出结果了
2.2 螺旋数据分类
1.线性数据分类
用线性模型进行分类效果很差,准确率只有0.5,无法达到要求,无法进行正确分类。
2.构建两层神经网络分类
learning_rate = 1e-3
lambda_l2 = 1e-5
# 这里可以看到,和上面模型不同的是,在两层之间加入了一个 ReLU 激活函数
model = nn.Sequential(
nn.Linear(D, H),
nn.ReLU(),
nn.Linear(H, C)
)
model.to(device)
构建两层神经网络分类,添加了relu激活函数后,正确率大大提升,达到了95%