【第一周】深度学习基础

【第一周】深度学习基础

深度学习和 pytorch 基础

1. 视频学习

1.1 绪论

  • 从专家系统到机器学习
  • 从传统机器学习到深度学习
  • 深度学习的能与不能

1.2 深度学习概述

  • 浅层神经网络:生物神经元到单层感知器,多层感知器,反向传播和梯度消失
  • 神经网络到深度学习:逐层预训练,自编码器和受限玻尔兹曼机

附:深度学习相关概念 https://blog.csdn.net/qq_38630100/article/details/81037335

2. 代码练习

代码练习需要使用谷歌的 Colab,它是一个 Jupyter 笔记本环境,已经默认安装好 pytorch,不需要进行任何设置就可以使用,并且完全在云端运行。使用方法可以参考 Rogan 的博客:https://www.cnblogs.com/lfri/p/10471852.html 国内目前无法访问 colab,可以安装 Ghelper: http://googlehelper.net/

实验指导书是新版的 mhtml 文件,用新版的 Micrsoft Edge 可以打开

2.1 pytorch 基础练习

基础练习部分包括 pytorch 基础操作,[实验指导下载链接](https://gaopursuit.oss-cn-beijing.aliyuncs.com/202010/AIexp/02 - PyTorch基础.mhtml)

要求: 把代码输入 colab,在线运行观察效果。

结果:

//前面一直运行没有什么问题

【第一周】深度学习基础_第1张图片
请添加图片描述

//到这里出现问题

【第一周】深度学习基础_第2张图片

观察报错,发现是由于数据类型不匹配的缘故。

将v的类型转换为float即可:

【第一周】深度学习基础_第3张图片

接着运行代码:

【第一周】深度学习基础_第4张图片

2.2 螺旋数据分类

用神经网络实现简单数据分类,[实验指导下载链接](https://gaopursuit.oss-cn-beijing.aliyuncs.com/202010/AIexp/03 - 螺旋数据分类.mhtml)

要求: 把代码输入 colab,在线运行观察效果

**备注:**详细说明可参考 https://atcold.github.io/pytorch-Deep-Learning/zh/week02/02-3/ 中英文字幕的视频讲解在B站:https://www.bilibili.com/video/BV1gV411o7AD?p=4 有精力的同学可以学习。

运行结果:

【第一周】深度学习基础_第5张图片

3. 问题总结

思考下面的问题:

1、AlexNet有哪些特点?为什么可以比LeNet取得更好的性能?
AlexNet与LeNet相比,具有更深的网络结构,包含5层卷积和3层全连接,同时使用了数据增广、Dropout、ReLU改进模型的训练过程。

2、激活函数有哪些作用?
激活函数是用来加入非线性因素的,提高神经网络对模型的表达能力,解决线性模型所不能解决的问题。
【第一周】深度学习基础_第6张图片
【第一周】深度学习基础_第7张图片

3、梯度消失现象是什么?
【第一周】深度学习基础_第8张图片
梯度消失,简单点来说,就是整个曲线太平了,太平意味这求导后的值越来越接近0。
如果梯度更新的慢,那么 w下沉的速度那是特别慢,从而导致收敛速度慢,训练时间无限延长。

4、神经网络是更宽好还是更深好?
更深。
在神经元总数相当的情况下,增加网络深度可以比增加宽度带来更强的网络表示能力:产生更多的线性区域。
深度和宽度对函数复杂度的贡献是不同的,深度的贡献是指数增长的,而宽度的贡献是线性的。
加宽神经网络可以让每一层学习到更加丰富的特征,而加深网络可以获得更好的非线性表达能力,可以学习更加复杂的变换,从而可以拟合更加复杂的特征输入。
在这里插入图片描述

5、为什么要使用Softmax?
softmax函数softmax用于多分类过程中,它将多个输出映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类。

6、SGD 和 Adam 哪个更有效?
Adam对于稀疏数据有优势,且收敛速度很快,但在用Adam微调模型时,性能很差。

你可能感兴趣的:(深度学习,深度学习,人工智能)