机器学习中的数学基础

Posted toooney

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习中的数学基础相关的知识,希望对你有一定的参考价值。

声明:本文非原创,阅读原文请移步《动手学深度学习

线性代数

下面分别概括了向量、矩阵、运算、范数、特征向量和特征值的概念。

向量

未做说明情况下的向量指的是列向量。一个\(n\)维向量\(\boldsymbolx\)的表达式可写成

\[ \boldsymbolx = \beginbmatrix x_1 \ x_2 \ \vdots \ x_n \endbmatrix, \]

其中\(x_1, \ldots, x_n\)是向量的元素。我们将各元素均为实数的\(n\)维向量\(\boldsymbolx\)记作\(\boldsymbolx \in \mathbbR^n\)\(\boldsymbolx \in \mathbbR^n \times 1\)

矩阵

一个\(m\)\(n\)列矩阵的表达式可写成

\[ \boldsymbolX = \beginbmatrix x_11 & x_12 & \dots & x_1n \ x_21 & x_22 & \dots & x_2n \ \vdots & \vdots & \ddots & \vdots \ x_m1 & x_m2 & \dots & x_mn \endbmatrix, \]

其中\(x_ij\)是矩阵\(\boldsymbolX\)中第\(i\)行第\(j\)列的元素(\(1 \leq i \leq m, 1 \leq j \leq n\))。我们将各元素均为实数的\(m\)\(n\)列矩阵\(\boldsymbolX\)记作\(\boldsymbolX \in \mathbbR^m \times n\)。不难发现,向量是特殊的矩阵。

运算

\(n\)维向量\(\boldsymbola\)中的元素为\(a_1, \ldots, a_n\)\(n\)维向量\(\boldsymbolb\)中的元素为\(b_1, \ldots, b_n\)。向量\(\boldsymbola\)\(\boldsymbolb\)的点乘(内积)是一个标量:

\[\boldsymbola \cdot \boldsymbolb = a_1 b_1 + \ldots + a_n b_n.\]

设两个\(m\)\(n\)列矩阵

\[ \boldsymbolA = \beginbmatrix a_11 & a_12 & \dots & a_1n \ a_21 & a_22 & \dots & a_2n \ \vdots & \vdots & \ddots & \vdots \ a_m1 & a_m2 & \dots & a_mn \endbmatrix,\quad \boldsymbolB = \beginbmatrix b_11 & b_12 & \dots & b_1n \ b_21 & b_22 & \dots & b_2n \ \vdots & \vdots & \ddots & \vdots \ b_m1 & b_m2 & \dots & b_mn \endbmatrix. \]

矩阵\(\boldsymbolA\)的转置是一个\(n\)\(m\)列矩阵,它的每一行其实是原矩阵的每一列:
\[ \boldsymbolA^\top = \beginbmatrix a_11 & a_21 & \dots & a_m1 \ a_12 & a_22 & \dots & a_m2 \ \vdots & \vdots & \ddots & \vdots \ a_1n & a_2n & \dots & a_mn \endbmatrix. \]

两个相同形状的矩阵的加法是将两个矩阵按元素做加法:

\[ \boldsymbolA + \boldsymbolB = \beginbmatrix a_11 + b_11 & a_12 + b_12 & \dots & a_1n + b_1n \ a_21 + b_21 & a_22 + b_22 & \dots & a_2n + b_2n \ \vdots & \vdots & \ddots & \vdots \ a_m1 + b_m1 & a_m2 + b_m2 & \dots & a_mn + b_mn \endbmatrix. \]

我们使用符号\(\odot\)表示两个矩阵按元素做乘法的运算:

\[ \boldsymbolA \odot \boldsymbolB = \beginbmatrix a_11 b_11 & a_12 b_12 & \dots & a_1n b_1n \ a_21 b_21 & a_22 b_22 & \dots & a_2n b_2n \ \vdots & \vdots & \ddots & \vdots \ a_m1 b_m1 & a_m2 b_m2 & \dots & a_mn b_mn \endbmatrix. \]

定义一个标量\(k\)。标量与矩阵的乘法也是按元素做乘法的运算:

\[ k\boldsymbolA = \beginbmatrix ka_11 & ka_12 & \dots & ka_1n \ ka_21 & ka_22 & \dots & ka_2n \ \vdots & \vdots & \ddots & \vdots \ ka_m1 & ka_m2 & \dots & ka_mn \endbmatrix. \]

其他诸如标量与矩阵按元素相加、相除等运算与上式中的相乘运算类似。矩阵按元素开根号、取对数等运算也就是对矩阵每个元素开根号、取对数等,并得到和原矩阵形状相同的矩阵。

矩阵乘法和按元素的乘法不同。设\(\boldsymbolA\)\(m\)\(p\)列的矩阵,\(\boldsymbolB\)\(p\)\(n\)列的矩阵。两个矩阵相乘的结果

