对简化模型数学化
数学是科学的工具,机器学习离不开数学这个工具。注:一些公众号的文章,抛开数学去谈机器学习就象是带大家看魔术,那只是图个热闹,因为,看了个新奇后并不知其所以然。
本文旨在理解如何将前一文简化了的模型再进行数学化
引入符号
将上节数据抽象为“变量与变量的值”则有利于利用数学方式处理,对于图上节图1-2我们抽象为图1-3 西瓜的数学模型(变量)。
多个样本时,编号用下标表示,这样就得到图1-4西瓜的数学模型(变量取值)。
另外,若将图1-3视为“变量”,图1-4则为“变量的值”,即将图1-4视为图1-3的实例化,这时样本有了编号,属性有了值,【西瓜书表1.1】的每一行对应一个图1-4(给定了值)。
注意:为易理解,我们在图1-3中故意用了一个下标点(作为占位符,如 x ⋅ 2 x_{\cdot 2} x⋅2中“2”左侧的点),在图1-4中这个位置就变成了 i i i,两图得到了统一。 但通常不需要这样做(即将图1-3中下标点省掉)。
这样,就对样本、属性进行了“数字化”,对于属性值通常有两种情况:一是数字型(如,重量);二是非数字型(如,色泽的取值为“青绿”、“乌黑”和“浅白”),这时通常用一个“数据字典”来数字化,如,色泽的“数据字典”为“1:青绿、2:乌黑、3:浅白”。
对标记也用“数据字典”法,特别地对于“二分类”标记常用两种“数据字典”:“
−
1
-1
−1:反类;
+
1
+1
+1:正类”或“0:正类;1:反类”。
数学表述
通过上述数据符号化之后,我们可以用数学语言来表达数据。 这里我们从细微入手,请注意掌握:字符的粗体与细体、不同的分隔符(分号、逗号及空格)、花括号与圆括号的数学含义以及字符下标的规律。
将【西瓜书表1.1】符号化,我们有图1-5的表格抽象:列表示属性(维度),行表示样例(集中元素),为方便论述不妨称它为西瓜样例集的“符号表”。
“符号表”中除最后一列外,有
-
表头对应着图1-2,或图1-3
-
表体每行对应着图1-4,以式子表达为
x i = ( x i 1 ; x i 2 ; x i 3 ) i = 1 , 2 , 3 , 4 (1) \boldsymbol{x}_i=(x_{i1};x_{i2};x_{i3})\qquad i=1,2,3,4\tag{1} xi=(xi1;xi2;xi3)i=1,2,3,4(1) -
将“表”视为集合,则有
D = { x 1 , x 2 , x 3 , x 4 } (2) D=\{\boldsymbol{x}_1,\boldsymbol{x}_2,\boldsymbol{x}_3,\boldsymbol{x}_4\} \tag{2}%%mathfrak,mathbb D={x1,x2,x3,x4}(2)
表中最后一列,通常表示为
y = ( y 1 y 2 y 3 y 4 ) (3) \boldsymbol{y}= \left( \begin{array}{c} y_1 \\ y_2 \\ y_3 \\ y_4 \\ \end{array} \right)\tag{3} y= y1y2y3y4 (3)
将上述式子关联到
D
D
D,表达为
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
(
x
3
,
y
3
)
,
(
x
4
,
y
4
)
}
(4)
D= \left\{ \left(\boldsymbol{x}_1,y_1\right), \left(\boldsymbol{x}_2,y_2\right), \left(\boldsymbol{x}_3,y_3\right), \left(\boldsymbol{x}_4,y_4\right) \right\} \tag{4}
D={(x1,y1),(x2,y2),(x3,y3),(x4,y4)}(4)
上述几个式子共同表达了“符号表”。
当对象的维数与样本数分别扩展为
d
d
d和
m
m
m时,上式(1)变为
x
i
=
(
x
i
1
;
x
i
2
;
⋯
;
x
i
d
)
i
=
1
,
2
,
⋯
,
m
(5)
\boldsymbol{x}_i=(x_{i1};x_{i2};\cdots;x_{id})\qquad i=1,2,\cdots,m \tag{5}
xi=(xi1;xi2;⋯;xid)i=1,2,⋯,m(5)
而式(2)采用如下之一来表达
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
,
(
x
m
,
y
m
)
}
(6)
D= \left\{ \left(\boldsymbol{x}_1,y_1\right), \left(\boldsymbol{x}_2,y_2\right), \cdots, \left(\boldsymbol{x}_m,y_m\right) \right\} \tag{6}
D={(x1,y1),(x2,y2),⋯,(xm,ym)}(6)
D
=
{
(
x
i
,
y
i
)
}
i
=
1
m
(7)
D= \{ \left(\boldsymbol{x}_i,y_i\right) \} ^m_{i=1} \tag{7}
D={(xi,yi)}i=1m(7)
式(1)中的分号理解为换行,则式(1)对应有式(3)一样的竖式表达,然而式(3)占较多的纸面,将其视为矩阵,利用矩阵转置,则可以将一列变为一行(竖式变为横式),因此,式(1)有如下等价的表达
x
i
=
(
x
i
1
;
x
i
2
;
x
i
3
)
=
(
x
i
1
x
i
2
x
i
3
)
=
(
x
i
1
,
x
i
2
,
x
i
3
)
T
(8)
\boldsymbol{x}_i=(x_{i1};x_{i2};x_{i3})= \left( \begin{array}{c} x_{i1} \\ x_{i2} \\ x_{i3} \\ \end{array} \right)= \left( x_{i1},\,x_{i2},\,x_{i3} \right)^\mathrm{T} \tag{8}
xi=(xi1;xi2;xi3)=
xi1xi2xi3
=(xi1,xi2,xi3)T(8)
式(8)是向量的几种表示,称为样本的特征向量(Feature vector)(注意与矩阵的特征向量(Eigenvector)的区别。)表示,注意:矩阵方式的分隔符为逗号(或空格)。 另外,第二个式子(即式(1))中若将分隔符从分号改为逗号,则对应为空间中“点”的坐标表示(也表示行向量)。
以矩阵方式表示“符号表”,则有如下映射
(
x
11
x
12
x
13
x
21
x
22
x
23
x
31
x
32
x
33
x
41
x
42
x
43
)
↦
(
y
1
y
2
y
3
y
4
)
(9)
\left( \begin{matrix} x_{11} & x_{12} & x_{13} \\ x_{21} & x_{22} & x_{23} \\ x_{31} & x_{32} & x_{33} \\ x_{41} & x_{42} & x_{43} \end{matrix} \right)\mapsto \left( \begin{array}{c} y_1 \\ y_2 \\ y_3 \\ y_4 \\ \end{array} \right) \tag{9}
x11x21x31x41x12x22x32x42x13x23x33x43
↦
y1y2y3y4
(9)
式(9)的特点是保持了字符在“符号表”中的位置,左侧的矩阵有个专有名词,叫设计矩阵。
再利用式(8),则式(9)扩展为
(
x
1
,
x
2
,
x
3
,
x
4
)
T
=
(
x
1
T
x
2
T
x
3
T
x
4
T
)
=
(
x
11
x
12
x
13
x
21
x
22
x
23
x
31
x
32
x
33
x
41
x
42
x
43
)
↦
(
y
1
y
2
y
3
y
4
)
(10)
\begin{align} (\boldsymbol{x}_1,\boldsymbol{x}_2,\boldsymbol{x}_3,\boldsymbol{x}_4)^\mathrm{T} &= \left( \begin{array}{c} \boldsymbol{x}_1^\mathrm{T} \\ \boldsymbol{x}_2^\mathrm{T} \\ \boldsymbol{x}_3^\mathrm{T} \\ \boldsymbol{x}_4^\mathrm{T} \end{array} \right)\\ &= \left( \begin{matrix} x_{11} & x_{12} & x_{13} \\ x_{21} & x_{22} & x_{23} \\ x_{31} & x_{32} & x_{33} \\ x_{41} & x_{42} & x_{43} \end{matrix} \right)\\ &\mapsto \left( \begin{array}{c} y_1 \\ y_2 \\ y_3 \\ y_4 \\ \end{array} \right) \end{align} \tag{10}
(x1,x2,x3,x4)T=
x1Tx2Tx3Tx4T
=
x11x21x31x41x12x22x32x42x13x23x33x43
↦
y1y2y3y4
(10)
注意:式(10)左侧的列与“符号表”的第一列的异同点。 式(10)的第一个等号,更一般地有:
(
x
1
,
x
2
,
⋯
,
x
n
)
T
=
(
x
1
T
;
x
2
T
;
⋯
;
x
n
T
)
(\boldsymbol{x}_1,\boldsymbol{x}_2,\cdots,\boldsymbol{x}_n)^\mathrm{T} =(\boldsymbol{x}_1^\mathrm{T};\boldsymbol{x}_2^\mathrm{T};\cdots;\boldsymbol{x}_n^\mathrm{T})
(x1,x2,⋯,xn)T=(x1T;x2T;⋯;xnT),注意包含两层转置: 第一层是括号“( )”中逗号(或空格)变分号
;
;
;(一行变为一列),第二层是每个
x
i
\boldsymbol{x}_i
xi变为
x
i
T
\boldsymbol{x}_i^\mathrm{T}
xiT
当对象的维数与样本数分别扩展为 d d d和 m m m时,上述矩阵自然改为含省略号的表达。
任务的抽象
一端是经验(数据),另一端是知识(模型),【西瓜书】的1.3和1.4节就是从知识端入手,在假设空间中找到我们需要的模型。
我们有了【西瓜书表1.1】的数据,回到我们的任务:以【西瓜书表1.1】的数据作为“经验”,学习出一模型,使之能在不切开西瓜的前提下判断西瓜的好坏。
【西瓜书表1.1】抽象为本书“符号表”,我们再对任务也抽象一下:
已知
D
=
{
(
x
i
,
y
i
)
}
i
=
1
m
D= \left\{ \left(\boldsymbol{x}_i,y_i\right) \right\} ^m_{i=1}
D={(xi,yi)}i=1m(称为训练集,具体值由“符号表”描述),
预测
x
\boldsymbol{x}
x的
y
=
y=
y=?
即任务就是寻找
y
=
h
(
x
)
(11)
y=h(\boldsymbol{x}) \tag{11}
y=h(x)(11)
容易想到,将已知条件(即式(7))代入式(11)不就是一个方程组么,解这个方程组,不就可以求出
h
h
h中的参数么,这样就得到了
h
h
h。 当然,这是最理想的情况了。 然而,困难在于:其一,不知
h
h
h表达式的样子(通常根据经验指定某种形式)或者
h
h
h不能用式子表达;其二,即使有了方程组,这个方程组通常也是无解的(如,方程过多,之间还有矛盾)。 我们的任务是让式(11)“尽可能地”满足式(7),这与解方程组要求“一定满足”有区别。
现在我们将角色转换一下,从买瓜的角色转换成卖瓜的角色,你作为西瓜摊的大摊主,拥有一堆西瓜,你现在的任务是将这一大堆西瓜分为若干小堆,每小堆有不同的综合“品相”,以便按不同的品相定价或方便不同爱好的顾客挑选。 你可以指定分为三堆或四堆,等等。
这时,你已经不太关心西瓜的好坏(其实,你作为商贩已假设这批西瓜都是好的),这时你的训练集变为
D
=
{
x
i
}
i
=
1
m
%\begin{equation} D= \left\{ \boldsymbol{x}_i \right\} ^m_{i=1} %\end{equation}
D={xi}i=1m
(“符号表”, 没有了最后一列)。
对于前一任务,已有明确的“类”(class)(如,好瓜与坏瓜),以标记表示,即“符号表”中最后一列,训练集中样本的标记对“分类”训练起到了指导作用,称为“监督学习”。 对于标记而言,还有一种情况就是其值是连续的,如,西瓜的成熟度,预测西瓜的成熟度这类任务称为“回归”。
对于后一任务,没有明确的“类”(换一个词以示区别,叫“簇”(cluster)),没有标记对训练进行指导,称为“无监督学习”。 没有了指导,那以什么标准进行“分类”(换一个词以示区别,叫“聚类”)呢?这就要“挖掘”
D
=
{
(
x
i
)
}
i
=
1
m
D= \left\{ (\boldsymbol{x}_i) \right\} ^m_{i=1}
D={(xi)}i=1m
中的内在联系。 以一个例子来理解一下,假定你那一届计算机系同学集会,共有三个班。 你是组织者,若指定收集3张合影,你当然按三个班级为单位来聚类。 若有4个包间会餐,你怎么安排?一种方案是女生一间(女生不多,正好能坐下),其余男生按班级每班一间。 若以“席”为单位再分“簇”呢?你可以让大家以“能喝酒”、“关系好”等来分席(聚类),拉拉扯扯一通后,总可以搞定,真是“有缘才相聚”,你与你的女神能坐在一起,不是“碰巧”。 大家坐好后(相当于模型训练好了),突然来了一个迟到的同学,他得按上述规则找到与自己有“缘分”的坐位(而不是平时的哪儿有空坐哪儿)。 大家发现没有,这里有一个参数,就是“簇”数(合影数、包间数、席数等等),这个参数需要事先指定(不是由训练确定的),这类需要事先指定的参数称为超参数。
任务完成得好坏需要检验,这就是训练(或称学习)出一个模型之后,还要一批数据来检验(测试)该模型,这批数据称为测试集。 模型适应新样本(如,新挑的西瓜、迟到的同学)的能力称为“泛化”能力,通过使用测试集的数据对模型测试来度量泛化能力。
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权
上一篇:1-2 简化现实世界
下一篇:1-4 机器学习中的三个空间