线性代数

核心问题

求多元方程组的解。

核心技能

  • 乘积、内积、秩

已知矩阵 A 和矩阵 B,求 A 和 B 的乘积 C=AB。

矩阵 A 大小为 mxn,矩阵 B 大小为 nxp。

常规方法:矩阵 C 中每一个元素 Cij = A 的第i行 乘以(点乘)B 的第 j 列。

设有 n 维向量

令  ,称  为向量 x 与 y 的内积。

在线代中秩的定义:

一个矩阵 A 的列秩是 A 的线性无关的列的极大数目。类似地,行秩是 A 的线性无关的行的极大数目。矩阵的列秩和行秩总是相等的,因此它们可以简单地称作矩阵 A 的秩,通常表示为 rank(A)。

矩阵列空间、行空间的维度相等。任意一个矩阵都可以经过一些列的初等变换为阶梯形矩阵,而且阶梯形矩阵的秩等于其中非零行的个数。

所以矩阵秩的计算方法:

用初等变换把矩阵华为阶梯形,则该阶梯形矩阵中的非零行数就是所求矩阵的秩。

  • 高斯消元法

高斯消元法(Gaussian Elimination),是线性代数中的一个算法,可用来为线性方程组求解,求出矩阵的秩,以及求出可逆方阵的逆矩阵。当用于一个矩阵时,高斯消元法会产生出一个“行梯阵式”。

值得提一下的是,虽然该方法以数学家卡尔·高斯命名,但最早出现于中国古籍《九章算术》,成书于约公元前150年。

复杂度:高斯消元法的算法复杂度是  ;这就是说,如果系数矩阵的是 n × n,那么高斯消元法所需要的计算量大约与  成比例。

  • 矩阵求逆

求矩阵的逆矩阵的常用方法有两种:

  1. 伴随矩阵法
  2. 初等变换法
  • 最小二乘法

最小二乘法是对过度确定系统,即其中存在比未知数更多的方程组,以回归分析求得近似解的标准方法。在这整个解决方案中,最小二乘法演算为每一方程式的结果中,将残差平方和的总和最小化。

回归分析模型

主要思想:选择未知参数,使得理论值与观测值之差的平方和达到最小:

最重要的应用是在曲线拟合上。最小平方所涵义的最佳拟合,即残差(残差为:观测值与模型提供的拟合值之间的差距)平方总和的最小化。

应用

  • 求解线性回归
  1. 最小二乘法
  2. 梯度下降法

假设有一个估计函数:  ,

其错误函数为: 

这个错误估计函数是 x(i) 的估计值与真实值 y(i) 的差的平方和,前面乘上 1/2,是因为在求导的时候,这个系数就不见了。

梯度下降法的流程:

1)首先对 θ 赋值,这个值可以是随机的,也可以让 θ 是一个全零的向量。
2)改变 θ 的值,使得 J(θ) 的值按梯度下降的方向减小。

参数 θ 与误差函数 J(θ) 的关系图

红色部分表示 J(θ) 有着比较高的取值,我们希望能够让 J(θ) 的值尽可能的低,也就是取到深蓝色的部分。θ0、θ1 表示 θ 向量的两个维度。上面提到梯度下降法的第一步,是给 θ 一个初值,假设随机的初值位于图上红色部分的十字点。然后我们将 θ 按梯度下降的方向进行调整,就会使 J(θ) 往更低的方向进行变化,如图所示,算法的结束将在 θ 下降到无法继续下降为止。

θ 的更新: 

θi 表示更新前的值,减号后边的部分表示按梯度方向减少的量,α 表示步长,也就是每次按梯度减少的方向变化多少。

梯度是有方向的,对于一个向量 θ,每一维分量 θi 都可以求出一个梯度的方向,我们就可以找到一个整体的方向,在变化的时候,我们就朝着下降最多的方向进行变化,就可以达到一个最小点,不管它是局部的还是全局的。

  • 主成分分析(PCA)

