文章目录
书籍简介
【加】安德烈布可夫(Andriy Burkov ) 著
王海鹏 丁静 译
中国工信出版集团 人民邮电出版社
第1章 概述
1.1 符号和定义
1.1.1 数据结构
标量(scala)
一个简单的数值,如15或-3.25。
取标量值的变量或常量用斜体字母表示,如x或a。
向量(vector)
是一个有序的标量值列表,这些值称为属性。 ==> 关键词:有序
向量可以用可视化的方式表示为箭头,指向某种方向,以及多维空间中的点。
二维向量举例:a = [2,3] , b = [-2,5] , c = [1,0]
我们将向量的一个属性表示为一个带索引的值,比如w(i)或x(j)。
索引j表示一个向量的特定维度(dimension)
,即属性在列表中的位置。例如向量a中,a(1)=2,a(2)=3。
一个变量可以有两个或更多的索引,如
x
i
(
j
)
x_{i}^{(j)}
xi(j) 或
x
i
,
j
(
k
)
x_{i,j}^{(k)}
xi,j(k)。
例如在神经网络中,第l层中单元u的输入特征j表示为
x
l
,
u
(
j
)
x_{l,u}^{(j)}
xl,u(j)。
矩阵(matrix)
是一个以行和列排列的矩形数字阵列。
A=
[
2
−
2
1
3
5
0
]
\begin{bmatrix} 2 & -2 & 1\\ 3 & 5 & 0 \end{bmatrix}
[23−2510] 是一个2行3列的矩阵
可以看出,矩阵A的列,是上面的向量a、b、c。
集合(set)
记为大写字母S。
集合是唯一元素的无序集。 ==> 关键词:唯一、无序
一个集合可以是有限的(包括固定数量的值)。在这种情况下,用花括号来表示。
例如{1,3,18,23,235}或(x1,x2,x3,···,xn)。
另外,一个集合也可以是无限的,包括某个区间的所有值。
交集(intersection)
S1和S2的交集S3,我们写为
S
2
←
S
1
∩
S
2
S_2 \leftarrow S_1 \cap S_2
S2←S1∩S2
|S|
表示集合S的大小,也就是它所包含的元素数量。
1.1.2大写西格玛记法
对集合X={x1,x2,···, x n − 1 x_{n-1} xn−1,x_n}或对向量的属性x=[x1,x2,···, x m − 1 x^{m-1} xm−1,xm]求和是这样表示的:
∑ i = 1 n x i = d e f \sum_{i=1}^{n} \ x_i \overset{def}{=} ∑i=1n xi=def x 1 + x 2 + ⋅ ⋅ ⋅ + x n − 1 + x n x_1 + x_2 +···+x_{n-1} + x_n x1+x2+⋅⋅⋅+xn−1+xn
或
∑ j = 1 m x ( j ) = d e f \sum_{j=1}^{m} \ x^{(j)} \overset{def}{=} ∑j=1m x(j)=def x ( 1 ) + x ( 2 ) + ⋅ ⋅ ⋅ + x ( m − 1 ) + x ( m ) x^{(1)} + x^{(2)} +···+x^{(m-1)} + x^{(m)} x(1)+x(2)+⋅⋅⋅+x(m−1)+x(m)
=
d
e
f
\overset{def}{=}
=def 的意思是“定义为”。
向量x的欧氏范数(Euclidean norm)
,用
∥
x
∥
\|x\|
∥x∥表示,表示向量的“大小”或“长度”。
通过计算
∑
j
=
1
D
(
x
(
j
)
)
2
\sqrt{\sum_{j=1}^{D}(x^{(j)})^2}
∑j=1D(x(j))2得到。
两个向量a和b之间的距离由欧氏距离(Euclidean distance)
给出:
∥ x ∥ = d e f ∑ i = 1 N ( a ( i ) − b i ) 2 \|x\| \overset{def}{=}\sqrt{\sum_{i=1}^{N}(a^{(i)}-b^{i})^2} ∥x∥=defi=1∑N(a(i)−bi)2
1.2 什么是机器学习
机器学习(machine learining)可以是计算机科学的一个子领域。
它可以定义为通过以下方式解决实际问题的过程:
(1)收集数据集;
(2)根据该数据集,通过算法训练一个统计模型(statistical model)。
该统计模型被假定为以某种方式解决实际问题。
书中会交替使用“学习”和“机器学习”两个术语来指代“机器学习”。本笔记也使用同样的方式。
学习可以是监督式、半监督式、无监督式和强化式。
`腊肉芥末果`
我不想抄书了,因为太晦涩。我想要使用一些大白话来加入我的理解。因此,接下来的笔记中很可能会出现理解偏差或表达不严谨的情况。请读者认真分辨或选择放弃,去参阅专业书籍或者更专业作者的笔记、博文。
1.2.1 监督学习
训练的样本包含两部分,一部分是特征(feature),一部分是标签(label)。
监督学习(supervised learning)的样本既包含了特征(feature)、也包含了标签(label)。
监督学习主要用于分类(classification)或回归(regression)
。
比如,如果样本中给定了一些图片,并标记了类别标签(猫或者狗),监督学习就是找到输入(特征)到输出(标签)的映射关系。这是监督学习中的图像分类。
如果事先给出了员工的工作经验、知识,并给出了工资。那么工作经验和知识,就是特征(feature),工资就是标签(label),通过监督学习,找到经验、知识与工资之间的关系,从而能够根据经验和知识去预测员工的工资,这个就是监督学习中的回归预测。
由监督模型预测的值称为目标(target)
。
`腊肉芥末果`
本书中,还提到了 有标签样本(labeled example)、特征向量(feature vector)、维度(dimensionality)、监督学习算法(supervised learning algorithm),这些就不一一照搬了,后面用到的时候再说,在具体案例中边用边理解。
至于具体的定义,如果不理解,就先记忆吧。
1.2.2 无监督学习
无监督学习(unsupervised learning)样本只有特征(feature)、没有标签(label)。
例如用户行为中的购买记录,没有用户的分类标签。
无监督学习主要用来发现数据中的隐藏模式或者结构,比如聚类、降维、关联规则挖掘。
典型任务/场景:
客户分群、PCA(主成分分析)、异常检测。
1.2.3 半监督学习
半监督学习(semi-supervised learning),数据集包含有标签样本和无标签样本,通常无标签样本远高于有标签样本。
例如在医疗影像中,少量有医生标注的病例+大量未标注影像。
典型任务:
图像分类(标注数据不足时)、文本分类
1.2.4 强化学习
强化学习(reinforcement learning)不同于以上三种学习方式,它没有静态数据集,它动态的与环境做交互从而获取数据(状态、动作、奖励)。
例如,机器人学习走路,通过尝试动作并接收环境反馈(跌倒或前进)。
典型任务:
游戏AI(如AlphaGo)、自动驾驶、机器人控制。
强化学习的一个共同目标是学习一个最有策略(policy)。
一个最优策略是一个函数(类似于监督学习中的模型),它以一个状态的特征向量作为输入,并输出一个该状态下执行的最优动作。如果该行动能使预期的平均长期报酬最大化,那么它是最优的。
强化学习解决一个特定问题,其中决策是顺序的、目标是长期的、如游戏、机器人、资源管理或物流。
1.3 数据和机器学习术语
1.3.1 直接和间接使用的数据
直接使用的数据是形成样本数据集的基础。
间接使用的数据是用来丰富这些样本数据集的。
1.3.2 原始数据和规整数据
特征工程是将数据转化为机器学习算法可以使用的形式的过程。
1.3.3 训练集和留出集
样本集有三个:
- 训练集(training)
- 验证集(validation)
- 测试集(test)
训练集通常是最大的一个,学习算法使用训练集产生模型。
验证集和测试集的规模大致相同,比训练集的规模小很多。学习算法不允许使用验证集和测试集的样本来测试模型,所以这两个集也称为留出集(holdout set)
。
我们需要两个留出集、而不是一个,这是因为,验证集可以帮助我们:
(1)选择学习算法;
(2)为该学习算法找到最佳的配置值【超参数(hyperparameter)】。
在交付给客户或投产之前,我们需要用测试集评估模型
。
1.3.4 基线(baseline)
1.3.5 机器学习流水线
机器学习流水线(pipeline)是对数据集从初始状态到模型的一系列操作。
一个流水线包括数据分割、确实数据填补、特征提取、数据增强、类不平衡降低、降维和模型训练等阶段。
在生产环境部署一个模型,通常会部署整个流水线。在对超参数进行调整时,通常也会对整个流水线进行优化。
1.3.6 参数与超参数
参数(parameter)是模型内部通过训练数据自动学习的变量。
示例:线性回归中的系数、神经网络中的权重。
超参数(hyperparameter)不属于训练数据,不能从训练数据中学习。需要通过人工调整或者自动化方法(如网格搜索)优化。
通用超参数:
- 学习率(Learning Rate):控制参数更新的步长;
- 正则化系数(如L1、L2的例如: λ \lambda λ):防止过拟合;
- 批量大小(Batch Size):每次迭代使用的样本数。
模型相关超参数:
- 决策树/随即森林:树的深度、叶子节点最小样本数;
- 神经网络:隐层数、神经元数量、激活函数类型;
- K-Means聚类:簇的数量(K值)。
先确定超参数,在通过训练数据学习参数。
超参数通常通过多次实验调整(如交叉验证)
超参数的值通过使用验证数据集进行调整。
1.3.7 分类与回归
1.3.8 基于模型学习与基于实例学习
大多数监督学习算法都是基于模型(model-based)
的。
代表算法:
- 线性回归
- 逻辑回归
- 决策树
- 支持向量机(Support Vector machine,SVM)
- 神经网络
基于实例的学习算法(instance-based)
需要保存所有训练数据。
典型算法:
- K最近邻(KNN)
- 局部加权回归(LWR)
- 案例推理(CBR)
新样本输入后,计算它与所有训练样本的距离,取最近的K个样本的标签投票。
1.3.9 浅层学习与深度学习的比较
浅层学习(shallow learning)算法直接从训练样本的特征中学习模型的参数。
大多数机器学习算法都是浅层的。
典型算法:
- 逻辑回归
- SVM
- 决策树
- KNN
典型任务:
- 表格数据分类/回归(如信用评分)
- 低维数据聚类(如客户分群)
著名的例外情况是神经网络(neural network)学习算法,特别是那些在输入和输出之间建立超过一层(layer)的神经网络工程。这种神经网络称为深度神经网络(deep neuarl network)。在深度神经网络学习(深度学习)中,与浅层学习相比,大多数模型参数不直接从训练样本的特征中学习,而是从前几层的输出中学习。
典型算法:
- 卷积神经网络(CNN)
- 循环神经网络(RNN)
- Transformer
典型任务:
- 图像识别(如人脸检测)
- 自然语言处理(如机器翻译)
- 语音识别与生成
浅层学习与深度学习并非替代关系,而是根据场景互补共存。
1.3.10 训练与评分
1.4 何时使用机器学习
1.4.1 问题太复杂,无法进行编程
比如预测借款人是否会还款的问题。
每个借款人的年龄、工资、账户余额、过去还款频率、是否结婚、孩子数量、汽车品牌和年份、抵押贷款余额等信息。这些数字中有一些单独考虑可能不那么重要,但如果与其他数字结合起来,就会变得重要。
编写能做出这种决策的代码是很困难的,这时可以尝试使用机器学习来解决这个问题。
1.4.2 问题不断变化
比如从网页集合中抓取特定数据元素的任务。
如果网站所有者改变了网页,你的提取规则就会出现错误。如果网页集合很大,每天都会有规则报错。
1.4.3 感知问题(perceptive problem)
如图像
1.4.4 未曾研究过的现象
如根据观察到的行为对人进行预测。
我们有现成的样本表达人的想法(在线帖子、评论、其他活动形式)。根据这些表达,部署在社交网络中的机器模型可以推荐内容或其他要联系的人。
1.4.5 目标简单
1.4.6 有成本效益
1.5 何时不使用机器学习
1.6 什么是机器学习工程
机器学习工程(MLE)是利用机器学习的科学原理、工具和技术以及传统的软件工程,来设计和构建复杂的计算系统。
MLE包括从数据收集到模型训练,再到将模型提供给产品或客户使用的所有阶段。
1.7 机器学习项目生命周期
总的来说,机器学习项目的生命周期包括:
①目标定义;
②数据收集和准备;
③特征工程;
④模型训练;
⑤模型贫姑;
⑥模型部署;
⑦模型服务;
⑧模型检测;
⑨模型维护。
1.8 小结
本章内容学习完毕。
请您在关闭网页之前,利用2秒钟
的时间,在脑海中迅速回顾一遍本章的重要知识点!
下一章:https://blog.youkuaiyun.com/weixin_43416960/article/details/146441736
第二章 项目开始前