数值优化算法【2】-- 梯度下降算法
数值优化算法【2】-- 梯度下降算法
本节介绍梯度下降(gradient descent)的工作原理。虽然梯度下降在深度学习中很少被直接使用,但理解梯度的意义,以及沿着梯度反方向更新模型参数以降低目标函数值的原理,是后面各种优化方法的基础。 梯度下降法又被称为最速下降法,是获得数值解的一种常用算法,主要分为批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent)以及小批量梯度下降(Mini-Batch Gradient Descent)三种不同的形式。
一、理解梯度下降
(1)一维梯度下降
先以简单的一维梯度下降为例,解释梯度下降算法可能降低目标函数值的原因。
假设连续可导的函数 $ J: \mathbb{R} \rightarrow \mathbb{R} $ 的输入和输出都是标量。给定绝对值足够小的数 $ \epsilon $ ,根据泰勒展开公式,得到以下的近似:
J(x+ϵ)≈J(x)+ϵJ′(x).J(x + \epsilon) \approx J(x ...
④ 线性回归模型:岭回归
其中是一个函数,我们将调用反向链接函数。有许多反向链接函数可供选择;可能最简单的是恒等函数。这是一个返回与其参数相同的值的函数。第3章“线性回归建模”中的所有模型都使用了单位函数,为简单起见,我们只是省略了它。身份功能本身可能不是很有用,但它允许我们以更统一的方式考虑几种不同的模型。
岭回归
#refplus, #refplus li{
padding:0;
margin:0;
list-style:none;
};
document.querySelectorAll(".refplus-num").forEach((ref) => {
let refid = ref.firstChild.href.replace(location.origin+location.pathname,'');
let refel = document.querySelector(refid);
let refnum = ...
数值优化算法【1】-- 常用优化算法
数值优化算法【1】-- 常用优化算法
一、解析解与数值解的概念
很多机器学习和深度学习方法,都是在样本的支持下,利用导数或偏微分寻求方程的解,而传统数学方法中,会用到解析和数值两种解法。
(1)解析解法:
就是从小到大教科书里讲的,利用严格公式推导获得解的解析表达式,输入自变量的值就可以求出因变量。
如果一个方程或者方程组存在的某些解,是由有限次常见运算(如:分式、三角函数、指数、对数甚至无限级数等)的组合给出的形式,则称该方程存在解析解。
例如:对于线性回归模型,采用最小二乘法可以直接得出解析解,x=(ATA)−1ATb,其中A是样本支撑的矩阵,b为观测值x=(A^TA)^{-1}A^Tb,\quad 其中A是样本支撑的矩阵,b为观测值x=(ATA)−1ATb,其中A是样本支撑的矩阵,b为观测值
(2)数值解法:
当无法由微积分技巧求得解析解时(特别是复杂函数),利用数值分析方式来求得其数值解是比较好的选择。
采用某种计算方法(如:有限元方法、数值逼近、插值方法等)得到的解,被称为数值解。
数值解是在特定条件下通过近似计算得出来的一个数值。
例如:同样对于线性回归模 ...
④ 线性回归模型:最小二乘线性回归
其中是一个函数,我们将调用反向链接函数。有许多反向链接函数可供选择;可能最简单的是恒等函数。这是一个返回与其参数相同的值的函数。第3章“线性回归建模”中的所有模型都使用了单位函数,为简单起见,我们只是省略了它。身份功能本身可能不是很有用,但它允许我们以更统一的方式考虑几种不同的模型。
样条回归
#refplus, #refplus li{
padding:0;
margin:0;
list-style:none;
};
document.querySelectorAll(".refplus-num").forEach((ref) => {
let refid = ref.firstChild.href.replace(location.origin+location.pathname,'');
let refel = document.querySelector(refid);
let refnum = ...
③ 逻辑斯谛回归
其中是一个函数,我们将调用反向链接函数。有许多反向链接函数可供选择;可能最简单的是恒等函数。这是一个返回与其参数相同的值的函数。第3章“线性回归建模”中的所有模型都使用了单位函数,为简单起见,我们只是省略了它。身份功能本身可能不是很有用,但它允许我们以更统一的方式考虑几种不同的模型。
p{text-indent:2em;2}
线性回归模型
在上一章中,我们使用输入变量的线性组合来预测输出变量的平均值。我们假设后者为高斯分布。在许多情况下都可以使用高斯分布,但对于其他许多情况,选择不同的分布可能更明智;当我们用 ttt 分布替换高斯分布时,我们已经看到了一个这样的例子。在本章中,我们将看到更多使用高斯分布以外分布的明智例子。正如我们将了解到的,存在一个通用的主题或模式,可将线性模型推广到许多问题。在本章中,我们将探讨:
广义线性模型
Logistic回归和逆链接函数
简单Logistic回归
多元Logistic回归
Softmax函数和多项Logistic回归
Poisson回归
零膨胀Poisson回归
4.1 广义线性模型
本章的核心思想之一相当简单:为了预测输出变 ...
➁ 朴素贝叶斯分类器
朴素贝叶斯分类器
线性判别分析 LDA (Linear Discriminant Analysis) 又称为 Fisher 线性判别,是一种监督学习的降维技术,也就是说它的数据集的每个样本都是有类别输出的,这点与 PCA(无监督学习)不同。LDA 在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有必要了解下它的算法原理。
p{text-indent:2em;2}
1. LDA 的思想
LDA 的思想是:最大化类间均值,最小化类内方差。意思就是将数据投影在低维度上,并且投影后同种类别数据的投影点尽可能的接近,不同类别数据的投影点的中心点尽可能的远。
我们先看看最简单的情况。假设我们有两类数据 分别为红色和蓝色,如下图所示,这些数据特征是二维的,我们希望将这些数据投影到一维的一条直线,让每一种类别数据的投影点尽可能的接近,而红色和蓝色数据中心之间的距离尽可能的大。
上图提供了两种投影方式,哪一种能更好的满足我们的标准呢?从直观上可以看出,右图要比左图的投影效果好,因为右图的黑色数据和蓝色数据各个较为集中,且类别之间的距离明显。左图则在边界 ...
➀ 线性判别分析
线性判别分析 LDA (Linear Discriminant Analysis) 又称为 Fisher 线性判别,是一种监督学习的降维技术,也就是说它的数据集的每个样本都是有类别输出的,这点与 PCA(无监督学习)不同。LDA 在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有必要了解下它的算法原理。
p{text-indent:2em;2}
1. LDA 的思想
LDA 的思想是:最大化类间均值,最小化类内方差。意思就是将数据投影在低维度上,并且投影后同种类别数据的投影点尽可能的接近,不同类别数据的投影点的中心点尽可能的远。
我们先看看最简单的情况。假设我们有两类数据 分别为红色和蓝色,如下图所示,这些数据特征是二维的,我们希望将这些数据投影到一维的一条直线,让每一种类别数据的投影点尽可能的接近,而红色和蓝色数据中心之间的距离尽可能的大。
上图提供了两种投影方式,哪一种能更好的满足我们的标准呢?从直观上可以看出,右图要比左图的投影效果好,因为右图的黑色数据和蓝色数据各个较为集中,且类别之间的距离明显。左图则在边界处数据混杂。以上就 ...
NLP预训练模型【7】 -- XLNet
目录
目录
1. 什么是XLNet
2. 自回归语言模型(Autoregressive LM)
3. 自编码语言模型(Autoencoder LM)
4. XLNet模型
4.1 排列语言建模(Permutation Language Modeling)
4.2 Transformer XL
4.2.1 vanilla Transformer
4.2.2 Transformer XL
5. XLNet与BERT比较
6. 代码实现
7. 参考文献
1. 什么是XLNet
XLNet是一个类似BERT的模型,而不是完全不同的模型。总之,XLNet是一种通用的自回归预训练方法。它是CMU和Google Brain团队在2019年6月份发布的模型,最终,XLNet在20个任务上超过了BERT的表现,并在18个任务上取得了当前最佳效果(state-of-the-art),包括机器问答、自然语言推断、情感分析和文档排序。
作者表示,BERT这样基于去噪自编码器的预训练模型可以很好地建模双向语境信息,性能优于基于自回归语言模型的预训练方法。然而,由于需要mask一部分输 ...
NLP预训练模型【6】 -- BERT
目录
目录
1. 什么是BERT
2. 从Word Embedding到Bert模型的发展
2.1 图像的预训练
2.2 Word Embedding
2.3 ELMO
2.4 GPT
2.5 BERT
2.5.1 Embedding
2.5.2 Masked LM
2.5.3 Next Sentence Prediction
3. BERT的评价
4. 代码实现
5. 参考文献
1. 什么是BERT
BERT的全称是Bidirectional Encoder Representation from Transformers,是Google2018年提出的预训练模型,即双向Transformer的Encoder,因为decoder是不能获要预测的信息的。模型的主要创新点都在pre-train方法上,即用了Masked LM和Next Sentence Prediction两种方法分别捕捉词语和句子级别的representation。
Bert最近很火,应该是最近最火爆的AI进展,网上的评价很高,那么Bert值得这么高的评价吗?我个人判断是值得。那为什么会有这 ...