您的位置:

PReLU-带参数的整流线性单元

一、PReLU的定义和背景

PReLU是一种激活函数,相比于ReLU,它对输入的负值的响应做了调整,将响应值从0变成了一个 learnable 的负数值。PReLU的参数基于训练数据进行更新。

ReLU激活函数在深度学习中大获成功,将前向传播过程中的非线性层转化为简单的阈值函数。ReLU本身非常简单,易于计算,几乎不会降低模型的拟合能力,但训练时有时可能会出现“神经元死亡”的问题。具体地,如果输入小于零,整个神经元死亡(输出恒为0),从而导致相应的权重和偏置量一直没有被更新。同时,ReLU的矩阵积累应该是离均差的,因此其在限制网络分布方面欠缺一些性质。

PReLU由何凯明在2015年提出。与ReLU不同,PReLU将负轴(negative axis)上不满足线性关系的部分进行函数转换。

二、PReLU的表达式

设 $x$ 是一个scalar,$y$ 是一个scalar。令 $w$ 是一个可学习的参数,$w \leq 0$。那么 PReLU 的表达式定义为:

$$
  y=\begin{cases}
    x &\text{if } x>0 \\
    wx &\text{if } x\leq 0
  \end{cases}
$$

在机器学习中,不是w本身,而是它在训练集上的值被学习并保留的参数对 $w$ 进行优化。如果 $w = 0$,则退化为ReLU激活函数。

三、PReLU的特点和优点

1. 适用性广泛:PReLU广泛用于图像分类和目标检测领域;经过实验发现,PReLU不仅在图像识别网络中表现良好,而且在人脸识别和自然语言处理中也非常成功。

2. 防止ReLU神经元死亡的问题:PReLU通过调整负数输入的值,解决了ReLU中存在的神经元死亡问题。这样,神经元不再是"dead"状态,从而使神经网络具有更强的鲁棒性。

3. 可学习的参数:$w$ 和其他模型参数一起被优化,因此可以将具体的情况融入到模型设计之中。

四、PReLU的应用

应用PReLU在LeNet-5、AlexNet、VGGNet、GoogLeNet和残差网络(ResNet)等多个深度学习网络中都具有很好的效果表现,例如,ResNet-34网络在图像分类领域中的优势就是把PReLU与残差结构相结合。

五、PReLU的代码实现

  import tensorflow as tf
  
  class PReLU(tf.keras.layers.Layer):
      def __init__(self):
          super(PReLU, self).__init__()
          self.alpha = tf.Variable(0.01, dtype=tf.float32)

      def call(self, x):
          alpha = tf.keras.backend.maximum(0.01, self.alpha)
          return tf.keras.activations.relu(x) - alpha * tf.keras.activations.relu(-x)

六、总结

本文详细介绍了一个适用于深度神经网络的PReLU,对PReLU 的定义和背景,表达式,特点和优点,应用和代码实现均有阐述。

PReLU-带参数的整流线性单元

2023-05-19
印象笔记记录java学习(Java成长笔记)

2022-11-12
java学习笔记(java初学笔记)

2022-11-14
怎么抽取网页整理,怎么抽取网页整理数据

2023-01-08
python学习日记day4(大学python笔记整理)

2022-11-13
java方法整理笔记(java总结)

2022-11-08
数据库的笔记mysql,数据库管理系统笔记

2022-11-24
mysql数据库完整笔记(mysql数据库数据)

2022-11-13
java笔记,尚硅谷java笔记

2022-12-01
python基础学习整理笔记,Python课堂笔记

2022-11-21
python课堂整理32(python笔记全)

2022-11-12
java笔记,大学java笔记

2022-11-28
重学java笔记,java笔记总结

2022-11-23
5000元笔记本电脑

随着科技的不断发展,笔记本电脑已经成为了现代人生活中必不可少的工具。 随着科技的不断发展,笔记本电脑已经成为人们生活中必不可少的工具。在如今数字化时代的到来,人们对信息的需求也越来越高了,而笔记本作为

2023-12-08
python基础笔记整理(python基础教程总结)

2022-11-12
python笔记第六天,python第六周笔记

2022-11-21
python的用法笔记本(笔记本学python)

2022-11-16
java笔试题分类总结,java面试题及答案整理

2022-11-16
重拾python笔记三的简单介绍

2022-11-13
htmljs编程笔记(html代码笔记)

本文目录一览: 1、html代码和JS代码有什么区别 2、如何在html中调用js函数 3、JavaScript学习笔记之数组基本操作示例 4、HTML5初学者笔记 5、《web前端笔记7》js字符—

2023-12-08