sigmoid

LSTM记录贴

半世苍凉 提交于 2019-11-27 12:47:14
LSTM记录贴 得平常再做一些任务都会用到LSTM(长短时记忆网络)、GRU以及一些变形的RNN模型,虽然平时用的多,但近来看面经,发现有些问题都忘了,回过头看了又忘,所以准备好好的手推一遍并且记录下来; 先上图 其实如果推理过LSTM的话,基本上这图就没啥用,因为这图说实话画的略显复杂。在真的面试遇到手推LSTM,方法应该是从三个门出发点去反向画图。 先说主人公三个门,分别是遗忘门(f)、输入门(i)、输出门(o) 还有出场的人员包括上个时间步细胞状态(ct-1)、本时刻的输入(xt)、上一时间步的输入(ht-1)、临时细胞状态(c~) 以及lstm每个unit特有的输入框架,相比普通RNN多了一个c而已 那么可以开始推导了 首先要确定,每个lstm会有三个输入(ct-1、ht-1、xt),两个输出(ct、ht) 而ht-1与xt都是向量,在论文中xt与ht-1是直接横向拼接在一起的(可以有不同的结合方式,但是基本是绑定的),因为两个向量都是定长,所以在经过每个门的线性变换矩阵输出也是定长。 那么开始第一个门,决定我们会从细胞状态中丢弃什么信息,所以叫遗忘门,f= sigmoid([xt,ht-1]Wf+bf),输出的是一个概率,遗忘概率。那么遗忘的对象是谁?那必然是上个时刻输入的细胞状态ct-1 那么可以画出图 输入门(或者更新门)i = sigmoid([xt,ht-1]Wi

神经网络1

為{幸葍}努か 提交于 2019-11-27 07:24:05
数据集: sigmoid与条件概率的关系及推导过程 sigmoid是机器学习中常用的激活函数,其优势作者这里不一一赘述,本文主要从另一个角度,判别模型(discriminative model)条件概率的角度对sigmoid函数进行推导。 机器学习判别模型主要想通过神经网络对 P(Y|X) 进行建模。 假设 xϵRn 且yϵy1,y2且P(x|y1)∼N(μ1,∑) 且 P(x|y1)∼N(μ1,∑) 根据上述假设可得: 根据贝叶斯公式: 观察 P(x|y1)P(x|y2) 带入假设P(x|y1),P(x|y2) 概率密度函数,可得 注:(1)同理也可以通过假设多个条件概率密度函数,也可以求得softmax形式。(2)为了便于推导方便这里假设协方差矩阵相同,不同的话也没有问题,不影响最终线性表达式的形式 归一化,也算是数据标准化方法之一。常见的计算公式如下,得到新数据范围在[0,1]之间,归一化由此得名。 归一化:1)把数据变成(0,1)或者(1,1)之间的小数。 物理量按照其属性分为两类:1.物理量的大小与度量所选用的单位有关,称为有量纲量,例如,时间、长度、质量、速度、力、能量等。2.物理量的大小与度量所选的单位无关,称为无量纲量,例如角度、增益、两个长度之比等。 来源: https://blog.csdn.net/shenwansan_gz/article/details

常见激活函数,及其优缺点 - 面试篇

