机器学习算法数学基础之 —— 线性代数篇(2)
线性代数
核心问题
求多元方程组的解。
核心技能
- 乘积、内积、秩
已知矩阵 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,那么高斯消元法所需要的计算量大约与 成比例。
- 矩阵求逆
求矩阵的逆矩阵的常用方法有两种:
- 伴随矩阵法
- 初等变换法
- 最小二乘法
最小二乘法是对过度确定系统,即其中存在比未知数更多的方程组,以回归分析求得近似解的标准方法。在这整个解决方案中,最小二乘法演算为每一方程式的结果中,将残差平方和的总和最小化。
回归分析模型
主要思想:选择未知参数,使得理论值与观测值之差的平方和达到最小:
最重要的应用是在曲线拟合上。最小平方所涵义的最佳拟合,即残差(残差为:观测值与模型提供的拟合值之间的差距)平方总和的最小化。
应用
- 求解线性回归
- 最小二乘法
- 梯度下降法
假设有一个估计函数: ,
其错误函数为:
这个错误估计函数是 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)
最近在听台大老师林轩田老师的 機器學習基石 课程,意识到做好机器学习必须要把根本学好,也就是机器学习算法的基础 -- 数学.高等数学虽然在本科时已经学过了,但很多概念和定理由于太久不使用,很多细节已经 ...
- 两个卡方分布之和_机器学习算法数学基础之 —— 统计与概率论篇(3)
核心问题 发现数字的隐藏规律,完成分类. 核心技能 最大似然估计 给定一个概率分布 ,已知其概率密度函数(连续分布)或概率质量函数(离散分布)为 ,以及一个分布参数 ,我们可以从这个分布中抽出一个具有 ...
- 机器学习的数学基础:向量篇
前言 在 上文 中我简单概括了矩阵的基本运算,并给出了两个应用实例.这篇文章我们继续谈谈向量. 向量是线性代数中的基本概念,也是机器学习的基础数据表示形式.例如计算机阅读文本的过程首先就会将文本分词, ...
- 机器学习算法精讲20篇(一)-k-means聚类算法应用案例(附示例代码)
前言 k-means算法是非监督聚类最常用的一种方法,因其算法简单和很好的适用于大样本数据,广泛应用于不同领域,本文详细总结了k-means聚类算法原理 . 以下是我为大家准备的几个精品专栏,喜欢的小 ...
- 从零实现来理解机器学习算法:书籍推荐及障碍的克服
从零实现来理解机器学习算法:书籍推荐及障碍的克服 发表于2015-09-10 16:16| 1261次阅读| 来源Machine Learning Mastery| 2 条评论| 作者Jason ...
- 干货来袭!!!3天0基础Python实战项目快速学会人工智能必学数学基础全套(含源码)(第1天)线性代数篇:矩阵、向量及python实战
第1天:线性代数篇:矩阵.向量.实战编程 第2天:微积分篇:极限与导数.梯度下降.积分.实战编程 第3天:概率分析篇:条件概率与全概率.贝叶斯公式.实战项目 目录 前言 一.矩阵在AI中的应用 二.矩 ...
- 【机器学习】机器学习算法优缺点对比(汇总篇)
作者 | 杜博亚 来源 | 阿泽的学习笔记 「本文的目的,是务实.简洁地盘点一番当前机器学习算法」.文中内容结合了个人在查阅资料过程中收集到的前人总结,同时添加了部分自身总结,在这里,依据实际使用中的 ...
- 机器学习算法优缺点对比及选择(汇总篇)
杜博亚 本文的目的,是务实.简洁地盘点一番当前机器学习算法.文中内容结合了个人在查阅资料过程中收集到的前人总结,同时添加了部分自身总结,在这里,依据实际使用中的经验,将对此模型优缺点及选择详加讨论. ...
- 「机器学习」机器学习算法优缺点对比(汇总篇)
作者 | 杜博亚 来源 | 阿泽的学习笔记 「本文的目的,是务实.简洁地盘点一番当前机器学习算法」.文中内容结合了个人在查阅资料过程中收集到的前人总结,同时添加了部分自身总结,在这里,依据实际使用中的 ...
最新文章
- ios(iphone/ipad)开发笔记(1)
- 删除SQL Server注册
- matlab 3D绘图详解
- zookeeper linux 环境变量,zookeeper linux版安装
- ceph集群报 Monitor clock skew detected 错误问题排查,解决
- java u003_我在B站学编程 DAY-003 JAVA基础概念和语法
- mysql编程语法_MYSQL语法(一)
- Android 系统优化(33)---Android ART GC之GrowForUtilization的分析
- typora中插入分页符markdown,设置字体,居中,调整图像大小
- macbook连接外接键盘
- 施一公:如何做一名优秀的博士生
- You are the reason I am
- Redhat linux命令行连接wifi
- python爬虫之糗事百科
- 合成大西瓜自制版教程
- 使用web设计器制作图表报表
- 最美的公式:你也能懂的麦克斯韦方程组
- HDU6760 Math is Simple 数学变形+莫比乌斯反演
- consulandnacos
- 哈尔滨工业大学计算机系统大作业
热门文章
- 带有毫秒 转换日期_【Java学习笔记(七)】之日期类的介绍
- 手机wps取消不等宽分栏_如何取消分栏 - 卡饭网
- win10 linux uefi启动不了系统安装教程,win10更新失败,提示硬盘布局不受UEFI固件支持如图,怎么解决?...
- python量化交易开源框架_hikyuu: 基于C++/Python的开源量化交易研究框架
- python抓取websocket_python--websocket数据解析
- debian 10安装ssh依赖openssh-client版本错误的解决办法及开启ssh远程登录设置
- 部署腾讯云(CentOS6.6版本,jdk1.7+tomcat8+mysql)
- 云存储之对象存储性价比小谈
- 如何从Web浏览器远程监视Linux服务器和桌面
- 软件工程习题2第三小题