激活函数

网络权重初始化方法 常数初始化、Lecun、Xavier与He Kaiming

喜夏-厌秋 提交于 2020-04-23 14:37:14
梯度消失与梯度爆炸 梯度为偏导数构成的向量。 损失函数收敛至极小值时,梯度为0(接近0),损失函数不再下降。 我们不希望在抵达极小值前,梯度就为0了,也不希望下降过程过于震荡,甚至不收敛。 梯度消失与梯度爆炸分别对应这2种现象, 梯度消失(vanishing gradients) :指的是在训练过程中,梯度(偏导)过早接近于0的现象,导致(部分)参数一直不再更新,整体上表现得像损失函数收敛了,实际上网络尚未得到充分的训练。 梯度爆炸(exploding gradients) :指的是在训练过程中,梯度(偏导)过大甚至为NAN(not a number)的现象,导致损失剧烈震荡,甚至发散(divergence)。 由上一节的分析可知,在梯度(偏导)计算中,主要的影响因素来自 激活函数的偏导 、当前层的输入(前一层的输出)、以及 权重的数值 等, 这些因子连续相乘,带来的影响是指数级的 。训练阶段, 权重在不断调整 ,每一层的输入输出也在不断变化, 梯度消失和梯度爆炸可能发生在训练的一开始、也可能发生在训练的过程中 。 因子项中当前层的输入仅出现一次,下面着重看一下激活函数和权重的影响。 激活函数的影响 以Sigmoid和Tanh为例,其函数与导数如下(来自 链接 ), Sigmoid和Tanh,及其导数 两者的导数均在原点处取得最大值,前者为0.25后者为1,在远离原点的正负方向上

Functional mechanism: regression analysis under differential privacy_阅读报告

血红的双手。 提交于 2020-04-23 01:43:42
Functional mechanism: regression analysis under differential privacy 论文学习报告 组员:裴建新 赖妍菱 周子玉 2020-03-10 1 背景 当今社会,互联网技术正日益深入人们的生活.随着网络和信息化产业的迅猛发展,数据以前所未有的速度不断地增长和累积,大数据已经成为学术界和产业界的热点,同时改变着人们的日常生活.在大数据背景下,数据量相对以往有了质的飞跃.同时,人们对信息处理的速度、信息来源的多样性信息处理的价值也有了更高的要求.然而,随着从大数据中挖掘出各种各样的敏感信息,数据参与者的隐私受到了严重威胁,这迫使人们加强对数据的隐私保护. 虽然学术界并没有通用的隐私概念,但一般意义下,通常将用户认为自身敏感且不愿公开的部分信息称为隐私.然而,如果直接将这部分信息屏蔽,数据的价值就会大打折扣.可以说,在完善地保护敏感信息的同时,有效地释放对公众有益的信息,这本身就是矛盾的事.在社会学方面,可以制定保护个人信息的法律,对恶意窥探他人隐私的行为进行惩罚,但是这种方法实施起来需要大量的人力资源,效果也不甚理想.因此,从技术上解决这个问题变得更加实际,通常的做法是通过“去识别”的方式使部分数据匿名.但不幸的是,随着数据量的增长,数据之间的关联度日益增强,一些经过“去识别”处理的匿名数据

神经网络的基础是MP模型?南大周志华组提出新型神经元模型FT

人走茶凉 提交于 2020-04-22 16:29:02
在此论文中,来自南京大学的张绍群博士和周志华教授提出一个新型神经元模型 Flexible Transmitter (FT),该模型具备灵活的可塑性并支持复杂数据的处理。据论文介绍,这项研究为神经网络提供了一种新的基本构造单元,展示了开发具有神经元可塑性的人工神经网络的可行性。 选自arXiv,作者:张绍群、周志华,机器之心编译。 当前的神经网络大多基于 MP 模型,即按照生物神经元的结构和工作原理构造出来的抽象和简化模型。此类模型通常将神经元形式化为一个「激活函数复合上输入信号加权和」的形式。 近日,来自南京大学张绍群博士和周志华教授提出了一个名为 Flexible Transmitter (FT) 的模型,这是一种具备灵活可塑性的新型生物拟真神经元。 FT 模型利用一对参数来建模神经元之间的传输递质(transmitter),并设置一个神经递质调节的记忆单元来记录所关注神经元的长期学习信息。因此, 该研究将 FT 模型形式化为一个二元二值函数,常用的 MP 神经元模型是其特殊形式。FT 模型可以处理更加复杂的数据,甚至时序信号。 为了展示 FT 模型的能力和潜力,研究者提出了 Flexible Transmitter Network (FTNet)。FTNet 基于最常见的全连接前馈架构而构建,并使用 FT 神经元作为其基本构造块。FTNet 允许梯度计算

神经网络和深度学习之神经元和感知器

