Featured image of post 读《设计机器学习应用系统》有感-机器学习数学基础

读《设计机器学习应用系统》有感-机器学习数学基础

AI Coding 时代,程序员等工程人员应该何去何从

机器学习数学基础

线性代数

如何表示和组织数据

向量基础

  • 特征向量

计算机世界,所有的东西其实都是向量,如果一个向量是由多个特征组成的,则这个向量就是一个特征向量

如一个房价的特征向量:

x=(面积,卧室数,卫生间数,房龄,距地铁站距离)

对于一套 90 平米、两室一卫、房龄 5 年、距地铁站 500 米的房子,其特征向量可以表示为:

x=(90,2,1,5,500)x=(90,2,1,5,500)

要构建一个预测房价的机器学习模型,实际上就是在这个五维向量中寻找规律

二维空间中的向量

如图是一个2维向量,v点是向量的一个分量,整个线上的所有点组成了向量。

表示形式形状数学表示说明
一维数组(n,)[v1v2⋯vn][v1v2⋯v**n]只有长度,无行列之分
行向量(1, n)v=[v1v2⋯vn]v=[v1v2⋯v**n]1 行 nn 列的二维数组
列向量(n, 1)v=[v1v2⋮vn]v=v1v2⋮v**nnn 行 1 列的二维数组

数据集:由多个向量组成的一个数据的集合。

  • 线性相关与线性无关

对于一组向量 v1,v2,…,vkv1,v2,…,vk,存在不全为0的标量c1,c2,…,ckc1,c2,…,c**k,使得 c1v1+c2v2+⋯+ckvk=0c1v1+c2v2+⋯+ckvk=0,则称这组向量线性相关。否则这组向量线性无关。

线性无关意味着没有任何一个向量可以被其他向量表示。则数据集中不存在冗余数据。

数据科学用来衡量数据之间的相关性,指向量组中线性无关向量的最大个数。满秩:每个数据都有意义,不满秩:存在可以移除的冗余量。

特征选择:如果特征矩阵的秩小于特征数,说明存在冗余特征。

数据压缩:秩分解可以实现低秩近似,用更少的参数近似原矩阵,降低维度,减少空间。

奇异值分解:秩等同于非0奇异值个数,决定了有多少东西值得保留。

模型LoRA微调:只训练“低秩适配器”,不动原模型,用极少参数实现高效微调。

  • 向量相加

平行四边形法则:将两个向量 uu 和 vv 的起点放在同一点,以它们为邻边作平行四边形,从公共起点出发的对角线就是 u+vu+v

三角形法则:将 vv 的起点放在 uu 的终点,从 uu 的起点到 vv 的终点的向量就是 u+vu+v

向量加法的平行四边形法则与三角形法则

  • 向量相乘

当 c>0c>0:向量的长度缩放为原来的 ∣c∣ 倍,方向不变

当 c<0c<0:向量的长度缩放为原来的 ∣c∣ 倍,方向反向

当 c=0c=0:结果为零向量 0

矩阵基础

矩阵是向量的自然扩展,也是线性代数的核心研究对象。

矩阵:由标量按行列排量组成的矩形阵列。

1786958850279.png

矩阵是机器学习的"原材料",把矩阵想象成一张数据表格,每行是一个样本(譬如一位用户、一张图片),每列是一个特征(譬如年龄、价格、像素值)。这种结构让计算机能高效处理成千上万的数据点。

  • 矩阵的逆:将一个已经变换了的矩阵,恢复到原来状态的操作。

1787741694542.png

如图的两个矩阵,一个是转换后,一个是原始,进行求逆时发现,2,3,为1,1,其他位置为0,0。为1的位置表示可以恢复,为0的位置表示无法恢复。(因为值已经发生了变化)。

这在记忆压缩时常使用。

  • 矩阵向量积

h=Wx+b

其中 xx 是输入向量(上一层的输出),WW 是权重矩阵,bb 是偏置向量,hh 是本层的输出。权重矩阵 WW 把输入从 nn 维空间映射到 mm 维空间(WW 为 m×nm×n 矩阵),这个映射过程就是一次线性变换。

将一组向量进行转换,从原来变成另一种的过程。

  • 张量

标量、向量、矩阵在高维空间的自然推广,可以描述任意维度的数据及其转换关系。

