sigmoid

神经网络-激励函数

孤者浪人 提交于 2019-12-27 17:32:45
一、前言 激励函数在神经网络的作用通俗上讲就是讲多个线性输入转换为非线性的关系。 不使用激励函数的话,神经网络的每层都只是做线性变换,多层输入叠加后也还是线性变换。因为线性模型的表达能力不够,激励函数可以引入非线性因素。 1.1 单一的神经网络 如果没有激励函数,在单层神经网络中,我们的输入和输出关系如下图: 这是一个线性方程的直观表示,如果我们增加感知机,如下图: 其中结果输出就是右边的绿色区域,但是本质上还是各种线性方程的组合,对于非线性数据则无法很好的处理。如下数据: 上图数据你就没有办法画出一条直线来将数据区分开. 这时候有两个办法,第一个办法,是做线性变换(linear transformation),比如讲x,y变成x^2,y^2,这样可以画出圆形。如图所示: 如果将坐标轴从x,y变为以x^2,y^2为标准,你会发现数据经过变换后是线性可分的了。大致示意图如下: 1.2 含有激励函数的神经网络 加入非线性激励函数后,神经网络就有可能学习到平滑的曲线来分割平面,而不是用复杂的线性组合逼近平滑曲线来分割平面。 这就是为什么我们要有非线性的激活函数的原因。如下图所示说明加入非线性激活函数后的差异,上图为用线性组合逼近平滑曲线来分割平面,下图为平滑的曲线来分割平面: 二、激励函数 1、激活函数通常有如下一些性质: 非线性: 当激活函数是线性的时候

深度学习之Batch Normalization

China☆狼群 提交于 2019-12-27 10:11:30
在机器学习领域中,有一个重要的假设:独立同分布假设,也就是假设训练数据和测试数据是满足相同分布的,否则在训练集上学习到的模型在测试集上的表现会比较差。而在深层神经网络的训练中,当中间神经层的前一层参数发生改变时,该层的输入分布也会发生改变,也就是存在内部协变量偏移问题(Internal Covariate Shift),从而造成神经层的梯度消失,模型收敛过慢的问题。 Batch Normalization(BN,批量标准化)就是一种解决内部协变量偏移问题的方法,它通过对神经网络的中间层进行逐层归一化,让每一个中间层输入的分布保持稳定,即保持同一分布。 下面从以下四个方面来深入理解Batch Normalization的原理。 1、内部协变量偏移问题 2、训练时的Batch Normalization 3、推断时的Batch Normalization 4、Batch Normalization的优点 一、内部协变量偏移问题 1、内部协变量偏移问题的产生 在传统机器学习中,一个常见的问题是协变量偏移(Covariate Shift),大致的意思就是数据会随着时间而变化,用旧数据训练好的模型去预测新数据时,结果可能会不准确。输入数据可以看做是协变量,机器学习算法要求输入数据在训练集和测试集上满足同分布,这样把模型用来预测新的数据,才能有较好的结果。 而深层神经网络中的内部协变量偏移

【机器学习】算法原理详细推导与实现(二):逻辑回归

大城市里の小女人 提交于 2019-12-26 23:44:30
【机器学习】算法原理详细推导与实现(二):逻辑回归 在上一篇算法中,线性回归实际上是 连续型 的结果,即 \(y\in R\) ,而逻辑回归的 \(y\) 是离散型,只能取两个值 \(y\in \{0,1\}\) ,这可以用来处理一些分类的问题。 logistic函数 我们可能会遇到一些分类问题,例如想要划分 鸢尾花 的种类,尝试基于一些特征来判断鸢尾花的品种,或者判断上一篇文章中的房子,在6个月之后能否被卖掉,答案是 是 或者 否 ,或者一封邮件是否是垃圾邮件。所以这里是 \(x\) ,这里是 \(y\) 在一个分类问题中, \(y\) 只能取两个值0和1,这就是一个二元分类的问题,如下所示: 可以使用线性回归对以上数值进行划分,可以拟合出如下那么一条线,用 \(y=0.5\) 作为临界点,如果 \(x\) 在这个临界点的右侧,那么 \(y\) 的值就是1,如果在临界点的左侧,那么 \(y\) 的值就是0,所以确实会有一些人会这么做,用线性回归解决分类问题: 线性回归解决分类问题,有时候它的效果很好,但是通常用线性回归解决像这样的分类问题会是一个很糟糕的主意,加入存在一个额外的训练样本 \(x=12\) ,如果现在对这个训练集合做线性拟合,那么可能拟合出来那么一条直线: 这时候 \(y\) 的临界点估计已经不太合适了,可以知道线性回归对于分类问题来说,不是一个很好的方法。 假设