\[ \boldsymbolA \boldsymbolB = \beginbmatrix a_11 & a_12 & \dots & a_1p \ a_21 & a_22 & \dots & a_2p \ \vdots & \vdots & \ddots & \vdots \ a_i1 & a_i2 & \dots & a_ip \ \vdots & \vdots & \ddots & \vdots \ a_m1 & a_m2 & \dots & a_mp \endbmatrix \beginbmatrix b_11 & b_12 & \dots & b_1j & \dots & b_1n \ b_21 & b_22 & \dots & b_2j & \dots & b_2n \ \vdots & \vdots & \ddots & \vdots & \ddots & \vdots \ b_p1 & b_p2 & \dots & b_pj & \dots & b_pn \endbmatrix \]

是一个\(m\)\(n\)列的矩阵,其中第\(i\)行第\(j\)列(\(1 \leq i \leq m, 1 \leq j \leq n\))的元素为

\[a_i1b_1j + a_i2b_2j + \ldots + a_ipb_pj = \sum_k=1^p a_ikb_kj. \]

范数

\(n\)维向量\(\boldsymbolx\)中的元素为\(x_1, \ldots, x_n\)。向量\(\boldsymbolx\)\(L_p\)范数为

\[\|\boldsymbolx\|_p = \left(\sum_i=1^n \left|x_i \right|^p \right)^1/p.\]

例如,\(\boldsymbolx\)\(L_1\)范数是该向量元素绝对值之和:

\[\|\boldsymbolx\|_1 = \sum_i=1^n \left|x_i \right|.\]

\(\boldsymbolx\)\(L_2\)范数是该向量元素平方和的平方根:

\[\|\boldsymbolx\|_2 = \sqrt\sum_i=1^n x_i^2.\]

我们通常用\(\|\boldsymbolx\|\)指代\(\|\boldsymbolx\|_2\)

\(\boldsymbolX\)是一个\(m\)\(n\)列矩阵。矩阵\(\boldsymbolX\)的Frobenius范数为该矩阵元素平方和的平方根:

\[\|\boldsymbolX\|_F = \sqrt\sum_i=1^m \sum_j=1^n x_ij^2,\]

其中\(x_ij\)为矩阵\(\boldsymbolX\)在第\(i\)行第\(j\)列的元素。

特征向量和特征值

对于一个\(n\)\(n\)列的矩阵\(\boldsymbolA\),假设有标量\(\lambda\)和非零的\(n\)维向量\(\boldsymbolv\)使

\[\boldsymbolA \boldsymbolv = \lambda \boldsymbolv,\]

那么\(\boldsymbolv\)是矩阵\(\boldsymbolA\)的一个特征向量,标量\(\lambda\)\(\boldsymbolv\)对应的特征值。

微分

我们在这里简要介绍微分的一些基本概念和演算。

导数和微分

假设函数\(f: \mathbbR \rightarrow \mathbbR\)的输入和输出都是标量。函数\(f\)的导数

\[f'(x) = \lim_h \rightarrow 0 \fracf(x+h) - f(x)h,\]

且假定该极限存在。给定\(y = f(x)\),其中\(x\)\(y\)分别是函数\(f\)的自变量和因变量。以下有关导数和微分的表达式等价:

\[f'(x) = y' = \frac\textdy\textdx = \frac\textdf\textdx = \frac\textd\textdx f(x) = \textDf(x) = \textD_x f(x),\]

其中符号\(\textD\)\(\textd/\textdx\)也叫微分运算符。常见的微分演算有\(\textDC = 0\)\(C\)为常数)、\(\textDx^n = nx^n-1\)\(n\)为常数)、\(\textDe^x = e^x\)\(\textD\ln(x) = 1/x\)等。

如果函数\(f\)\(g\)都可导,设\(C\)为常数,那么

\[ \beginaligned \frac\textd\textdx [Cf(x)] &= C \frac\textd\textdx f(x),\\frac\textd\textdx [f(x) + g(x)] &= \frac\textd\textdx f(x) + \frac\textd\textdx g(x),\\ \frac\textd\textdx [f(x)g(x)] &= f(x) \frac\textd\textdx [g(x)] + g(x) \frac\textd\textdx [f(x)],\\frac\textd\textdx \left[\fracf(x)g(x)\right] &= \fracg(x) \frac\textd\textdx [f(x)] - f(x) \frac\textd\textdx [g(x)][g(x)]^2. \endaligned \]

如果\(y=f(u)\)\(u=g(x)\)都是可导函数,依据链式法则,

\[\frac\textdy\textdx = \frac\textdy\textdu \frac\textdu\textdx.\]

泰勒展开

函数\(f\)的泰勒展开式是

\[f(x) = \sum_n=0^\infty \fracf^(n)(a)n! (x-a)^n,\]

其中\(f^(n)\)为函数\(f\)\(n\)阶导数(求\(n\)次导数),\(n!\)\(n\)的阶乘。假设\(\epsilon\)是一个足够小的数,如果将上式中\(x\)\(a\)分别替换成\(x+\epsilon\)\(x\),可以得到

