sigmoid

机器学习之卷积神经网络CNN

只谈情不闲聊 提交于 2019-11-30 13:22:51
卷积神经网络CNN(入门认知) CNN的目的:特征提取 层次:卷积层 .池化层 .输出层 卷积层 :利用局部特征(卷积核),去计算出目标的 整体特征情况。 上图中的 各种X ,我们可以提取其中的几个特征作为卷积核。下图中选择红框框起来的作为特征。 所以我们可以得到三个 卷积核(也称为过滤器) : 卷积运算: 矩阵对应位子的乘法运算,然后选择平均值填入 feature map 图中。(如下图所示) 将目标与卷积核分别进行卷积运算,就可以 一个feature map,比如这里三个卷积核,最后会有三层的 feature map被得到。 所以经过卷积运算,可以将目标数据缩小,上图中9x9 的目标,卷积后 变成 7x7了。完整动态图见下方 激励层Relu: 获取特征图中 关联性大的数据,将关联性小的 都直接设置为0 数学公式是:f(X)=max(0,X) 池化层pooling (采样):压缩数据 虽然进行卷积操作已经使得数据变小了一点,但是还是不够小。需要使用到池化层,池化的方法有 最大池化(取最大值)和平均池化(取最小值)。下图所示的就是最大池化,在2x2的池化窗口中,选择一个最大的数值 填入到新的 特征图(feature mao)中。 为什么可以这样压缩?因为CNN想要的是知道有没有匹配的特征,不需要知道这个特征在那个位置匹配,所以这样压缩还是可以知道有匹配的数据以及其程度。 1

CNN笔记:通俗理解卷积神经网络

烈酒焚心 提交于 2019-11-30 12:51:01
CNN笔记:通俗理解卷积神经网络 2016年07月02日 22:14:50 v_JULY_v 阅读数 250368 更多 分类专栏: 30.Machine L & Deep Learning 机器学习十大算法系列 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/v_JULY_v/article/details/51812459 通俗理解卷积神经网络(cs231n与5月dl班课程笔记) 1 前言 2012年我在北京组织过8期machine learning读书会,那时“机器学习”非常火,很多人都对其抱有巨大的热情。当我2013年再次来到北京时,有一个词似乎比“机器学习”更火,那就是“深度学习”。 本博客内写过一些机器学习相关的文章,但上一篇技术文章“LDA主题模型”还是写于2014年11月份,毕竟自2015年开始创业做在线教育后,太多的杂事、琐碎事,让我一直想再写点技术性文章但每每恨时间抽不开。然由于公司在不断开机器学习、深度学习等相关的在线课程,耳濡目染中,总会顺带着学习学习。 我虽不参与讲任何课程(我所在公司“ 七月在线 ”的所有在线课程都是由目前讲师团队的60位讲师讲),但依然可以用最最小白的方式 把一些初看复杂的东西抽丝剥茧的通俗写出来。这算重写技术博客的价值所在

吴恩达深度学习——2.2 Logistic回归

ぐ巨炮叔叔 提交于 2019-11-30 01:13:37
logistic回归是一个学习算法,用在监督学习问题中,输出y标签是0或1时,这是一个二元分类问题。 已知输入的特征向量x可能是一张图,你希望能识别出这是不是猫图,你需要一个算法,可以给出一个预测值,我们说预测值 y ^ \hat{y} y ^ ​ ,就是你对y的预测,更正式地说,你希望 y ^ \hat{y} y ^ ​ 是一个概率,当输入特征x满足条件时,y就是1 ( y ^ = P ( y = 1 ∣ x ) ) (\hat{y}=P(y=1|x)) ( y ^ ​ = P ( y = 1 ∣ x ) ) 。所以换句话说,如果x是图片,正如上一节中看到的,你希望 y ^ \hat{y} y ^ ​ 能告诉你这是一张猫图的概率。所以x,正如上一节中说过的,是一个 n x n_x n x ​ 维向量。 已知logistic回归的参数是w,也是一个 n x n_x n x ​ 维向量,而b就是一个实数,所以已知输入x和参数w和b,我们如何计算输出预测 y ^ \hat{y} y ^ ​ ? 其实可以这样算,但是不靠谱,就是 y ^ = w T x + b \hat{y}=w^Tx+b y ^ ​ = w T x + b ,输入x的线性函数。事实上,如果你做线性回归,就是这么算的,,但这不是一个非常好的二元分类算法,因为你希望 y ^ \hat{y} y ^ ​ 是 y = 1 y

神经网络中的梯度消失

