动手学深度学习v2 课程笔记 — 深度学习基础
Posted 肉丸不肉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动手学深度学习v2 课程笔记 — 深度学习基础相关的知识,希望对你有一定的参考价值。
参考文章与视频:
一、深度学习介绍
1. AI地图:符号学 —> 统计 —> 机器学习
2. 应用:广告点击的案例
广告排名的三个步骤:(这个和听过的一个讲座一样:社会计算+广告学)
- 触发广告
- 每个广告的点击率预估
- 根据 点击率×竞价 来将广告排序
二、安装环境
1. 本地安装:CPU
首先,安装Anaconda + Juptyer Notebook。
Anaconda是包管理器和环境管理器;Jupyter可以将数据分析的代码、图像和文档全部组合到一个web文档中。
其次,使用pip安装库。
pip install torch torchvision d2l
2. GPU
翻墙用colab。
三、数据操作、数据预处理
1. 机器学习和神经网络中的主要数据结构为:n维数组。
- 0维数组:标量。
- 1维数组:向量。
- 2维数组:矩阵。
- 3维数组:图片。
- 4维数组:多张图片。
2. 创建数组
创建数组所需三个东西:形状、每个元素的数据类型、每个元素的值
3. 访问数组元素
4. 使用jupyer notebook 来运行操作数据
首先在命令行输入:jupyter notebook
其次在浏览器中打开:http://localhost:8888/
- 导入torch
- 生成张量Tensor:张量表示一个数值组成的数组,这个数组可能有多个维度。
创建数组:
对数组做算术运算:
张量合并:
5. 数据预处理:将原始数据读取进来,处理为机器学习能够使用的数据
四、线性代数
1. 一些基本概念
矩阵乘法非常重要。
置换矩阵是单位矩阵的延伸版:它是对单位矩阵的行重新排列而成。
2. 实现
B = A,不会重新分配内存。
范数是向量或矩阵的长度。
按特定轴求和:
axis = n,是指在第n维求和。
keepdims = Ture:把求和的那个轴shape变为1。
五、矩阵计算
六、自动求导
1. 向量链式法则
2. 自动求导的原理
3. 自动求导的实现
七、线性回归 + 基础优化算法
1. 线性回归
房价预测问题:预估价、买入价(如果买入价大于预估价,那么就亏了。所以必须要懂房价预测。)
但是数据并没有那么多,所以之后会面临一个问题:训练数据不够多时该怎么办?
神经网络通常是用来解决 NP 难问题,所以通常无显式解。
2. 基础优化算法
当模型没有显式解时,应该怎么办?一个方法是用梯度下降。
随机梯度下降Sgd:随机代表是每次采样是随机的,但是每次训练的批量大小不变。
3. 线性回归的从零开始实现
不使用任何的深度学习框架。从零实现整个方法,包括数据流水线、模型、损失函数和小批量随机梯度下降优化器。
4. 线性回归的简洁实现
使用深度学习框架来实现。
八、Softmax 回归 + 损失函数 + 图片分类数据集
1. Softmax 回归
Softmax 回归 其实是一个分类问题。
Logistic回归是Softmax回归的特例,Logistic回归是二分类问题。(只需算一个概率,另一个可以用1减去它来算)
房价预测问题 是回归问题。
2. 损失函数:衡量预测值和真实值之间的区别(L2 Loss、L1 Loss、Huber’s Robust Loss)
- 均方损失(L2 Loss)
- L1 Loss
- Huber鲁棒损失
另外,这篇文章介绍了三种损失函数,重点阐述了 交叉熵损失函数 的优点。
- 分类错误率
- 均方误差
- 交叉熵损失函数
3. 图片分类数据集:Fashion-MNIST
- 读取数据集:训练集、测试集
mnist_train = torchvision.datasets.FashionMNIST(root="../data",
train=True,
transform=trans,
download=True)
mnist_test = torchvision.datasets.FashionMNIST(root="../data",
train=False,
transform=trans,
download=True)
- 读取小批量:数据迭代器(多线程)
train_iter = data.DataLoader(mnist_train, batch_size, shuffle=True,
num_workers=get_dataloader_workers())
4. Softmax回归的从零开始实现
5. Softmax回归的框架实现
以上是关于动手学深度学习v2 课程笔记 — 深度学习基础的主要内容,如果未能解决你的问题,请参考以下文章