神经网络激活函数sigmoid、tanh、Relu、LeakyRelu、Elu、PRelu、MaxOut的java实现
神经网络常用激活函数包括sigmoid、tanh、Relu、LeakyRelu、Elu、PRelu和MaxOut。对每一种函数采用java进行实现。前面四种激活函数是固定形式,后面三种激活函数部分参数可以通过神经网络学习进行调整,这里只针对激活函数本身进行简单实现,不做过多讲解。
1、sigmoid函数
公式:1 / (1 + E^-x)
代码:
public double sigmoid(double x) {return 1 / (1 + Math.pow(Math.E, -x));}
sigmoid图形:
2、tanh函数
公式:公式:(E^x - E^-x)/(E^x + E^-x)
代码:
public double tanh(double x) {return (Math.pow(Math.E, x) - Math.pow(Math.E, -x)) / (Math.pow(Math.E, x) + Math.pow(Math.E, -x));}
Tanh图形:
3、relu函数
公式:max(0,x)
代码:
public double relu(double x) {return Math.max(0, x);}
Relu图形:
4、leakyrelu函数
公式:max(a*x,x),a为(0~1)之间取一个固定值
代码:
public double leakyRelu(double x) {return Math.max(0.01 * x, x);
}
图形(a=0.5):
5、prelu函数
公式:max(ax,x),其中a不是固定值,可通过学习更改
代码:
public double pRelu(double x,double a) {return Math.max(a * x, x);
}
6、elu函数
公式:当x>0,返回x;当x<=0,返回a*(E^x - 1),a不是固定值,同样可通过学习进行调整
代码:
public double elu(double x,double a) {if (x > 0) {return x;}else {return a * (Math.pow(Math.E, x) - 1);}}
7、maxout函数
公式:max(z[]),z[]为神经网络每一层计算结果的集合
神经网络层计算公式:z=wx+b,w为权重,b为偏置
也就是说,maxout函数的参数z[]会随着神经网络层的增加而递增
代码:
public class MaxOut {List<Double> values = new ArrayList<>();public double maxOut(double value) {values.add(value);Collections.sort(values);return values.get(0);}
}
神经网络激活函数sigmoid、tanh、Relu、LeakyRelu、Elu、PRelu、MaxOut的java实现相关推荐
- 三种激活函数——Sigmoid,Tanh, ReLU以及卷积感受野的计算
1. 三种激活函数--Sigmoid, Tanh, ReLU 1.1 Sigmoid 1.1.1 公式 S ( x ) = 1 1 + e − x S(x) = \frac{1}{1 + e^{-x} ...
- 激活函数--Sigmoid,tanh,RELU,RELU6,Mish,Leaky ReLU等
激活函数 目前自己使用比较多的激活函数RELU, RELU6; LeakyReLU; SELU; Mish :激活函数看:计算量:准确率: 大多数激活函数pytorch里有已经包装好了: Non-li ...
- 常见激活函数持续更新)sigmoid Tanh Relu Leaky-ReLU RReLU
激活函数是来向神经网络中引入非线性因素的,通过激活函数,神经网络就可以拟合各种曲线. sigmoid 公式: 函数图像: Sigmoid函数也叫 Logistic 函数,用于隐层神经元输出,取值范 ...
- 【Pytorch神经网络理论篇】 07 激活函数+Sigmoid+tanh+ReLU+Swish+Mish+GELU
①激活函数:主要通过加入非线性因素,你不线性模型表达能力不足的缺陷,因为神经网络中的数学基础是处处可微分的函数,故要求激活函数也应该保证数据的输入与输出是可微分. ②激活函数可以分为饱和激活函数与不饱 ...
- DL之DNN优化技术:采用三种激活函数(sigmoid、relu、tanh)构建5层神经网络,权重初始值(He参数初始化和Xavier参数初始化)影响隐藏层的激活值分布的直方图可视化
DL之DNN优化技术:采用三种激活函数(sigmoid.relu.tanh)构建5层神经网络,权重初始值(He参数初始化和Xavier参数初始化)影响隐藏层的激活值分布的直方图可视化 目录
- 激活函数总结sigmoid,tanh,relu,Leaky ReLU,RRelu,ELU,PRelu,SELU,swish
本文总结深度学习的损失函数及其优缺点. 激活函数是深度学习模型的重要成分,目的是将线性输入转换为非线性.常见的激活函数有sigmoid,tanh,ReLU等 1.sigmoid Sigmoid 非线性 ...
- 常用的激活函数汇总-Sigmoid, tanh, relu, elu
激活函数(又叫激励函数,后面就全部统称为激活函数)是模型整个结构中的非线性扭曲力,神经网络的每层都会有一个激活函数.那他到底是什么,有什么作用?都有哪些常见的激活函数呢? 深度学习的基本原理就是基于人 ...
- 神经网络激活函数sigmoid relu tanh 为什么sigmoid 容易梯度消失
什么是激活函数 为什么要用 都有什么 sigmoid ,ReLU, softmax 的比较 如何选择 1. 什么是激活函数 如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函 ...
- 激活函数(sigmoid、Tanh、ReLU、Leaky ReLU、ELU、Maxout)
sigmoid函数 公式: 图像: sigmoid可以将数据压缩到[0,1]范围内,可看作神经元的饱和放电率.在历史上,sigmoid函数非常有用,这是因为它对神经元的激活频率有很好的解释:从完全不激 ...
- 【深度学习】激活函数:原理+常见激活函数(Sigmoid\Tanh\ReLU\Leaky ReLU\Softmax)
首先需要知道为什么要引入激活函数:激活函数是用来加入非线性因素的,因为线性模型的表达能力不够.引入非线性激活函数,可使深层神经网络的表达能力更加强大. 在深度学习中,线性模型只需要简单的全连接层就能实 ...
最新文章
- python 列表、字典转json字符串
- 这可能是十年来最酷的神经科学发现
- 关于安卓录屏的权限问题
- sql语法中 什么值需要用单引号‘’修饰?
- java dao service实例_浅谈Action+Service +Dao 功能
- python 生成xml文件
- android中给button加图标,Android,如何在我的代码中的TabButton中添加图标
- Dll注入技术之劫持注入
- Stanford公开课《编译原理》学习笔记(1~4课)
- pr调色预设_视频调色不好掌握?用这2000套PR、AE、达芬奇调色预设吧
- 为memcached增加缓存依赖的性能测试
- 【leetcode】Remove Duplicates from Sorted Array
- bitcoin转账api,python2.7
- hibernate注释映射_Hibernate一对一映射示例注释
- PetShop 4.0学习笔记:消息队列MSMQ
- express router路由管理中间件
- 车子Linux系统,Linux车载系统Automotive Grade Linux
- 计算机考研360能去哪里,考研360分是什么水平
- 模拟登陆广西科技大学正方教务系统
- fastapi 如何响应文件下载
热门文章
- leetcode -- 129. 求根到叶子节点数字之和
- vue_prop注册及验证
- 【已解决】FileNotFoundError: [Errno 2] No such file or directory:_Python系列学习笔记
- 16行代码AC_蓝桥杯 2017年C组第三题 算式900(暴力解法+DFS解法)
- 关于星空的java小程序_[Java教程]小程序使用Canvas画饼图_星空网
- cobbler网络装机
- 初识BGP外部网关协议(一)
- mysql执行动态批处理,使用BAT批处理执行sql语句的代码
- xstream 数字映射不上去_6个做端口映射的步骤,外网访问内网,菜鸟也能做?
- linux锐捷认证成功无法上网,win7系统锐捷认证成功但是却无法上网的解决方法