数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
二、分类任务最大熵模型
设分类模型是一个条件概率分布 $ MathJax-Element-87 $ 为输入, $ MathJax-Element-88 $ 为输出。
给定一个训练数据集 $ MathJax-Element-514 $ ,学习的目标是用最大熵原理选取最好的分类模型。
2.1 最大熵模型
根据训练集 $ MathJax-Element-1005 $ ,可以得到联合分布 $ MathJax-Element-90 $ 的经验分布 $ MathJax-Element-99 $ 和 $ MathJax-Element-91 $ 的经验分布 $ MathJax-Element-109 $ :
$ \tilde P(X=\vec{\mathbf x},Y=y)=\frac{\upsilon(X=\vec{\mathbf x}, Y=y)}{N} ,\quad \vec{\mathbf x} \in\mathcal X,y\in \mathcal Y\\ \tilde P(X)=\frac{\upsilon(X=\vec{\mathbf x})}{N} ,\quad \vec{\mathbf x} \in\mathcal X $其中 $ MathJax-Element-165 $ 为样本数量, $ MathJax-Element-94 $ 为频数。
用特征函数 $ MathJax-Element-107 $ 描述输入 $ MathJax-Element-96 $ 和输出 $ MathJax-Element-97 $ 之间的某个事实:
$ f(\vec{\mathbf x},y)= \begin{cases} 1, & \text{if $\vec{\mathbf x},y$ statisfy the fact.} \\ 0, & \text{or else.} \end{cases} $特征函数是一个二值函数,但是理论上它也可以取任意值。
特征函数 $ MathJax-Element-107 $ 关于经验分布 $ MathJax-Element-99 $ 的期望定义为 $ MathJax-Element-100 $ : $ MathJax-Element-519 $ 。
这个期望其实就是约束 $ MathJax-Element-113 $ 在训练集上的统计结果的均值(也就是约束 $ MathJax-Element-113 $ 出现的期望的估计量)。
- 如果 $ MathJax-Element-113 $ 取值为二值
0,1
,则表示约束 $ MathJax-Element-113 $ 在训练集上出现的次数的均值。 - 如果 $ MathJax-Element-113 $ 取值为任意值,则表示约束 $ MathJax-Element-113 $ 在训练集上累计的结果的均值。
- 如果 $ MathJax-Element-113 $ 取值为二值
特征函数 $ MathJax-Element-107 $ 关于模型 $ MathJax-Element-121 $ 与经验分布 $ MathJax-Element-109 $ 的期望用 $ MathJax-Element-110 $ 表示:
$ \mathbb E_{P}[f]=\sum_{\vec{\mathbf x},y}\tilde P(\vec{\mathbf x})P(y\mid \vec{\mathbf x})f(\vec{\mathbf x},y) $理论上 $ MathJax-Element-2317 $ ,这里使用 $ MathJax-Element-1706 $ 作为 $ MathJax-Element-1708 $ 的估计。
可以假设这两个期望相等,即: $ MathJax-Element-111 $ 。
- $ MathJax-Element-181 $ 在 $ MathJax-Element-2330 $ 时为 0,在 $ MathJax-Element-2333 $ 才有可能非 0 。因此 $ MathJax-Element-519 $ 仅仅在 $ MathJax-Element-2333 $ 上累加。
- $ MathJax-Element-1706 $ 在 $ MathJax-Element-2342 $ 时为 0,在 $ MathJax-Element-2344 $ 才有可能非 0 。因此 $ MathJax-Element-543 $ 仅在 $ MathJax-Element-2352 $ 上累加。
理论上,由于 $ MathJax-Element-581 $ ,看起来可以使用 $ MathJax-Element-114 $ 作为 $ MathJax-Element-153 $ 的一个估计。
但是这个估计只考虑某个点 $ MathJax-Element-116 $ 上的估计,并未考虑任何约束。所以这里通过特征函数的两种期望相等来构建在数据集整体上的最优估计。
最大熵模型:假设有 $ MathJax-Element-119 $ 个约束条件 $ MathJax-Element-124 $ ,满足所有约束条件的模型集合为: $ MathJax-Element-120 $ 。
定义在条件概率分布 $ MathJax-Element-121 $ 上的条件熵为:
$ H(P)=-\sum_{\vec{\mathbf x},y}\tilde P(\vec{\mathbf x})P(y\mid \vec{\mathbf x})\log P(y\mid \vec{\mathbf x}) $则模型集合 $ MathJax-Element-122 $ 中条件熵最大的模型称为最大熵模型。
2.2 词性标注约束案例
在词性标注任务中,给定单词序列 $ MathJax-Element-743 $ ,需要给出每个单词对应的词性 $ MathJax-Element-748 $ 。如 :
{他们 吃 苹果}
对应的标注序列为{代词 动词 名词}
。假设标注仅仅与当前单词有关,与前面、后面的单词无关,也无前面、后面的标注有关。即:标注 $ MathJax-Element-998 $ 由单词 $ MathJax-Element-1000 $ 唯一决定。
则统计文本中所有单词及其词性,得到训练集 $ MathJax-Element-1035 $ ,其中 $ MathJax-Element-165 $ 为单词数量。
假设没有任何约束,则每个单词取得任何词性的概率都是等可能的。现在发现:
$ f(v,s)=\begin{cases} 1,& 当 v 为苹果, 且 s 为名词时\\ 0,& 其他情况 \end{cases} $苹果
这个单词的词性标记结果中,大部分都是名词
,因此可以定义特征函数:统计满足特征函数的样本的个数 $ MathJax-Element-164 $ ,除以样本总数 $ MathJax-Element-165 $ 。则可以认为:当数据足够多时,这个商就是统计意义下的结果:
$ \mathbb E_{\tilde P}[f(v,s)]=\sum_{v,s}\tilde P(v,s)f(v,s)=\frac {N_f}N $其中:
- $ MathJax-Element-1049 $ , $ MathJax-Element-935 $ 为二元对 $ MathJax-Element-937 $ 出现的次数。
- 满足特征函数的样本出现总数为: $ MathJax-Element-2365 $ 。
事实上对于任意单词 $ MathJax-Element-166 $ ,其中 $ MathJax-Element-1082 $ 为所有单词的词汇表, $ MathJax-Element-1115 $ 为词汇表大小; 以及对任意词性 $ MathJax-Element-168 $ ,其中 $ MathJax-Element-1111 $ 为词性集合(如名词、动词、形容词....), $ MathJax-Element-1116 $ 为词性表大小。 可以任意选择搭配从而构造非常庞大的特征函数:
$ f_{1,1}(v,s)=\begin{cases} 1,& v=\mathbf v_1,\text{and}\; s=\mathbf s_1\\ 0,& other \end{cases}\\ f_{1,2}(v,s)=\begin{cases} 1,& v=\mathbf v_1,\text{and}\; s=\mathbf s_2\\ 0,& other \end{cases}\\ \vdots\\ f_{i,j}(v,s)=\begin{cases} 1,& v=\mathbf v_i,\text{and}\; s=\mathbf s_j\\ 0,& other \end{cases}\\ \vdots\\ \mathbf v_i\in \mathbb V,\mathbf s_j \in \mathbb S $以及约束条件: $ MathJax-Element-1418 $ 。其中 $ MathJax-Element-1420 $ 为满足特征函数 $ MathJax-Element-1423 $ 的样本个数。
- 如果 $ MathJax-Element-1420 $ 较大,则说明该约束指定的
单词,词性
搭配的可能性很高。 - 如果 $ MathJax-Element-1420 $ 较小,则说明该约束指定的
单词,词性
搭配的可能性很低。 - 如果 $ MathJax-Element-1420 $ 为 0,则说明该约束指定的
单词,词性
搭配几乎不可能出现。
- 如果 $ MathJax-Element-1420 $ 较大,则说明该约束指定的
待求的模型为 $ MathJax-Element-1152 $ 。以矩阵的形式描述为:
$ \mathbf P=\begin{bmatrix} P_{1,1}&P_{1,2}&\cdots&P_{1,S}\\ P_{2,1}&P_{2,2}&\cdots&P_{2,S}\\ \vdots&\vdots&\ddots&\vdots\\ P_{V,1}&P_{V,2}&\cdots&P_{V,S} \end{bmatrix},\quad P_{i,j}\ge 0,\quad \sum_{j=1}^S P_{i,j}=1,i=1,2,\cdots,V $其中 $ MathJax-Element-1300 $ ,即单词 $ MathJax-Element-1302 $ 的词性为 $ MathJax-Element-1304 $ 的概率。
设单词 $ MathJax-Element-1302 $ 在 $ MathJax-Element-1005 $ 中出现的次数为 $ MathJax-Element-1383 $ ,则有: $ MathJax-Element-1409 $ 。则有:
$ \mathbb E_{P}[f_{i,j}]=\sum_{v,s}\tilde P(v)P(s\mid v)f_{i,j}(v,s) =\frac {N_i}{N}\times P_{i,j} $考虑到 $ MathJax-Element-1574 $ ,则根据 $ MathJax-Element-1580 $ 有:
$ P_{i,j}=\frac{N_{f_{i,j}}}{N_i} $其物理意义为:单词 $ MathJax-Element-1302 $ 的词性为 $ MathJax-Element-1304 $ 的概率 = 数据集 $ MathJax-Element-1005 $ 中单词 $ MathJax-Element-1302 $ 的词性为 $ MathJax-Element-1304 $ 出现的次数 / 数据集 $ MathJax-Element-1005 $ 中单词 $ MathJax-Element-1302 $ 出现的次数。
由于 $ MathJax-Element-1895 $ , $ MathJax-Element-1892 $ ,因此可以发现有:
$ \frac{\tilde P(v=\mathbf v_i,s=\mathbf s_j) }{\tilde P(v=\mathbf v_i)} =\frac{N_{f_{i,j}}}{N_i}= P_{i,j}= P(s=\mathbf s_j\mid v=\mathbf v_i) $因此在这个特殊的情形下, $ MathJax-Element-1961 $ 是 $ MathJax-Element-1962 $ 的估计。
事实上,真实的词性标注还需要考虑前后单词的词性的影响。比如:不可能出现连续的三个动词,也不可能出现连续的五个代词。
当需要考虑前后文影响时,需要使用
HMM
模型 或者CRF
模型。
2.3 模型求解
对给定的训练数据集 $ MathJax-Element-514 $ ,以及特征函数 $ MathJax-Element-124 $ ,最大熵模型的学习等价于约束最优化问题:
$ \max_{P\in \mathcal C} H(P)=-\sum_{\vec{\mathbf x},y}\tilde P(\vec{\mathbf x})P(y\mid \vec{\mathbf x})\log P(y\mid \vec{\mathbf x})\\ s.t.\mathbb E_P[f_i]=\mathbb E_{\tilde P}[f_i],i=1,2,\cdots,n\\ \sum_y P(y\mid \vec{\mathbf x})=1 $将其转化为最小化问题:
$ \min_{P\in \mathcal C} -H(P)=\sum_{\vec{\mathbf x},y}\tilde P(\vec{\mathbf x})P(y\mid \vec{\mathbf x})\log P(y\mid \vec{\mathbf x})\\ s.t.\mathbb E_P[f_i]-\mathbb E_{\tilde P}[f_i]=0,i=1,2,\cdots,n\\ \sum_y P(y\mid \vec{\mathbf x})=1 $其中:
- $ MathJax-Element-609 $ 是已知的。
- $ MathJax-Element-611 $ 是未知的。
将约束最优化的原始问题转换为无约束最优化的对偶问题,通过求解对偶问题来求解原始问题。
引入拉格朗日乘子 $ MathJax-Element-127 $ ,定义拉格朗日函数 $ MathJax-Element-131 $ :
$ L(P,\mathbf{\vec w})=-H(P)+w_0(1-\sum_y P(y\mid \vec{\mathbf x}))+\sum_{i=1}^{n}w_i(\mathbb E_{\tilde P}[f_i]-E_P(f_i))\\ =\sum_{\vec{\mathbf x},y}\tilde P(\vec{\mathbf x})P(y\mid \vec{\mathbf x})\log P(y\mid \vec{\mathbf x})+w_0\left(1-\sum_y P(y\mid \vec{\mathbf x})\right)\\ +\sum_{i=1}^{n}w_i\left(\sum_{\vec{\mathbf x},y}\tilde P(\vec{\mathbf x},y)f_i(\vec{\mathbf x},y)-\sum_{\vec{\mathbf x},y}\tilde P(\vec{\mathbf x})P(y\mid \vec{\mathbf x})f_i(\vec{\mathbf x},y)\right) $- 最优化的原始问题是: $ MathJax-Element-623 $ ,对偶问题是 $ MathJax-Element-628 $ 。
- 由于拉格朗日函数 $ MathJax-Element-131 $ 是凸函数,因此原始问题的解与对偶问题的解是等价的。
- 求解对偶问题:先求解内部的极小化问题,之后求解对偶问题外部的极大化问题。
先求解内部的极小化问题: $ MathJax-Element-656 $ 。
它是一个 $ MathJax-Element-182 $ 的函数,将其记作: $ MathJax-Element-662 $ 。
先用 $ MathJax-Element-131 $ 对 $ MathJax-Element-153 $ 求偏导数:
$ \frac{\partial L(P,\vec{\mathbf w})}{\partial P(y\mid \vec{\mathbf x})}=\sum_{\vec{\mathbf x},y}\tilde P(\vec{\mathbf x})(\log P(y\mid \vec{\mathbf x})+1)-\sum_y w_0-\sum_{\vec{\mathbf x},y}\left(\tilde P(\vec{\mathbf x})\sum_{i=1}^{n}w_if_i(\vec{\mathbf x},y)\right)\\ =\sum_{\vec{\mathbf x},y} \tilde P(\vec{\mathbf x})\left(\log P(y\mid \vec{\mathbf x})+1-w_0-\sum_{i=1}^{n}w_i f_i(\vec{\mathbf x},y)\right) $令偏导数为 0 。在 $ MathJax-Element-133 $ 时,解得:
$ P(y\mid \vec{\mathbf x})=\exp\left(\sum_{i=1}^{n}w_i f_i(\vec{\mathbf x},y)+w_0-1\right)=\frac{\exp\left(\sum_{i=1}^{n}w_i f_i(\vec{\mathbf x},y)\right)}{\exp(1-w_0)} $由于 $ MathJax-Element-134 $ ,则有: $ MathJax-Element-669 $ 。因此有:
$ \exp(1-w_0)=\sum_y \exp\left(\sum_{i=1}^{n}w_i f_i(\vec{\mathbf x},y)\right) $定义 $ MathJax-Element-699 $ 为规范因子,则:
$ P_\mathbf{\vec w}(y\mid \vec{\mathbf x})=\frac{1}{Z_\mathbf{\vec w}(\vec{\mathbf x})} \exp\left(\sum_{i=1}^{n}w_i f_i(\vec{\mathbf x},y)\right) $由该式表示的模型 $ MathJax-Element-138 $ 就是最大熵模型。
再求解对偶问题外部的极大化问题: $ MathJax-Element-705 $ 。
- 将其解记作 $ MathJax-Element-220 $ ,即: $ MathJax-Element-710 $ 。
- 求得 $ MathJax-Element-220 $ 之后,用它来表示 $ MathJax-Element-138 $ ,得到 $ MathJax-Element-139 $ ,即得到最大熵模型。
上述过程总结为:
- 先求对偶问题的内部极小化,得到 $ MathJax-Element-157 $ 函数,以及极值点 $ MathJax-Element-204 $ 。
- 再求 $ MathJax-Element-157 $ 函数的极大值,得到 $ MathJax-Element-220 $ 。
- 最后将 $ MathJax-Element-220 $ 代入 $ MathJax-Element-204 $ 得到最终模型 $ MathJax-Element-146 $ 。
可以证明: $ MathJax-Element-157 $ 函数的最大化,等价于最大熵模型的极大似然估计。
证明如下:已知训练数据 $ MathJax-Element-1005 $ 中, $ MathJax-Element-195 $ 出现的频次为 $ MathJax-Element-2155 $ 。则条件概率分布 $ MathJax-Element-153 $ 的对数似然函数为:
$ \log \prod_{\vec{\mathbf x},y} P(y\mid \vec{\mathbf x})^{k_{\vec{\mathbf x},y}}=\sum_{\vec{\mathbf x},y}k_{\vec{\mathbf x},y}\log P(y\mid \vec{\mathbf x}) $将对数似然函数除以常数 $ MathJax-Element-165 $ ,考虑到 $ MathJax-Element-2239 $ ,其中 $ MathJax-Element-181 $ 为经验概率分布。则 $ MathJax-Element-153 $ 的对数似然函数为:
$ \sum_{\vec{\mathbf x},y}\tilde P(\vec{\mathbf x},y) \log P(y\mid \vec{\mathbf x}) $再利用 :
$ P_\mathbf{\vec w}(y\mid \vec{\mathbf x})=\frac{1}{Z_\mathbf{\vec w}(\vec{\mathbf x})} \exp\left(\sum_{i=1}^{n}w_i f_i(\vec{\mathbf x},y)\right) $代入,最后化简合并,最终发现它就是 $ MathJax-Element-157 $ 。
2.4 最大熵与逻辑回归
设 $ MathJax-Element-1988 $ 为 $ MathJax-Element-119 $ 维变量,对于二类分类问题,定义 $ MathJax-Element-119 $ 个约束:
$ f_i(\mathbf{\vec x},y)=\begin{cases} x_i,&y=1\\ 0,&y=0 \end{cases},\quad i=1,2,\cdots,n $根据最大熵的结论,有:
$ Z_\mathbf{\vec w}(\vec{\mathbf x})=\sum_y \exp\left(\sum_{i=1}^{n}w_i f_i(\vec{\mathbf x},y)\right)=\exp\left(\sum_{i=1}^{n}w_i f_i(\vec{\mathbf x},y=0)\right)+\exp\left(\sum_{i=1}^{n}w_i f_i(\vec{\mathbf x},y=1)\right)\\ =1+\exp\left(\sum_{i=1}^{n}w_i x_i\right)=1+\exp(\mathbf{\vec w}\cdot \mathbf{\vec x}) $以及:
$ P_\mathbf{\vec w}(y\mid \vec{\mathbf x})=\frac{1}{Z_\mathbf{\vec w}(\vec{\mathbf x})} \exp\left(\sum_{i=1}^{n}w_i f_i(\vec{\mathbf x},y)\right) =\frac{1}{1+\exp(\mathbf{\vec w}\cdot \mathbf{\vec x})} \exp\left(\sum_{i=1}^{n}w_i f_i(\vec{\mathbf x},y)\right) $当 $ MathJax-Element-2494 $ 时有:
$ P_\mathbf{\vec w}(y=1\mid \vec{\mathbf x})=\frac{1}{1+\exp(\mathbf{\vec w}\cdot \mathbf{\vec x})} \exp\left(\sum_{i=1}^{n}w_i f_i(\vec{\mathbf x},y=1)\right)\\ =\frac{1}{1+\exp(\mathbf{\vec w}\cdot \mathbf{\vec x})} \exp\left(\sum_{i=1}^{n}w_i x_i\right) =\frac{\exp(\mathbf{\vec w}\cdot \mathbf{\vec x})}{1+\exp(\mathbf{\vec w}\cdot \mathbf{\vec x})} $当 $ MathJax-Element-2518 $ 时有:
$ P_\mathbf{\vec w}(y=0\mid \vec{\mathbf x})=\frac{1}{1+\exp(\mathbf{\vec w}\cdot \mathbf{\vec x})} \exp\left(\sum_{i=1}^{n}w_i f_i(\vec{\mathbf x},y=0)\right) =\frac{1}{1+\exp(\mathbf{\vec w}\cdot \mathbf{\vec x})} $
最终得到:
$ \log \frac{P_\mathbf{\vec w}(y=1\mid \vec{\mathbf x})}{P_\mathbf{\vec w}(y=0\mid \vec{\mathbf x})}=\mathbf{\vec w}\cdot \mathbf{\vec x} $这就是逻辑回归模型。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论