系列第 2/8 篇 ← 上一篇 | 下一篇 | 术语表
建议先看第1篇 (概率论基础)。本篇讲常见的概率分布、线性回归的概率推导,以及偏差-方差权衡。
Chapter 3 标准分布 本章假设观测数据均为独立同分布
离散变量 伯努利分布 直觉 :抛一枚硬币,结果要么正面(1)要么反面(0),正面朝上的概率是 μ \mu μ 。伯努利分布(Bernoulli distribution)就是对这种”非黑即白”场景的数学描述,它刻画单个二元随机变量(binary random variable,只能取0或1的变量)x ∈ { 0 , 1 } x \in \{0, 1\} x ∈ { 0 , 1 } 的概率。其概率质量函数(probability mass function,离散变量的概率描述)为:
B e r n ( x ∣ μ ) = μ x ( 1 − μ ) 1 − x \mathrm{Bern}(x|\mu) = \mu^x (1 - \mu)^{1-x} Bern ( x ∣ μ ) = μ x ( 1 − μ ) 1 − x 其中 μ \mu μ 是 x = 1 x=1 x = 1 的概率,0 ≤ μ ≤ 1 0 \leq \mu \leq 1 0 ≤ μ ≤ 1 。该分布的期望和方差分别为:
E [ x ] = μ , v a r [ x ] = μ ( 1 − μ ) \mathbb{E}[x] = \mu, \quad \mathrm{var}[x] = \mu(1 - \mu) E [ x ] = μ , var [ x ] = μ ( 1 − μ ) 给定独立同分布(independent and identically distributed, i.i.d.,每次抽样互不影响且来自同一分布)的数据集 D = { x 1 , . . . , x N } \mathcal{D} = \{x_1, ..., x_N\} D = { x 1 , ... , x N } ,其似然函数(likelihood function,衡量参数对数据的解释能力)为:
p ( D ∣ μ ) = ∏ n = 1 N μ x n ( 1 − μ ) 1 − x n p(\mathcal{D}|\mu) = \prod_{n=1}^N \mu^{x_n} (1 - \mu)^{1-x_n} p ( D ∣ μ ) = n = 1 ∏ N μ x n ( 1 − μ ) 1 − x n 对数似然函数为:
ln p ( D ∣ μ ) = ∑ n = 1 N { x n ln μ + ( 1 − x n ) ln ( 1 − μ ) } \ln p(\mathcal{D}|\mu) = \sum_{n=1}^N \left\{ x_n \ln \mu + (1 - x_n) \ln(1 - \mu) \right\} ln p ( D ∣ μ ) = n = 1 ∑ N { x n ln μ + ( 1 − x n ) ln ( 1 − μ ) } 通过最大化对数似然(对参数求导令其为零),得到最大似然估计(Maximum Likelihood, ML,使数据出现概率最大的参数值):
μ M L = 1 N ∑ n = 1 N x n = m N \mu_{\mathrm{ML}} = \frac{1}{N} \sum_{n=1}^N x_n = \frac{m}{N} μ ML = N 1 n = 1 ∑ N x n = N m 也称为样本均值 ;其中 m m m 是数据集中 x = 1 x=1 x = 1 的观测次数。这表明最大似然估计就是样本中“成功”事件的比例。
二项分布 直觉 :一枚硬币抛 N N N 次,正面朝上恰好出现 m m m 次的概率是多少?这就是二项分布(Binomial distribution)回答的问题——它描述在 N N N 次独立的伯努利试验(每次都是独立抛硬币)中,“成功”总次数 m m m 的概率。其概率质量函数为:
B i n ( m ∣ N , μ ) = ( N m ) μ m ( 1 − μ ) N − m \mathrm{Bin}(m|N, \mu) = \binom{N}{m} \mu^m (1 - \mu)^{N-m} Bin ( m ∣ N , μ ) = ( m N ) μ m ( 1 − μ ) N − m 该分布的期望和方差为:
E [ m ] = N μ , v a r [ m ] = N μ ( 1 − μ ) \mathbb{E}[m] = N\mu, \quad \mathrm{var}[m] = N\mu(1 - \mu) E [ m ] = N μ , var [ m ] = N μ ( 1 − μ ) 当 N → ∞ N \to \infty N → ∞ 时,根据中心极限定理,二项分布会趋近于高斯分布(正态分布)。
随着N增大,二项分布会趋近于高斯分布(正态分布)
多项分布 直觉 :掷一颗骰子,六个面朝上的概率各不相同。如果掷 N N N 次,每个面各出现多少次?多项分布(Multinomial distribution)就是伯努利分布从”抛硬币”到”掷骰子”的推广——它处理多个类别(K K K 个状态)的情况。考虑一个 K K K 状态的离散变量(discrete variable,只能取有限个值的变量)x x x ,用 1 1 1 -of-K K K 编码(K K K 个位置中只有一个为1,其余为0,也叫 one-hot 编码)表示为 x = ( x 1 , . . . , x K ) T x = (x_1, ..., x_K)^T x = ( x 1 , ... , x K ) T 。令 μ k \mu_k μ k 为 x k = 1 x_k=1 x k = 1 的概率,满足 ∑ k = 1 K μ k = 1 \sum_{k=1}^K \mu_k = 1 ∑ k = 1 K μ k = 1 。对于单次观测,其分布为:
p ( x ∣ μ ) = ∏ k = 1 K μ k x k p(\mathbf{x}| \mathbf{\mu}) = \prod_{k=1}^K \mu_k^{x_k} p ( x ∣ μ ) = k = 1 ∏ K μ k x k 对于 N N N 次独立观测,令 m k m_k m k 为第 k k k 个状态出现的次数(即 m k = ∑ n = 1 N x n k m_k = \sum_{n=1}^N x_{nk} m k = ∑ n = 1 N x nk ),则多项式分布为(证明略):
M u l t ( m 1 , . . . , m K ∣ N , μ ) = N ! m 1 ! . . . m K ! ∏ k = 1 K μ k m k \mathrm{Mult}(m_1,...,m_K|N,\mathbf{\mu}) = \frac{N!}{m_1!...m_K!} \prod_{k=1}^K \mu_k^{m_k} Mult ( m 1 , ... , m K ∣ N , μ ) = m 1 ! ... m K ! N ! k = 1 ∏ K μ k m k 其最大似然估计为:
μ k , M L = m k N \mu_{k, \mathrm{ML}} = \frac{m_k}{N} μ k , ML = N m k 多元高斯分布 (正态分布) 单变量高斯分布 回顾一下前面讲到过的单变量(一元)正态分布:
单变量高斯分布(正态分布)的概率密度函数为:
N ( x ∣ μ , σ 2 ) = 1 ( 2 π σ 2 ) 1 / 2 exp { − 1 2 σ 2 ( x − μ ) 2 } \mathcal{N}(x|\mu, \sigma^2) = \frac{1}{(2\pi\sigma^2)^{1/2}} \exp\left\{ -\frac{1}{2\sigma^2} (x - \mu)^2 \right\} N ( x ∣ μ , σ 2 ) = ( 2 π σ 2 ) 1/2 1 exp { − 2 σ 2 1 ( x − μ ) 2 } 其中 μ \mu μ 是均值,σ 2 \sigma^2 σ 2 是方差,σ \sigma σ 是标准差,β = 1 / σ 2 \beta = 1/\sigma^2 β = 1/ σ 2 是精度。式子的后面部分可以理解为标准化
多变量高斯分布 直觉 :想象一团椭球形的云,数据点密集地聚集在中心附近,越往外越稀疏。多变量高斯分布(Multivariate Gaussian distribution,也叫多元正态分布)就是对这种”中间密、四周疏”的椭球形分布的数学描述。对于 D D D 维随机向量(random vector,多个随机变量组成的向量)x \mathbf{x} x ,多变量高斯分布为:
N ( x ∣ μ , Σ ) = 1 ( 2 π ) D / 2 1 ∣ Σ ∣ 1 / 2 exp { − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) } \mathcal{N}(\mathbf{x}|\mathbf{\mu}, \mathbf{\Sigma}) = \frac{1}{(2\pi)^{D/2}} \frac{1}{|\mathbf{\Sigma}|^{1/2}} \exp\left\{ -\frac{1}{2} (\mathbf{x} - \mathbf{\mu})^T \mathbf{\Sigma}^{-1} (\mathbf{x} - \mathbf{\mu}) \right\} N ( x ∣ μ , Σ ) = ( 2 π ) D /2 1 ∣ Σ ∣ 1/2 1 exp { − 2 1 ( x − μ ) T Σ − 1 ( x − μ ) } (可以理解为是一维的累积结果)其中 μ \mathbf{\mu} μ 是 D D D 维均值向量(mean vector,各维度的平均值组成的向量),Σ \mathbf{\Sigma} Σ 是 D × D D \times D D × D 协方差矩阵(covariance matrix,对称正定矩阵,描述各维度的散布程度和维度间的相关性)。Σ − 1 \mathbf{\Sigma}^{-1} Σ − 1 称为精度矩阵(precision matrix,协方差矩阵的逆)。式子的后面部分同样可以理解为标准化
对于二维的,协方差矩阵写出来就是:
Σ = ( var ( x 1 ) cov ( x 1 , x 2 ) cov ( x 2 , x 1 ) var ( x 2 ) ) \mathbf{\Sigma} = \begin{pmatrix} \text{var}(x_1) & \text{cov}(x_1, x_2) \\ \text{cov}(x_2, x_1) & \text{var}(x_2)\end{pmatrix} Σ = ( var ( x 1 ) cov ( x 2 , x 1 ) cov ( x 1 , x 2 ) var ( x 2 ) ) 对角线上是各维度自身的方差(自己跟自己的协方差),非对角线上是不同维度之间的协方差(x 1 x_1 x 1 和 x 2 x_2 x 2 一起变化的趋势)。因为协方差矩阵是对称的,所以 cov ( x 1 , x 2 ) = cov ( x 2 , x 1 ) \text{cov}(x_1, x_2) = \text{cov}(x_2, x_1) cov ( x 1 , x 2 ) = cov ( x 2 , x 1 ) 。
高斯几何:
高斯分布的等概率密度面(probability density contour,概率密度相等的点连成的曲面)由二次型 Δ 2 = ( x − μ ) T Σ − 1 ( x − μ ) \Delta^2 = (\mathbf{x} - \mathbf{\mu})^T \mathbf{\Sigma}^{-1} (\mathbf{x} - \mathbf{\mu}) Δ 2 = ( x − μ ) T Σ − 1 ( x − μ ) 决定,这个量称为马哈拉诺比斯距离 (Mahalanobis distance,简称马氏距离,考虑了各维度尺度差异和相关性的”距离”度量)。当协方差矩阵 Σ \mathbf{\Sigma} Σ 是单位矩阵时,马氏距离退化为普通的欧氏距离。
协方差矩阵的特征值和特征向量如何影响分布的形状(如椭圆的主轴方向和长短)
协方差矩阵 Σ \mathbf{\Sigma} Σ 的特征向量(eigenvector,矩阵变换下方向不变的向量)和特征值(eigenvalue,对应伸缩比例)决定了高斯分布的形状。特征向量定义了主轴方向,特征值的平方根与主轴的长度成正比。(证明略)
矩 直觉 :如果把概率分布想象成一块形状不规则的薄板,那么”矩”(moments)就是在不同方向上描述这块薄板特征的统计量。一阶矩就是薄板的重心(center of gravity),二阶矩描述薄板绕重心的”胖瘦”程度。具体来说:
一阶矩的推导(点击展开) 一阶矩 即随机向量 x \mathbf{x} x 的期望值 E [ x ] E[\mathbf{x}] E [ x ] 。对于参数为 μ \mathbf{\mu} μ 和 Σ \mathbf{\Sigma} Σ 的多元高斯分布 p ( x ) p(\mathbf{x}) p ( x ) ,其期望值计算如下:
E [ x ] = ∫ p ( x ) x d x E[\mathbf{x}] = \int p(\mathbf{x}) \mathbf{x} d\mathbf{x} E [ x ] = ∫ p ( x ) x d x 通过变量替换 z = x − μ \mathbf{z} = \mathbf{x} - \mathbf{\mu} z = x − μ 并展开,可以将积分转换为:
E [ x ] = 1 ( 2 π ) D / 2 ∣ Σ ∣ 1 / 2 ∫ exp { − 1 2 z T Σ − 1 z } ( z + μ ) d z E[\mathbf{x}] = \frac{1}{(2\pi)^{D/2} |\mathbf{\Sigma}|^{1/2}} \int \exp\left\{ -\frac{1}{2} \mathbf{z}^T \mathbf{\Sigma}^{-1} \mathbf{z} \right\} (\mathbf{z} + \mathbf{\mu}) d\mathbf{z} E [ x ] = ( 2 π ) D /2 ∣ Σ ∣ 1/2 1 ∫ exp { − 2 1 z T Σ − 1 z } ( z + μ ) d z 指数项 exp { − 1 2 z T Σ − 1 z } \exp\left\{ -\frac{1}{2} \mathbf{z}^T \mathbf{\Sigma}^{-1} \mathbf{z} \right\} exp { − 2 1 z T Σ − 1 z } 是 z \mathbf{z} z 的偶函数,而积分区间为 ( − ∞ , ∞ ) (-\infty, \infty) ( − ∞ , ∞ ) 。因此,包含 z \mathbf{z} z 的项(即 z \mathbf{z} z 本身)在对称区间上的积分为零(由对称性可得)。剩下的项是:
E [ x ] = 1 ( 2 π ) D / 2 ∣ Σ ∣ 1 / 2 ∫ exp { − 1 2 z T Σ − 1 z } μ d z = μ E[\mathbf{x}] = \frac{1}{(2\pi)^{D/2} |\mathbf{\Sigma}|^{1/2}} \int \exp\left\{ -\frac{1}{2} \mathbf{z}^T \mathbf{\Sigma}^{-1} \mathbf{z} \right\} \mathbf{\mu} d\mathbf{z} = \mathbf{\mu} E [ x ] = ( 2 π ) D /2 ∣ Σ ∣ 1/2 1 ∫ exp { − 2 1 z T Σ − 1 z } μ d z = μ 因为高斯分布被归一化,其积分等于 1。因此,我们得出结论:
E [ x ] = μ E[\mathbf{x}] = \mathbf{\mu} E [ x ] = μ 这证实了参数 μ \mathbf{\mu} μ 就是该高斯分布的均值向量 。
结论 :一阶矩(期望)等于参数 μ \mathbf{\mu} μ ,即分布的”重心”。数学上:
E [ x ] = μ E[\mathbf{x}] = \mathbf{\mu} E [ x ] = μ 二阶矩的推导(点击展开) 二阶矩 涉及随机向量 x \mathbf{x} x 的外积的期望 E [ x x T ] E[\mathbf{xx}^T] E [ xx T ] 。这包含 D 2 D^2 D 2 个元素 E [ x i x j ] E[x_i x_j] E [ x i x j ] ,可以组合成一个 D × D D \times D D × D 的矩阵。
计算 E [ x x T ] E[\mathbf{xx}^T] E [ xx T ] 的过程同样使用变量替换 z = x − μ \mathbf{z} = \mathbf{x} - \mathbf{\mu} z = x − μ :
E [ x x T ] = ∫ p ( x ) x x T d x = 1 ( 2 π ) D / 2 ∣ Σ ∣ 1 / 2 ∫ exp { − 1 2 z T Σ − 1 z } ( z + μ ) ( z + μ ) T d z E[\mathbf{xx}^T] = \int p(\mathbf{x}) \mathbf{xx}^T d\mathbf{x} = \frac{1}{(2\pi)^{D/2} |\mathbf{\Sigma}|^{1/2}} \int \exp\left\{ -\frac{1}{2} \mathbf{z}^T \mathbf{\Sigma}^{-1} \mathbf{z} \right\} (\mathbf{z} + \mathbf{\mu})(\mathbf{z} + \mathbf{\mu})^T d\mathbf{z} E [ xx T ] = ∫ p ( x ) xx T d x = ( 2 π ) D /2 ∣ Σ ∣ 1/2 1 ∫ exp { − 2 1 z T Σ − 1 z } ( z + μ ) ( z + μ ) T d z 展开 ( z + μ ) ( z + μ ) T (\mathbf{z} + \mathbf{\mu})(\mathbf{z} + \mathbf{\mu})^T ( z + μ ) ( z + μ ) T ,得到四项:z z T \mathbf{zz}^T zz T , z μ T \mathbf{z}\mathbf{\mu}^T z μ T , μ z T \mathbf{\mu}\mathbf{z}^T μ z T , 和 μ μ T \mathbf{\mu}\mathbf{\mu}^T μ μ T 。由对称性,z μ T \mathbf{z}\mathbf{\mu}^T z μ T 和 μ z T \mathbf{\mu}\mathbf{z}^T μ z T 的积分为零。μ μ T \mathbf{\mu}\mathbf{\mu}^T μ μ T 是常数,可提出积分外,其积分值为 1。关键部分是 z z T \mathbf{zz}^T zz T 的期望:
E [ z z T ] = 1 ( 2 π ) D / 2 ∣ Σ ∣ 1 / 2 ∫ exp { − 1 2 z T Σ − 1 z } z z T d z E[\mathbf{zz}^T] = \frac{1}{(2\pi)^{D/2} |\mathbf{\Sigma}|^{1/2}} \int \exp\left\{ -\frac{1}{2} \mathbf{z}^T \mathbf{\Sigma}^{-1} \mathbf{z} \right\} \mathbf{zz}^T d\mathbf{z} E [ zz T ] = ( 2 π ) D /2 ∣ Σ ∣ 1/2 1 ∫ exp { − 2 1 z T Σ − 1 z } zz T d z 利用协方差矩阵 Σ \mathbf{\Sigma} Σ 的特征向量展开(z = ∑ j y j u j \mathbf{z} = \sum_j y_j \mathbf{u}_j z = ∑ j y j u j ,其中 y j = u j T z y_j = \mathbf{u}_j^T \mathbf{z} y j = u j T z ,u j \mathbf{u}_j u j 是特征向量,λ j \lambda_j λ j 是特征值),可以证明:
E [ z z T ] = Σ E[\mathbf{zz}^T] = \mathbf{\Sigma} E [ zz T ] = Σ 最终,我们得到:
E [ x x T ] = μ μ T + Σ E[\mathbf{xx}^T] = \mathbf{\mu}\mathbf{\mu}^T + \mathbf{\Sigma} E [ xx T ] = μ μ T + Σ 结论 :二阶矩为 E [ x x T ] = μ μ T + Σ E[\mathbf{xx}^T] = \mathbf{\mu}\mathbf{\mu}^T + \mathbf{\Sigma} E [ xx T ] = μ μ T + Σ 。
协方差矩阵 :
在定义方差时,我们通常先减去均值——就像测量”偏离重心多远”。对于多元情况,随机向量 x \mathbf{x} x 的协方差定义为:
cov [ x ] = E [ ( x − E [ x ] ) ( x − E [ x ] ) T ] \text{cov}[\mathbf{x}] = E\left[ (\mathbf{x} - E[\mathbf{x}])(\mathbf{x} - E[\mathbf{x}])^T \right] cov [ x ] = E [ ( x − E [ x ]) ( x − E [ x ] ) T ] 将 E [ x ] = μ E[\mathbf{x}] = \mathbf{\mu} E [ x ] = μ 和 E [ x x T ] = μ μ T + Σ E[\mathbf{xx}^T] = \mathbf{\mu}\mathbf{\mu}^T + \mathbf{\Sigma} E [ xx T ] = μ μ T + Σ 代入:
cov [ x ] = E [ x x T ] − E [ x ] E [ x ] T = ( μ μ T + Σ ) − μ μ T = Σ \text{cov}[\mathbf{x}] = E[\mathbf{xx}^T] - E[\mathbf{x}]E[\mathbf{x}]^T = (\mathbf{\mu}\mathbf{\mu}^T + \mathbf{\Sigma}) - \mathbf{\mu}\mathbf{\mu}^T = \mathbf{\Sigma} cov [ x ] = E [ xx T ] − E [ x ] E [ x ] T = ( μ μ T + Σ ) − μ μ T = Σ 其中 E [ x x T ] E[\mathbf{xx}^T] E [ xx T ] 是二阶矩,E [ x ] E [ x ] T E[\mathbf{x}]E[\mathbf{x}]^T E [ x ] E [ x ] T 是一阶矩的平方。
因此,参数矩阵 Σ \mathbf{\Sigma} Σ 正是该高斯分布的协方差矩阵 ,它决定了数据在各个方向上的散布程度和变量间的相关性。
条件和边缘高斯分布 直觉 :有一团二维的椭球形数据云,如果你沿某条竖线”切一刀”,截面仍是一个一维高斯(钟形曲线);如果你把其中一个维度”投影掉”,剩下的也还是一个高斯。这就是高斯分布的封闭性质。
高斯分布的一个重要性质是其条件分布(conditional distribution,已知部分变量后剩余变量的分布)和边缘分布(marginal distribution,忽略某些变量后剩余变量的分布)也都是高斯分布。
将 x \mathbf{x} x 分为两部分 x a \mathbf{x}_a x a 和 x b \mathbf{x}_b x b ,并相应地划分均值 μ \mathbf{\mu} μ 和协方差矩阵 Σ \mathbf{\Sigma} Σ :
x = ( x a x b ) , μ = ( μ a μ b ) , Σ = ( Σ a a Σ a b Σ b a Σ b b ) \mathbf{x} = \begin{pmatrix} \mathbf{x}_a \\ \mathbf{x}_b \end{pmatrix}, \quad \mathbf{\mu} = \begin{pmatrix} \mathbf{\mu}_a \\ \mathbf{\mu}_b \end{pmatrix}, \quad \mathbf{\Sigma} = \begin{pmatrix} \mathbf{\Sigma}_{aa} & \mathbf{\Sigma}_{ab} \\ \mathbf{\Sigma}_{ba} & \mathbf{\Sigma}_{bb} \end{pmatrix} x = ( x a x b ) , μ = ( μ a μ b ) , Σ = ( Σ aa Σ ba Σ ab Σ bb ) 假设我们有二维高斯分布: x = ( x 1 x 2 ) ∼ N ( ( 0 0 ) , ( 1 0.5 0.5 1 ) ) \mathbf{x} = \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} \sim \mathcal{N}\left(\begin{pmatrix} 0 \\ 0 \end{pmatrix}, \begin{pmatrix} 1 & 0.5 \\ 0.5 & 1 \end{pmatrix}\right) x = ( x 1 x 2 ) ∼ N ( ( 0 0 ) , ( 1 0.5 0.5 1 ) ) 现在已知 x 2 = 1 x_2 = 1 x 2 = 1 ,求 x 1 x_1 x 1 的条件分布:
μ a = 0 \mathbf{\mu}_a = 0 μ a = 0 , μ b = 0 \mathbf{\mu}_b = 0 μ b = 0 Σ a b = 0.5 \mathbf{\Sigma}{ab} = 0.5 Σ ab = 0.5 , Σ b b = 1 \mathbf{\Sigma}{bb} = 1 Σ bb = 1 x b = 1 \mathbf{x}_b = 1 x b = 1
条件均值:
μ 1 ∣ 2 = 0 + 0.5 × 1 − 1 × ( 1 − 0 ) = 0.5 \mu_{1|2} = 0 + 0.5 \times 1^{-1} \times (1 - 0) = 0.5 μ 1∣2 = 0 + 0.5 × 1 − 1 × ( 1 − 0 ) = 0.5 条件方差:
σ 1 ∣ 2 2 = 1 − 0.5 × 1 − 1 × 0.5 = 0.75 \sigma_{1|2}^2 = 1 - 0.5 \times 1^{-1} \times 0.5 = 0.75 σ 1∣2 2 = 1 − 0.5 × 1 − 1 × 0.5 = 0.75 所以:p ( x 1 ∣ x 2 = 1 ) = N ( x 1 ∣ 0.5 , 0.75 ) p(x_1|x_2=1) = \mathcal{N}(x_1|0.5, 0.75) p ( x 1 ∣ x 2 = 1 ) = N ( x 1 ∣0.5 , 0.75 )
边缘分布 :(降维,只看x a \mathbf{x}_a x a 的概率分布) p ( x a ) = N ( x a ∣ μ a , Σ a a ) p(\mathbf{x}_a) = \mathcal{N}(\mathbf{x}_a|\mathbf{\mu}_a, \mathbf{\Sigma}_{aa}) p ( x a ) = N ( x a ∣ μ a , Σ aa ) 如果 x ∼ N ( μ , Σ ) \mathbf{x} \sim \mathcal{N}(\mathbf{\mu}, \mathbf{\Sigma}) x ∼ N ( μ , Σ ) ,其中: μ = ( μ 1 μ 2 μ 3 μ 4 ) , Σ = ( σ 11 σ 12 σ 13 σ 14 σ 21 σ 22 σ 23 σ 24 σ 31 σ 32 σ 33 σ 34 σ 41 σ 42 σ 43 σ 44 ) \mathbf{\mu} = \begin{pmatrix} \mu_1 \\ \mu_2 \\ \mu_3 \\ \mu_4 \end{pmatrix}, \quad \mathbf{\Sigma} = \begin{pmatrix} \sigma_{11} & \sigma_{12} & \sigma_{13} & \sigma_{14} \\ \sigma_{21} & \sigma_{22} & \sigma_{23} & \sigma_{24} \\ \sigma_{31} & \sigma_{32} & \sigma_{33} & \sigma_{34} \\ \sigma_{41} & \sigma_{42} & \sigma_{43} & \sigma_{44} \end{pmatrix} μ = μ 1 μ 2 μ 3 μ 4 , Σ = σ 11 σ 21 σ 31 σ 41 σ 12 σ 22 σ 32 σ 42 σ 13 σ 23 σ 33 σ 43 σ 14 σ 24 σ 34 σ 44 那么 x a = ( x 1 x 2 ) \mathbf{x}_a = \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} x a = ( x 1 x 2 ) 的边缘分布是: p ( x a ) = N ( x a ∣ μ a , Σ a a ) p(\mathbf{x}_a) = \mathcal{N}(\mathbf{x}_a|\mathbf{\mu}a, \mathbf{\Sigma}{aa}) p ( x a ) = N ( x a ∣ μ a , Σ aa ) 其中: μ a = ( μ 1 μ 2 ) \mathbf{\mu}_a = \begin{pmatrix} \mu_1 \\ \mu_2 \end{pmatrix} μ a = ( μ 1 μ 2 ) Σ a a = ( σ 11 σ 12 σ 21 σ 22 ) \mathbf{\Sigma}{aa} = \begin{pmatrix} \sigma_{11} & \sigma_{12} \\ \sigma_{21} & \sigma_{22} \end{pmatrix} Σ aa = ( σ 11 σ 21 σ 12 σ 22 )
左侧图为二维高斯分布的概率密度函数(PDF),以等高线形式表示。
等高线呈椭圆形(见上文高斯几何 ),中心为均值点 ( μ a , μ b ) = ( 0.5 , 0.5 ) (\mu_a, \mu_b) = (0.5, 0.5) ( μ a , μ b ) = ( 0.5 , 0.5 ) ,椭圆的主轴方向由协方差矩阵决定(此处存在正相关性,因为 Σ a b > 0 \Sigma_{ab} > 0 Σ ab > 0 )。椭圆越密集,概率密度越高;外层椭圆代表低概率区域。 分布具有正相关性(x a x_a x a 和 x b x_b x b 同向变化),表现为椭圆沿对角线拉伸。
红色水平线表示 x b = 0.7 x_b = 0.7 x b = 0.7 的切片,用于提取条件分布。
右侧图展示了一维分布曲线:
蓝色曲线:p ( x a ) p(x_a) p ( x a ) 是 x a x_a x a 的边缘分布(即忽略 x b x_b x b 的影响)。
红色曲线:p ( x a ∣ x b = 0.7 ) p(x_a|x_b=0.7) p ( x a ∣ x b = 0.7 ) 是在 x b = 0.7 x_b = 0.7 x b = 0.7 条件下 x a x_a x a 的条件分布。
条件分布利用 x b x_b x b 的观测值,提供更精确的 x a x_a x a 预测。
边缘分布仅反映 x a x_a x a 的总体统计特性,不依赖具体 x b x_b x b 值。
同样可以看出:高斯分布的条件分布仍是高斯分布 ,且其均值和方差可通过协方差矩阵计算。
贝叶斯定理+高斯分布 为什么要看这一节? 这个结论在后面会反复用到——贝叶斯线性回归、高斯过程、概率PCA都依赖它。简单说就是:如果先验和似然都是高斯,后验也是高斯 ——计算上非常方便,因为高斯分布只需要均值和协方差就能完全描述。
当一个变量的先验分布(prior distribution,见第1篇-贝叶斯定理 )和另一个变量的条件分布均为高斯时,后验分布(posterior distribution,观测数据后对参数的更新信念)也是高斯分布。
考虑两个随机变量 x \mathbf{x} x 和 y \mathbf{y} y 。我们有以下两个分布:
先验分布 (prior distribution,观测数据前对参数的信念):p ( x ) = N ( x ∣ μ , Λ − 1 ) p(\mathbf{x}) = \mathcal{N}(\mathbf{x} | \mathbf{\mu}, \mathbf{\Lambda}^{-1}) p ( x ) = N ( x ∣ μ , Λ − 1 ) 这是对 x \mathbf{x} x 的初始信念,是一个均值为 μ \mathbf{\mu} μ 、协方差矩阵为 Λ − 1 \mathbf{\Lambda}^{-1} Λ − 1 (Λ \mathbf{\Lambda} Λ 是精度矩阵)的高斯分布。 似然分布 (likelihood distribution,给定参数下观测数据的概率):p ( y ∣ x ) = N ( y ∣ A x + b , L − 1 ) p(\mathbf{y}|\mathbf{x}) = \mathcal{N}(\mathbf{y} | \mathbf{A}\mathbf{x} + \mathbf{b}, \mathbf{L}^{-1}) p ( y ∣ x ) = N ( y ∣ Ax + b , L − 1 ) 给定 x \mathbf{x} x 的条件下,观察到 y \mathbf{y} y 的概率。它也是一个高斯分布,其均值是 x \mathbf{x} x 的线性函数 A x + b \mathbf{A}\mathbf{x} + \mathbf{b} Ax + b ,协方差矩阵为 L − 1 \mathbf{L}^{-1} L − 1 。 我们的目标是利用贝叶斯定理来计算后验分布 p ( x ∣ y ) p(\mathbf{x}|\mathbf{y}) p ( x ∣ y ) ,即在观察到 y \mathbf{y} y 之后,对 x \mathbf{x} x 的更新信念。
贝叶斯定理指出:
p ( x ∣ y ) = p ( y ∣ x ) p ( x ) p ( y ) p(\mathbf{x}|\mathbf{y}) = \frac{p(\mathbf{y}|\mathbf{x}) p(\mathbf{x})}{p(\mathbf{y})} p ( x ∣ y ) = p ( y ) p ( y ∣ x ) p ( x ) 首先,我们构造 z = ( x T , y T ) T \mathbf{z} = (\mathbf{x}^T, \mathbf{y}^T)^T z = ( x T , y T ) T 的联合分布 p ( z ) = p ( x , y ) p(\mathbf{z}) = p(\mathbf{x}, \mathbf{y}) p ( z ) = p ( x , y ) 。根据条件概率的定义:
p ( z ) = p ( x , y ) = p ( x ) p ( y ∣ x ) p(\mathbf{z}) = p(\mathbf{x}, \mathbf{y}) = p(\mathbf{x}) p(\mathbf{y}|\mathbf{x}) p ( z ) = p ( x , y ) = p ( x ) p ( y ∣ x ) 将两个高斯分布的表达式代入,并取对数,得到联合分布的对数形式:
ln p ( z ) = ln p ( x ) + ln p ( y ∣ x ) + const = − 1 2 ( x − μ ) T Λ ( x − μ ) − 1 2 ( y − A x − b ) T L ( y − A x − b ) + const \ln p(\mathbf{z}) = \ln p(\mathbf{x}) + \ln p(\mathbf{y}|\mathbf{x}) + \text{const} = -\frac{1}{2}(\mathbf{x} - \mathbf{\mu})^T \mathbf{\Lambda} (\mathbf{x} - \mathbf{\mu}) - \frac{1}{2}(\mathbf{y} - \mathbf{A}\mathbf{x} - \mathbf{b})^T \mathbf{L} (\mathbf{y} - \mathbf{A}\mathbf{x} - \mathbf{b}) + \text{const} ln p ( z ) = ln p ( x ) + ln p ( y ∣ x ) + const = − 2 1 ( x − μ ) T Λ ( x − μ ) − 2 1 ( y − Ax − b ) T L ( y − Ax − b ) + const 展开并整理后,可以发现 ln p ( z ) \ln p(\mathbf{z}) ln p ( z ) 是 z \mathbf{z} z 的一个二次型。这表明联合分布 p ( z ) p(\mathbf{z}) p ( z ) 本身也是一个多元高斯分布。
对于一个多元高斯分布,其精度矩阵(即协方差矩阵的逆)可以从对数概率密度函数中的二次项系数得到。(二次项 − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) -\frac{1}{2} (\mathbf{x} - \mathbf{\mu})^T \mathbf{\Sigma}^{-1} (\mathbf{x} - \mathbf{\mu}) − 2 1 ( x − μ ) T Σ − 1 ( x − μ ) )
从上式中提取 z \mathbf{z} z 的二次项,可以得到联合分布的精度矩阵 R \mathbf{R} R :
R = ( Λ + A T L A − A T L − L A L ) \mathbf{R} = \begin{pmatrix} \mathbf{\Lambda} + \mathbf{A}^T \mathbf{L} \mathbf{A} & -\mathbf{A}^T \mathbf{L} \\ -\mathbf{L} \mathbf{A} & \mathbf{L} \end{pmatrix} R = ( Λ + A T LA − LA − A T L L ) 通过分块矩阵求逆公式(见上,分块矩阵求逆 ),可以求得协方差矩阵 cov [ z ] = R − 1 \text{cov}[\mathbf{z}] = \mathbf{R}^{-1} cov [ z ] = R − 1 :
cov [ z ] = ( Λ − 1 Λ − 1 A T A Λ − 1 L − 1 + A Λ − 1 A T ) \text{cov}[\mathbf{z}] = \begin{pmatrix} \mathbf{\Lambda}^{-1} & \mathbf{\Lambda}^{-1}\mathbf{A}^T \\ \mathbf{A}\mathbf{\Lambda}^{-1} & \mathbf{L}^{-1} + \mathbf{A}\mathbf{\Lambda}^{-1}\mathbf{A}^T \end{pmatrix} cov [ z ] = ( Λ − 1 A Λ − 1 Λ − 1 A T L − 1 + A Λ − 1 A T ) z \mathbf{z} z 的期望为:
E [ z ] = ( μ A μ + b ) \text{E}[\mathbf{z}] = \begin{pmatrix} \mathbf{\mu} \\ \mathbf{A\mu+b} \end{pmatrix} E [ z ] = ( μ A μ + b ) 边缘分布 p ( y ) p(\mathbf{y}) p ( y ) :从上面联合分布的均值和协方差中提取 y \mathbf{y} y 对应的部分: p ( y ) = N ( y ∣ A μ + b , L − 1 + A Λ − 1 A T ) p(\mathbf{y}) = \mathcal{N}(\mathbf{y} | \mathbf{A}\mathbf{\mu} + \mathbf{b}, \mathbf{L}^{-1} + \mathbf{A}\mathbf{\Lambda}^{-1}\mathbf{A}^T) p ( y ) = N ( y ∣ A μ + b , L − 1 + A Λ − 1 A T ) 这表明 y \mathbf{y} y 的均值是 x \mathbf{x} x 的均值经过线性变换后的结果,其协方差是观测噪声协方差 (L − 1 \mathbf{L}^{-1} L − 1 ) 和由 x \mathbf{x} x 的不确定性 (Λ − 1 \mathbf{\Lambda}^{-1} Λ − 1 ) 通过线性变换引入的协方差之和。 条件分布 p ( x ∣ y ) p(\mathbf{x}|\mathbf{y}) p ( x ∣ y ) :利用分块精度矩阵的性质(见上,分块矩阵求逆 ),可以直接写出 p ( x ∣ y ) p(\mathbf{x}|\mathbf{y}) p ( x ∣ y ) 的均值和协方差: p ( x ∣ y ) = N ( x ∣ Σ { A T L ( y − b ) + Λ μ } , Σ ) p(\mathbf{x}|\mathbf{y}) = \mathcal{N}(\mathbf{x} | \mathbf{\Sigma} \{ \mathbf{A}^T \mathbf{L} (\mathbf{y} - \mathbf{b}) + \mathbf{\Lambda} \mathbf{\mu} \}, \mathbf{\Sigma}) p ( x ∣ y ) = N ( x ∣ Σ { A T L ( y − b ) + Λ μ } , Σ ) 其中 Σ = ( Λ + A T L A ) − 1 \mathbf{\Sigma} = (\mathbf{\Lambda} + \mathbf{A}^T \mathbf{L} \mathbf{A})^{-1} Σ = ( Λ + A T LA ) − 1 因此:
后验的协方差 Σ \mathbf{\Sigma} Σ 由先验的精度 (Λ \mathbf{\Lambda} Λ ) 和似然的精度 (A T L A \mathbf{A}^T \mathbf{L} \mathbf{A} A T LA ) 共同决定,反映了先验信息和观测信息的结合。 后验的均值是先验均值和基于观测 y \mathbf{y} y 的“预测”的加权平均,权重由各自的不确定性(协方差)决定。 最大似然估计 考虑一个独立同分布的数据集 D = { x 1 , . . . , x N } \mathcal{D} = \{\mathbf{x}_1, ..., \mathbf{x}_N\} D = { x 1 , ... , x N } ,假设数据由多变量高斯分布 N ( x ∣ μ , Σ ) \mathcal{N}(\mathbf{x}|\mathbf{\mu}, \mathbf{\Sigma}) N ( x ∣ μ , Σ ) 生成。其对数似然函数为:
ln p ( D ∣ μ , Σ ) = − N 2 ln ∣ Σ ∣ − N 2 ln ( 2 π ) − 1 2 ∑ n = 1 N ( x n − μ ) ⊤ Σ − 1 ( x n − μ ) \ln p(\mathcal{D}|\mathbf{\mu}, \mathbf{\Sigma}) = -\frac{N}{2} \ln |\mathbf{\Sigma}| - \frac{N}{2} \ln (2\pi) - \frac{1}{2} \sum_{n=1}^N (\mathbf{x}_n - \mathbf{\mu})^\top \mathbf{\Sigma}^{-1} (\mathbf{x}_n - \mathbf{\mu}) ln p ( D ∣ μ , Σ ) = − 2 N ln ∣ Σ ∣ − 2 N ln ( 2 π ) − 2 1 n = 1 ∑ N ( x n − μ ) ⊤ Σ − 1 ( x n − μ ) 对均值 μ \mathbf{\mu} μ 和协方差矩阵 Σ \mathbf{\Sigma} Σ 分别求导并令导数为零,可得最大似然估计:
μ M L = 1 N ∑ n = 1 N x n \mathbf{\mu}_{\mathrm{ML}} = \frac{1}{N} \sum_{n=1}^N \mathbf{x}_n μ ML = N 1 n = 1 ∑ N x n Σ M L = 1 N ∑ n = 1 N ( x n − μ M L ) ( x n − μ M L ) ⊤ \mathbf{\Sigma}_{\mathrm{ML}} = \frac{1}{N} \sum_{n=1}^N (\mathbf{x}_n - \mathbf{\mu}_{\mathrm{ML}})(\mathbf{x}_n - \mathbf{\mu}_{\mathrm{ML}})^\top Σ ML = N 1 n = 1 ∑ N ( x n − μ ML ) ( x n − μ ML ) ⊤ μ M L \mathbf{\mu}_{\mathrm{ML}} μ ML 是样本均值,Σ M L \mathbf{\Sigma}_{\mathrm{ML}} Σ ML 是样本协方差。与单变量情况类似,Σ M L \mathbf{\Sigma}_{\mathrm{ML}} Σ ML 对真实协方差的估计是有偏的。
贯序估计 直觉 :想象你在跑步时戴着手环计算平均配速。每跑一公里,手环会用新数据修正之前的估计,而不是从头算一遍。贯序估计(sequential estimation)就是这种”边收数据边更新”的在线算法。
当数据是流式到达(streaming,数据不是一次性全部到达,而是逐个或分批到达)时,需要一种在线更新参数估计(而不需要全部重新计算)的方法。对于均值,可以使用:
μ N = μ N − 1 + 1 N ( x N − μ N − 1 ) \mathbf{\mu}_N = \mathbf{\mu}_{N-1} + \frac{1}{N} (\mathbf{x}_N - \mathbf{\mu}_{N-1}) μ N = μ N − 1 + N 1 ( x N − μ N − 1 ) 这表明新的估计值等于旧的估计值加上一个“修正项”,该修正项是新数据点与旧估计值之差的 1 / N 1/N 1/ N 倍,因此,随着μ N \mathbf{\mu}_N μ N 越来越大,后面的贡献会越来越小。
高斯混合模型 直觉 :如果数据明显有多个”团簇”(比如身高数据中男性和女性各形成一个峰),用一个高斯分布去拟合就像只用一个钟形曲线去盖住两个山峰,怎么盖都不合适。高斯混合模型(Gaussian Mixture Model, GMM)的思路是用多个钟形曲线叠加——每个”团簇”一个高斯,按比例混合在一起。
尽管高斯分布具有良好的解析性质,但单一的高斯分布(只有一个峰)无法捕捉复杂的数据结构,例如多模态(multimodal,有多个峰值)的数据。
高斯混合模型 (GMM)通过将 K K K 个高斯分布线性组合(多个高斯分布乘比例累加)来解决这个问题:
p ( x ) = ∑ k = 1 K π k N ( x ∣ μ k , Σ k ) p(\mathbf{x}) = \sum_{k=1}^K \pi_k \mathcal{N}(\mathbf{x}|\mathbf{\mu}_k, \mathbf{\Sigma}_k) p ( x ) = k = 1 ∑ K π k N ( x ∣ μ k , Σ k ) 其中 π k \pi_k π k 是第 k k k 个高斯分量的混合系数 ,满足 0 ≤ π k ≤ 1 0 \leq \pi_k \leq 1 0 ≤ π k ≤ 1 且 ∑ k = 1 K π k = 1 \sum_{k=1}^K \pi_k = 1 ∑ k = 1 K π k = 1 。每个 N ( x ∣ μ k , Σ k ) \mathcal{N}(\mathbf{x}|\mathbf{\mu}_k, \mathbf{\Sigma}_k) N ( x ∣ μ k , Σ k ) 称为一个分量 。
左图为不混合的高斯分布拟合,右图为混合的高斯分布拟合(两个峰值)
通过调整分量的数量 K K K 、每个分量的均值 μ k \mathbf{\mu}_k μ k 、协方差 Σ k \mathbf{\Sigma}_k Σ k 和混合系数 π k \pi_k π k ,高斯混合模型可以逼近任意连续的概率密度函数。 为了方便分析,可以引入一个 K K K 维的隐变量 z \mathbf{z} z (区分多个不同的群体),采用 1-of-K 编码(可见第5章-1-of-K编码 只有一个元素为1,其余元素都为0。为1的元素的位置表示该样本属于哪个类别)。z k = 1 z_k=1 z k = 1 表示数据点 x \mathbf{x} x 由第 k k k 个分量生成。混合系数 π k \pi_k π k 可以解释为 p ( z k = 1 ) p(z_k=1) p ( z k = 1 ) ,即先验概率。条件概率 p ( x ∣ z k = 1 ) = N ( x ∣ μ k , Σ k ) p(\mathbf{x}|z_k=1) = \mathcal{N}(\mathbf{x}|\mathbf{\mu}_k, \mathbf{\Sigma}_k) p ( x ∣ z k = 1 ) = N ( x ∣ μ k , Σ k ) 。通过边缘化隐变量 z \mathbf{z} z ,可以得到边缘分布 p ( x ) p(\mathbf{x}) p ( x ) ,即高斯混合模型。 给定数据点 x \mathbf{x} x ,它属于第 k k k 个分量的后验概率为: γ ( z k ) = p ( z k = 1 ∣ x ) = p ( z k = 1 ) p ( x ∣ z k = 1 ) ∑ j = 1 K p ( z j = 1 ) p ( x ∣ z j = 1 ) = π k N ( x ∣ μ k , Σ k ) ∑ j = 1 K π j N ( x ∣ μ j , Σ j ) \gamma(z_k) = p(z_k=1|\mathbf{x}) = \frac{p(z_k=1) p(\mathbf{x}|z_k=1)}{\sum_{j=1}^K p(z_j=1) p(\mathbf{x}|z_j=1)} = \frac{\pi_k \mathcal{N}(\mathbf{x}|\mathbf{\mu}_k, \mathbf{\Sigma}_k)}{\sum_{j=1}^K \pi_j \mathcal{N}(\mathbf{x}|\mathbf{\mu}_j, \mathbf{\Sigma}_j)} γ ( z k ) = p ( z k = 1∣ x ) = ∑ j = 1 K p ( z j = 1 ) p ( x ∣ z j = 1 ) p ( z k = 1 ) p ( x ∣ z k = 1 ) = ∑ j = 1 K π j N ( x ∣ μ j , Σ j ) π k N ( x ∣ μ k , Σ k )
一维和二维高斯混合
周期变量建模 - 冯·米塞斯分布 直觉 :想象一只钟表上的指针,它停在某个角度附近小幅摆动。如果用普通高斯分布去建模,角度 359 ∘ 359^\circ 35 9 ∘ 和 1 ∘ 1^\circ 1 ∘ 会被当作相距很远的两个点,但实际上它们只差 2 ∘ 2^\circ 2 ∘ 。冯·米塞斯分布(von Mises distribution)就是为这种”圆形数据”设计的——它是定义在圆周上的高斯分布的类比。
周期变量(periodic variable,如角度 θ ∈ [ 0 , 2 π ) \theta \in [0, 2\pi) θ ∈ [ 0 , 2 π ) ),无法用标准的高斯分布有效建模,因为高斯分布的支撑集(support,变量可以取值的范围)是整个实数轴,且无法处理 0 0 0 和 2 π 2\pi 2 π 的周期性连接。
冯·米塞斯分布也称为环形正态分布 (circular normal distribution)。其概率密度函数为(推导略):
p ( θ ∣ θ 0 , m ) = 1 2 π I 0 ( m ) exp { m cos ( θ − θ 0 ) } p(\theta|\theta_0, m) = \frac{1}{2\pi I_0(m)} \exp\{m \cos(\theta - \theta_0)\} p ( θ ∣ θ 0 , m ) = 2 π I 0 ( m ) 1 exp { m cos ( θ − θ 0 )} 其中 θ 0 \theta_0 θ 0 是均值方向,m ≥ 0 m \geq 0 m ≥ 0 是集中度参数 (类似于精度),I 0 ( m ) = 1 / 2 π ∫ 0 π e x p ( m cos θ ) d θ I_0(m) = 1 / 2\pi \int_0^\pi exp(m\cos\theta) d\theta I 0 ( m ) = 1/2 π ∫ 0 π e x p ( m cos θ ) d θ 是零阶修正贝塞尔函数,用于归一化。当 m m m 很大时,分布集中在 θ 0 \theta_0 θ 0 附近,近似高斯分布;当 m = 0 m=0 m = 0 时,分布退化为 [ 0 , 2 π ) [0, 2\pi) [ 0 , 2 π ) 上的均匀分布。
最大似然估计:对于数据集 { θ 1 , . . . , θ N } \{\theta_1, ..., \theta_N\} { θ 1 , ... , θ N } ,θ 0 \theta_0 θ 0 的最大似然估计 θ 0 M L \theta_{0}^\mathrm{ML} θ 0 ML 满足:
cos θ 0 M L = 1 N ∑ n = 1 N cos θ n , sin θ 0 M L = 1 N ∑ n = 1 N sin θ n \cos \theta_{0}^\mathrm{ML} = \frac{1}{N} \sum_{n=1}^N \cos \theta_n, \quad \sin \theta_{0}^\mathrm{ML} = \frac{1}{N} \sum_{n=1}^N \sin \theta_n cos θ 0 ML = N 1 n = 1 ∑ N cos θ n , sin θ 0 ML = N 1 n = 1 ∑ N sin θ n 这表明 θ 0 M L \theta_{0}^\mathrm{ML} θ 0 ML 是数据点在单位圆上投影的质心的方向。m m m 的最大似然估计需要数值求解方程 A ( m M L ) = R A(m_{\mathrm{ML}}) = R A ( m ML ) = R ,其中 R = ( ∑ cos θ n ) 2 + ( ∑ sin θ n ) 2 / N R = \sqrt{(\sum \cos \theta_n)^2 + (\sum \sin \theta_n)^2}/N R = ( ∑ cos θ n ) 2 + ( ∑ sin θ n ) 2 / N ,A ( m ) = I 1 ( m ) / I 0 ( m ) A(m) = I_1(m)/I_0(m) A ( m ) = I 1 ( m ) / I 0 ( m ) 。
冯·米塞斯分布同样是单峰的。为了建模多峰的周期性数据,可以使用冯·米塞斯分布的混合模型。
冯·米塞斯分布(左边为笛卡尔坐标系,右边为极坐标系)
指数族分布 直觉 :前面讲的伯努利、高斯等分布,看起来形状各异,但它们其实都是”一家人”——指数族分布(exponential family)。就像不同的饮料(咖啡、茶、果汁)都可以用”水+溶质”的框架来描述一样,指数族提供了一个统一的数学框架,把大多数常用分布纳入其中。
到目前为止,研究的概率分布基本都是指数族分布(混合模型除外)。
指数族分布是一大类重要的概率分布,其通用形式为:
p ( x ∣ η ) = h ( x ) g ( η ) exp { η ⊤ u ( x ) } p(x|\mathbf{\eta}) = h(x) g(\mathbf{\eta}) \exp\left\{ \mathbf{\eta}^\top \mathbf{u}(x) \right\} p ( x ∣ η ) = h ( x ) g ( η ) exp { η ⊤ u ( x ) } 其中:
η \mathbf{\eta} η 是自然参数 向量(natural parameter,将原始参数转换到指数族的标准形式),u ( x ) \mathbf{u}(x) u ( x ) 是充分统计量 向量(sufficient statistic,包含了从数据中提取参数所需的全部信息),h ( x ) h(x) h ( x ) 是底层测度函数(通常与参数无关),g ( η ) g(\mathbf{\eta}) g ( η ) 是归一化函数(normalizing function),确保分布的积分为 1: g ( η ) = [ ∫ h ( x ) exp { η ⊤ u ( x ) } d x ] − 1 g(\mathbf{\eta}) = \left[ \int h(x) \exp\left\{ \mathbf{\eta}^\top \mathbf{u}(x) \right\} dx \right]^{-1} g ( η ) = [ ∫ h ( x ) exp { η ⊤ u ( x ) } d x ] − 1 有时也写作对数归一化形式(更常见):
p ( x ∣ η ) = h ( x ) exp { η ⊤ u ( x ) − A ( η ) } p(x|\mathbf{\eta}) = h(x) \exp\left\{ \mathbf{\eta}^\top \mathbf{u}(x) - A(\mathbf{\eta}) \right\} p ( x ∣ η ) = h ( x ) exp { η ⊤ u ( x ) − A ( η ) } 其中 A ( η ) = − ln g ( η ) A(\mathbf{\eta}) = -\ln g(\mathbf{\eta}) A ( η ) = − ln g ( η ) 称为对数配分函数 或累积量生成函数。
用人话说 :指数族分布就是把各种常见分布(伯努利、高斯、泊松等)用一个统一的”模板”写出来。η \mathbf{\eta} η 是把原始参数(比如高斯的 μ , σ 2 \mu, \sigma^2 μ , σ 2 )变换后的”自然参数”,u ( x ) \mathbf{u}(x) u ( x ) 是数据的”充分统计量”(概括数据所有信息的函数),A ( η ) A(\mathbf{\eta}) A ( η ) 负责归一化。这个统一框架的好处是:很多性质(比如最大似然估计怎么算、共轭先验存不存在)对所有指数族分布都成立,不用每个分布单独推导。
性质:
充分统计量(给定数据集可以准确推出参数) 在最大似然估计中,参数的解仅依赖于数据的函数 ∑ n = 1 N u ( x n ) \sum_{n=1}^N \mathbf{u}(x_n) ∑ n = 1 N u ( x n ) ,而无需存储整个数据集。 这意味着,一旦计算出 ∑ n u ( x n ) \sum_n \mathbf{u}(x_n) ∑ n u ( x n ) ,原始数据可以被丢弃,这对大规模数据处理非常高效。 矩的计算 分布的矩(期望、方差等)可以通过对 A ( η ) A(\mathbf{\eta}) A ( η ) 进行微分得到: E [ u ( x ) ] = ∇ η A ( η ) \mathbb{E}[\mathbf{u}(x)] = \nabla_{\mathbf{\eta}} A(\mathbf{\eta}) E [ u ( x )] = ∇ η A ( η ) c o v [ u ( x ) ] = ∇ η ∇ η ⊤ A ( η ) \mathrm{cov}[\mathbf{u}(x)] = \nabla_{\mathbf{\eta}} \nabla_{\mathbf{\eta}}^\top A(\mathbf{\eta}) cov [ u ( x )] = ∇ η ∇ η ⊤ A ( η ) 这使得期望和方差的计算变得系统化和可解析。 共轭先验存在性 指数族分布都有一个对应的共轭先验,使得后验分布与先验属于同一分布族。 最大熵性质 在给定约束(如固定均值和方差)下,指数族分布是熵最大的分布,即最“不确定”或最“无偏”的选择。 例子:
伯努利分布 设 x ∈ { 0 , 1 } x \in \{0,1\} x ∈ { 0 , 1 } ,p ( x ∣ μ ) = μ x ( 1 − μ ) 1 − x p(x|\mu) = \mu^x (1-\mu)^{1-x} p ( x ∣ μ ) = μ x ( 1 − μ ) 1 − x 。 转换为指数族形式: p ( x ∣ η ) = exp { η x − ln ( 1 + e η ) } , 其中 η = ln ( μ 1 − μ ) p(x|\eta) = \exp\left\{ \eta x - \ln(1 + e^\eta) \right\}, \quad \text{其中 } \eta = \ln\left(\frac{\mu}{1-\mu}\right) p ( x ∣ η ) = exp { η x − ln ( 1 + e η ) } , 其中 η = ln ( 1 − μ μ ) 对应关系:η = ln ( μ / ( 1 − μ ) ) \eta = \ln(\mu/(1-\mu)) η = ln ( μ / ( 1 − μ )) (logit 变换),u ( x ) = x \mathbf{u}(x) = x u ( x ) = x ,h ( x ) = 1 h(x) = 1 h ( x ) = 1 ,A ( η ) = ln ( 1 + e η ) A(\eta) = \ln(1 + e^\eta) A ( η ) = ln ( 1 + e η ) 。 单变量高斯分布 N ( x ∣ μ , σ 2 ) \mathcal{N}(x|\mu, \sigma^2) N ( x ∣ μ , σ 2 ) 概率密度函数: p ( x ∣ μ , σ 2 ) = 1 2 π σ 2 exp { − ( x − μ ) 2 2 σ 2 } p(x|\mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left\{ -\frac{(x-\mu)^2}{2\sigma^2} \right\} p ( x ∣ μ , σ 2 ) = 2 π σ 2 1 exp { − 2 σ 2 ( x − μ ) 2 } 改写为指数族形式: p ( x ∣ η ) = 1 2 π exp { η 1 x + η 2 x 2 − A ( η ) } p(x|\mathbf{\eta}) = \frac{1}{\sqrt{2\pi}} \exp\left\{ \eta_1 x + \eta_2 x^2 - A(\mathbf{\eta}) \right\} p ( x ∣ η ) = 2 π 1 exp { η 1 x + η 2 x 2 − A ( η ) } 其中:自然参数:η = ( η 1 , η 2 ) ⊤ = ( μ σ 2 , − 1 2 σ 2 ) ⊤ \mathbf{\eta} = (\eta_1, \eta_2)^\top = \left( \frac{\mu}{\sigma^2}, -\frac{1}{2\sigma^2} \right)^\top η = ( η 1 , η 2 ) ⊤ = ( σ 2 μ , − 2 σ 2 1 ) ⊤ , 充分统计量:u ( x ) = ( x , x 2 ) ⊤ \mathbf{u}(x) = (x, x^2)^\top u ( x ) = ( x , x 2 ) ⊤ , 对数配分函数:A ( η ) = − η 1 2 4 η 2 + 1 2 ln ( − 1 2 η 2 ) A(\mathbf{\eta}) = -\frac{\eta_1^2}{4\eta_2} + \frac{1}{2}\ln\left(-\frac{1}{2\eta_2}\right) A ( η ) = − 4 η 2 η 1 2 + 2 1 ln ( − 2 η 2 1 ) 。 非参数方法 直觉 :前面的方法都假设数据服从某种特定分布(如高斯),然后去估计参数。非参数方法(non-parametric methods)反其道而行——不预设分布形状,而是让数据自己”说话”。就像用尺子去量一个不规则物体的轮廓,而不是先假设它是圆形。
非参数方法不假设固定的分布函数形式,其复杂度(模型的”自由度”)通常随数据量增长而增加。
直方图密度估计 将变量范围划分为固定宽度的区间/组(bin) ,密度估计为每个区间内数据点的频率除以区间宽度和总数据量。优点是简单直观,缺点是:
对 bin 宽度敏感:过窄导致噪声大,过宽导致细节丢失。 不连续性:在 bin 边界处密度发生跳跃。 维度灾难:在高维空间中,大部分 bin 为空。 直方图密度估计同样是充分统计量
核密度估计 核密度估计在每个数据点处放置一个核函数(在每个数据点周围放置一个”小山丘”并将所有这些”小山丘”叠加起来,形成整体的密度估计),然后求和。其形式为:
p ( x ) = 1 N ∑ n = 1 N 1 h D k ( x − x n h ) p(\mathbf{x}) = \frac{1}{N} \sum_{n=1}^N \frac{1}{h^D} k\left(\frac{\mathbf{x} - \mathbf{x}_n}{h}\right) p ( x ) = N 1 n = 1 ∑ N h D 1 k ( h x − x n ) 其中 N N N 是数据点数量,D D D 是数据的维度(比如二维数据 D = 2 D=2 D = 2 ),h h h 是带宽参数(每个”小山丘”的宽度),控制平滑程度,k ( u ) k(\mathbf{u}) k ( u ) 是核函数(需满足非负性和积分为1)。1 h D \frac{1}{h^D} h D 1 确保每个核函数在整个空间上的积分为1(维度越高,需要的”缩放”越大)。高斯核 k ( u ) = N ( u ∣ 0 , I ) k(\mathbf{u}) = \mathcal{N}(\mathbf{u}|\mathbf{0}, \mathbf{I}) k ( u ) = N ( u ∣ 0 , I ) 是常用选择。
核密度估计中不同带宽h对估计结果的影响(过小导致噪声,过大导致过平滑)
缺点是评估新点的密度计算成本与数据量 N N N 成正比,对于大数据集不实用。带宽 h h h 的选择是关键,影响平滑程度。
K-近邻密度估计 K-近邻方法解决了核密度估计中带宽 h h h 固定的问题。其核心思想是:在估计点 x \mathbf{x} x 附近,以 x \mathbf{x} x 为中心的球体包含恰好 K K K 个数据点 ,球的体积 V V V 由数据决定。密度估计为:
p ( x ) = K N V p(\mathbf{x}) = \frac{K}{N V} p ( x ) = N V K 其中 V V V 是包含 K K K 个最近邻的球体的体积。
K-近邻密度估计中不同K值对估计结果的影响(固定带宽和自适应带宽的区别)
优点是可以自适应平滑。在数据密集区域,V V V 小,h h h 小,能捕捉细节;在稀疏区域,V V V 大,h h h 大,避免噪声。 缺点是同样需要存储全部数据,计算新点的密度需要找到 K K K 个最近邻,成本高昂。当 K K K 较小时,估计可能不稳定。
习题1 你抛一枚硬币 10 次,结果 7 次正面。你猜这枚硬币正面朝上的概率 μ \mu μ 是多少?
最大似然估计直接告诉你:μ = 0.7 \mu = 0.7 μ = 0.7 。就是正面出现的频率,简单粗暴。
但你想想,才抛 10 次就下结论,万一第 11 次到第 100 次全是反面呢?数据太少的时候,MLE 容易被”运气”带偏。
如果你觉得”这硬币大概率是均匀的”(先验 Beta ( 2 , 2 ) \text{Beta}(2,2) Beta ( 2 , 2 ) ),用 MAP 估计结果会变成多少?
MAP 会把你的先验和数据”折中”一下:后验是 Beta ( 9 , 5 ) \text{Beta}(9, 5) Beta ( 9 , 5 ) ,众数约 0.67 0.67 0.67 。比 MLE 的 0.7 0.7 0.7 往 0.5 0.5 0.5 方向靠了靠——先验在数据少的时候会”拽”你一把,不让你太相信小样本的运气。
习题2 做线性回归的时候,我们总假设误差服从高斯分布。为什么偏偏是高斯?这和”最小二乘法”有什么关系?
其实它们是一回事。假设误差是高斯的,那最大似然估计推出来恰好就是”让平方和误差最小”——也就是最小二乘法。所以你用最小二乘法,本质上就是在假设误差是高斯的。
模型越来越复杂(比如多项式次数越来越高),偏差和方差分别怎么变?
复杂度上去了,偏差降了(模型更能捕捉真实规律),但方差涨了(开始拟合噪声)。反过来,太简单则偏差高、方差低。最优模型就是在这两者之间找一个”甜蜜点”。
第3章小结 一句话版本 :本章从最简单的”抛硬币”(伯努利)出发,一路扩展到”掷骰子”(多项式)、“椭球云”(多元高斯)、“圆形数据”(冯·米塞斯),最后用”统一配方”(指数族)把它们串起来,再补充了”让数据自己说话”的非参数方法。
知识地图 :
选择分布的速查表:
离散二元数据 → 伯努利分布 计数数据 → 二项分布或多项分布 连续数据且假设正态性 → 高斯分布 周期性数据 → 冯·米塞斯分布 复杂多模态数据 → 高斯混合模型 Chapter4 单层网络:回归 在第1篇 的概率论基础和上面第3章的常用概率分布之后,本章将探讨如何利用这些分布进行实际的预测建模——这正是第3篇(分类) 的基础。我们将从最基础的线性回归开始,逐步建立完整的回归分析理论框架。
线性回归 直觉 :在散点图上画一条”最佳拟合线”,让所有数据点到这条线的距离尽可能小——这就是线性回归(linear regression)的核心思想。它根据一个 D D D 维输入向量(input vector,描述样本特征的向量)x \mathbf{x} x 预测一个或多个连续目标变量(target variable,要预测的值)t t t 。给定一个包含 N N N 个观测 { x n } \{\mathbf{x}_n\} { x n } 及其对应目标值 { t n } \{t_n\} { t n } 的训练集(training set),目标是为新的输入 x \mathbf{x} x 预测 t t t 的值。这通过一个函数 y ( x , w ) y(\mathbf{x}, \mathbf{w}) y ( x , w ) 实现,其中 w \mathbf{w} w 是可学习的参数向量(parameter vector,模型通过调整这些参数来拟合数据)。
最简单的模型是输入变量的线性组合:
y ( x , w ) = w 0 + w 1 x 1 + . . . + w D x D y(\mathbf{x}, \mathbf{w}) = w_0 + w_1 x_1 + ... + w_D x_D y ( x , w ) = w 0 + w 1 x 1 + ... + w D x D 其中 x = ( x 1 , . . . , x D ) ⊤ \mathbf{x} = (x_1, ..., x_D)^\top x = ( x 1 , ... , x D ) ⊤ 。该模型的关键特性是其关于参数 w \mathbf{w} w 的线性性。然而,它也是输入变量 x i x_i x i 的线性函数,这限制了其建模能力(只能学习线性关系)。
基函数 直觉 :如果数据不是直线关系(比如是抛物线),直接用线性模型拟合效果不好。基函数(basis function)的思路是:先对原始输入做非线性变换(比如把 x x x 变成 x 2 x^2 x 2 、e x e^x e x 等),再对变换后的结果做线性组合。就像先把弯曲的铁丝拉直,再用直尺去量。
为了扩展模型能力(可以建模非线性关系),可以使用输入变量的固定非线性函数的线性组合:
y ( x , w ) = w 0 + ∑ j = 1 M − 1 w j ϕ j ( x ) y(\mathbf{x}, \mathbf{w}) = w_0 + \sum_{j=1}^{M-1} w_j \phi_j(\mathbf{x}) y ( x , w ) = w 0 + j = 1 ∑ M − 1 w j ϕ j ( x ) 其中 ϕ j ( x ) \phi_j(\mathbf{x}) ϕ j ( x ) 称为基函数 (basis function,对输入做非线性变换的固定函数)。参数 w 0 w_0 w 0 称为偏置参数 ,用于处理数据中的固定偏移。通常,通过定义一个虚拟基函数 ϕ 0 ( x ) = 1 \phi_0(\mathbf{x}) = 1 ϕ 0 ( x ) = 1 ,可以将模型写为更紧凑的向量形式:
y ( x , w ) = ∑ j = 0 M − 1 w j ϕ j ( x ) = w ⊤ ϕ ( x ) y(\mathbf{x}, \mathbf{w}) = \sum_{j=0}^{M-1} w_j \phi_j(\mathbf{x}) = \mathbf{w}^\top \mathbf{\phi}(\mathbf{x}) y ( x , w ) = j = 0 ∑ M − 1 w j ϕ j ( x ) = w ⊤ ϕ ( x ) 其中 w = ( w 0 , . . . , w M − 1 ) ⊤ \mathbf{w} = (w_0, ..., w_{M-1})^\top w = ( w 0 , ... , w M − 1 ) ⊤ ,ϕ = ( ϕ 0 , . . . , ϕ M − 1 ) ⊤ \mathbf{\phi} = (\phi_0, ..., \phi_{M-1})^\top ϕ = ( ϕ 0 , ... , ϕ M − 1 ) ⊤ 。
这个模型可以用一个简单的神经网络图来表示。
常见的基函数ϕ j ( x ) \phi_j(\mathbf{x}) ϕ j ( x ) :
线性基:ϕ j ( x ) = x j \phi_j(\mathbf{x}) = x_j ϕ j ( x ) = x j 高斯函数:ϕ j ( x ) = e − 1 2 s 2 ( x j − μ j ) 2 \phi_j(\mathbf{x}) = e^{-\frac{1}{2s^2} (x_j - \mu_j)^2} ϕ j ( x ) = e − 2 s 2 1 ( x j − μ j ) 2 sigmoid函数:ϕ j ( x ) = 1 1 + e − x − μ j s \phi_j(\mathbf{x}) = \frac{1}{1 + e^{- \frac{x -\mu_j} {s}}} ϕ j ( x ) = 1 + e − s x − μ j 1 最大似然与最小二乘 假设目标变量 t t t 的条件分布是高斯分布,均值为模型输出 y ( x , w ) y(\mathbf{x}, \mathbf{w}) y ( x , w ) ,方差为 σ 2 \sigma^2 σ 2 :
p ( t ∣ x , w , σ 2 ) = N ( t ∣ y ( x , w ) , σ 2 ) p(t|\mathbf{x}, \mathbf{w}, \sigma^2) = \mathcal{N}(t|y(\mathbf{x}, \mathbf{w}), \sigma^2) p ( t ∣ x , w , σ 2 ) = N ( t ∣ y ( x , w ) , σ 2 ) 对于独立同分布(累积)的数据集,其对数似然函数(累加)为:
ln p ( t ∣ X , w , σ 2 ) = − 1 2 σ 2 ∑ n = 1 N { y ( x n , w ) − t n } 2 − N 2 ln σ 2 + c o n s t \ln p(\mathbf{t}|\mathbf{X}, \mathbf{w}, \sigma^2) = -\frac{1}{2\sigma^2} \sum_{n=1}^N \{y(\mathbf{x}_n, \mathbf{w}) - t_n\}^2 - \frac{N}{2} \ln \sigma^2 + \mathrm{const} ln p ( t ∣ X , w , σ 2 ) = − 2 σ 2 1 n = 1 ∑ N { y ( x n , w ) − t n } 2 − 2 N ln σ 2 + const 最大化对数似然等价于最小化平方和误差函数(见上,第二章-最大化对数似然等价于最小化平方和误差函数 ):
E D ( w ) = 1 2 ∑ n = 1 N { t n − w ⊤ ϕ ( x n ) } 2 E_D(\mathbf{w}) = \frac{1}{2} \sum_{n=1}^N \{t_n - \mathbf{w}^\top \mathbf{\phi}(\mathbf{x}_n)\}^2 E D ( w ) = 2 1 n = 1 ∑ N { t n − w ⊤ ϕ ( x n ) } 2 将模型 y ( x , w ) = w ⊤ ϕ ( x ) y(\mathbf{x}, \mathbf{w}) = \mathbf{w}^\top \mathbf{\phi}(\mathbf{x}) y ( x , w ) = w ⊤ ϕ ( x ) 代入上面的误差函数 E D ( w ) E_D(\mathbf{w}) E D ( w ) ,并对其关于 w \mathbf{w} w 求导并令导数为零,得到最小二乘问题的正规方程 :
w M L = ( Φ ⊤ Φ ) − 1 Φ ⊤ t \mathbf{w}_{\mathrm{ML}} = (\mathbf{\Phi}^\top \mathbf{\Phi})^{-1} \mathbf{\Phi}^\top \mathbf{t} w ML = ( Φ ⊤ Φ ) − 1 Φ ⊤ t 其中 Φ \mathbf{\Phi} Φ 是设计矩阵(design matrix,每行是一个样本的基函数值向量),其元素为 Φ n j = ϕ j ( x n ) \Phi_{nj} = \phi_j(\mathbf{x}_n) Φ nj = ϕ j ( x n ) 。
伪逆:当矩阵 Φ \mathbf{\Phi} Φ 不满秩/非方阵时,最小二乘解不存在。此时,最小二乘解可以通过伪逆矩阵 Φ † = Φ ⊤ ( Φ Φ ⊤ ) − 1 \mathbf{\Phi}^\dagger = \mathbf{\Phi}^\top (\mathbf{\Phi} \mathbf{\Phi}^\top)^{-1} Φ † = Φ ⊤ ( Φ Φ ⊤ ) − 1 得到。(此时视为 Φ † = Φ − 1 \mathbf{\Phi}^\dagger = \mathbf{\Phi}^{-1} Φ † = Φ − 1 )
最小二乘的几何表示:
直觉 :想象目标向量 t \mathbf{t} t 是空间中的一个点,模型只能在某个平面上”落脚”。最小二乘就是找到平面上离 t \mathbf{t} t 最近的那个点——也就是 t \mathbf{t} t 在平面上的正交投影(orthogonal projection,垂直投影)。
最小二乘解可以理解为:模型预测 y = Φ w \mathbf{y} = \mathbf{\Phi} \mathbf{w} y = Φw 是目标向量 t \mathbf{t} t 在由设计矩阵 Φ \mathbf{\Phi} Φ 的列向量(即基函数在数据点上的值)所张成的线性子空间(linear subspace,列向量所有线性组合构成的空间)上的正交投影 。误差向量 t − y \mathbf{t} - \mathbf{y} t − y 与该子空间正交,这正是正规方程 Φ ⊤ ( t − Φ w ) = 0 \mathbf{\Phi}^\top (\mathbf{t} - \mathbf{\Phi} \mathbf{w}) = \mathbf{0} Φ ⊤ ( t − Φw ) = 0 的几何含义。
最小二乘法的本质是将真实目标向量投影到模型可表达的子空间上
红色平面表示由设计矩阵 Φ \mathbf{\Phi} Φ 的列向量张成的线性子空间 S S S 。 这个子空间是所有可能的模型输出 y = Φ w \mathbf{y} = \mathbf{\Phi} \mathbf{w} y = Φw 的集合(即模型能拟合的所有函数值的集合)。 每一列 ϕ j ( x n ) \phi_j(\mathbf{x}_n) ϕ j ( x n ) 是一个基函数在数据点上的取值,这些向量共同构成了这个子空间。 绿色箭头代表真实的目标值向量 t \mathbf{t} t ,它是从原点指向某个不在子空间 S S S 中的点。 它表示我们希望模型去逼近的真实观测结果。 蓝色箭头 y \mathbf{y} y 是 t \mathbf{t} t 在子空间 S S S 上的正交投影。 它是模型预测的结果,即 y = Φ w M L \mathbf{y} = \mathbf{\Phi} \mathbf{w}_{\mathrm{ML}} y = Φ w ML 。 最小二乘的目标就是找到这样一个 y \mathbf{y} y ,使得它尽可能接近 t \mathbf{t} t 。 黑色箭头表示残差(误差)e \mathbf{e} e ,即实际值与预测值之间的差距。 它垂直于子空间 S S S ,说明误差向量与子空间中任意方向都正交。 这正是正规方程的核心含义: Φ ⊤ ( t − Φ w ) = 0 \mathbf{\Phi}^\top (\mathbf{t} - \mathbf{\Phi} \mathbf{w}) = \mathbf{0} Φ ⊤ ( t − Φw ) = 0 (即误差向量与所有基函数的方向正交)。 φ 1 \varphi_1 φ 1 φ 2 \varphi_2 φ 2 表示基函数,元素为 ϕ j ( x n ) \phi_j(\mathbf{x}_n) ϕ j ( x n ) 。序贯学习 直觉 :前面的正规方程需要一次性把所有数据”吞下去”才能算出结果。如果数据量巨大或者数据源源不断到来,怎么办?随机梯度下降(Stochastic Gradient Descent, SGD)的策略是:每来一个数据点,就沿着误差下降的方向小幅调整参数,就像下山时每走一步就调整方向。
当数据集很大或数据流式到达时,批量处理所有数据计算 w M L \mathbf{w}_{\mathrm{ML}} w ML 可能不切实际。在这里可以使用随机梯度下降 (SGD) 进行序贯学习。对于平方和误差函数,SGD 更新规则为:
w ( τ + 1 ) = w ( τ ) − η ∇ E = w ( τ ) + η ( t n − w ( τ ) ⊤ ϕ n ) ϕ n \mathbf{w}^{(\tau+1)} = \mathbf{w}^{(\tau)} - \eta \nabla E = \mathbf{w}^{(\tau)} + \eta (t_n - \mathbf{w}^{(\tau)\top} \mathbf{\phi}_n) \mathbf{\phi}_n w ( τ + 1 ) = w ( τ ) − η ∇ E = w ( τ ) + η ( t n − w ( τ ) ⊤ ϕ n ) ϕ n (∇ E \nabla E ∇ E 使用上面的平方和误差函数)其中 ϕ n = ϕ ( x n ) \mathbf{\phi}_n = \mathbf{\phi}(\mathbf{x}_n) ϕ n = ϕ ( x n ) ,η \eta η 是学习率。这被称为最小二乘法/最小均方 (LMS) 算法。
正则化最小二乘 在第1篇 我们讲过:为了防止过拟合(overfitting,模型过度适应训练数据中的噪声,导致在新数据上表现差),尤其是在基函数数量多或数据量少时,可以在误差函数中加入正则化项(regularization term,惩罚模型复杂度的附加项)。最简单的形式是 L2 正则化(L2 regularization,也叫权重衰减 weight decay,惩罚参数的平方和):
E ( w ) = 1 2 ∑ n = 1 N { t n − w ⊤ ϕ ( x n ) } 2 + λ 2 w ⊤ w E(\mathbf{w}) = \frac{1}{2} \sum_{n=1}^N \{t_n - \mathbf{w}^\top \mathbf{\phi}(\mathbf{x}_n)\}^2 + \frac{\lambda}{2} \mathbf{w}^\top \mathbf{w} E ( w ) = 2 1 n = 1 ∑ N { t n − w ⊤ ϕ ( x n ) } 2 + 2 λ w ⊤ w 最小化该函数得到的解为:
w = ( Φ ⊤ Φ + λ I ) − 1 Φ ⊤ t \mathbf{w} = (\mathbf{\Phi}^\top \mathbf{\Phi} + \lambda \mathbf{I})^{-1} \mathbf{\Phi}^\top \mathbf{t} w = ( Φ ⊤ Φ + λ I ) − 1 Φ ⊤ t 正则化项确保了矩阵 ( Φ ⊤ Φ + λ I ) (\mathbf{\Phi}^\top \mathbf{\Phi} + \lambda \mathbf{I}) ( Φ ⊤ Φ + λ I ) 总是可逆的,即使 Φ ⊤ Φ \mathbf{\Phi}^\top \mathbf{\Phi} Φ ⊤ Φ 是奇异的。(是w M L \mathbf{w}_{ML} w M L 的拓展,见上w M L \mathbf{w}_{ML} w M L -最小二乘问题的正规方程 )
决策理论 直觉 :你预测明天的气温是 25 ∘ C 25^\circ C 2 5 ∘ C ,实际是 23 ∘ C 23^\circ C 2 3 ∘ C 。这个预测”差了多少”?差 2 ∘ C 2^\circ C 2 ∘ C 意味着什么代价?决策理论(decision theory)就是回答”如何根据概率模型做出最优预测”的框架,详见第3篇(分类) 中的进一步讨论。
下一章还会详细说明
决策理论指导我们如何根据概率模型做出最优预测。对于回归问题,我们使用损失函数(loss function,量化预测与真实值之间”代价”的函数)L ( t , y ( x ) ) L(t, y(\mathbf{x})) L ( t , y ( x )) 来量化预测 y ( x ) y(\mathbf{x}) y ( x ) 与真实值 t t t 之间的代价。目标是选择预测函数 y ( x ) y(\mathbf{x}) y ( x ) 以最小化期望损失 :
E [ L ] = ∬ L ( t , y ( x ) ) p ( x , t ) d x d t \mathbb{E}[L] = \iint L(t, y(\mathbf{x})) p(\mathbf{x}, t) d\mathbf{x} dt E [ L ] = ∬ L ( t , y ( x )) p ( x , t ) d x d t 对于平方损失 L ( t , y ) = { y − t } 2 L(t, y) = \{y - t\}^2 L ( t , y ) = { y − t } 2 ,最小化期望损失得到的最优预测函数是条件均值 :
y ( x ) = E t [ t ∣ x ] = ∫ t p ( t ∣ x ) d t y(\mathbf{x}) = \mathbb{E}_t[t|\mathbf{x}] = \int t p(t|\mathbf{x}) dt y ( x ) = E t [ t ∣ x ] = ∫ tp ( t ∣ x ) d t 注意不要将误差函数和损失函数搞混,误差函数用于在训练过程中设置参数,而损失函数用于控制如何使用条件分布来达到预测函数f(x)以预测x,这正是线性回归模型试图学习的目标。
期望损失可以分解为两部分:
E [ L ] = ∫ { y ( x ) − E [ t ∣ x ] } 2 p ( x ) d x + ∫ v a r [ t ∣ x ] p ( x ) d x \mathbb{E}[L] = \int \{y(\mathbf{x}) - \mathbb{E}[t|\mathbf{x}]\}^2 p(\mathbf{x}) d\mathbf{x} + \int \mathrm{var}[t|\mathbf{x}] p(\mathbf{x}) d\mathbf{x} E [ L ] = ∫ { y ( x ) − E [ t ∣ x ] } 2 p ( x ) d x + ∫ var [ t ∣ x ] p ( x ) d x 第一项是预测函数与真实回归函数之间的均方误差(可以通过改进模型来减小),第二项是目标变量在给定输入下的方差(irreducible error,不可约误差,无论模型多好都无法消除的噪声)。
最小化平方损失的回归函数由条件分布的均值给出
其他损失函数:
Minkowski 损失:L q = ∣ y − t ∣ q L_q = |y - t|^q L q = ∣ y − t ∣ q 。 q = 2 q=2 q = 2 :最优解为条件均值。q = 1 q=1 q = 1 :最优解为条件中位数。q → 0 q \to 0 q → 0 :最优解为条件众数。
q取不同值时的影响
偏差-方差权衡 直觉(打靶比喻) :想象你在打靶。
**偏差(bias)**是你的枪口瞄得准不准——如果瞄准镜歪了,所有子弹都会偏离靶心,但弹孔很集中。 **方差(variance)**是你的手抖不抖——即使瞄准镜没问题,手抖会让弹孔散布在靶心周围。 高偏差+低方差 = 枪口歪但手稳(简单模型,欠拟合) 低偏差+高方差 = 枪口正但手抖(复杂模型,过拟合) 最佳 = 枪口正且手稳(偏差和方差的平衡点) 在模型选择中,存在偏差(bias,模型的系统性预测偏差)和方差(variance,模型对训练数据变化的敏感程度)之间的权衡。偏差衡量模型的平均预测与真实函数之间的系统性偏差。方差衡量模型预测对特定训练数据集的敏感性。
考虑一个简单的回归问题,其中真实函数为 f ( x ) f(x) f ( x ) ,观测数据由 t = f ( x ) + ϵ t = f(x) + \epsilon t = f ( x ) + ϵ 生成,ϵ \epsilon ϵ 为零均值噪声。使用一个模型 y ( x ; D ) y(x; \mathcal{D}) y ( x ; D ) (依赖于数据集 D \mathcal{D} D )进行预测。期望预测误差可以分解为:
E [ ( y − t ) 2 ] = E [ ( y − y ˉ + y ˉ − f + f − t ) 2 ] = E [ ( y − y ˉ + y ˉ − f − ϵ ) 2 ] = E [ ( y − y ˉ ) 2 + ( y ˉ − f ) 2 + ϵ 2 + ⋯ ] = ( y ˉ ( x ) − f ( x ) ) 2 + E [ ( y ( x ; D ) − y ˉ ( x ) ) 2 ] + E [ ϵ 2 ] \begin{aligned} \mathbb{E}[(y - t)^2] &= \mathbb{E}[(y - \bar{y} + \bar{y} - f + f - t)^2] \\ &= \mathbb{E}[(y - \bar{y} + \bar{y} - f - \epsilon)^2] \\ &= \mathbb{E}[(y - \bar{y})^2 + (\bar{y} - f)^2 + \epsilon^2 + \cdots] \\ &= (\bar{y}(x) - f(x))^2 + \mathbb{E}[(y(x; \mathcal{D}) - \bar{y}(x))^2] + \mathbb{E}[\epsilon^2] \end{aligned} E [( y − t ) 2 ] = E [( y − y ˉ + y ˉ − f + f − t ) 2 ] = E [( y − y ˉ + y ˉ − f − ϵ ) 2 ] = E [( y − y ˉ ) 2 + ( y ˉ − f ) 2 + ϵ 2 + ⋯ ] = ( y ˉ ( x ) − f ( x ) ) 2 + E [( y ( x ; D ) − y ˉ ( x ) ) 2 ] + E [ ϵ 2 ] 其中 y ˉ ( x ) = E D [ y ( x ; D ) ] \bar{y}(x) = \mathbb{E}_\mathcal{D}[y(x; \mathcal{D})] y ˉ ( x ) = E D [ y ( x ; D )] 是模型在不同数据集上的平均预测(想象用无数个不同的训练集训练同一个模型,取预测的平均值)。
高偏差,低方差 (打靶时瞄准镜歪但手稳):简单模型(如低阶多项式)可能无法捕捉数据的复杂性,导致高偏差,但其预测对数据集的变化不敏感(低方差) -> 欠拟合(underfitting,模型太简单,连训练数据的规律都没学到)低偏差,高方差 (打靶时瞄准镜正但手抖):复杂模型(如高阶多项式)可以很好地拟合训练数据(低偏差),但可能对训练数据中的噪声过度拟合,导致在不同数据集上预测差异很大(高方差) -> 过拟合最优模型在偏差和方差之间取得平衡,使总误差最小。这个权衡是第1篇 中模型选择问题的理论基础,也会在第3篇(分类) 中再次出现。
偏差-方差权衡(左边方差越来越大,右边偏差越来越小)
习题3 你做线性回归,加了 L2 正则化之后测试集表现变好了。这玩意儿是怎么”歪打正着”改善泛化的?
正则化就是给模型加个”紧箍咒”——不让权重太大。这么一来模型复杂度降了,方差跟着降(没那么容易被噪声带跑了),但偏差会稍微涨一点(没那么灵活了)。不过只要正则化强度合适,方差降的那部分比偏差涨的那部分大,总误差反而变小了。
说白了就是:宁可稍微欠拟合一点,也别过拟合到训练集的噪声上。
第4章小结 一句话版本 :线性回归 = 在散点图上画最佳拟合线;决策理论 = 告诉你”最佳”怎么定义(最小化损失);偏差-方差权衡 = 模型太简单会欠拟合、太复杂会过拟合,需要找平衡点。
知识地图 :
│ ├── 基础模型:y = w^T x(画直线)
│ ├── 基函数扩展:y = w^T phi(x)(画曲线)
│ │ ├── 最大似然 ≡ 最小二乘(正规方程)
│ └── 期望损失 = 可约误差 + 不可约误差
深度学习笔记-2:概率分布、线性回归与偏差-方差权衡 周一 9月 01 202511037 字 · 43 分钟