被刻印的时光 ゝ 提交于 2020-04-20 18:57:40
一、计算机和人相互依存 当今社会,计算机在我们的生活和工作中扮演着重要的角色,人类使用计算机帮助他们进行大量的计算,通过计算机让每个人相互通信等等。但时代的进步让我们对计算机的要求越来越高,人类希望它能够从事越来越复杂的工作。乍看计算机进行计算以及通信工作的原理好像很复杂难懂,实际上计算机能够进行这些工作是因为人们已经给它设定好了程序,计算机只要按照这些程序规范执行就好了,这是一种单向的工作模式,这种情况下,计算机是完全不会“思考”的,只知道按程序执行指令,而我们却想赋予计算机思考的能力,这便是人工智能的起点。 <div align=center> <img src='http://qiniu.xdpie.com/2018-05-17-10-55-07.png'> <p style='text-align:center'>图1.1.1</p> </div> 我们希望计算机“思考”什么呢?比如,我们希望计算机能够帮我们识别出图片中动物是猫还是狗,帮我们对于图片中存在各种物体做标识,帮我们翻译一段文字,或者帮我们分析一段话或者一段句子中蕴含着说话人的什么情感等等。这些工作对人类而言非常简单,甚至一个2,3岁的孩子也完全可以很好的分辨出一张图片中的动物是猫还是狗,但这些对于计算机而已,却是非常困难的,因为计算机不会“思考”,它不明白什么是狗,什么是猫,除非我们训练它去认识狗和猫

[Deep Learning] GELU (Gaussian Error Linerar Units)

China☆狼群 提交于 2020-04-19 10:21:29
(转载请注明出处哦~) 参考链接: 1. 误差函数的wiki百科: https://zh.wikipedia.org/wiki/%E8%AF%AF%E5%B7%AE%E5%87%BD%E6%95%B0 2. 正态分布的博客: https://blog.csdn.net/hhaowang/article/details/83898881 3. StackExchange Mathematics: Why the error function is so similar to the hyperbolic tangent? https://math.stackexchange.com/questions/1892553/why-the-error-function-is-so-similar-to-the-hyperbolic-tangent 4. WolframAlpha: y = tanh(x) - \int_{0}^{x}e^{-t^{2}}dt https://www.wolframalpha.com/input/?i=y+%3D+tanh(x)+-+%5Cint_%7B0%7D%5E%7Bx%7De%5E%7B-t%5E%7B2%7D%7Ddt 前导知识:正态分布(section 1),误差函数(section 2),ReLU,ELU, dropout, zoneout. 5

计算机视觉面试考点(7)Batch Normalization

好久不见. 提交于 2020-04-18 19:35:43
计算机视觉工程师在面试过程中主要考察三个内容:图像处理、机器学习、深度学习。然而,各类资料纷繁复杂,或是简单的知识点罗列,或是有着详细数学推导令人望而生畏的大部头。为了督促自己学习,也为了方便后人,决心将常考必会的知识点以通俗易懂的方式设立专栏进行讲解,努力做到长期更新。此专栏不求甚解,只追求应付一般面试。希望该专栏羽翼渐丰之日,可以为大家免去寻找资料的劳累。每篇介绍一个知识点,没有先后顺序。想了解什么知识点可以私信或者评论,如果重要而且恰巧我也能学会,会尽快更新。最后,每一个知识点我会参考很多资料。考虑到简洁性,就不引用了。如有冒犯之处,联系我进行删除或者补加引用。在此先提前致歉了! Batch Normalization 神经网络中的一个层,被称为BN层 原理 训练网络的时候要对数据进行归一化 原因:使输入数据的分布是相同的 分布不相同的话,举个例子: 同样的图像内容,网络对暗一点的和亮一点的图像的理解也就不同了 以上做法只考虑了网络的输入,没有考虑网络中每一层的输入 BN层就是对每一层的分布进行调整 对每一层分布归一化的好处: 加快训练速度。对于每一个神经元来说,每次的分布都类似,那么神经元不用总是大幅度调整去适应不同的输入分布。也就是加快了网络训练速度。 缓解梯度消失。经过BN层的数据会大概率落在sigmoid激活函数导数较大的区域,缓解了梯度消失。 缓解过拟合

Focal Loss理解

可紊 提交于 2020-04-18 11:33:04
1. 总述 Focal loss主要是为了解决one-stage目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重,也可理解为一种困难样本挖掘。 2. 损失函数形式 Focal loss是在交叉熵损失函数基础上进行的修改,首先回顾二分类交叉上损失: 是经过激活函数的输出,所以在0-1之间。可见普通的交叉熵对于正样本而言,输出概率越大损失越小。对于负样本而言,输出概率越小则损失越小。此时的损失函数在大量简单样本的迭代过程中比较缓慢且可能无法优化至最优。那么Focal loss是怎么改进的呢? 首先在原有的基础上加了一个因子,其中gamma>0使得减少易分类样本的损失。使得更关注于困难的、错分的样本。 例如gamma为2,对于正类样本而言,预测结果为0.95肯定是简单样本,所以(1-0.95)的gamma次方就会很小,这时损失函数值就变得更小。而预测概率为0.3的样本其损失相对很大。对于负类样本而言同样,预测0.1的结果应当远比预测0.7的样本损失值要小得多。对于预测概率为0.5时,损失只减少了0.25倍,所以更加关注于这种难以区分的样本。这样减少了简单样本的影响,大量预测概率很小的样本叠加起来后的效应才可能比较有效。 此外,加入平衡因子alpha,用来平衡正负样本本身的比例不均:文中alpha取0.25,即正样本要比负样本占比小,这是因为负例易分。

