梯度下降

Adam优化算法详细解析

心已入冬 提交于 2020-08-11 04:52:42
http://www.atyun.com/2257.html Adam优化算法是一种对随机梯度下降法的扩展,最近在计算机视觉和自然语言处理中广泛应用于深度学习应用。在引入该算法时,OpenAI的 Diederik Kingma 和多伦多大学的 Jimmy Ba 在他们的2015 ICLR 发表了一篇名为“ Adam: A Method for Stochastic Optimization ”的论文,列出了使用亚当在非凸优化问题上的诱人好处,如下: 简单直接的实施 计算上讲究效率 小内存要求 不变量对梯度的对角线重新调节 非常适合于数据和/或参数方面的问题 适合非平稳的目标 适用于非常稀梳梯度的问题。 超参数具有直观的解释,通常需要很少的调谐。 Adam 如何工作? Adam与经典的随机梯度下降法是不同的。随机梯度下降保持一个单一的学习速率(称为alpha),用于所有的权重更新,并且在训练过程中学习速率不会改变。每一个网络权重(参数)都保持一个学习速率,并随着学习的展开而单独地进行调整。该方法从梯度的第一次和第二次矩的预算来计算不同参数的自适应学习速率。 作者描述Adam时将随机梯度下降法两种扩展的优势结合在一起。 具体地说: 自适应梯度算法(AdaGrad) 维护一个参数的学习速率,可以提高在稀疏梯度问题上的性能(例如,自然语言和计算机视觉问题)。 均方根传播(RMSProp)

超全机器学习术语词汇表

[亡魂溺海] 提交于 2020-08-11 04:32:00
from: https://www.jianshu.com/u/c9bd3225567e A 准确率 (accuracy) 分类模型预测准确的比例。在多类别分类中,准确率定义如下: 在二分类中,准确率定义为: 激活函数 (Activation function) 一种函数(例如 ReLU 或 Sigmoid),将前一层所有神经元激活值的加权和输入到一个非线性函数中,然后向下一层传递该函数的输出值(典型的非线性)。 AdaGrad 一种复杂的梯度下降算法,重新调节每个参数的梯度,高效地给每个参数一个单独的学习率。 AUC( 曲线下面积 ) 一种考虑到所有可能的分类阈值的评估标准。ROC 曲线下面积代表分类器随机预测真正类(Ture Positives)要比假正类(False Positives)概率大的确信度。 B 反向传播(Backpropagation) 神经网络中完成梯度下降的重要算法。首先,在前向传播的过程中计算每个节点的输出值。然后,在反向传播的过程中计算与每个参数对应的误差的偏导数。 基线(Baseline) 被用为对比模型表现参考点的简单模型。基线帮助模型开发者量化模型在特定问题上的预期表现。 批量 模型训练中一个迭代(指一次梯度更新)使用的样本集。 批量大小 (batch size) 一个批量中样本的数量。例如,SGD 的批量大小为 1,而 mini-batch

第二次作业:卷积神经网络 part 2

耗尽温柔 提交于 2020-08-10 09:26:23
【第二部分】 代码练习 MobileNetV1 网络 MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications, 2017 https://arxiv.org/abs/1704.04861 VGG,GoogleNet,ResNet进一步提高CNN的性能。但是到ResNet,网络已经达到152层,模型大小动辄几百300MB+。这种巨大的存储和计算开销,严重限制了CNN在某些低功耗领域的应用。在实际应用中受限于硬件运算能力与存储(比如几乎不可能在手机芯片上跑ResNet-152),所以必须有一种能在算法层面有效的压缩存储和计算量的方法。而MobileNet/ShuffleNet正为我们打开这扇窗。 Mobilenet v1是Google于2017年发布的网络架构,旨在充分利用移动设备和嵌入式应用的有限的资源,有效地最大化模型的准确性,以满足有限资源下的各种应用案例。Mobilenet v1核心是把卷积拆分为Depthwise+Pointwise两部分。 Depthwise 处理一个三通道的图像,使用3×3的卷积核,完全在二维平面上进行,卷积核的数量与输入的通道数相同,所以经过运算会生成3个feature map。卷积的参数为: 3 × 3 × 3 = 27,如下所示:

感知机(perceptron)原理总结