主成分分析(Principal components analysis,PCA)是一种分析、简化数据集的技术。常用于降低数据集的维数,同时保持数据集中对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。

其方法主要是通过对协方差矩阵进行特征分解,以得出数据的主成分(即特征向量)与它们的权值(即特征值)。PCA 是最简单的以特征量分析多元统计分布的方法。其结果可以理解为对原数据中的方差做出解释:哪一个方向上的数据值对方差的影响最大?换而言之,PCA 提供了一种降低数据维度的有效办法;如果分析者在原数据中除掉最小的特征值所对应的成分,那么所得的低维度数据必定是最优化的(也即,这样降低维度必定是失去讯息最少的方法)。

主成分分析在分析复杂数据时尤为有用,比如人脸识别。

实例参考:PCA 简单实例

  • 奇异值分解(SVD)

奇异值分解(Singular Value Decomposition, SVD)是线性代数中一种重要的矩阵分解,在信号处理、统计学等领域有重要应用。

PCA 的实现一般有两种,一种是通过特征值分解实现,另一种就是用奇异值分解来实现。但特征值分解只是针对方针而言的,当处理 m*n 的矩阵时,就需要特征值分解了。

在吴军老师的《数学之美》中也有提到用 SVD 做文本分类的篇幅,提到的例子是这样的:首先用一个 M * N 的大型矩阵 A 来描述一百万篇文章和五十万个词的关联性。矩阵中,每一行对应一篇文章,每一列对应一个词。

在该矩阵中,M=1,000,000 ,N=500,000 ,第 i 行第 j 列的元素是字典中第 j 个词在第 i 篇文章中出现的加权词频(比如,TF/IDF) 。奇异值分解就是把这样一个大矩阵,分解成三个小矩阵相乘:

(矩形面积的大小也对应了信息量的大小~)

这个大矩阵被分解成一个100万乘100的矩阵 X ,一个100乘100的矩阵 B ,以及一个100乘50万的矩阵 Y 。分解后,相应的存储量和计算量都小了三个数量级以上。

第一个矩阵 X 中的每一行表示意思相关的一类词,其中的每个非零元素表示这类词中每个词的相关性,数值越大越相关。最后一个矩阵 Y 中的每一列表示同一主题一类文章,其中每个元素表示这类文章中每篇文章的相关性。中间的矩阵则表示类词和文章雷之间的相关性。因此,我们只要对关联矩阵 A 进行一次奇异值分解,w 我们就可以同时完成了近义词分类和文章的分类。(同时得到每类文章和每类词的相关性)。

在实际应用过程中,可以直接调用 numpy.linalg.svd

实例参考:机器学习中 SVD 的应用

