阅读本文需要的背景知识点:一丢丢数学知识
人工智能(AI)在现代生活中起到越来越重要的地位,各种语音助手、旧电影颜色修复、淘宝京东等电商网站的智能推荐、拍照软件的智能美颜背景虚化等等功能背后都离不开人工智能的支持。
在搜索引擎搜索人工智能的时候会发现机器学习会被同时联想出来,机器学习作为人工智能的一个分支学科,就是为了解决人工智能中的各种问题而提出来的。本算法系列文章将力求通俗易懂的介绍机器学习中的各种算法实现与应用。
古人云,“墙高基下,虽得必失”,没有稳固的基础是没法做成大事的,所以本文从基础知识开始,一步一步了解掌握机器学习的相关知识。
维基百科中对机器学习1的定义:
- 机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。
- 机器学习是对能通过经验自动改进的计算机算法的研究。
- 机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。
相较于维基百科中的定义,我觉得张志华老师在机器学习导论2中总结更利于理解。
机器学习(Machine learning) = 矩阵(Matrix) + 统计(statistics) + 算法(algorithm) + 优化(optimation)。
机器学习就是从一堆数据(矩阵)中,通过建立模型(统计),经过各种优化后的算法,最后从中获得知识的学科。可以看到机器学习离不开数学,其中又以线性代数和微积分最为重要。下面两个小节将介绍机器学习中所用到的线性代数和微积分知识点。
线性代数作为数学中一个重要的分支,其内容极其庞大,本文只能选择性的介绍一些机器学习中所用到的线性代数知识,想更深入的了解这门课程,请参看其他的教材书籍。
机器学习中大量使用到向量,例如线性组合里面的权重系数就可以表示为一个 n 维向量,将一个看起来很复杂的连加运算,变成一个相对简单的向量点积的运算。
同时具有大小和方向的量称为向量,例如以一定速度(大小)朝某个方位(方向)飞出的子弹就是一个向量。在数学上,用坐标点的形式表示一个向量,也可以使用矩阵的形式表示一个向量,如下就表示一个三维空间中的一个向量。
v⃗=(1,2,3) 或 [123]
\vec{v}=(1,2,3) \text { 或 } \left[\begin{array}{l}
1 \\
2 \\
3
\end{array}\right]
v⃗=(1,2,3) 或 ⎣⎡123⎦⎤
对于任意向量a,不论方向如何,若其大小为单位长度,则称其为a方向上的单位向量。另外只有大小的量成为标量,例如数字 5 就是一个标量。
向量的模即为向量的长度,用两个单竖线或者两个双竖线表示,计算方法如下式:
∥v⃗∥=12+22+32=14∥vn→∥=v12+v22+…+vn2=∑i=1nvi2 \begin{array}{c} \|\vec{v}\|=\sqrt{1^{2}+2^{2}+3^{2}}=\sqrt{14} \\ \left\|\overrightarrow{v_{n}}\right\|=\sqrt{v_{1}^{2}+v_{2}^{2}+\ldots+v_{n}^{2}}=\sqrt{\sum_{i=1}^{n} v_{i}^{2}} \end{array} ∥v⃗∥=12+22+32=14∥∥∥vn∥∥∥=v12+v22+…+vn2=∑i=1nvi2
A⃗=(1,2,3)B⃗=(4,5,6) \vec{A}=(1,2,3) \quad \vec{B}=(4,5,6) A⃗=(1,2,3)B⃗=(4,5,6)
A⃗+B⃗=(1+4,2+5,3+6)=(5,7,9) \vec{A}+\vec{B}=(1+4,2+5,3+6)=(5,7,9) A⃗+B⃗=(1+4,2+5,3+6)=(5,7,9)
A⃗−B⃗=(1−4,2−5,3−6)=(−3,−3,−3) \vec{A}-\vec{B}=(1-4,2-5,3-6)=(-3,-3,-3) A⃗−B⃗=(1−4,2−5,3−6)=(−3,−3,−3)
2A⃗=(2×1,2×2,2×3)=(2,4,6) 2 \vec{A}=(2 \times 1,2 \times 2,2 \times 3)=(2,4,6) 2A⃗=(2×1,2×2,2×3)=(2,4,6)
A⃗⋅B⃗=1×4+2×5+3×6=32 \vec{A} \cdot \vec{B}=1 \times 4+2 \times 5+3 \times 6=32 A⃗⋅B⃗=1×4+2×5+3×6=32
cosθ=A⃗⋅B⃗∥A⃗∥∥B⃗∥ \cos \theta=\frac{\vec{A} \cdot \vec{B}}{\|\vec{A}\|\|\vec{B}\|} cosθ=∥A⃗∥∥B⃗∥A⃗⋅B⃗
机器学习中也需要使用到矩阵,例如对于输入有 M 个特征 N 个数据的训练集 X 可以表示成一个 M x N 的矩阵。
按照行和列排列的标量值形成的矩形阵列称为矩阵,矩阵也可以认为是多个向量的组合,矩阵一般用 M 表示。如下就表示了一个 2 行 3 列的矩阵,记为 2 x 3 矩阵,也可以看成由上面A、B向量组合而成的矩阵
M=[123456] M=\left[\begin{array}{lll} 1 & 2 & 3 \\ 4 & 5 & 6 \end{array}\right] M=[142536]
M=[123456789] M=\left[\begin{array}{lll} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{array}\right] M=⎣⎡147258369⎦⎤
M=[123056009] 或 [100450789] M=\left[\begin{array}{lll} 1 & 2 & 3 \\ 0 & 5 & 6 \\ 0 & 0 & 9 \end{array}\right] \text { 或 }\left[\begin{array}{lll} 1 & 0 & 0 \\ 4 & 5 & 0 \\ 7 & 8 & 9 \end{array}\right] M=⎣⎡100250369⎦⎤ 或 ⎣⎡147058009⎦⎤
M=[100050009] M=\left[\begin{array}{lll} 1 & 0 & 0 \\ 0 & 5 & 0 \\ 0 & 0 & 9 \end{array}\right] M=⎣⎡100050009⎦⎤
I=[100010001] I=\left[\begin{array}{lll} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array}\right] I=⎣⎡100010001⎦⎤
A=[123456]B=[321654]C=[123456] A=\left[\begin{array}{lll} 1 & 2 & 3 \\ 4 & 5 & 6 \end{array}\right] \quad B=\left[\begin{array}{lll} 3 & 2 & 1 \\ 6 & 5 & 4 \end{array}\right] \quad C=\left[\begin{array}{ll} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{array}\right] A=[142536]B=[362514]C=⎣⎡135246⎦⎤
A+B=[1+32+23+14+65+56+4]=[444101010] A+B=\left[\begin{array}{ccc} 1+3 & 2+2 & 3+1 \\ 4+6 & 5+5 & 6+4 \end{array}\right]=\left[\begin{array}{ccc} 4 & 4 & 4 \\ 10 & 10 & 10 \end{array}\right] A+B=[1+34+62+25+53+16+4]=[410410410]
A−B=[1−32−23−14−65−56−4]=[−202−202] A-B=\left[\begin{array}{lll} 1-3 & 2-2 & 3-1 \\ 4-6 & 5-5 & 6-4 \end{array}\right]=\left[\begin{array}{lll} -2 & 0 & 2 \\ -2 & 0 & 2 \end{array}\right] A−B=[1−34−62−25−53−16−4]=[−2−20022]
2A=[2×12×22×32×42×52×6]=[24681012] 2 A=\left[\begin{array}{lll} 2 \times 1 & 2 \times 2 & 2 \times 3 \\ 2 \times 4 & 2 \times 5 & 2 \times 6 \end{array}\right]=\left[\begin{array}{ccc} 2 & 4 & 6 \\ 8 & 10 & 12 \end{array}\right] 2A=[2×12×42×22×52×32×6]=[28410612]
A×C=[(1∗1+2∗3+3∗5)(1∗2+2∗4+3∗6)(4∗1+5∗3+6∗5)(4∗2+5∗4+6∗6)]=[22284964] A \times C=\left[\begin{array}{ll} (1 * 1+2 * 3+3 * 5) & (1 * 2+2 * 4+3 * 6) \\ (4 * 1+5 * 3+6 * 5) & (4 * 2+5 * 4+6 * 6) \end{array}\right]=\left[\begin{array}{ll} 22 & 28 \\ 49 & 64 \end{array}\right] A×C=[(1∗1+2∗3+3∗5)(4∗1+5∗3+6∗5)(1∗2+2∗4+3∗6)(4∗2+5∗4+6∗6)]=[22492864]
AT=[142536] A^{T}=\left[\begin{array}{ll} 1 & 4 \\ 2 & 5 \\ 3 & 6 \end{array}\right] AT=⎣⎡123456⎦⎤
A×A−1=I A \times A^{-1}=I A×A−1=I
KaTeX parse error: Expected & or \\ or \end at position 212: …\ M^{(i, j)} 表̲示原矩阵去掉第 i 行和第…
A⋅v⃗=λ⋅v⃗A 为方阵, v⃗ 为 A 的特征向量, λ 为特征值 \begin{array}{c} A \cdot \vec{v}=\lambda \cdot \vec{v} \\ A \text { 为方阵, } \vec{v} \text { 为 } A \text { 的特征向量, } \lambda \text { 为特征值 } \end{array} A⋅v⃗=λ⋅v⃗A 为方阵, v⃗ 为 A 的特征向量, λ 为特征值
M=U⋅Σ⋅V∗U 是 m×m 阶西矩阵 Σ 是 m×n 阶非负实数对角矩阵 V∗ 为 V 的共轭转置, 是 n×n 阶酉矩阵 \begin{array}{c} M=U \cdot \Sigma \cdot V^{*} \\ U \text { 是 } m \times m \text { 阶西矩阵 } \\ \Sigma \text { 是 } m \times n \text { 阶非负实数对角矩阵 } \\ V^{*} \text { 为 } V \text { 的共轭转置, 是 } n \times n \text { 阶酉矩阵 } \end{array} M=U⋅Σ⋅V∗U 是 m×m 阶西矩阵 Σ 是 m×n 阶非负实数对角矩阵 V∗ 为 V 的共轭转置, 是 n×n 阶酉矩阵
tr(A)=A1,1+A2,2+⋯+An,n \operatorname{tr}(A)=A_{1,1}+A_{2,2}+\cdots+A_{n, n} tr(A)=A1,1+A2,2+⋯+An,n
微积分是研究极限、微分、积分的一个数学分支,在机器学习中大部分只需要了解微分学的知识,所以本文只介绍微分相关的基础知识点。
limx→∞1x=0 \lim _{x \rightarrow \infty} \frac{1}{x}=0 x→∞limx1=0
f′(x0)=limx→x0f(x)−f(x0)x−x0 f^{\prime}\left(x_{0}\right)=\lim _{x \rightarrow x_{0}} \frac{f(x)-f\left(x_{0}\right)}{x-x_{0}} f′(x0)=x→x0limx−x0f(x)−f(x0)
原函数 导函数 f(x)=Cf′(x)=0f(x)=xu(u≠0)f′(x)=uxu−1f(x)=exf′(x)=exf(x)=lnxf′(x)=1xf(x)=sinxf′(x)=cosxf(x)=cosxf′(x)=−sinxf(x)=tanxf′(x)=1cos2xx \begin{array}{cc} \text { 原函数 } & \text { 导函数 } \\ f(x)=C & f^{\prime}(x)=0 \\ f(x)=x^{u}(u \neq 0) & f^{\prime}(x)=u x^{u-1} \\ f(x)=e^{x} & f^{\prime}(x)=e^{x} \\ f(x)=\ln x & f^{\prime}(x)=\frac{1}{x} \\ f(x)=\sin x & f^{\prime}(x)=\cos x \\ f(x)=\cos x & f^{\prime}(x)=-\sin x \\ f(x)=\tan x & f^{\prime}(x)=\frac{1}{\cos ^{2} x} x \end{array} 原函数 f(x)=Cf(x)=xu(u≠0)f(x)=exf(x)=lnxf(x)=sinxf(x)=cosxf(x)=tanx 导函数 f′(x)=0f′(x)=uxu−1f′(x)=exf′(x)=x1f′(x)=cosxf′(x)=−sinxf′(x)=cos2x1x
原函数 导函数 f(x)=g(x)+h(x)f′(x)=g′(x)+h′(x)f(x)=g(x)h(x)f′(x)=g(x)h′(x)+g′(x)h(x)f(x)=g(x)h(x)f′(x)=g′(x)h(x)−g(x)h′(x)h2(x)f(x)=g(h(x))f′(x)=g′(h(x))h′(x) \begin{array}{cc} \text { 原函数 } & \text { 导函数 } \\ f(x)=g(x)+h(x) & f^{\prime}(x)=g^{\prime}(x)+h^{\prime}(x) \\ f(x)=g(x) h(x) & f^{\prime}(x)=g(x) h^{\prime}(x)+g^{\prime}(x) h(x) \\ f(x)=\frac{g(x)}{h(x)} & f^{\prime}(x)=\frac{g^{\prime}(x) h(x)-g(x) h^{\prime}(x)}{h^{2}(x)} \\ f(x)=g(h(x)) & f^{\prime}(x)=g^{\prime}(h(x)) h^{\prime}(x) \end{array} 原函数 f(x)=g(x)+h(x)f(x)=g(x)h(x)f(x)=h(x)g(x)f(x)=g(h(x)) 导函数 f′(x)=g′(x)+h′(x)f′(x)=g(x)h′(x)+g′(x)h(x)f′(x)=h2(x)g′(x)h(x)−g(x)h′(x)f′(x)=g′(h(x))h′(x)
f(x,y)=x3+xy+y2∂f∂x=3x2+y∂f∂y=x+2y \begin{array}{c} f(x, y)=x^{3}+x y+y^{2} \\ \frac{\partial f}{\partial x}=3 x^{2}+y \\ \frac{\partial f}{\partial y}=x+2 y \end{array} f(x,y)=x3+xy+y2∂x∂f=3x2+y∂y∂f=x+2y
∇f(x,y)=(∂f∂x,∂f∂y) \nabla f(x, y)=\left(\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}\right) ∇f(x,y)=(∂x∂f,∂y∂f)
J=[∂f∂x1⋯∂f∂xn]=[∂f1∂x1⋯∂f1∂xn⋮⋱⋮∂fm∂x1⋯∂fm∂xn] \begin{array}{l} \mathbf{J}=\left[\begin{array}{ccc} \frac{\partial \mathbf{f}}{\partial x_{1}} & \cdots & \frac{\partial \mathbf{f}}{\partial x_{n}} \end{array}\right]=\left[\begin{array}{ccc} \frac{\partial f_{1}}{\partial x_{1}} & \cdots & \frac{\partial f_{1}}{\partial x_{n}} \\ \vdots & \ddots & \vdots \\ \frac{\partial f_{m}}{\partial x_{1}} & \cdots & \frac{\partial f_{m}}{\partial x_{n}} \end{array}\right] \end{array} J=[∂x1∂f⋯∂xn∂f]=⎣⎢⎡∂x1∂f1⋮∂x1∂fm⋯⋱⋯∂xn∂f1⋮∂xn∂fm⎦⎥⎤
H=[∂2f∂x12∂2f∂x1∂x2⋯∂2f∂x1∂xn∂2f∂x2∂x1∂2f∂x22⋯∂2f∂x2∂xn⋮⋮⋱⋮∂2f∂xn∂x1∂2f∂xn∂x2⋯∂2f∂xn2] \mathbf{H}=\left[\begin{array}{cccc} \frac{\partial^{2} f}{\partial x_{1}^{2}} & \frac{\partial^{2} f}{\partial x_{1} \partial x_{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{1} \partial x_{n}} \\ \frac{\partial^{2} f}{\partial x_{2} \partial x_{1}} & \frac{\partial^{2} f}{\partial x_{2}^{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{2} \partial x_{n}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^{2} f}{\partial x_{n} \partial x_{1}} & \frac{\partial^{2} f}{\partial x_{n} \partial x_{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{n}^{2}} \end{array}\right] H=⎣⎢⎢⎢⎢⎡∂x12∂2f∂x2∂x1∂2f⋮∂xn∂x1∂2f∂x1∂x2∂2f∂x22∂2f⋮∂xn∂x2∂2f⋯⋯⋱⋯∂x1∂xn∂2f∂x2∂xn∂2f⋮∂xn2∂2f⎦⎥⎥⎥⎥⎤
完整演示请点击这里
注:本文力求准确并通俗易懂,但由于笔者也是初学者,水平有限,如文中存在错误或遗漏之处,恳请读者通过留言的方式批评指正