第二周博客作业
总结:
通过两节视频学习,自己首先对于机器学习、深度学习等有了大体上的系统了解。除此之外,还学习认识到了深度学习的“能”与“不能”,尽管深度学习尚还存有稳定性差、可调式性差、参数不透明、机器偏见等一系列问题,但它在现在的很多领域都是最领先且发挥着巨大作用的。而关于深度学习,从生物神经元,到多层感知器,以及万有逼近定理、梯度消失等,深度学习所包含的知识其实是十分庞大且深奥的,它是一个很大的课题,绝不是用一两天的功夫就能掌握的。
关于两节课的视频学习,记了很多笔记,但毕竟是初次基础学习,对于很多概念性的定义、名词等只是书面化的认知,希望在以后的学习中能加强理解,尽量掌握。
问题:
1.梯度和梯度下降部分,其实有点没太听懂,呜呜呜,
2.以及神经网络的参数学习,误差反向传播,还是没太搞懂它的作用?以及怎样应用?
第二部分
李晓庆
2.1 pytorch基础练习
一般定义数据使用torch.Tensor , tensor的意思是张量,是数字各种形式的总称 Tensor支持各种各样类型的数据,包括:
torch.float32, torch.float64, torch.float16, torch.uint8, torch.int8, torch.int16, torch.int32, torch.int64 等
创建Tensor有多种方法,包括:ones, zeros, eye, arange, linspace, rand, randn, normal, uniform, randperm, 使用的时候可以在线搜


在进行此处以及下一步的矩阵乘法的操作时,因为默认v是long型的,就导致程序报错,可以将v的类型自行定义为float型,就可解决此问题。此处,有多种定义类型的方法语句,比如v=torch.FloatTensor(4)等
修改后,就可正常运行:



2.2 螺旋数据分类,用神经网络实现简单数据分类
部分截图:
在 python 中,调用 zeros 类似的函数,第一个参数是 y方向的,即矩阵的行;第二个参数是 x方向的,即矩阵的列,根据公式计算出三类样本(可以构成螺旋形)

-
构建线性模型分类,每一次反向传播前,梯度清零
线性模型的准确率最高只能达到 50% 左右,对于这样复杂的一个数据分布,线性模型难以实现准确分类

-
构建两层神经网络分类
在两层神经网络里加入 ReLU 激活函数以后,分类的准确率得到了显著提高


浙公网安备 33010602011771号