pytorch-04-激活函数
sigmoid函数: 越大的负数越接近0,越大的正数越接近1
缺点:
(1)造成梯度消失:该函数在靠近1和0的两端,梯度几乎变成0,
梯度下降法:梯度乘上学习率来更新参数,如果梯度接近0,那么没有任何信息来更新参数,会造成模型不收敛
另外,使用sigmoid函数,在初始化权重时,权重太大,经过激活函数会导致大多数神经元变得饱和,没有办法更新参数
(2)sigmoid输出不是以0为均值,这就会导致经过sigmoid激活函数之后的输出,作为后面一层网络的输入的时候是非0均值的,这个时候
如果进入下一层神经元的时候全是正的,这就会导致梯度全是正的,那么在更新梯度的时候永远都是正梯度。
(详解)p52 Tanh激活函数: 将输入的数据转换到-1到1之间,输出变成了0均值,解决了sigmoid的第二个问题。
但是,仍然存在梯度消失的问题 Relu函数
优点:
(1)相比sigmoid函数和Tanh激活函数,Relu激活函数能够极大的加速随机梯度下降的收敛速度,线性,不存在梯度消失问题。
(2)计算简单,只需要一个阈值过滤就可以得到结果,不需要进行一大堆复杂的运算。
缺点:
训练时脆弱,比如一个很大的梯度经过Relu激活函数,更新参数后,会使这个神经元不会对任何数据有激活现象。如果发生这个情况之后,经过relu的梯度永远都是0,参数无法更新,因为Relu激活函数本质上是一个不可逆的过程,因为它会直接去掉输入小于0的部分。在实际操作中可以通过设置比较小的学习率来避免这个问题。 Leaky Relu
是relu的变式,主要修复relu激活函数的脆弱问题,不将x<0的部分变成0,而给它一个很小的负的斜率。 Maxout:有relu的优点,又避免了relu的缺点,但加倍了模型的参数。
max(w1*x+b1,w2*x+b2)
relu 是maxout中w1 =0,b1 =0的特殊形式。
pytorch-04-激活函数的更多相关文章
- [pytorch] 自定义激活函数中的注意事项
如何在pytorch中使用自定义的激活函数? 如果自定义的激活函数是可导的,那么可以直接写一个python function来定义并调用,因为pytorch的autograd会自动对其求导. 如果自定 ...
- Pytorch实现卷积神经网络CNN
Pytorch是torch的Python版本,对TensorFlow造成很大的冲击,TensorFlow无疑是最流行的,但是Pytorch号称在诸多性能上要优于TensorFlow,比如在RNN的训练 ...
- ubuntu 18.04安装pytorch、cuda、cudnn等
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com ubuntu 16.04用了1年多了,18.04版已经发布也半年了,与时俱进,重装Linux系统,这里 ...
- Ubuntu18.04: GPU Driver 390.116 + CUDA9.0 + cuDNN7 + tensorflow 和pytorch环境搭建
1.close nouveau 终端输入:sudo gedit /etc/modprobe.d/blacklist.conf 末尾加两行 blacklist nouveau options nouve ...
- tensorflow/pytorch/mxnet的pip安装,非源代码编译,基于cuda10/cudnn7.4.1/ubuntu18.04.md
os安装 目前对tensorflow和cuda支持最好的是ubuntu的18.04 ,16.04这种lts,推荐使用18.04版本.非lts的版本一般不推荐. Windows倒是也能用来装深度GPU环 ...
- ubuntun16.04+cuda9.0+cudnn7+anaconda3+pytorch+anaconda3下py2安装pytorch
一.电脑配置 说明: 电脑配置: LEGION笔记本CPU Inter Core i7 8代GPU NVIDIA GeForce GTX1060Windows10 所需的环境: Anaconda3(6 ...
- Anaconda ubuntu16.04 Cuda 8.0安装pytorch
Pytorch 安装 Pytorch安装真的太让人省心了,在anaconda的环境下进行安装,只需要一个命令 具体命令请查看官网pytorch 找到适合你的版本进行安装 本机环境: anaconda3 ...
- 深度学习环境搭建(Ubuntu16.04+GTX1080Ti+CUDA8.0+Cudnn6.0+TensorFlow+Caffe2(Pytorch))
OS System:Ubuntu16.04 GPU Device:GTX1080Ti Softwares:CUDA8.0.Cudnn6.0.TensorFlow(1.4.0).Caffe2(1.0.0 ...
- Ubuntu 18.04 nvidia driver 390.48 安装 TensorFlow 1.12.0 和 PyTorch 1.0.0 详细教程
最近要在个人台式机上搭建TensorFlow和PyTorch运行环境,期间遇到了一些问题.这里就把解决的过程记录下来,同时也可以作为安装上述环境的过程记录. 如果没有遇到类似的问题,想直接从零安装上述 ...
- Ubuntu server16.04安装配置驱动418.87、cuda10.1、cudnn7.6.4.38、anaconda、pytorch超详细解决
目录 安装GCC 安装NVIDIA驱动 1. 卸载原有驱动(没装跳过) 2. 禁用nouveau 3. 安装NVIDIA显卡驱动 安装CUDA10.1 安装cudnn 安装anaconda 安装ten ...
随机推荐
- Winform中设置ZedGraph的曲线符号Symbol以及对应关系
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- Jar 打包与执行
Java学习笔记之一,用于个人记录.整理自<Head First Java>. 假设有如下目录结构: 程序入口在 Jukebox8.java.这个代码文件开头是有如下这样的包声明语句的: ...
- 图书推荐《图解HTTP》
作品简介 本书对互联网基盘——HTTP协议进行了全面系统的介绍.作者由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全.最新技术 ...
- 前端开发JS——引用类型
10.流程控制语句 注:var obj = {}:这里的obj转换boolean语句为true if语句和java是一样的,判断条件也是根据上篇博客提到的假性值 // 弹出一个带输入框的 ...
- Qt播放音视频文件报错DirectShowPlayerService::doRender: Unresolved error code 0x80040266或DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80004005 ()
使用QMediaPlayer和QVideoWidget QHBoxLayout *m_layout=newQHBoxLayout(this); QMediaPlayer *m_player = new ...
- Ext.create方法分析
Ext.create方法实际上是Ext.ClassManager的instantiate的别名 分析如下: (function(Class, alias, arraySlice, arrayFrom, ...
- 了解iOS各个版本新特性总结
参考了一下的文章:https://blog.csdn.net/zxtc19920/article/details/54341836 iOS7新特性 · 在iOS7当中,使用麦克风也需要取得用户同意了. ...
- Oracle client 安装、配置
一.安装 链接: https://pan.baidu.com/s/1Yph6hiNkCJsApAzu_Vx2ew 提取码: r9ye 二.配置 1.控制面板\所有控制面板项\管理工具\数据源(ODB ...
- spring的组件使用
源代码下载:https://www.lanzous.com/i5p4mvc * 组件扫描 * @Component:表示这个类需要在应用程序中被创建 * @ComponentScan:自动发现应用程序 ...
- golang go get代理设置
1.gopm 代替go 下载第三方依赖包 可以采用gopm从golang.org一些镜像网站上下载. a). 安装gopm go get -u github.com/gpmgo/gopm 可手动下载, ...