深度学习中的激活函数之 sigmoid、tanh和ReLU

自古美人都是妖i 提交于 2020-04-14 13:14:32
【推荐阅读】微服务还能火多久?>>> 三种非线性激活函数sigmoid、tanh、ReLU。 sigmoid: y = 1/(1 + e -x ) tanh: y = (e x - e -x )/(e x + e -x ) ReLU:y = max(0, x) 在隐藏层,tanh函数要优于sigmoid函数,可以看作是sigmoid的平移版本,优势在于其取值为 [-1, 1],数据的平均值为0,而sigmoid的平均值为0.5,有类似数据中心化的效果。 但在输出层,sigmoid可能会优于tanh,原因在于我们希望输出结果的概率落在0~1之间,比如二元分类问题,sigmoid可以作为输出层的激活函数。 在实际情况中,特别是在训练深层网络时,sigmoid和tanh会在端值趋近饱和,造成训练速度减慢,故深层网络的激活函数多是采用ReLU,浅层网络可以采用sigmoid和tanh函数。 为弄清在反向传播中如何进行梯度下降,来看一下三个函数的求导过程: 1. sigmoid求导 sigmoid函数定义为 y = 1/(1 + e -x ) = (1 + e -x ) -1 相关的求导公式:(x n )' = n * x n-1 和 (e x ) ' = e x 应用链式法则,其求导过程为: dy/dx = -1 * (1 + e-x)-2 * e-x * (-1) = e-x * (1

神经网络和深度学习之感知器工作原理

好久不见. 提交于 2020-04-12 17:26:25
一、激活函数 二、线性回归与梯度下降 三、矩阵乘法 一、激活函数 在第一节中我们了解到,神经元不是单纯线性的,线性函数是只要有输入 \(x\) ,必定会有一个输出 \(y\) 与之对应,而神经元接收到信号不会马上做出响应,它会等待输入信号强度增大到超过阈值才会有输出,这就好比往杯子中倒水,只有水超过杯子的上边缘才会溢出来。所以,实际应用中我们会加入一个激活层,该激活层实际上是一些激活函数。在下图中,假设有三个输入,激活函数为 \(g(x)\) ,则最后的输出是 \(y=g(\alpha_{_{_1}}x_{{_1}}+\alpha_{_{_2}}x_{{_2}}+\alpha_{_{_3}}x_{{_3}})\) ,第一个神经元计算输入的加权和,然后通过第二个神经元激活函数的作用输出 \(y\) 。 图1.2.1 在神经网络中,激活函数的主要作用是引入非线性因素,解决线性模型不能解决的问题。上图中,为什么一定要做非线性变换而不直接输出 \(y=\alpha_{_{_1}}x_{{_1}}+\alpha_{_{_2}}x_{{_2}}+\alpha_{_{_3}}x_{{_3}}\) 呢?那是因为,线性输出 \(y\) (也叫做预测值)会随着输入值的增大而无限增大,但有时候我们并不需要那么大的实际值,比如在做分类的时候,我们仅仅需要知道的是在某个阈值上下, \(y\) 是为1(被激活

深入理解CNN的细节

点点圈 提交于 2020-04-11 19:57:11
数据预处理(Data Preprocessing) 零均值化(Mean subtraction) 为什么要零均值化? 人们对图像信息的摄取通常不是来自于像素色值的高低,而是来自于像素之间的相对色差。零均值化并没有消除像素之间的相对差异(交流信息),仅仅是去掉了直流信息的影响。 数据有过大的均值也可能导致参数的梯度过大。 如果有后续的处理,可能要求数据零均值,比如PCA。 假设数据存放在一个矩阵 X 中,X 的形状为(N,D),N 是样本个数,D 是样本维度,零均值化操作可用 python 的 numpy 来实现: X -= numpy.mean(X, axis=0) 即 X 的每一列都减去该列的均值。 对于灰度图像,也可以减去整张图片的均值: X -= numpy.mean(X) 对于彩色图像,将以上操作在3个颜色通道内分别进行即可。 归一化(Normalization) 为什么要归一化? 归一化是为了让不同纬度的数据具有相同的分布规模。 假如二维数据数据(x1,x2)两个维度都服从均值为零的正态分布,但是x1方差为100,x2方差为1。可以想像对 (x1,x2)进行随机采样并在而为坐标系中标记后的图像,应该是一个非常狭长的椭圆形。 对这些数据做特征提取会用到以下形式的表达式: S = w1*x1 + w2*x2 + b 那么: dS / dw1 = x1 dS / dw2 =