阶数名称维度描述NumPy 表示
0标量无方向,只有大小x (标量值)
1向量一行或一列shape = (n,)
2矩阵行 × 列shape = (m, n)
3三阶张量行 × 列 × 通道 / 深度shape = (h, w, c)
nnnn阶张量维度 1 × 维度 2 × … × 维度nnshape = (d₁, d₂, ..., dₙ)

深度学习的所有数据都使用张量表示。

微积分

从数据中学习和改进

极限、导数与微分

  • 极限

当自变量无限接近某个值时,函数值的变化趋势。

1787746178752.png

对与上面的函数:当x无限趋近于1时(x永远不等于1),函数的值越来越接近2

这就是一个极限的概念,

  • 导数的定义和几何意义

1787746398602.png

如图,我们如何计算一个物体的瞬时速度,我们只能根据时间和路程求出某个物体的平均速度。但是如何我们不断缩小时间,则无限小的时间短内的平均速度就就相当于此物体的瞬时速度。

  • 常见函数的导数

幂函数

f(x)=xnf(x)=x**n

1787812394700.png

指数函数和对数函数

1787812456866.png

三角函数

函数导数
sin⁡xsinxcos⁡xcosx
cos⁡xcosx−sin⁡x−sinx
tan⁡xtanxsec⁡2x=1cos⁡2xsec2x=cos2x1

1787812503347.png

  • 微分和线性近似

微分可以理解为导数的另一种表达形式。

微分和导数的区别在于导数是一个比值dy/dx,而微分dy和dx是独立的量。

微分的一个重要应用是线性近似,目的是将函数复杂计算转化为相对简单的微分计算。

导数是揭示了一个朴素却深刻的思想,任何连续变化的量,都可以通过它在某一点的变化趋势来刻画。从牛顿当年思考的瞬时速度问题出发,导数将平均变化率推向极限,得到了瞬时变化率的精确表达。这一从静态比值到动态极限的跨越,不仅是数学的进步,更是思维方式的转变,我们从此可以用一个数值来描述一个函数在某一点的变化倾向。几何上,导数是切线的斜率,这提供了我们用直线(线性)来理解曲线(非线性)的途径。

微分则将抽象的变化率转化为具体的变化量,让我们能够通过线性近似来简化复杂的函数计算。这一思想在机器学习中体现得尤为明显,泰勒展开将复杂函数分解为一系列多项式,梯度下降依赖一阶导数指引优化方向,而损失函数的凹凸性由二阶导数揭示,这些都是微分学在现代人工智能中的直接应用。极限、导数、微分、高阶导数这些概念层层递进,构成了理解连续变化世界的数学框架,也为下一章学习多元函数微分学奠定了坚实基础。

多元函数和复合函数求导

  • 偏导数

对于一个多元函数,如果只让其中一个变量变化,而保持其他变量不变,函数值会如何变化。表示此变化的导数就是偏导数。

  • 梯度

偏导数表示函数沿每个坐标轴方向的变化率。如果把所有坐标方向的偏导数组合在一起,就可以得到一个向量,称为梯度。

  • 复合函数和链式法则

复合函数:一个函数的输出是另一个函数的输入。多个函数嵌套在一起组成的复杂函数。

链式法则:为何解决复合函数问题的有力工具。复合函数的导数等于各层函数导数的乘积。

  • 积分

微分研究的是局部变化率,是指在某一点处,函数指变化的快慢。积分则是研究全局累计量,即在一个区间上,函数值的总体效果。

统计和概率

线性代数是机器学习的数据语言,它告诉计算机如何表示和组织数据。

微积分是机器学习的优化行为,它告诉计算机如何从数据中学习和改进。

统计与概率就是机器学习的决策思想,它告诉计算机如何在不确定的世界中做出理性的判断和预测。

概率基础

  • 概率性思维

传统软件开发的一贯思维方式是确定性的。同样的输出永远产生同样的输出,代码逻辑明确的,可预测的,发生错误是可以精确定位和修复的。

机器学习的思想是从数据中学习规律,而不是由人工设计规则。机器学习的预测结果和过程天生就带有概率性。模型的输出不是正确答案,而是最可能的答案。

Licensed under CC BY-NC-SA 4.0
用心记录每一段技术成长 · Powered by Hugo & Stack
使用 Hugo 构建
主题 StackJimmy 设计
访客数 - · 总访问量 -