(《机器学习》完整版系列)1-3 对简化模型数学化

对简化模型数学化

数学是科学的工具,机器学习离不开数学这个工具。注:一些公众号的文章,抛开数学去谈机器学习就象是带大家看魔术,那只是图个热闹,因为,看了个新奇后并不知其所以然。
本文旨在理解如何将前一文简化了的模型再进行数学化

引入符号

将上节数据抽象为“变量与变量的值”则有利于利用数学方式处理,对于图上节图1-2我们抽象为图1-3 西瓜的数学模型(变量)。
图1-3 西瓜的数学模型(变量)

多个样本时,编号用下标表示,这样就得到图1-4西瓜的数学模型(变量取值)。
图1-4  西瓜的数学模型(变量取值)在这里插入图片描述

另外,若将图1-3视为“变量”,图1-4则为“变量的值”,即将图1-4视为图1-3的实例化,这时样本有了编号,属性有了值,【西瓜书表1.1】的每一行对应一个图1-4(给定了值)。

注意:为易理解,我们在图1-3中故意用了一个下标点(作为占位符,如 x ⋅ 2 x_{\cdot 2} x2中“2”左侧的点),在图1-4中这个位置就变成了 i i i,两图得到了统一。 但通常不需要这样做(即将图1-3中下标点省掉)。

这样,就对样本、属性进行了“数字化”,对于属性值通常有两种情况:一是数字型(如,重量);二是非数字型(如,色泽的取值为“青绿”、“乌黑”和“浅白”),这时通常用一个“数据字典”来数字化,如,色泽的“数据字典”为“1:青绿、2:乌黑、3:浅白”。
对标记也用“数据字典”法,特别地对于“二分类”标记常用两种“数据字典”:“ − 1 -1 1:反类; + 1 +1 +1:正类”或“0:正类;1:反类”。

数学表述

通过上述数据符号化之后,我们可以用数学语言来表达数据。 这里我们从细微入手,请注意掌握:字符的粗体与细体、不同的分隔符(分号、逗号及空格)、花括号与圆括号的数学含义以及字符下标的规律。

将【西瓜书表1.1】符号化,我们有图1-5的表格抽象:列表示属性(维度),行表示样例(集中元素),为方便论述不妨称它为西瓜样例集的“符号表”。

图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 机器学习中的三个空间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值