文档章节

神经网络中的激活函数

o
 osc_993tr4xp
发布于 07/04 11:25
字数 1231
阅读 35
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

作者|Renu Khandelwal
编译|VK
来源|Medium

什么是神经网络激活函数?

激活函数有助于决定我们是否需要激活神经元。如果我们需要发射一个神经元那么信号的强度是多少。

激活函数是神经元通过神经网络处理和传递信息的机制

为什么在神经网络中需要一个激活函数?

在神经网络中,z是输入节点与节点权值加上偏差的乘积。z的方程与线性方程非常相似,取值范围从+∞到-∞

如果神经元的值可以从负无穷到正无穷变化,那么我们就无法决定是否需要激活神经元。这就是激活函数帮助我们解决问题的地方。

如果z是线性的,那么我们就不能解决复杂的问题。这是我们使用激活函数的另一个原因。

有以下不同类型的激活函数

  • 阀值函数或阶梯激活函数
  • Sigmoid
  • Softmax
  • Tanh或双曲正切
  • ReLU
  • Leaky ReLU

为什么我们需要这么多不同的激活函数,我怎么决定用哪一个呢?

让我们回顾一下每一个激活函数,并了解它们的最佳使用位置和原因。这将帮助我们决定在不同的场景中使用哪个激活函数。

阀值函数或阶梯激活函数

这是最简单的函数

如果z值高于阈值,则激活设置为1或yes,神经元将被激活。

如果z值低于阈值,则激活设置为0或no,神经元不会被激活。

它们对二分类很有用。】

Sigmoid激活函数

Sigmoid函数是一种光滑的非线性函数,无扭结,形状类似于S形。

它预测输出的概率,因此被用于神经网络和逻辑回归的输出层。

由于概率范围在0到1之间,所以sigmoid函数值存在于0到1之间。

但是如果我们想分类更多的是或不是呢?如果我想预测多个类,比如预测晴天、雨天或阴天,该怎么办?

Softmax激活有助于多类分类

Softmax激活函数

Sigmoid激活函数用于两类或二类分类,而softmax用于多类分类,是对Sigmoid函数的一种推广。

在softmax中,我们得到了每个类的概率,它们的和应该等于1。当一个类的概率增大时,其他类的概率减小,因此概率最大的类是输出类。

例如:在预测天气时,我们可以得到输出概率,晴天为0.68,阴天为0.22,雨天为0.20。在这种情况下,我们以最大概率的输出作为最终的输出。在这种情况下我们预测明天将是晴天。

Softmax计算每个目标类的概率除以所有可能的目标类的概率。

双曲正切或Tanh激活函数

对于双曲tanh函数,输出以0为中心,输出范围在-1和+1之间。

看起来很像Sigmoid。实际上双曲tanh是缩放的s形函数。与Sigmoid相比,tanh的梯度下降作用更强,因此比Sigmoid更受欢迎。

tanh的优点是,负输入将被映射为强负,零输入将被映射为接近零,这在sigmoid中是不会发生的,因为sigmoid的范围在0到1之间

ReLU

ReLU本质上是非线性的,这意味着它的斜率不是常数。Relu在0附近是非线性的,但斜率不是0就是1,因此具有有限的非线性。

范围是从0到∞

当z为正时,ReLU的输出与输入相同。当z为0或小于0时,输出为0。因此,当输入为0或低于0时,ReLU会关闭神经元。

所有的深度学习模型都使用Relu,但由于Relu的稀疏性,只能用于隐含层。稀疏性指的是空值或“NA”值的数量。

当隐层暴露于一定范围的输入值时,RELU函数将导致更多的零,从而导致更少的神经元被激活,这将意味着更少的神经网络交互作用。

ReLU比sigmoid或tanh更积极地打开或关闭神经元

Relu的挑战在于,负值变为零降低了模型正确训练数据的能力。为了解决这个问题,我们有Leaky ReLU

Leaky ReLU

a的值通常是0.01

在Leaky ReLU中,我们引入了一个小的负斜率,所以它的斜率不是0。这有助于加快训练。

Leaky ReLU的范围从-∞到+∞

原文链接:https://medium.com/@arshren/neural-networks-activation-functions-e371202b56ff

欢迎关注磐创AI博客站:
http://panchuang.net/

sklearn机器学习中文官方文档:
http://sklearn123.com/

欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/

o
粉丝 0
博文 72
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
神经网络库--GoNN

GoNN是一个用GO语言写的神经网络库 GoNN目前实现了BP网络,RBF网络和感知机 在著名的手写体字符识别数据库MNIST上,GoNN达到了98.2%的正确率。 此外,项目中还包含简单的例子:sin曲线拟合、鸾...

fxsjy
2012/11/01
4.2K
0
浏览器中的scheme解释器--SchemeScript

一个用javascript实现的scheme解释器,可以运行在浏览器中或node.js中。 刚刚看到编译原理与实践第二章,一时兴起,想写个以前就想写的scheme的解释器。昨天晚上开始写,到刚才为止,接近一天...

zoowii
2012/11/01
1.2K
0
在C++中使用Lua

http://www.cppprog.com/2009/0209/62.html

Waiting4you
2009/05/05
1K
0
卷积神经网络初探

前言 目前为止我已经完整地学完了三个机器学习教程:包括“Stanford CS229”,"Machine Learning on Coursrea" 和 "Stanford UFLDL",卷积神经网络是其中最抽象的概念。 维基百科对卷积的数学...

Lee的白板报
2015/12/24
8.4K
14
JS中的编码问题

如果在当前页面嵌入js,那么如果js文件中的编码方式和当前页面的编码方式不一样,那么js中的中文将会出现乱码情况; 一.JS中的URL编码 使用Ajax中的http_request.open('GET',url,true)调用,...

小和尚敲代码
2016/05/13
449
0

没有更多内容

加载失败,请刷新页面

加载更多

如何查看仅一个用户提交的git日志? - How can I view a git log of just one user's commits?

问题: 使用git log ,如何按用户筛选,以便仅看到该用户的提交? 解决方案: 参考一: https://stackoom.com/question/HsDc/如何查看仅一个用户提交的git日志 参考二: https://oldbug.net...

富含淀粉
37分钟前
6
0
【Pyecharts Gallery】中看不中用的可视化作品集合~

摘自: https://www.kesci.com/home/project/5ecd20d0c1a73900361b92b5 var myColor = ['#eb2100', '#eb3600', '#d0570e', '#d0a00e', '#34da62', '#00e9db', '#00c0e9', '#0096f3', '#33CCF......

tengyulong
今天
10
0
《Java8实战》笔记(03):Lambda表达式

本文源码 Lambda 管中窥豹 可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 Lambda表达...

巨輪
今天
7
0
从其他文件夹导入文件 - Importing files from different folder

问题: I have the following folder structure. 我有以下文件夹结构。 application/app/folder/file.py and I want to import some functions from file.py in another Python file which r......

javail
今天
22
0
大数据研发学习之路--Hadoop集群搭建

阅读编译文档 准备一个hadoop源码包,我选择的hadoop版本是:hadoop-2.7.7-src.tar.gz,在hadoop-2.7.7的源码 包的根目录下有一个文档叫做BUILDING.txt,这其中说明了编译hadoop所需要的一些...

DSJ-shitou
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部