激活函数和损失函数

ぃ、小莉子 提交于 2019-12-26 04:19:58
原文地址 激活函数和损失函数 这一部分来探讨下激活函数和损失函数。在之前的logistic和神经网络中,激活函数是sigmoid, 损失函数是平方函数。但是这并不是固定的。事实上,这两部分都有很多其他不错的选项,下面来一一讨论 激活函数和损失函数 激活函数 关于激活函数,首先要搞清楚的问题是,激活函数是什么,有什么用?不用激活函数可不可以?答案是不可以。激活函数的主要作用是提供网络的非线性建模能力。如果没有激活函数,那么该网络仅能够表达线性映射,此时即便有再多的隐藏层,其整个网络跟单层神经网络也是等价的。因此也可以认为,只有加入了激活函数之后,深度神经网络才具备了分层的非线性映射学习能力。 那么激活函数应该具有什么样的性质呢? 可微性: 当优化方法是基于梯度的时候,这个性质是必须的。 单调性: 当激活函数是单调的时候,单层网络能够保证是凸函数。 输出值的范围: 当激活函数输出值是 有限 的时候,基于梯度的优化方法会更加 稳定,因为特征的表示受有限权值的影 响更显著;当激活函数的输出是 无限 的时候,模型的训练会更加高效,不过在这种情况小,一般需要更小的learning rate 从目前来看,常见的激活函数多是分段线性和具有指数形状的非线性函数 sigmoid f(x)=11+e−xf(x)=\frac{1}{1+e^{−x}} f ( x ) = 1 + e − x 1 ​

【分类算法】逻辑回归

只谈情不闲聊 提交于 2019-12-23 03:54:44
目录 什么是逻辑回归 逻辑回归模型推导 为何不能用线性模型 线性模型转二分类模型(Sigmoid) 代价函数 使用最小二乘法估计 最大似然法 代码样例 总结 什么是逻辑回归 之前我们讲过 线性回归 的原理以及推导过程。今天,我们回家另外一个算法,叫逻辑回归。简单归类一下,这个算法不是归类预测算法,大家千万不要被名字不会了。它其实属于分类算法。说到 分类算法 ,大家有没有联想到?没错,逻辑回归属于监督学习。所以它需要带标签的数据。 这里简单的列举一下逻辑回归的使用场景: 垃圾邮件分类 网络诈骗分类 恶行肿瘤鉴定 逻辑回归模型推导 为何不能用线性模型 下面以恶行肿瘤来举例子。假如我们有个数据集,他们他描述的是肿瘤大小,以及是否为和兴肿瘤。大致如下: 肿瘤大小 是否恶性 1 否 5 否 10 是 10.5 否 15 是 假设x是肿瘤的大小,y代表否恶性。最终我们可以得到下图左边的8个红色交叉点。假如我们线性回归预测这8个点时,我们可以得到蓝色的一条线。若我们假设蓝色线上面的是恶行肿瘤,下面的是良性肿瘤。这里看上去预测的结果好像还可以。 但假如这时候出现一个右边蓝色肩头上点,我们重新用线性模型预测出回归线,然后得到粉色的线。这时候问题就出现了,新增的点的x其实非常的大,但是却被模型判定成良性肿瘤。这样是不是就不对了。所以,我们需要修改我们的模型。我们要把我们的线性模型改成二分类模型

logistic回归