\[f(x + \epsilon) \approx f(x) + f'(x) \epsilon + \mathcalO(\epsilon^2).\]

由于\(\epsilon\)足够小,上式也可以简化成

\[f(x + \epsilon) \approx f(x) + f'(x) \epsilon.\]

偏导数

\(u\)为一个有\(n\)个自变量的函数,\(u = f(x_1, x_2, \ldots, x_n)\),它有关第\(i\)个变量\(x_i\)的偏导数为

\[ \frac\partial u\partial x_i = \lim_h \rightarrow 0 \fracf(x_1, \ldots, x_i-1, x_i+h, x_i+1, \ldots, x_n) - f(x_1, \ldots, x_i, \ldots, x_n)h.\]

以下有关偏导数的表达式等价:

\[\frac\partial u\partial x_i = \frac\partial f\partial x_i = f_x_i = f_i = \textD_i f = \textD_x_i f.\]

为了计算\(\partial u/\partial x_i\),只需将\(x_1, \ldots, x_i-1, x_i+1, \ldots, x_n\)视为常数并求\(u\)有关\(x_i\)的导数。

梯度

假设函数\(f: \mathbbR^n \rightarrow \mathbbR\)的输入是一个\(n\)维向量\(\boldsymbolx = [x_1, x_2, \ldots, x_n]^\top\),输出是标量。函数\(f(\boldsymbolx)\)有关\(\boldsymbolx\)的梯度是一个由\(n\)个偏导数组成的向量:

\[\nabla_\boldsymbolx f(\boldsymbolx) = \bigg[\frac\partial f(\boldsymbolx)\partial x_1, \frac\partial f(\boldsymbolx)\partial x_2, \ldots, \frac\partial f(\boldsymbolx)\partial x_n\bigg]^\top.\]

为表示简洁,我们有时用\(\nabla f(\boldsymbolx)\)代替\(\nabla_\boldsymbolx f(\boldsymbolx)\)

假设\(\boldsymbolx\)是一个向量,常见的梯度演算包括

\[ \beginaligned \nabla_\boldsymbolx \boldsymbolA^\top \boldsymbolx &= \boldsymbolA, \\nabla_\boldsymbolx \boldsymbolx^\top \boldsymbolA &= \boldsymbolA, \\nabla_\boldsymbolx \boldsymbolx^\top \boldsymbolA \boldsymbolx &= (\boldsymbolA + \boldsymbolA^\top)\boldsymbolx,\\nabla_\boldsymbolx \|\boldsymbolx \|^2 &= \nabla_\boldsymbolx \boldsymbolx^\top \boldsymbolx = 2\boldsymbolx. \endaligned \]

类似地,假设\(\boldsymbolX\)是一个矩阵,那么
\[\nabla_\boldsymbolX \|\boldsymbolX \|_F^2 = 2\boldsymbolX.\]

海森矩阵

假设函数\(f: \mathbbR^n \rightarrow \mathbbR\)的输入是一个\(n\)维向量\(\boldsymbolx = [x_1, x_2, \ldots, x_n]^\top\),输出是标量。假定函数\(f\)所有的二阶偏导数都存在,\(f\)的海森矩阵\(\boldsymbolH\)是一个\(n\)\(n\)列的矩阵:

\[ \boldsymbolH = \beginbmatrix \frac\partial^2 f\partial x_1^2 & \frac\partial^2 f\partial x_1 \partial x_2 & \dots & \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 & \dots & \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 & \dots & \frac\partial^2 f\partial x_n^2 \endbmatrix, \]

其中二阶偏导数

\[\frac\partial^2 f\partial x_i \partial x_j = \frac\partial \partial x_j \left(\frac\partial f \partial x_i\right).\]

概率

最后,我们简要介绍条件概率、期望和均匀分布。

条件概率

假设事件\(A\)和事件\(B\)的概率分别为\(P(A)\)\(P(B)\),两个事件同时发生的概率记作\(P(A \cap B)\)\(P(A, B)\)。给定事件\(B\),事件\(A\)的条件概率

\[P(A \mid B) = \fracP(A \cap B)P(B).\]

也就是说,

\[P(A \cap B) = P(B) P(A \mid B) = P(A) P(B \mid A).\]

当满足

\[P(A \cap B) = P(A) P(B)\]

时,事件\(A\)和事件\(B\)相互独立。

期望

离散的随机变量\(X\)的期望(或平均值)为

\[E(X) = \sum_x x P(X = x).\]

均匀分布

假设随机变量\(X\)服从\([a, b]\)上的均匀分布,即\(X \sim U(a, b)\)。随机变量\(X\)\(a\)\(b\)之间任意一个数的概率相等。

以上是关于机器学习中的数学基础的主要内容,如果未能解决你的问题,请参考以下文章

机器学习中的数学原理——模型评估与交叉验证

机器学习基础教程笔记---机器学习概述

机器学习基础教程笔记---机器学习概述

机器学习需要的数学总结

如何搞懂机器学习中的线性回归模型?机器学习系列之线性回归基础篇

机器学习中的数学之开宗明义篇