微笑、不失礼 提交于 2020-08-09 13:28:19
目录 1. 感知机原理 2. 损失函数 3. 优化方法 4. 感知机的原始算法 5. 感知机的对偶算法 6. 从图形中理解感知机的原始算法 7. 感知机算法(PLA)的收敛性 8. 应用场景与缺陷 9. 其他 10. 参考资料 1. 感知机原理 感知机是二分类的线性分类模型,本质上想找到一条直线或者分离超平面对数据进行线性划分 适用于线性可分的数据集,否则感知机不会收敛 假设有一个数据集 \(D = {(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)}\) ,其中 \(x_i \in R^n\) ,即 \(x_i = (x_i^{(1)}, x_i^{(2)}, ...x_i^{(n)})\) 模型的输入为实例的特征向量 \(x_i\) ,输出为实例的类别,取值为+1(正例)或者-1(负例) 我们希望找到一个分离超平面 \(w^Tx + b = 0,其中w \in R^n\) ,使得有满足 \(w^Tx + b > 0\) 的实例所对应的类别为正例。而使得满足 \(w^Tx + b < 0\) 的实例所对应的类别为负例。 于是我们可以构建出感知机模型为: \(f(x) = sign(w^Tx + b)\) 2. 损失函数 定义损失函数一个很自然的想法是建立在误分类点的个数上,但是使用误分类点的个数来构造损失函数并不容易优化 因此使用

【深度学习】卷积神经网络

为君一笑 提交于 2020-08-09 12:37:35
本文为深度学习的学习总结,讲解卷积神经网络。欢迎交流 计算机视觉 如果我们想要输入的图片像素为 1000×1000×3,则此时神经网络特征维度为 3 百万, W [ 1 ] W^{[1]} W [ 1 ] 采用全连接时,维度更夸张。我们使用卷积运算来解决这个问题。 边缘检测 I 卷积运算是卷积神经网络最基本的组成部分。我们使用 边缘检测 作为入门样例。 为了让电脑搞清楚下面这张图片的内容,我们可能需要先检测图片中的垂直边缘,右上角的图为垂直 边缘检测器 的输出,右下角为水平边缘检测器的输出: 接下来我们讲解如何检测出这些边缘。下图中,左边为一个 6×6 的灰度图像,即 6×6×1 的矩阵,没有 RGB 三通道。我们可以构造图中中间的 3×3 矩阵,成为 过滤器 (或核), ∗ * ∗ 运算符为 卷积运算 。而矩阵运算的结果是一个 4×4 的矩阵,因为过滤器在图中左边的矩阵中有 4×4 个可能的位置,可将其看作 4×4 的图像: 我们计算右边矩阵中的第一个元素的值。将 3×3 的过滤器覆盖在输入图像的蓝色区域,并在每个元素上标记过滤器的值,将对应元素相乘后求和 1 × 3 + 0 × 0 + . . . + 2 × − 1 = − 5 1\times3+0\times0+...+2\times-1=-5 1 × 3 + 0 × 0 + . . . + 2 × − 1 = − 5

Embedding Methods-细粒度文本分类,从相似度出发

此生再无相见时 提交于 2020-08-09 08:50:18
背景 实体分类是指给一个实体一个指定的标签,这在关系抽取,知识问答等任务中非常重要。一般实体分类的标签都小于20个,但是当标签之间具有层级结构,同一个实体在不同的上下文中便可能具有不同的角色。例如: Madonna starred as Breathless Mahoney in the film Dick Tracy Madonna signed with Sire Records in 1982 and released her eponymous debut album the next year. 这两句话中,第一句的Madonna因为主演了电影,她的分类应该是 actress ,而下一句Maddona推出了新专辑,这里她的分类应该是 musician 。 对于细粒度实体分类来说,一个最大的困难是标注文本的收集,因为在标注的时候不考虑上下文的话可能会如上文的例子一样,会引入很多噪音。实际上一个优秀的细粒度实体分类模型应该是可以处理这些噪音并且在训练过程中发现label之间的关系的。 针对这些问题,本文使用ranking loss来解决这些问题,下面我们来看看文中是怎么解决的吧 模型 1. 学习目标 文中为了平衡细粒度标签之间的关系,将输入的文本信息和标签信息全都映射到一个低维空间 中,其中H表示embedding的维度。映射方法如下图所示

Alink漫谈(十二) :在线学习算法FTRL 之 整体设计

|▌冷眼眸甩不掉的悲伤 提交于 2020-08-09 04:15:14
Alink漫谈(十二) :在线学习算法FTRL 之 整体设计 目录 Alink漫谈(十二) :在线学习算法FTRL 之 整体设计 0x00 摘要 0x01概念 1.1 逻辑回归 1.1.1 推导过程 1.1.2 求解 1.1.3 随机梯度下降 1.2 LR的并行计算 1.3 传统机器学习 1.4 在线学习 1.5 FTRL 1.5.1 regret & sparsity 1.5.2 FTRL的伪代码 1.5.3 简要理解 0x02 示例代码 0x03 问题 0x04 总体逻辑 0xFF 参考 0x00 摘要 Alink 是阿里巴巴基于实时计算引擎 Flink 研发的新一代机器学习算法平台,是业界首个同时支持批式算法、流式算法的机器学习平台。本文和下文将介绍在线学习算法FTRL在Alink中是如何实现的,希望对大家有所帮助。 0x01概念 因为 Alink 实现的是 LR + FTRL,所以我们需要从逻辑回归 LR 开始介绍。 1.1 逻辑回归 Logistic Regression 虽然被称为回归,但其实际上是分类模型,并常用于二分类。Logistic 回归的本质是:假设数据服从这个分布,然后使用极大似然估计做参数的估计。 逻辑回归的思路 是,先拟合决策边界(不局限于线性,还可以是多项式),再建立这个边界与分类的概率联系,从而得到了二分类情况下的概率。 1.1.1 推导过程

