微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。
今天我们要说的是在我们的机器学习中的基础数学之一线性代数。首先我们来将“线性代数”这四个字 分开来理解“什么是线性?”、“什么是代数?”。
什么是线性呢?
我们在中学里学过“一次方程”“一次函数”,其实他们就是“线性方程”、“线性函数”。
在大学里,线性有:“线性代数”、“线性变换”、“线性微分方程”、“线性偏微分方程”、“线性规划”等等。
其实线性函数它的代数意义是:可加性、比例性(可乘性)。
这里的 x,y,k 都可以理解为是对象,只要这些对象能够写成 y=kx ,那么它就是线性函数. 它是过原点的.
什么是代数?
简单的来说,代数就是用字母代替数进行运算,这里的字母是抽象的,它可以是变量、向量、矩阵等等。
其实线性代数的核心问题就是多元方程组求解,里面的主要内容有乘积、內积、秩。
已知矩阵A和矩阵B,求A和B的乘积C=AB。矩阵A大小为mxn,矩阵B大小为nxp.
常规方法:矩阵C中每一列元素Cij=A的第i行乘以B的第j行。
设有n为向量
令[x,y]=x1y1+x2y2+…+xnyn,称[x,y]为向量x与y的內积。
在线行代数中秩的定义:
一个矩阵A的列秩是A的线性无关的列的极大值,类似的,行秩的A的线性无关的行的极大值,矩阵的行和列的秩总是相等的,因此他们可以简单地称作矩阵A的秩,通常表示为R(A);
所以矩阵秩的计算方法就是用行初等变换和列初等变换化为阶梯型,并且在该阶梯型中的非零行数就是所求的矩阵的秩。
那么线性代数中的算法又有那些呢?
高斯消元法
高斯消元法是线性代数中的一个算法,可以用来为线性方程组求解求矩阵的秩,以及求出可逆方程阵的逆矩阵。当用于一个矩阵时,高斯消元法会产生一个“行阶梯式”。
矩阵求逆
一般来说对矩阵求逆常用的方法有两种:
1.伴随矩阵法(构造增广矩阵)
2.初等变换法,即对所求矩阵进行行初等变换。
(1)交换两行
(2)某行乘以标量
(3)某行乘以标量加到另一行
最小二乘法
最小二乘法是对过度确定系统,即其中存在比未知数更多的方程组,以回归分析求得近似解的标准方程,在整个解决方案中,最小二乘法演算为每一方程式的结果中,将残差平方和的总和最小化。
主要思想:选择未知参数,使得理论值与观测值之差平方和达到最小。
最重要的应用是在曲线拟合上,最小平方所涵义的最佳拟合,即残差(观测值与模型提供的拟合值值之间的差距)平方总和的最小化。
线性代数的应用
1、求解线性回归
线性回归是一种用于描述变量之间的关系的统计学传统方法,一般来说我们求先行回归的解通常都是采用的最小二乘法来解决问比较简单题,因为它相对来说比较简单然我们更加容易理解。
(1)随机生成样本点
(2)计算平均平方误差 (MSE)
(3)得到最优参数
2、主成分分析(PCA)
主成分分析是一种分析、简化数据集的技术。通常用于降低数据集的维数,同时保持数据集中对方差贡献的最大特征。这是通过对保留低阶主成分,忽略高阶主成分做到的。
其方法主要是通过对协方差矩阵进行特征分解然后得出数据的主成分(特征向量)与他们的权值(特征值)。PCA是最简单的以特征向量分析多元统计分布的方法。其结果可以理解为对原数据中的方差做出解释:哪一个方向上的数据值对方差的影响最大?换言之,PCA提供了一种降低数据维度的有效办法;如果分析者在原数据中除掉最小的特征值所对应的成分,那么所得的低维度数据必定是最优的
主成分分析在分析复杂数据时尤为有用,eg.人脸识别。
3、奇异值分解(SVD)
奇异值分解是线性代数中一种重要的矩阵分解,在信号处理,图片处理、统计学等领域都有重要的应用。
它的特点是:突出的、奇特的、非凡的。
下面是一个SVD的实例:
这是我们利用奇异值分解来对图片进行处理后的效果
其实有时数学也并不是我们想象的那么难,只要用心就一定去学习,一定会克服很多困难的。
“写留言”发表评论,期待您的参与!期待您的转发!