▲ 作者后续会在翻译完上一本书之后在公众号连载这本书,对于绝大多数读者来说相对简单易懂一些
作者前言
如今,机器学习无处不在,很多人都渴望学习它,甚至想要掌握它!这种强烈的渴望会产生一种急躁感。我们在寻找捷径,只想直接跳到主要概念。如果你在网上进行简单搜索,会看到成千上万的人在问“我如何学习机器学习?”“学习机器学习最快的方法是什么?”以及“开始学习机器学习最好的资源是什么?”然而,这里存在一个问题。掌握一门科学分支不仅仅是一种自我感觉良好的行为,它有自身的要求。机器学习最关键的要求之一是线性代数。基本上,大多数机器学习是关于数据处理和优化的。没有线性代数,你怎么能学习这些呢?没有向量和矩阵,你如何处理和表示数据呢?另一方面,线性代数毕竟是数学的一个分支。很多人试图避开数学,或者有“只在必要时学习”的想法。不过,我同意第二种方法。然而,坏消息是:如果你想学习机器学习和深度学习,就无法避开线性代数。没有捷径可走。好消息是,有大量的资源可供使用。事实上,大量资源的存在让我思考写这本书是否有必要。我已经写了一段时间关于机器学习的博客,经过反复搜索,我意识到缺少一本有条理的书,它(1)能教授机器学习中最常用的线性代数概念,(2)能用日常使用的编程语言(如Python)提供实用的概念,(3)并且简洁,不会冗长多余。在这本书中,你将获得学习线性代数所需的全部内容,这些内容是你掌握机器学习和深度学习所必需的。
#机器学习 #线性代数 #人工智能 #深度学习 #数学
1. 引言
•数学之痛与动机
• 多数人对数学有抵触,但学习机器学习需要掌握一些数学分支,如线性代数。线性代数是研究向量和线性函数的数学分支,对理解和应用机器学习算法至关重要。
•本书使用方法
• 以实用方式教授核心概念,聚焦于机器学习和深度学习中常用的线性代数主题,并为每个概念提供Python代码示例。
2. 基本线性代数定义
•标量、向量、矩阵和张量
•标量:是一个数,如实数域中的元素。
•向量:具有大小和方向,用粗体符号表示,其元素可用下标表示,可视为特殊的矩阵(
矩阵)。
•矩阵:是按行和列排列的矩形数组,用粗体大写字母表示,元素用双下标表示。
•张量:是用于数值表示的数据容器,可容纳多个矩阵,常用于机器学习中数据的表示。
3. NumPy介绍
•重要性
• NumPy是用于线性代数和机器学习的重要科学计算库。
•数据类型
• 支持多种数据类型,包括整数、浮点数、复数和布尔型,并介绍了类型转换方法。
•数组定义
• 介绍了从列表创建数组的方法,包括创建一维和二维数组,还介绍了使用特殊函数(如zeros、ones、full、arange)创建数组,以及随机数组的创建方法。
•数组操作
• 包括基本算术运算(如加、减、乘、除、平方等)、索引(切片索引和整数索引)和形状操作(如reshape、ravel)。
4. 矩阵运算
•矩阵转置
• 转置是将矩阵的行和列索引互换的操作,用
表示,Python中可使用transpose方法实现。
•单位矩阵
• 是主对角线元素为1,其他元素为0的方阵,用
表示,可使用eye函数创建。
•矩阵加法
• 只有形状相同的矩阵才能相加,加法满足交换律、结合律等性质。
•标量乘法
• 矩阵乘以一个数等于矩阵的每个元素乘以该数,满足一些运算性质。
•矩阵乘法
• 矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,乘法不满足交换律,但满足结合律和分配律。
•矩阵 - 向量乘法
• 向量可视为特殊矩阵,相乘时维度要匹配,还介绍了矩阵幂的概念。
•矩阵求逆
• 方阵且满足
时矩阵可逆,可逆矩阵称为非奇异矩阵,介绍了求逆的Python代码及相关性质。
•矩阵的迹和行列式
• 矩阵的迹是主对角线元素之和,行列式是从矩阵元素计算出的标量值,矩阵必须是方阵且非奇异才能计算行列式。
•特殊矩阵
• 介绍了对称矩阵(
)、对角矩阵(主对角线外元素为0)和正交矩阵(
)。
5. 向量和矩阵的范数
•向量范数
• 是作用于向量(或矩阵)并返回标量的函数,用于衡量向量的某种“距离”,如
范数定义为
,介绍了范数的性质及常用的
、
、
范数。
•矩阵范数
• 常用的是Frobenius范数,定义为
。
6. 线性独立性
•概念
• 一组向量线性独立是指不存在一个向量可表示为其他两个向量的线性组合,介绍了线性相关的定义及Python判断方法。
•与矩阵秩的关系
• 矩阵的列秩是其列向量中线性独立向量的最大子集的大小,行秩同理,介绍了矩阵秩的一些性质及Python验证方法。
•线性方程
• 讨论了线性方程组
的解的情况(无解、唯一解、无穷多解)及相关定理和证明。
7. 矩阵分解
•矩阵分解的概念和好处
• 矩阵分解是将矩阵分解为其组成元素的过程,有助于理解矩阵的核心结构和特性。
•特征分解
• 介绍了特征向量和特征值的定义,对于方阵
,若
,则
是特征向量,
是特征值。若方阵有
个线性独立的特征向量,则可分解为
,还讨论了可对角化矩阵、奇异矩阵等概念及相关性质和Python实现。
•奇异值分解(SVD)
• 可用于非方阵分解,
,其中
和
是酉矩阵,
是对角矩阵,介绍了其定义、相关概念及Python实现,还介绍了SVD在计算Moore - Penrose伪逆和确定矩阵秩方面的应用。
1. 引言
•1.1数学很痛苦吗?
•1.2动机
•1.3如何使用本书?
2. 基本线性代数定义
•2.1引言
•2.2标量和向量
•2.3矩阵
•2.4张量
•2.5结论
3. NumPy简介
•3.1引言
•3.2数据类型
•3.2.1基本数据类型
•3.2.2类型转换
•3.3定义一个NumPy数组
•3.3.1从列表创建数组
•3.3.2特殊函数
•3.3.3通用函数
•3.3.4随机数组
•3.4基本算术运算
•3.5数组操作
•3.5.1索引
•3.5.2形状调整
•3.6结论
4. 矩阵运算
•4.1引言
•4.2矩阵转置
•4.3单位矩阵
•4.4加法运算
•4.5标量乘法
•4.6矩阵乘法
•4.7矩阵 - 向量乘法
•4.8矩阵求逆
•4.9矩阵的迹
•4.10矩阵行列式
•4.11特殊矩阵
•4.12结论
5. 向量和矩阵的范数
•5.1引言
•5.2向量范数
•5.2.1范数函数的性质
•5.2.2证明性质(进阶)
•5.3最常用的范数
•5.3.1
范数
•5.3.2
范数
•5.3.3最大范数
•5.4矩阵范数
•5.5结论
6. 线性独立性
•6.1引言
•6.2概念
•6.3示例
•6.4与矩阵秩的关系
•6.5线性方程
•6.6结论
7. 矩阵分解
•7.1引言
•7.2矩阵特征分解
•7.2.1特征向量和特征值
•7.2.2过程
•7.2.3关于矩阵特征分解的讨论
•7.2.4一种特殊矩阵类型及其分解
•7.2.5有用的性质
•7.2.6使用Python
•7.3奇异值分解(SVD)
•7.3.1初步定义
•7.3.2用SVD进行矩阵分解
•7.3.3一个实际应用
•7.3.4 SVD的应用
•7.4结论
索引
参考文献
附录A:符号说明
附录B:Python环境
图表列表
作者介绍:郭佰鑫(Max)
作者Max,一位大三的应用心理学本科生,社交自媒体平台专注于输出体育科技以及体育科学相关内容,期待未来有能力的基础下能加入更多基于人工智能的体育分析与科技。有其他科研合作的欢迎您的联系。
我比较喜欢体育科学、大语言模型以及数据相关的,平常运动喜欢篮球足球以及体能训练
Linkedin领英:Baixin Guo
期待您的合作!
▼ 麻烦您带一下备注!
领取专属 10元无门槛券
私享最新 技术干货