机器学习算法数学基础之 —— 线性代数篇(2)相关推荐

  1. 机器学习算法数学基础之——微积分篇(1)

    最近在听台大老师林轩田老师的 機器學習基石 课程,意识到做好机器学习必须要把根本学好,也就是机器学习算法的基础 -- 数学.高等数学虽然在本科时已经学过了,但很多概念和定理由于太久不使用,很多细节已经 ...

  2. 两个卡方分布之和_机器学习算法数学基础之 —— 统计与概率论篇(3)

    核心问题 发现数字的隐藏规律,完成分类. 核心技能 最大似然估计 给定一个概率分布 ,已知其概率密度函数(连续分布)或概率质量函数(离散分布)为 ,以及一个分布参数 ,我们可以从这个分布中抽出一个具有 ...

  3. 机器学习的数学基础:向量篇

    前言 在 上文 中我简单概括了矩阵的基本运算,并给出了两个应用实例.这篇文章我们继续谈谈向量. 向量是线性代数中的基本概念,也是机器学习的基础数据表示形式.例如计算机阅读文本的过程首先就会将文本分词, ...

  4. 机器学习算法精讲20篇(一)-k-means聚类算法应用案例(附示例代码)

    前言 k-means算法是非监督聚类最常用的一种方法,因其算法简单和很好的适用于大样本数据,广泛应用于不同领域,本文详细总结了k-means聚类算法原理 . 以下是我为大家准备的几个精品专栏,喜欢的小 ...

  5. 从零实现来理解机器学习算法:书籍推荐及障碍的克服

     从零实现来理解机器学习算法:书籍推荐及障碍的克服 发表于2015-09-10 16:16| 1261次阅读| 来源Machine Learning Mastery| 2 条评论| 作者Jason ...

  6. 干货来袭!!!3天0基础Python实战项目快速学会人工智能必学数学基础全套(含源码)(第1天)线性代数篇:矩阵、向量及python实战

    第1天:线性代数篇:矩阵.向量.实战编程 第2天:微积分篇:极限与导数.梯度下降.积分.实战编程 第3天:概率分析篇:条件概率与全概率.贝叶斯公式.实战项目 目录 前言 一.矩阵在AI中的应用 二.矩 ...

  7. 【机器学习】机器学习算法优缺点对比(汇总篇)

    作者 | 杜博亚 来源 | 阿泽的学习笔记 「本文的目的,是务实.简洁地盘点一番当前机器学习算法」.文中内容结合了个人在查阅资料过程中收集到的前人总结,同时添加了部分自身总结,在这里,依据实际使用中的 ...

  8. 机器学习算法优缺点对比及选择(汇总篇)

    杜博亚 本文的目的,是务实.简洁地盘点一番当前机器学习算法.文中内容结合了个人在查阅资料过程中收集到的前人总结,同时添加了部分自身总结,在这里,依据实际使用中的经验,将对此模型优缺点及选择详加讨论. ...

  9. 「机器学习」机器学习算法优缺点对比(汇总篇)

    作者 | 杜博亚 来源 | 阿泽的学习笔记 「本文的目的,是务实.简洁地盘点一番当前机器学习算法」.文中内容结合了个人在查阅资料过程中收集到的前人总结,同时添加了部分自身总结,在这里,依据实际使用中的 ...

最新文章

  1. ios(iphone/ipad)开发笔记(1)
  2. 删除SQL Server注册
  3. matlab 3D绘图详解
  4. zookeeper linux 环境变量,zookeeper linux版安装
  5. ceph集群报 Monitor clock skew detected 错误问题排查,解决
  6. java u003_我在B站学编程 DAY-003 JAVA基础概念和语法
  7. mysql编程语法_MYSQL语法(一)
  8. Android 系统优化(33)---Android ART GC之GrowForUtilization的分析
  9. typora中插入分页符markdown,设置字体,居中,调整图像大小
  10. macbook连接外接键盘
  11. 施一公:如何做一名优秀的博士生
  12. You are the reason I am
  13. Redhat linux命令行连接wifi
  14. python爬虫之糗事百科
  15. 合成大西瓜自制版教程
  16. 使用web设计器制作图表报表
  17. 最美的公式:你也能懂的麦克斯韦方程组
  18. HDU6760 Math is Simple 数学变形+莫比乌斯反演
  19. consulandnacos
  20. 哈尔滨工业大学计算机系统大作业

热门文章

  1. 带有毫秒 转换日期_【Java学习笔记(七)】之日期类的介绍
  2. 手机wps取消不等宽分栏_如何取消分栏 - 卡饭网
  3. win10 linux uefi启动不了系统安装教程,win10更新失败,提示硬盘布局不受UEFI固件支持如图,怎么解决?...
  4. python量化交易开源框架_hikyuu: 基于C++/Python的开源量化交易研究框架
  5. python抓取websocket_python--websocket数据解析
  6. debian 10安装ssh依赖openssh-client版本错误的解决办法及开启ssh远程登录设置
  7. 部署腾讯云(CentOS6.6版本,jdk1.7+tomcat8+mysql)
  8. 云存储之对象存储性价比小谈
  9. 如何从Web浏览器远程监视Linux服务器和桌面
  10. 软件工程习题2第三小题