人盡茶涼 提交于 2019-12-16 15:13:31
logistic回归 回归就是对已知公式的未知参数进行估计。比如已知公式是$y = a*x + b$,未知参数是a和b,利用多真实的(x,y)训练数据对a和b的取值去自动估计。估计的方法是在给定训练样本点和已知的公式后,对于一个或多个未知参数,机器会自动枚举参数的所有可能取值,直到找到那个最符合样本点分布的参数(或参数组合)。 logistic分布 设X是连续随机变量,X服从logistic分布是指X具有下列分布函数和密度函数: $$F(x)=P(x \le x)=\frac 1 {1+e^{-(x-\mu)/\gamma}}\ f(x)=F^{'}(x)=\frac {e^{-(x-\mu)/\gamma}} {\gamma(1+e^{-(x-\mu)/\gamma})^2}$$ 其中,$\mu$为位置参数,$\gamma$为形状参数。 $f(x)$与$F(x)$图像如下,其中分布函数是以$(\mu, \frac 1 2)$为中心对阵,$\gamma$越小曲线变化越快。 logistic回归模型 二项logistic回归模型如下: $$P(Y=1|x)=\frac {exp(w \cdot x + b)} {1 + exp(w \cdot x + b)} \ P(Y=0|x)=\frac {1} {1 + exp(w \cdot x + b)}$$ 其中,$x \in R^n

02 神经网络主要知识点

不羁的心 提交于 2019-12-15 00:48:04
02 - 神经网络主要知识点 目录引索 简单神经网络 感知机 神经网络特点 softmax 交叉熵 卷积神经网络 卷积 激活函数 池化 全连接 Tensorflow playground 演示 简单神经网络 神经网络就是模拟人的神经元进行信号(信息)收集、传递、处理的过程。 以人体对于温度的感知为例: 感知机 定义: 有n个输入数据,通过权重与个数据之间的计算和,比较激活函数结果,得出输出。 sum = w1x1+w2x2+w3x3+...... 应用: 容易解决与、或问题, 分类问题。 与问题: 所有输入为1,则为1 或问题: 只要有一个为1,则为1 亦或问题:相同为0,不同为1 (使用2条直线来划分,即2个感知机) 感知机与逻辑回归的对比 感知机是求和以后进行一个简单的阈值判断,而逻辑回归是通过一个sigmoid激活函数函数转化为[0,1]的值。 神经网络定义 当一个感知机不能解决问题的时候,会用多个感知机来构成网络。 感知机 --> 神经元 多个神经元构成的网络 --> 神经网络 神经网络是一个多分类问题,得出属于全部类别的每一个概率,谁的概率大,就是谁。 神经网络特点 由输入层(1个)、隐藏层(n个)、输出层组成(1个) 输入向量的维度和输入神经元的个数相同 (不是个数) 同一层的神经元之间没有连接 每个连接都有权重 (类似于线性回归) 第N层与N-1层的所有神经元全连接

Fit and compare multiple sigmoid curves in R

ぃ、小莉子 提交于 2019-12-14 00:27:51
问题 I would like to fit multiple curves at once, and compare them statistically, in terms of their 3 estimated parameters – asymptote, slope and x0. Here is an idealized image of the data to be modeled: Most searchable pages turn up methods to fit a single curve, as seen here: http://kyrcha.info/2012/07/08/tutorials-fitting-a-sigmoid-function-in-r/ and here http://rstudio-pubs-static.s3.amazonaws.com/7812_5327615eb0044cf29420b955ddaa6173.html In my case, I would like to test (statistically) the

激活函数和函数极限

蹲街弑〆低调 提交于 2019-12-13 04:49:08
激活函数有哪些 sigmoid函数,relu函数,tanh函数 怎么选取激活函数 函数的极限 当自变量趋于有限值时的极限 自变量趋于无穷大时函数的极限 tanh(x)与sigmoid(x)的关系 tanh(x)=2*sigmoid(2x)-1 来源: CSDN 作者: 薛定谔的猫1992 链接: https://blog.csdn.net/weixin_42456166/article/details/103467283

学习速率递减

為{幸葍}努か 提交于 2019-12-12 02:40:43
存在的问题 在mini-batch梯度下降法中,由于多个mini-batch的互相干扰,如果到了低谷附近还保持很大的学习速率,可能会一直来回波动。而一开始设置较小的学习速率下降又太慢。 学习速率递减 为了解决上述问题,很自然的想到了学习速率的递减。 开始时学习速率较大,而当epoch到达一定程度的时候适当的减少。 方法一: α ′ = 1 1 + d e c a y r a t e ∗ e p o c h n u m α \alpha'=\dfrac{1}{1+decay_{rate}*epoch_{num}}\alpha α ′ = 1 + d e c a y r a t e ​ ∗ e p o c h n u m ​ 1 ​ α 方法二: f o r e a c h    K    e p o c h : α : = 0.9 ∗ α foreach\;K\;epoch:\alpha:=0.9*\alpha f o r e a c h K e p o c h : α : = 0 . 9 ∗ α 方法三: α ′ = K e p o c h n u m α \alpha'=\dfrac{K}{\sqrt{epoch_{num}}}\alpha α ′ = e p o c h n u m ​ ​ K ​ α import numpy as np import matplotlib .