数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
三、输出单元
- 代价函数的选取和输出单元的类型紧紧相关。
- 任何类型的输出单元,也可以用作隐单元。
3.1 线性输出单元
最简单的输出单元为线性单元:它基于仿射变换,不包含非线性。
- 给定特征 $ MathJax-Element-126 $ ,单个线性输出单元的输出为: $ MathJax-Element-127 $ 。
- 若输出层包含多个线性输出单元,则线性输出层的输出为: $ MathJax-Element-128 $ 。
线性输出层经常用于学习条件高斯分布的均值: $ MathJax-Element-129 $ 。
给定 $ MathJax-Element-130 $ 的条件下, $ MathJax-Element-223 $ 的分布为均值为 $ MathJax-Element-132 $ 、方差为
1
的高斯分布。此时:最大化对数似然函数等价于最小化均方误差。最大似然准则也可以用于学习高斯分布的协方差矩阵。但是由于协方差矩阵的特点(对称的、正定的),因此用线性输出层来描述这种限制是困难的。所以通常采用其他类型的输出单元来学习协方差矩阵。
线性模型不会饱和,因此可以方便的使用基于梯度的优化算法。
3.2 sigmoid 输出单元
sigmoid
单元:用于Bernoulli
分布的输出。二类分类问题可以用伯努利分布来描述。由于伯努利分布只需要一个参数来定义,因此神经网络只需要预测 $ MathJax-Element-133 $ ,它必须位于区间
[0,1]
之间。一种方案是采用线性单元,但是通过阈值来使它位于
$ P(y=1\mid \mathbf{\vec x})=\max\{0,\min\{1,\mathbf{\vec w}^{T}\mathbf{\vec h}+b\}\} $[0,1]
之间:令 $ MathJax-Element-143 $ ,则上式右侧就是函数 $ MathJax-Element-142 $ ,函数图象如下。
该函数有个问题:当 $ MathJax-Element-261 $ 位于
[0,1]
之外时,模型的输出 $ MathJax-Element-720 $ 对于 $ MathJax-Element-261 $ 的梯度都为 0。根据反向传播算法,此时 $ MathJax-Element-138 $ 对于参数 $ MathJax-Element-139 $ 和参数 $ MathJax-Element-140 $ 的梯度都为零。从而使得梯度下降算法难以推进。另一种方案就是采用
sigmoid
单元: $ MathJax-Element-732 $ ,其中 $ MathJax-Element-141 $ 就是sigmoid
函数。虽然
sigmoid
函数也存在饱和的问题,但是它比 $ MathJax-Element-142 $ 要稍微缓解。
sigmoid
输出单元有两个部分:首先它用一个线性层来计算 $ MathJax-Element-143 $ ;然后它使用sigmoid
激活函数将 $ MathJax-Element-261 $ 转化成概率。根据:
$ P(y=1\mid \mathbf{\vec x})=\sigma(z)=\frac{\exp(z)}{\exp(z)+\exp(0)}\\ P(y=0\mid \mathbf{\vec x})=1-\sigma(z)=\frac{\exp(0)}{\exp(z)+\exp(0)} $则有: $ MathJax-Element-740 $ 。即: $ MathJax-Element-145 $
$ J(\vec\theta)=-\log P(y\mid \mathbf{\vec x})=-\log \sigma((2y-1)z)= \zeta((1-2y)z) ,\;\text{for} \;y \in \{0,1\} $sigmoid
单元的代价函数通常采用负的对数似然函数:其中 $ MathJax-Element-146 $ ,它是函数 $ MathJax-Element-147 $ 的一个近似。
可以看到,只有当 $ MathJax-Element-148 $ 取一个非常大的负值时,代价函数才非常接近于0。因此代价为0发生在:
- $ MathJax-Element-155 $ 且 $ MathJax-Element-261 $ 为一个较大的正值,此时表示正类分类正确。
- $ MathJax-Element-151 $ 且 $ MathJax-Element-261 $ 为一个较大的负值 ,此时表示负类分类正确。
当 $ MathJax-Element-261 $ 符号错误时(即 $ MathJax-Element-261 $ 为负数,而 $ MathJax-Element-155 $ ;或者 $ MathJax-Element-261 $ 为正数,但是 $ MathJax-Element-157 $ ), $ MathJax-Element-158 $ ,则
softplus
函数会渐进地趋向于 $ MathJax-Element-159 $ ,且其梯度不会收缩。这意味着基于梯度的学习可以很快地改正错误的 $ MathJax-Element-261 $ 。当使用其他代价函数时(如均方误差),代价函数会在任何 $ MathJax-Element-161 $ 饱和时饱和,此时梯度会变得非常小从而无法学习。
因此最大似然函数总是训练
sigmoid
输出单元的首选代价函数。
3.3 softmax 输出单元
softmax
单元:用于multinoulli
分布的输出。当表示一个具有 $ MathJax-Element-304 $ 个可能取值的离散型随机变量分布时,可以采用
$ \mathbf{\vec z}=\mathbf W^{T}\mathbf{\vec h}+\mathbf{\vec b}\\ \hat y_i=P(y=i\mid \mathbf{\vec x})=\text{softmax}(\mathbf{\vec z})_i=\frac{\exp(z_i) }{\sum_j \exp(z_j)},\quad i=1,2,\cdots,K\\ \hat{\mathbf{\vec y}}=(\hat y_1,\hat y_2,\cdots,\hat y_K)^{T} $softmax
函数。它可以视作sigmoid
函数的扩展:$ MathJax-Element-165 $ 表示类别为 $ MathJax-Element-306 $ 的概率。
当所有输入都加上一个相同常数时,
softmax
的输出不变。即: $ MathJax-Element-771 $ 。根据该性质,可以导出一个数值稳定的
$ \text{softmax}(\mathbf{\vec z})=\text{softmax}(\mathbf{\vec z}-\max_i z_i) $softmax
函数的变体:softmax
函数是argmax
函数的软化版本,而不是max
函数的软化版本。argmax
函数的结果为一个独热向量(只有一个元素为1,其余元素都是0),且不可微。softmax
函数是连续可微的。当某个输入最大( $ MathJax-Element-186 $ ),且 $ MathJax-Element-247 $ 远大于其他的输入时,对应的位置输出非常接近 1 ,其余的位置的输出非常接近 0 。
max
函数的软化版本为 $ MathJax-Element-170 $ 。
假设真实类别为 $ MathJax-Element-299 $ ,则
softmax
输出的对数似然函数为: $ MathJax-Element-784 $ 。其中:第一项 $ MathJax-Element-787 $ 不会饱和(它的梯度不会为零),第二项近似为 $ MathJax-Element-173 $ 。
为了最大化对数似然函数:第一项鼓励 $ MathJax-Element-787 $ 较大,第二项鼓励所有的 $ MathJax-Element-179 $ 较小。此时意味着:若真实类别为 $ MathJax-Element-299 $ ,则 $ MathJax-Element-787 $ 较大,其它的 $ MathJax-Element-179 $ 较小。
基于对数似然函数的代价函数为: $ MathJax-Element-801 $ 。
因此代价函数惩罚那个最活跃的预测(最大的 $ MathJax-Element-179 $ )。如果 $ MathJax-Element-804 $ ,则代价函数近似为零。
当输入是绝对值较小的负数时, $ MathJax-Element-188 $ 的计算结果可能为 0 。此时 $ MathJax-Element-182 $ 趋向于负无穷,非数值稳定的。
因此需要设计专门的函数来计算 $ MathJax-Element-183 $ ,而不是将 $ MathJax-Element-184 $ 的结果传递给 $ MathJax-Element-185 $ 函数。
除了负对数似然,其他的许多代价函数对
softmax
函数不适用(如均方误差代价函数)。softmax
函数将在很多情况下饱和,饱和意味着梯度消失,而梯度消失会造成学习困难。softmax
函数饱和时,此时基于softmax
函数的代价函数也饱和;除非它们能将softmax
转化为成其它形式,如对数形式。softmax
函数饱和的一般化形式:对于softmax
函数,它有多个输出值;当输入值之间的差异较大时,某些输出值可能饱和。当某个输入最大( $ MathJax-Element-186 $ ),且 $ MathJax-Element-247 $ 远大于其他的输入时: $ MathJax-Element-188 $ 将饱和到 1 , $ MathJax-Element-189 $ 将饱和到 0 。
3.4 其他输出单元
任何其他类型的输出单元都可以应用到神经网络,这些输出单元通常使用负的对数似然作为代价函数。
如果定义了一个条件分布 $ MathJax-Element-190 $ ,则最大似然准则建议使用 $ MathJax-Element-191 $ 作为代价函数。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论