送分小仙女□ 提交于 2019-11-30 00:47:58
什么是梯度消失? 神经元的权重w和偏置b是和激活函数的梯度成正比的,激活函数导数越大,则w,b调整越快,如果激活函数梯度很小,在反向传播时,多个小于0的导数相乘,随着神经网络层数的加深,梯度方向传播到浅层网络时,基本无法引起全职的波动,也就是没有将loss的信息传递到浅层网络,这样网络就无法训练学习了。这就是所谓的梯度消失。 以sigmoid激活函数为例: sigmoid(x)=1/1+e^−x 该函数可以将实数压缩到开区间(0,1),其导数为: σ′(x)=e^−x/(1+e^−x)^2=σ(x)/(1−σ(x)) 函数图像如下: <ignore_js_op> 数两侧十分平滑,两端无限接近0和1,只有中间一段导数较大。当x=0时,其导数取最大值0.25。选择sigmoid函数作为激活函数的优势:1)可以引入非线性;2)容易求导;3)可以将实数压缩至(0,1) 神经网络主要的训练方法是BP算法,BP算法的基础是导数的链式法则,也就是多个导数的乘积。而sigmoid的导数最大为0.25,且大部分数值都被推向两侧饱和区域,这就导致大部分数值经过sigmoid激活函数之后,其导数都非常小,多个小于等于0.25的数值相乘,其运算结果很小。 梯度消失的解决方式主要有: 1)其它激活函数 激活函数对神经网络有显著的影响,现行常见的激活函数有ReLU、Leaky ReLU。 ReLU f(x)

简单的NER模型实现——CRF+LSTM

僤鯓⒐⒋嵵緔 提交于 2019-11-29 21:25:17
记录从零到实现CRF+LSTM的整个过程 查找概述,了解实现的过程【1h30min】 建立模型【3h30min】 阅读代码,对于实现细节有进一步的了解【4h】 自己手动实现【】 背景知识 NER 神经网络 成为可以有效处理许多NLP任务的模型。这类方法对于序列标注任务(如CWS、POS、NER)的处理方式是类似的,将 token 从离散one-hot表示 映射到低维空间中成为稠密的embedding ,随后将句子的embedding序列 输入到RNN中 ,用神经网络 自动提取特征 , Softmax来预测每个token的标签 。 缺点在于对于token打标签的时候是独立的分类,不能够直接利用上文已经预测的标签。 为了解决这个问题,提出LSTM+CRF模型做序列标注,在LSTM层后接入CRF层来做句子级别的标签预测,使得标注过程不再是对各个token独立分类。 LSTM 信息来源:《Neural Network Methods for NLP》 LSTM,即为Long Short-Term Memory,是目前最成功的 RNN架构 类型之一。 从名字可以看出,其设计的主要目的是 解决RNN的梯度消失问题和梯度爆炸问题 。门机制能够使得与记忆部分相关的梯度保留很长时间。因此,RNN能够在更长的序列中有更好的表现。 主要手段是首次引入 门机制 。所谓的门机制,简单来说,就是利用一个0

第3章 神经网络

有些话、适合烂在心里 提交于 2019-11-29 17:05:02
上一章我们学习了感知机。关于感知机,既有好消息,也有坏消息。好消息是,即便对于复杂的函数,感知机也隐含着能够表示它的可能性。上一章已经介绍过,即便是计算机进行的复杂处理,感知机(理论上)也可以将其表示出来。坏消息是,设定权重的工作,即确定合适的、能符合预期的输入与输出的权重,现在还是由人工进行的。上一章中,我们结合与门、或门的真值表人工决定了合适的权重。 神经网络的出现就是为了解决刚才的坏消息。具体地讲,神经网络的一个重要性质是它可以自动地从数据中学习到合适的权重参数。本章中,我们会先介绍神经网络的概要,然后重点关注神经网络进行识别时的处理。在下一章中,我们将了解如何从数据中学习权重参数。 3.1 从感知机到神经网络 神经网络和上一章介绍的感知机有很多共同点。这里,我们主要以两者的差异为中心,来介绍神经网络的结构。 3.1.1 神经网络的例子 用图来表示神经网络的话,如图3-1所示。我们把最左边的一列称为 输入层 ,最右边的一列称为 输出层 ,中间的一列称为中间层。中间层有时也称为 隐藏层 。“隐藏”一词的意思是,隐藏层的神经元(和输入层、输出层不同)肉眼看不见。另外,本书中把输入层到输出层依次称为第0层、第1层、第2层(层号之所以从0开始,是为了方便后面基于Python 进行实现)。图3-1中,第0层对应输入层,第1层对应中间层,第2层对应输出层。 图3-1 神经网络的例子

sigmoid 和 softmax,BCE与CE loss function

