激活函数的作用主要是引入非线性因素,解决线性模型表达能力不足的缺陷

  sigmoid函数可以从图像中看出,当x向两端走的时候,y值越来越接近1和-1,这种现象称为饱和,饱和意味着当x=100和x=1000的映射结果是一样的,这种转化相当于将1000大于100的信息丢失了很多,所以一般需要归一化数据。

softplus函数相比于relu函数更加平滑,会保存部分小于零的函数,但是计算量也更大了。

  relu函数在信号响应上有很多优势,但是仅仅在正向传播中,由于其对负值全部舍去很容易使模型输出全零而无法训练。例如:随机初始化的w中存在负值,其对应的正值输入特征也就被全部屏蔽了,同理对应的负值输入反而被激活了。因此,一些relu变种被开发,此处不详细讲解。

Swish是谷歌公司发现一个效果更优于relu的激活函数:

神经网络激活函数总结:

  tanh函数适用于特征相差明显时的效果会很好,在循环中会不断扩大特征效果并将其显示出来。但当特征之间相差比较复杂没有明显的区别,或者特征间的相差不是特别大需要细微的分类判断时,sigmoid函数的效果会更好。relu函数的优势在于经过处理后的数据具有很好的稀疏性。

keras中自定义激活函数:

from keras import backend as K
from keras.models import Sequential,Model
from keras.layers import Dense
import numpy as np def Swish(x):
return x*K.sigmoid(1.0*x) model = Sequential()
model.add(Dense(32,activation="relu",input_dim=100))
model.add(Dense(16,activation="relu",name="Dense_1"))
model.add(Dense(1, activation=Swish,name="Dense_2"))
model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy']) #假设训练和测试使用同一组数据
data = np.random.random((1000, 100))
labels = np.random.randint(2, size=(1000, 1)) model.fit(data,labels,epochs=10,batch_size=32)
model.predict(data)

激活函数sigmoid、tanh、relu、Swish的更多相关文章

  1. 深度学习原理与框架-神经网络架构 1.神经网络构架 2.激活函数(sigmoid和relu) 3.图片预处理(减去均值和除标准差) 4.dropout(防止过拟合操作)

    神经网络构架:主要时表示神经网络的组成,即中间隐藏层的结构 对图片进行说明:我们可以看出图中的层数分布: input layer表示输入层,维度(N_num, input_dim)  N_num表示输 ...

  2. 激活函数Sigmoid、Tanh、ReLu、softplus、softmax

    原文地址:https://www.cnblogs.com/nxf-rabbit75/p/9276412.html 激活函数: 就是在神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端. 常见 ...

  3. 神经网络激活函数sigmoid relu tanh 为什么sigmoid 容易梯度消失

    https://blog.csdn.net/danyhgc/article/details/73850546 什么是激活函数 为什么要用 都有什么 sigmoid ,ReLU, softmax 的比较 ...

  4. 激活函数(ReLU, Swish, Maxout)

    神经网络中使用激活函数来加入非线性因素,提高模型的表达能力. ReLU(Rectified Linear Unit,修正线性单元) 形式如下: \[ \begin{equation} f(x)= \b ...

  5. 【机器学习】激活函数(ReLU, Swish, Maxout)

    https://blog.csdn.net/ChenVast/article/details/81382939 神经网络中使用激活函数来加入非线性因素,提高模型的表达能力. ReLU(Rectifie ...

  6. 激活函数——sigmoid函数(理解)

    0 - 定义 $Sigmoid$函数是一个在生物学中常见的S型函数,也称为$S$型生长曲线.在信息科学中,由于其单增以及反函数单增等性质,$Sigmoid$函数常被用作神经网络的阈值函数,将变量映射到 ...

  7. TensorFlow(2)Softmax Regression

    Softmax Regression Chapter Basics generate random Tensors Three usual activation function in Neural ...

  8. 激活函数:Sigmod&tanh&Softplus&Relu详解

    什么是激活函数? 激活函数(Activation functions)对于人工神经网络模型去学习.理解非常复杂和非线性的函数来说具有十分重要的作用. 它们将非线性特性引入到我们的网络中.其主要目的是将 ...

  9. 激活函数,Batch Normalization和Dropout

    神经网络中还有一些激活函数,池化函数,正则化和归一化函数等.需要详细看看,啃一啃吧.. 1. 激活函数 1.1 激活函数作用 在生物的神经传导中,神经元接受多个神经的输入电位,当电位超过一定值时,该神 ...

随机推荐

  1. mdadm 创建md 删除md步骤

    最近在使用mdadm创建和删除RAID设备.但是在创建和删除过程中会出现创建md0重启后变成md127,删除md127重启后又重新出现的状况.在网上搜索了一下,总结如下:   创建: 1.  mdad ...

  2. UIActivityIndicatorView使用

    UIActivityIndicatorView显示一个标准的旋转进度轮,类似网页AJAX加载时的图标. let loadIndicator = UIActivityIndicatorView(fram ...

  3. 1.1.3 A+B for Input-Output Practice (III)

    A+B for Input-Output Practice (III) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...

  4. [LeetCode&Python] Problem 807. Max Increase to Keep City Skyline

    In a 2 dimensional array grid, each value grid[i][j] represents the height of a building located the ...

  5. egret游戏入门之学习资源篇

    最近因需要,入手H5游戏. 写游戏当然需要有引擎. H5游戏开发:游戏引擎入门推荐 如何选择 H5 游戏引擎 白鹭引擎和layabox哪个好用,哪个技术更成熟 ? LayaBox 与 Egret 选择 ...

  6. 一张方便的graphql schema 语言手册

    参考资料 https://github.com/sogko/graphql-schema-language-cheat-sheet        

  7. Apache和Nginx的Rewrite规则对比

    一.Apache的rewrite 1.Rewrite规则简介: Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言.可基于服务器级的(httpd.conf)和目录级的(.h ...

  8. RabbitMQ负载均衡方案之LVS

    负载均衡的方案有很多,适合RabbitMQ使用的处理HAProxy之外还有LVS.LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件 ...

  9. Oracle 存储过程发送邮件

    CREATE OR REPLACE PROCEDURE PROCSENDEMAIL(P_TXT       VARCHAR2,                                      ...

  10. Mfs+drbd+keepalived实现mfs系统高可用

    http://blog.sina.com.cn/s/blog_53c654720102wo1k.html Moosefs分布式文件系统是一个易用的系统,但其只有在Pro版中提供了master的高可用方 ...