神经网络常用激活函数包括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实现相关推荐

  1. 三种激活函数——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} ...

  2. 激活函数--Sigmoid,tanh,RELU,RELU6,Mish,Leaky ReLU等

    激活函数 目前自己使用比较多的激活函数RELU, RELU6; LeakyReLU; SELU; Mish :激活函数看:计算量:准确率: 大多数激活函数pytorch里有已经包装好了: Non-li ...

  3. 常见激活函数持续更新)sigmoid Tanh Relu Leaky-ReLU RReLU

     激活函数是来向神经网络中引入非线性因素的,通过激活函数,神经网络就可以拟合各种曲线. sigmoid 公式: 函数图像:  Sigmoid函数也叫 Logistic 函数,用于隐层神经元输出,取值范 ...

  4. 【Pytorch神经网络理论篇】 07 激活函数+Sigmoid+tanh+ReLU+Swish+Mish+GELU

    ①激活函数:主要通过加入非线性因素,你不线性模型表达能力不足的缺陷,因为神经网络中的数学基础是处处可微分的函数,故要求激活函数也应该保证数据的输入与输出是可微分. ②激活函数可以分为饱和激活函数与不饱 ...

  5. DL之DNN优化技术:采用三种激活函数(sigmoid、relu、tanh)构建5层神经网络,权重初始值(He参数初始化和Xavier参数初始化)影响隐藏层的激活值分布的直方图可视化

    DL之DNN优化技术:采用三种激活函数(sigmoid.relu.tanh)构建5层神经网络,权重初始值(He参数初始化和Xavier参数初始化)影响隐藏层的激活值分布的直方图可视化 目录

  6. 激活函数总结sigmoid,tanh,relu,Leaky ReLU,RRelu,ELU,PRelu,SELU,swish

    本文总结深度学习的损失函数及其优缺点. 激活函数是深度学习模型的重要成分,目的是将线性输入转换为非线性.常见的激活函数有sigmoid,tanh,ReLU等 1.sigmoid Sigmoid 非线性 ...

  7. 常用的激活函数汇总-Sigmoid, tanh, relu, elu

    激活函数(又叫激励函数,后面就全部统称为激活函数)是模型整个结构中的非线性扭曲力,神经网络的每层都会有一个激活函数.那他到底是什么,有什么作用?都有哪些常见的激活函数呢? 深度学习的基本原理就是基于人 ...

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

    什么是激活函数 为什么要用 都有什么 sigmoid ,ReLU, softmax 的比较 如何选择 1. 什么是激活函数 如下图,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函 ...

  9. 激活函数(sigmoid、Tanh、ReLU、Leaky ReLU、ELU、Maxout)

    sigmoid函数 公式: 图像: sigmoid可以将数据压缩到[0,1]范围内,可看作神经元的饱和放电率.在历史上,sigmoid函数非常有用,这是因为它对神经元的激活频率有很好的解释:从完全不激 ...

  10. 【深度学习】激活函数:原理+常见激活函数(Sigmoid\Tanh\ReLU\Leaky ReLU\Softmax)

    首先需要知道为什么要引入激活函数:激活函数是用来加入非线性因素的,因为线性模型的表达能力不够.引入非线性激活函数,可使深层神经网络的表达能力更加强大. 在深度学习中,线性模型只需要简单的全连接层就能实 ...

最新文章

  1. python 列表、字典转json字符串
  2. 这可能是十年来最酷的神经科学发现
  3. 关于安卓录屏的权限问题
  4. sql语法中 什么值需要用单引号‘’修饰?
  5. java dao service实例_浅谈Action+Service +Dao 功能
  6. python 生成xml文件
  7. android中给button加图标,Android,如何在我的代码中的TabButton中添加图标
  8. Dll注入技术之劫持注入
  9. Stanford公开课《编译原理》学习笔记(1~4课)
  10. pr调色预设_视频调色不好掌握?用这2000套PR、AE、达芬奇调色预设吧
  11. 为memcached增加缓存依赖的性能测试
  12. 【leetcode】Remove Duplicates from Sorted Array
  13. bitcoin转账api,python2.7
  14. hibernate注释映射_Hibernate一对一映射示例注释
  15. PetShop 4.0学习笔记:消息队列MSMQ
  16. express router路由管理中间件
  17. 车子Linux系统,Linux车载系统Automotive Grade Linux
  18. 计算机考研360能去哪里,考研360分是什么水平
  19. 模拟登陆广西科技大学正方教务系统
  20. fastapi 如何响应文件下载

热门文章

  1. leetcode -- 129. 求根到叶子节点数字之和
  2. vue_prop注册及验证
  3. 【已解决】FileNotFoundError: [Errno 2] No such file or directory:_Python系列学习笔记
  4. 16行代码AC_蓝桥杯 2017年C组第三题 算式900(暴力解法+DFS解法)
  5. 关于星空的java小程序_[Java教程]小程序使用Canvas画饼图_星空网
  6. cobbler网络装机
  7. 初识BGP外部网关协议(一)
  8. mysql执行动态批处理,使用BAT批处理执行sql语句的代码
  9. xstream 数字映射不上去_6个做端口映射的步骤,外网访问内网,菜鸟也能做?
  10. linux锐捷认证成功无法上网,win7系统锐捷认证成功但是却无法上网的解决方法