数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
二、线性支持向量机
- 对于线性不可分训练数据,线性支持向量机不再适用,但可以想办法将它扩展到线性不可分问题。
2.1 原始问题
设训练集为 $ MathJax-Element-511 $ ,其中 $ MathJax-Element-329 $ 。
假设训练数据集不是线性可分的,这意味着某些样本点 $ MathJax-Element-467 $ 不满足函数间隔大于等于 1 的约束条件。
对每个样本点 $ MathJax-Element-467 $ 引进一个松弛变量 $ MathJax-Element-195 $ ,使得函数间隔加上松弛变量大于等于 1。
即约束条件变成了: $ MathJax-Element-196 $ 。
对每个松弛变量 $ MathJax-Element-382 $ ,支付一个代价 $ MathJax-Element-382 $ 。目标函数由原来的 $ MathJax-Element-199 $ 变成:
$ \min \frac 12 ||\mathbf {\vec w}||^{2}_2+C\sum_{i=1}^{N}\xi_i $这里 $ MathJax-Element-200 $ 称作惩罚参数,一般由应用问题决定。
- $ MathJax-Element-504 $ 值大时,对误分类的惩罚增大,此时误分类点凸显的更重要
- $ MathJax-Element-504 $ 值较大时,对误分类的惩罚增加,此时误分类点比较重要。
- $ MathJax-Element-504 $ 值较小时,对误分类的惩罚减小,此时误分类点相对不重要。
相对于硬间隔最大化, $ MathJax-Element-204 $ 称为软间隔最大化。
于是线性不可分的线性支持向量机的学习问题变成了凸二次规划问题:
$ \min_{\mathbf {\vec w},b,\vec\xi} \frac 12||\mathbf {\vec w}||^{2}_2+C\sum_{i=1}^{N}\xi_i\\ s.t. \quad \tilde y_i(\mathbf {\vec w}\cdot \mathbf {\vec x}_i+b) \ge 1-\xi_i,\quad i=1,2,\cdots,N\\ \xi_i \ge 0,\quad i=1,2,\cdots,N $这称为线性支持向量机的原始问题。
因为这是个凸二次规划问题,因此解存在。
可以证明 $ MathJax-Element-205 $ 的解是唯一的; $ MathJax-Element-493 $ 的解不是唯一的, $ MathJax-Element-493 $ 的解存在于一个区间。
对于给定的线性不可分的训练集数据,通过求解软间隔最大化问题得到的分离超平面为: $ MathJax-Element-238 $ ,
以及相应的分类决策函数: $ MathJax-Element-209 $ ,称之为线性支持向量机。
- 线性支持向量机包含线性可分支持向量机。
- 现实应用中训练数据集往往是线性不可分的,线性支持向量机具有更广泛的适用性。
2.2 对偶问题
定义拉格朗日函数为:
$ L(\mathbf {\vec w},b,\vec\xi,\vec\alpha,\vec\mu)=\frac 12||\mathbf {\vec w}||_2^{2}+C\sum_{i=1}^{N}\xi_i-\sum_{i]1}^{N}\alpha_i[\tilde y_i(\mathbf {\vec w}_i \cdot \mathbf {\vec x}_i+b)-1+\xi_i]-\sum_{i=1}^{N}\mu_i\xi_i \\ \alpha_i \ge 0, \mu_i \ge 0 $原始问题是拉格朗日函数的极小极大问题;对偶问题是拉格朗日函数的极大极小问题。
先求 $ MathJax-Element-210 $ 对 $ MathJax-Element-211 $ 的极小。根据偏导数为0:
$ \nabla_{\mathbf {\vec w}}L(\mathbf {\vec w},b,\vec\xi,\vec\alpha,\vec\mu)=\mathbf {\vec w}-\sum_{i=1}^{N}\alpha_i\tilde y_i\mathbf {\vec x}_i=\mathbf{\vec 0}\\ \nabla_b L(\mathbf {\vec w},b,\vec\xi,\vec\alpha,\vec\mu)=-\sum_{i=1}^{N}\alpha_i\tilde y_i=0\\ \nabla_{\xi_i} L(\mathbf {\vec w},b,\vec\xi,\vec\alpha,\vec\mu)=C-\alpha_i-\mu_i=0 $得到:
$ \mathbf {\vec w}=\sum_{i=1}^{N}\alpha_i\tilde y_i\mathbf {\vec x}_i\\ \sum_{i=1}^{N}\alpha_i\tilde y_i=0\\ C-\alpha_i-\mu_i=0 $再求极大问题:将上面三个等式代入拉格朗日函数:
$ \max_{\vec\alpha,\vec\mu}\min_{\mathbf {\vec w},b,\vec\xi}L(\mathbf {\vec w},b,\vec\xi,\vec\alpha,\vec\mu)=\max_{\vec\alpha,\vec\mu}\left[-\frac 12 \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_j\tilde y_i\tilde y_j(\mathbf {\vec x}_i \cdot \mathbf {\vec x}_j)+\sum_{i=1}^{N}\alpha_i\right] $于是得到对偶问题:
$ \min_{\vec\alpha}\frac 12 \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_j\tilde y_i\tilde y_j(\mathbf {\vec x}_i \cdot \mathbf {\vec x}_j)-\sum_{i=1}^{N}\alpha_i\\ s.t. \quad \sum_{i=1}^{N}\alpha_i\tilde y_i=0\\ 0 \le \alpha_i \le C, i=1,2,\cdots,N $
根据
$ \nabla_{\mathbf {\vec w}}L(\mathbf {\vec w}^*,b^*,\vec\xi^*,\vec\alpha^*,\vec\mu^*)=\mathbf {\vec w}^*-\sum_{i=1}^{N}\alpha_i^*\tilde y_i\mathbf {\vec x}_i=\mathbf{\vec 0}\\ \nabla_b L(\mathbf {\vec w}^*,b^*,\vec\xi^*,\vec\alpha^*,\vec\mu^*)=-\sum_{i=1}^{N}\alpha_i^*\tilde y_i=0\\ \nabla_{\xi_i} L(\mathbf {\vec w}^*,b^*,\vec\xi^*,\vec\alpha^*,\vec\mu^*)=C-\alpha_i^*-\mu_i^*=0\\ \alpha_i^*[\tilde y_i(\mathbf{\vec w}^*\cdot \mathbf{\vec x}_i+b^*)-1+\xi_i^*]=0\\ \mu_i^*\xi_i^*=0\\ \tilde y_i(\mathbf{\vec w}^*\cdot\mathbf{\vec x}_i+b^*)-1+\xi_i^*\ge 0\\ \xi_i^*\ge 0\\ C\ge \alpha_i^*\ge 0\\ \mu_i^*\ge0\\ i=1,2,\cdots,N $KKT
条件:则有: $ MathJax-Element-212 $ 。
若存在 $ MathJax-Element-335 $ 的某个分量 $ MathJax-Element-214 $ ,则有: $ MathJax-Element-215 $ 。
若 $ MathJax-Element-218 $ 的所有分量都等于 0 ,则得出 $ MathJax-Element-217 $ 为零,没有任何意义。
若 $ MathJax-Element-218 $ 的所有分量都等于 $ MathJax-Element-504 $ ,根据 $ MathJax-Element-220 $ ,则要求 $ MathJax-Element-221 $ 。这属于强加的约束,
- 根据 $ MathJax-Element-245 $ ,有 $ MathJax-Element-223 $ 。
- 考虑 $ MathJax-Element-224 $ ,则有: $ MathJax-Element-225 $
分离超平面为: $ MathJax-Element-226 $ 。
分类决策函数为: $ MathJax-Element-227 $ 。
线性支持向量机对偶算法:
输入:训练数据集 $ MathJax-Element-511 $ ,其中 $ MathJax-Element-329 $
输出:
- 分离超平面
- 分类决策函数
算法步骤:
选择惩罚参数 $ MathJax-Element-384 $ ,构造并且求解约束最优化问题:
$ \min_{\vec\alpha} \frac 12 \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_j\tilde y_i\tilde y_j(\mathbf {\vec x}_i \cdot \mathbf {\vec x}_j) -\sum_{i=1}^{N} \alpha_i\\ s.t. \quad \sum_{i=1}^{N}\alpha_i\tilde y_i=0\\ C \ge \alpha_i \ge 0,i=1,2,\cdots,N $求得最优解 $ MathJax-Element-332 $ 。
计算 : $ MathJax-Element-334 $ 。
选择 $ MathJax-Element-335 $ 的一个合适的分量 $ MathJax-Element-336 $ ,计算: $ MathJax-Element-235 $ 。
可能存在多个符合条件的 $ MathJax-Element-236 $ 。这是由于原始问题中,对 $ MathJax-Element-493 $ 的解不唯一。所以
实际计算时可以取在所有符合条件的样本点上的平均值。
由此得到分离超平面: $ MathJax-Element-238 $ ,以及分类决策函数: $ MathJax-Element-239 $ 。
2.3 支持向量
在线性不可分的情况下,对偶问题的解 $ MathJax-Element-332 $ 中,对应于 $ MathJax-Element-241 $ 的样本点 $ MathJax-Element-467 $ 的实例点 $ MathJax-Element-243 $ 称作支持向量,它是软间隔的支持向量。
线性不可分的支持向量比线性可分时的情况复杂一些:
根据 $ MathJax-Element-244 $ ,以及 $ MathJax-Element-245 $ ,则:
若 $ MathJax-Element-246 $ ,则 $ MathJax-Element-247 $ , 则松弛量 $ MathJax-Element-248 $ 。此时:支持向量恰好落在了间隔边界上。
若 $ MathJax-Element-249 $ , 则 $ MathJax-Element-250 $ ,于是 $ MathJax-Element-382 $ 可能为任何正数:
- 若 $ MathJax-Element-252 $ ,则支持向量落在间隔边界与分离超平面之间,分类正确。
- 若 $ MathJax-Element-253 $ ,则支持向量落在分离超平面上。
- 若 $ MathJax-Element-254 $ ,则支持向量落在分离超平面误分类一侧,分类错误。
2.4 合页损失函数
定义取正函数为:
$ \text{plus}(z)= \begin{cases} z, & z \gt 0 \\ 0, & z \le 0 \end{cases} $定义合页损失函数为: $ MathJax-Element-255 $ ,其中 $ MathJax-Element-256 $ 为样本的标签值, $ MathJax-Element-257 $ 为样本的模型预测值。
则线性支持向量机就是最小化目标函数:
$ \sum_{i=1}^{N}\text{plus}(1-\tilde y_i(\mathbf {\vec w}\cdot\mathbf {\vec x}_i+b))+\lambda||\mathbf {\vec w}||^{2}_2,\quad \lambda \gt 0 $合页损失函数的物理意义:
- 当样本点 $ MathJax-Element-467 $ 被正确分类且函数间隔(确信度) $ MathJax-Element-261 $ 大于 1 时,损失为0
- 当样本点 $ MathJax-Element-467 $ 被正确分类且函数间隔(确信度) $ MathJax-Element-261 $ 小于等于 1 时损失为 $ MathJax-Element-264 $
- 当样本点 $ MathJax-Element-467 $ 未被正确分类时损失为 $ MathJax-Element-264 $
可以证明:线性支持向量机原始最优化问题等价于最优化问题:
$ \min_{\mathbf {\vec w},b}\sum_{i=1}^{N}\text{plus}(1-\tilde y_i(\mathbf {\vec w}\cdot\mathbf {\vec x}_i+b))+\lambda||\mathbf {\vec w}||^{2}_2,\quad \lambda \gt 0 $合页损失函数图形如下:
感知机的损失函数为 $ MathJax-Element-265 $ ,相比之下合页损失函数不仅要分类正确,而且要确信度足够高(确信度为1)时,损失才是0。即合页损失函数对学习有更高的要求。
0-1损失函数通常是二分类问题的真正的损失函数,合页损失函数是0-1损失函数的上界。
- 因为0-1损失函数不是连续可导的,因此直接应用于优化问题中比较困难。
- 通常都是用0-1损失函数的上界函数构成目标函数,这时的上界损失函数又称为代理损失函数。
理论上
SVM
的目标函数可以使用梯度下降法来训练。但存在三个问题:- 合页损失函数部分不可导。这可以通过
sub-gradient descent
来解决。 - 收敛速度非常慢。
- 无法得出支持向量和非支持向量的区别。
- 合页损失函数部分不可导。这可以通过
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论