1. 概述
1.1 图灵测试
- Turing test
- 图灵提出问题“机器可以思考吗”,即“机器可以做有思想的人做的事吗”
- 如何判断机器是有思维的?如果通过图灵测试(人类无法区分是人还是机器),则可认为机器是有思维的。
1.2 机器学习
- 机器如何通过学习而拥有思维的方法论。
- 学习过程 :“ A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T , as measured by P, improves with experience E." 一个计算机程序从 经验E 中学习某些类别的 任务T 。如果它在任务T上的 表现P 随着经验E的提高而提高,则称这个程序能从经验E中学习。
- 机器学习是对学习算法的研究,通常是人工智能的子集。
- 分类:
(1)监督学习 (2)非监督学习 (3)强化学习 - 推荐书目:
(1)The Elements of Statistical Learning (2)Foundations of Machine Learning (3)Pattern Recognition and Machine Learning
2. 数据
- 相比于传统编程,机器学习的输出为一个特定的程序,称为模型model,可对新数据点进行推断。
- 因此,数据对于机器学习来说非常重要。
2.1 数据分类
- 因为数据呈现在电脑上,所以我们需要一些将可视的数据类型映射到浮点数的方案(Euclidean space 欧几里得空间)。
- 对于图像(RGB值)和其他数值数据来说比较直观,但对于文本数据来说,我们需要将单词映射到欧几里得空间的向量上。
- 将 离散数据 嵌入到欧氏空间时,需要考虑数据类型之间的区别:
(1)ordinal data 有序数据 (2)nominal data 无序/标签数据
2.2 Ordinal data
- 有序数据
- 如,给一个产品打分(1~5星),结果是离散的,但它们有一个自然的顺序
- 为了嵌入ordinal data,我们通常通过将数据映射到实数的子集来保持顺序:
2.3 Nominal data / Categorical data
- 无序数据(分类)
- 如,给一张照片分类(苹果,橘子,梨),结果也是离散的,但它们没有自然顺序
- 为了嵌入分类数据,可以使用 one-hot 编码 来表示标签
- one-hot encoding 的优点:任何两两标签之间的距离都一样(都是
2
\sqrt{2}
2
?),体现了无序性。( 但表示有序数据的实数集中两两数据之间的距离和它们的固有顺序有关)
3. 机器学习分类
3.1 监督学习
- 数据集含有输入和输出/标签
- 我们的目标是推断预测关系,并对新数据做出良好的预测。
3.2 非监督学习
- 数据仅含有输入,没有输出
- 我们的目标是根据输入推断其数据分布情况
3.3 强化学习
- 通过一些操作来训练agent在一个环境中找到解决问题的最佳方案
- 最佳方案/直接的输出没有给出,通过每一个行动收到奖励/惩罚信号,来优化我们的行动或计划。
注意:分类不是独立的,它们的交集也很广泛的应用
4. 评估ML模型
-
评估学习过程的性能指标P: (1)loss function 损失函数 即为性能指标 (2)我们的目标为减少损失,即最大化性能 (3)最大化性能指的是让我们的model能很好的预测 新的数据 -
数据集
D
\mathcal{D}
D (1)通常,
D
=
D
t
r
a
i
n
∪
D
t
e
s
t
\mathcal{D}=\mathcal{D}_{train}\cup\mathcal{D}_{test}
D=Dtrain?∪Dtest? (2)
D
t
r
a
i
n
\mathcal{D}_{train}
Dtrain? :训练模型用的数据集 (3)
D
t
e
s
t
\mathcal{D}_{test}
Dtest?:作为评估模型的新数据 (4)通常数据集的分配是随机的 (5)对于特定的应用,将按要求分配数据集。如:预测股票的价格,训练集为过去的数据,而测试集为将来的数据(目前没有搜集到),这样我们的模型才不会受到特定时间等因素的影响。 (6)如果数据标签严重不平衡,应该考虑其他分配方案。 (7)另一种可能的分配:
D
=
D
t
r
a
i
n
∪
D
v
a
l
i
d
∪
D
t
e
s
t
\mathcal{D}=\mathcal{D}_{train}\cup\mathcal{D}_{valid}\cup\mathcal{D}_{test}
D=Dtrain?∪Dvalid?∪Dtest?,其中
D
v
a
l
i
d
\mathcal{D}_{valid}
Dvalid? 用于调整超参数hyper-parameters(如决策树的深度,神经网络的层数),并用于模型选择。可由cross-validation交叉检验优化 / 可以看做测试集的代替品,只能用于评估模型。 (8)不是所有模型的评估都需要测试集,如求微分方程的解可以直接带入检查。
5. Notation
-
?
\nabla
?:gradient operator 梯度计算符
-
E
\mathbb{E}
E:expectation 期望
- 标量和矢量都是小写字母
- 矩阵为大写字母
- 欧几里得范数:
∥
?
∥
\lVert \cdot \rVert
∥?∥
- 绝对值:
∣
?
∣
\lvert \cdot \rvert
∣?∣
- 样本数:
N
N
N
- 假设空间复杂度:
M
M
M,如在线性基函数中,
M
M
M 为基函数的个数。
- 单位矩阵:
I
d
I_d
Id?
-
(
f
°
g
)
(
x
)
=
f
[
g
(
x
)
]
(f \circ g)(x)=f[g(x)]
(f°g)(x)=f[g(x)]
|