你离开我真会死。 提交于 2019-11-27 03:15:30
废话不多说,直接开问。 问:什么是激活函数? 在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数。 问:激活函数有什么用? 如果没有激励函数,在这种情况下你每一层节点的输入都是上层输出的线性函数,无论你神经网络有多少层,输出都是输入的线性组合,相当于没有隐藏层,网络的学习能力有限。 深度学习最主要的特点就是:多层,非线性。 多层为了能够学习更多的东西;没有非线性,多层和单层没什么区别,就是简单的线性组合,连异或都解决不了。 感兴趣的可以看这篇文章: 为什么神经网络需要解决多层和非线性问题 问:介绍一下你熟悉的激活函数?特点,优缺点 sigmoid函数 f ( z ) = 1 1 + e − z f(z) = \frac{1}{1+e^{-z}} f ( z ) = 1 + e − z 1 ​ 特点: 它能够把输入的连续实值变换为0和1之间的输出,特别的,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1. 导数曲线: 缺点: 容易导致梯度消失。 如果我们初始化神经网络的权值为 [0,1]之间的随机值,由 反向传播算法 的数学推导可知,梯度从后向前传播时,每传递一层梯度值都会减小为原来的0.25倍,如果神经网络隐层特别多,那么梯度在穿过多层后将变得非常小接近于0,即出现梯度消失现象。 (这里有个坑,面试官可能听你提起反向传播

《MATLAB Deep Learning:With Machine Learning,Neural Networks and Artificial Intelligence》选记

♀尐吖头ヾ 提交于 2019-11-26 19:36:29
一、Training of a Single-Layer Neural Network 1 Delta Rule Consider a single-layer neural network, as shown in Figure 2-11. In the figure, d i is the correct output of the output node i. Long story short, the delta rule adjusts the weight as the following algorithm: “If an input node contributes to the error of the output node, the weight between the two nodes is adjusted in proportion to the input value, x j and the output error, e i .” This rule can be expressed in equation as: where x j = The output from the input node j, ( j =1 2 3 , , ) e i = The error of the output node i w ij = The weight

Tensorf实战第九课(自编码AutoEncoder)

寵の児 提交于 2019-11-26 17:02:35
本节我们将了解神经网络进行非监督形式的学习,即autoencoder自编码 假设图片经过神经网络后再输出的过程,我们看作是图片先被压缩然后解压的过程。那么在压缩的时候,原有的图片质量被缩减,解压时用信息量小却包含所有关键信息的文件恢复出原本的图片。 为什么要这么做呢? 因为当神经网络接收大量信息时,神经网络在成千上万个信息源中学习是一件比较吃力的事。所以进行压缩,从原图片中提取最具代表性的信息,减小输入信息量,再把缩减过后的信息放进神经网络学习,这样学习起来简单轻松许多。 如下图所示,将原数据白色的X压缩,解压还原成黑色的X,求出预测误差,进行反向传递,逐步提升自编码的准确性。训练好的自编码中间一部分就是能够总结原数据的精髓。可以看出,从头到尾,我么值用到看输入数据X,并没有用到X对应的数据标签,所以可以说自编码是一种非 监督学习 。到了真正使用自编码的时候,通常只会用到自编码的前半部分。 如下图,这部分也叫作encoder编码器,编码器能得到元数据的精髓我们只需要创建一个小的神经网络学习这个精髓的数据,不仅能减少神经网络的负担,同样能达到很好的效果。 至于Decoder解码器,解压器在训练的时候是要将精髓信息解压成原始信息,那么这就提供了一个解压器的作用,甚至我们可以认为是一个生成器。做这件事的一种特殊编码叫做variational autoencoders

[转]机器学习资料(非常好理解)

天大地大妈咪最大 提交于 2019-11-26 16:55:52
先从回归(Regression)问题说起。我在本吧已经看到不少人提到如果想实现强AI,就必须让机器学会观察并总结规律的言论。具体地说,要让机器观察什么是圆的,什么是方的,区分各种颜色和形状,然后根据这些特征对某种事物进行分类或预测。其实这就是回归问题。 如何解决回归问题?我们用眼睛看到某样东西,可以一下子看出它的一些基本特征。可是计算机呢?它看到的只是一堆数字而已,因此要让机器从事物的特征中找到规律,其实是一个如何在数字中找规律的问题。 例:假如有一串数字,已知前六个是1、3、5、7,9,11,请问第七个是几? 你一眼能看出来,是13。对,这串数字之间有明显的数学规律,都是奇数,而且是按顺序排列的。 那么这个呢?前六个是0.14、0.57、1.29、2.29、3.57、5.14,请问第七个是几? 这个就不那么容易看出来了吧!我们把这几个数字在坐标轴上标识一下,可以看到如下图形: 用曲线连接这几个点,延着曲线的走势,可以推算出第七个数字——7。 由此可见,回归问题其实是个曲线拟合(Curve Fitting)问题。那么究竟该如何拟合?机器不可能像你一样,凭感觉随手画一下就拟合了,它必须要通过某种算法才行。 假设有一堆按一定规律分布的样本点,下面我以拟合直线为例,说说这种算法的原理。 其实很简单,先随意画一条直线,然后不断旋转它。每转一下,就分别计算一下每个样本点和直线上对应点的距离

支持向量机(SVM)

故事扮演 提交于 2019-11-26 12:59:28
一、概念 1、分离超平面:空间内能够将数据分为不同类别的平面 2、线性可分:不同类别数据能够被一个超平面完全分开 3、损失项:模型在数据上违反自身分类原则的程度(是一个求和项) 4、损失系数:损失项的系数(是一个超参数,由模型给定) 5、损失函数L = min (1/2*(||w||)2) + C*max(Σi max(0,1-y(i)*(w.x(i) +c)) 6、预测损失:损失函数的第二项(称作 hinge loss) 7、惩罚项:损失函数的第一项 (在svm中,惩罚项的初衷是最大化margin(两个分类之间的距离)) 8、hard margin : C比较大,此时margin较小,模型更注重靠近超平面的异常点 9、soft margin :C比较小,此时margin较大,模型更注重靠近类别中心的点 10、核函数:机器学习重要的数据处理技巧,通过核函数将原空间中的非线性数据映射为高维(或者无限维)空间中近似线性关系的数据,机器学习模型搭载核函数的方法大体一致。 常用的核函数: 1、线性核函数(linear kernel) 2、多项式核函数(ploynomial kernel) 3、S型核函数(sigmoid kernel) 4、拉普拉斯核函数(laplacian kernel) 5、高斯核函数(RBF kernel) 常用的核函数选择方法: 1、网格搜寻 (grid

【机器学习】对数线性模型之Logistic回归、SoftMax回归和最大熵模型

风格不统一 提交于 2019-11-26 11:09:55
点击上方 蓝色字体 ,关注 AI小白入门 哟 跟着博主的脚步,每天进步一点点 本文介绍对数线性分类模型,在线性模型的基础上通过复合函数(sigmoid,softmax,entropy )将其映射到概率区间,使用对数损失构建目标函数。 首先以概率的方式解释了logistic回归为什么使用sigmoid函数和对数损失,然后将二分类扩展到多分类,导出sigmoid函数的高维形式softmax函数对应softmax回归,最后最大熵模型可以看作是softmax回归的离散型版本,logistic回归和softmax回归处理数值型分类问题,最大熵模型对应处理离散型分类问题。 作者 | 文杰 编辑 | yuquanle Logistic回归 A、 Logistic回归 分类问题可以看作是在回归函数上的一个分类。 一般情况下定义二值函数,然而二值函数构成的损失函数非凸,一般采用sigmoid函数平滑拟合(当然也可以看作是一种软划分,概率划分): 从函数图像我们能看出,该函数有很好的特性,适合二分类问题。 至于为何选择Sigmoid函数,后面可以从广义线性模型导出为什么是Sigmoid函数。 逻辑回归可以看作是在线性回归的基础上构建的分类模型,理解的角度有多种(最好的当然是概率解释和最小对数损失),而最直接的理解是考虑逻辑回归是将线性回归值离散化。 即一个二分类问题(二值函数)如下:

Tensorflow sigmoid and cross entropy vs sigmoid_cross_entropy_with_logits

限于喜欢 提交于 2019-11-26 07:57:13
问题 When trying to get cross entropy with sigmoid activation function, there is difference between loss1 = -tf.reduce_sum(p*tf.log(q), 1) loss2 = tf.reduce_sum(tf.nn.sigmoid_cross_entropy_with_logits(labels=p, logits=logit_q),1) But they are same when with softmax activation function. Following is the sample code: import tensorflow as tf sess2 = tf.InteractiveSession() p = tf.placeholder(tf.float32, shape=[None, 5]) logit_q = tf.placeholder(tf.float32, shape=[None, 5]) q = tf.nn.sigmoid(logit_q)