深度学习论文翻译解析(十):Visualizing and Understanding Convolutional Networks

旧时模样 提交于 2020-08-08 10:12:10
论文标题:Visualizing and Understanding Convolutional Networks   标题翻译:可视化和理解卷积网络 论文作者:Matthew D. Zeiler Rob Fergus 论文地址: https://arxiv.org/pdf/1311.2901v3.pdf    https://arxiv.org/abs/1311.2901 参考的翻译博客:https://blog.csdn.net/kklots/article/details/17136059 声明:小编翻译论文仅为学习,如有侵权请联系小编删除博文,谢谢! 小编是一个机器学习初学者,打算认真研究论文,但是英文水平有限,所以论文翻译中用到了Google,并自己逐句检查过,但还是会有显得晦涩的地方,如有语法/专业名词翻译错误,还请见谅,并欢迎及时指出。 前言   在所有深度网络中,卷积神经网络和图像处理最为密切相关,卷积网在很多图片分类竞赛中都取得了很好的效果,但卷积网调参过程很不直观,很多时候都是碰运气,我们却不知道原因。为此,卷积网发明者 Yann LeCun 的得意门生 Matthew Zeiler 在 2013年专门写了一篇论文,阐述了如何用反卷积网络可视化整个卷积网络,并进行分析和调优,该论文是在AlexNet基础上进行了一些细节的改进,网络结构上并没有太大的突破

小样本学习方法(FSL)演变过程

删除回忆录丶 提交于 2020-08-07 07:52:19
本文重点介绍了下小样本学习方法(FSL)演变过程以及MAML和度量学习的区别所在。 小样本学习一般会简化为N-way K-shot问题,如图[1]。其中N代表类别数量,K代表每一类中(支持集)的样本量; 图[1] N-way K-shot 解决分类问题,人们最先想到的是采用传统监督学习的方式,直接在训练集上进行训练,在测试集上进行测试,如图[2],但神经网络需要优化的参数量是巨大的,在少样本条件下,几乎都会发生过拟合; 图[2] 传统监督学习 为了解决上述问题,人们首先想到的是通过使用迁移学习+Fine-tune的方式,利用Base-classes中的大量数据进行网络训练,得到的Pre-trained模型迁移到Novel-classes进行Fine-tune,如图[3]。虽然是Pre-trained网络+Fine-tune微调可以避免部分情况的过拟合问题,但是当数据量很少的时候,仍然存在较大过拟合的风险。 图[3] Pre-trained网络+Fine-tune微调 接下来讲的就是小样本学习中极具分量的Meta-learning方法,现阶段绝大部分的小样本学习都使用的是Meta-learning方法。Meta-learning,即learn to learn,翻译成中文是元学习。Meta-learning共分为Training和Testing两个阶段,Training阶段的思路如图

深度学习中的正则化(一)

こ雲淡風輕ζ 提交于 2020-08-06 12:03:39
本文首发自公众号: RAIS ,点击直接关注。 前言 本系列文章为《Deep Learning》读书笔记,可以参看原书一起阅读,效果更佳。本文我们聊一聊深度学习中的正则化。 深度学习中的正则化 一般来说,深度学习所要做的事情是用已有的训练集训练一个网络模型,然后针对新的数据给出预测,我们期望我们的模型在训练集和测试集上都有良好的表现,但是有的时候两者不可兼得。一种情况是在训练集上表现很好,在测试集上表现不好或表现一般;另一种情况是在训练集上表现不好或表现一般,在测试集上表现很好。相比较而言我们更倾向于后者,因为这是我们训练模型的目的。 为什么会出现这种情况,难道不是应该训练集上表现的越好在测试集上表现越好吗?不是的,我们在前面的文章中分析过,过度的拟合一个训练集往往会放大哪些没有那么重要的向量或因素,过拟合会导致泛化能力的下降,正则化就是为了减小测试误差的,虽然有的时候可能会以增大训练误差为代价,但是这是值得的,这些策略统称为正则化。下面给出一个简单的非严谨的正则化定义: 正则化:减小泛化误差而不是训练误差所做的对算法的修改 我们经常会对估计进行正则化,估计的正则化采取的方式是以偏差的增大来换取方差的减小,尤其是显著的减小方差而较小的增大偏差往往是我们追求的目标。接下来我们就分别分析介绍一下正则化的策略。 正则化的策略 参数范数惩罚 $$ \widetilde{J}(θ; X, y