D2L学习路

基于Dive into Deep Learning这本书,系统性的学习下深度学习,传送门

准备工作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
我的机器是M1的Mac,所以前置需要一些配置,可以参考安装Tensorflow环境文章
https://jxeditor.github.io/2021/04/21/Mac%E5%9F%BA%E4%BA%8EM1%E8%8A%AF%E7%89%87%E5%AE%89%E8%A3%85Tensorflow/

# 创建虚拟环境
conda create --name d2l python=3.8 -y
# 下载D2L
curl https://zh-v2.d2l.ai/d2l-zh.zip
unzip d2l-zh.zip
# 激活环境
conda activate d2l

# 安装框架和D2L软件包
pip install mxnet
pip install torch torchvision
--- 这一步可能会有问题
pip install tensorflow tensorflow-probability

pip install -U d2l

前言

关键组件

1
2
3
4
数据
模型
目标函数
优化算法

数据

1
2
3
4
5
数据集由样本集组成
样本也称为数据点,数据实例
样本由一组特征(协变量)属性组成

机器学习模型根据这些属性进行预测,得到一个特殊属性,标签(目标)

模型

1
模型用来进行数据的转换,图片文件转换为像素矩阵,获取特定数值

目标函数

1
定义模型优劣程度的度量,称为目标函数(损失函数)

机器学习问题

监督学习

1
2
3
给定输入特征情况下预测标签,每个(特征-标签)对都成为一个样本
即使标签是未知的,样本也可以指代输入特征
目标是生成一个模型,任何输入特征都可以映射到标签

回归

1
2
生成一个模型,预测非常接近实际标签值
判断回归问题法则,任何有关多少的问题很可能就是回归问题

分类

1
2
3
训练一个分类器,输出即为预测的类别
对于是或不是的硬分类预测,使用概率来理解模型
因为即使是人,也会有一定的不确定性

标记问题

1
2
3
对于分类问题,可以明确的知晓分类的种类,如果遇到新的种类,可能需要重新训练
学习预测一些不相互排斥的类别的问题称为多标签分类
类似于一个博客,标签可以是机器学习,Python,技术等

搜索

1
2
不希望输出是一个类别或实值,希望获取一个有序的元素子集,并且为集合每个元素分配相应的相关性分数
最终检索评级最高的

推荐系统

1
2
3
这个和搜索很相关,向特定用户进行个性化推荐
对于用户来讲,用户的行为就是一种隐性反馈,像跳过歌曲,就可以给这首歌曲打上一个低分,说明用户不喜欢该类歌曲
最终通过检索得分最高的对象集,推荐给用户,网易云音乐的每日推荐

序列学习

1
假如输入样本是连续的,模型需要记忆功能,像一段音频与另一段音频,又或者患者的一系列体检报告

无监督学习

1
2
面对一堆数据,但是却没有对应的结果要求,能做什么?
聚类,在没有标签的情况下,给数据进行分类

与环境互动

1
2
获取大量数据,启动模型,不与环境交互,这种称为离线学习
但是当与真实环境互动时,可能结果会被影响

强化学习

1
2
3
4
类似AlphaGo,强化学习在不断从环境中接收到一些观察,并做出一个动作,已达到一个奖励
不断循环这个过程,产生好的策略

输赢决定奖励,这样机器可以逐步判断出哪些行为是可以获得奖励的