假装没事ソ 提交于 2019-11-29 16:29:03
一句话概括 sigmoid 激活函数 二分类的激活函数 解决我是和不是的问题 对应二元交叉熵损失函数 softmax 激活函数 多分类的激活函数 解决我们中哪个是的问题 对应多元交叉熵损失函数 二分类推导 为什么用交叉商: 梯度下降的角度:从下面的推导过程可以看出来sigmoid对应的交叉商最后的梯度是一种残差。mse 是高斯分布的最大似然,二CE是多项式分布的最大似然。https://zhuanlan.zhihu.com/p/63731947 交叉商的本质出发: 交叉熵描述了两个不同的概率分布p和q的差异程度,两个分布差异越大,则交叉熵的差异越大。交叉商关注的是正确类别的预测概率,而MSE无差别的关注全部类别上预测概率与真实概率的差 在MSE中[1,0,0]与[0.8,0.2]的差别是大于[0.9,0.1] 而CE的眼中并无差异。 前向传播与反向传播的推导过程: 多元分类: https://zhuanlan.zhihu.com/p/27223959 损失函数因为多元,所以和二元是有点改变的。应该考虑每一个了。 来源: https://blog.csdn.net/weixin_37721058/article/details/100851674

算法推导、面试、调用——LogisticRegression(LR)

本秂侑毒 提交于 2019-11-29 08:27:46
/*--> */ /*--> */ # 算法解析 > LogisticRegression是线性回归的一个变形,对于线性回归请参阅[线性回归](www)一节 LR模型是线性模型处理分类任务的一种,是联系函数$g(\cdot)=sigmoid(\cdot)$时的广义线性模型。二分类任务的预测值$y\in\{0, 1\}$,而线性回归模型的预测值是一个实数,因此必须用一个映射函数将线性回归模型的预测值映射到$\{0, 1\}$。最理想的映射函数为单位阶跃函数$y=\begin{} \end{}$,但是单位阶跃函数并不连续可导,这将对后续求解模型参数带来困难,因此我们通常采取对数几率函数$y=sigmoid(x)=\frac{1}{1+e^{(-x)}}$作为映射函数。**sigmoid(x)函数能将输入值$x$映射到$(0,1)$之间的一个值**,这个值可以作为二分类问题预测值为1、0的概率。 ![sigmoid函数图像](_v_images/20190908170933507_1988946760.jpg =400x) LogisticRegression模型: $$f(x_i)=\frac{1}{1+e^{-(w^Tx_i+b)}} $$ 令$\beta=(w^Tx_i;b), \hat{x}=(x;1)$,损失函数为: $$L(\beta)=\sum_{i=1}^{N}(-y_i

常见的激活函数

寵の児 提交于 2019-11-29 05:49:11
1,Sigmoid sigmoid 函数映射之后取值范围为(0,1) tanh函数映射之后取值范围(-1,1) Relu函数映射之后取值范围(0,..)大宇等于0 Sigmoid函数的特点是会把输出限定在0~1之间,如果是非常大的负数,输出就是0,如果是非常大的正数,输出就是1,这样使得数据在传递过程中不容易发散。 Sigmod有两个主要缺点,一是Sigmoid容易过饱和,丢失梯度。从Sigmoid的示意图上可以看到,神经元的活跃度在0和1处饱和,梯度接近于0,这样在反向传播时,很容易出现梯度消失的情况,导致训练无法完整;二是Sigmoid的输出均值不是0,基于这两个缺点,SIgmoid使用越来越少了。 2. tanh tanh是Sigmoid函数的变形,tanh的均值是0,在实际应用中有比Sigmoid更好的效果。 3. ReLU ReLU是近来比较流行的激活函数,当输入信号小于0时,输出为0;当输入信号大于0时,输出等于输入。 ReLU的优点: 1. ReLU是部分线性的,并且不会出现过饱和的现象,使用ReLU得到的随机梯度下降法(SGD)的收敛速度比Sigmodi和tanh都快。 2. ReLU只需要一个阈值就可以得到激活值,不需要像Sigmoid一样需要复杂的指数运算。 ReLU的缺点: 在训练的过程中,ReLU神经元比价脆弱容易失去作用

【深度学习】深入理解Batch Normalization批标准化

霸气de小男生 提交于 2019-11-28 15:38:33
这几天面试经常被问到BN层的原理,虽然回答上来了,但还是感觉答得不是很好,今天仔细研究了一下Batch Normalization的原理,以下为参考网上几篇文章总结得出。   Batch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和重要性。虽然有些细节处理还解释不清其理论原因,但是实践证明好用才是真的好,别忘了DL从Hinton对深层网络做Pre-Train开始就是一个 经验领先于理论分析 的偏经验的一门学问。本文是对论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》的导读。   机器学习领域有个很重要的假设: IID独立同分布假设 ,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。那BatchNorm的作用是什么呢? BatchNorm就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布的。   接下来一步一步的理解什么是BN。   为什么深度神经网络 随着网络深度加深,训练起来越困难,收敛越来越慢? 这是个在DL领域很接近本质的好问题。很多论文都是解决这个问题的,比如ReLU激活函数,再比如Residual Network