人工智能基础部分5-激活函数的概念

大家好,我是微学AI,今天给大家介绍一下深度学习中的激活函数。

一、激活函数的概念

   激活函数(Activation Function)是神经网络中的一个重要组成部分,它是把一个神经元的输出映射到另一个值域,它可以将输入信号转换为非线性输出信号。激活函数是一种特殊的函数,它通过计算输入信号的线性组合,然后根据某种特定的函数来生成输出信号。激活函数的主要作用是对输入的特征进行组合,以便模型能够学习输入特征之间的非线性关系。

我们可以将激活函数比喻为一个按钮,每次按下按钮,就会发出一个信号,以此来激活神经网络中的神经元和层。当神经元接收到足够的激活信号时,它才会发挥它的功能,产生出有用的信息。

激活函数也可以比喻成一个水池,如果水位超过一定的高度,水就会从溢出口溢出,激活函数就是这样的溢出口。

二、激活函数的功能
(1)非线性化
激活函数可以将线性的输入信号转换为非线性的输出信号,从而使神经网络具有非线性的学习能力,使其能够拟合更复杂的函数。
(2)抑制过拟合
激活函数可以有效地抑制过拟合,因为它们可以限制信号的流动,使得输出不会过大或过小。
(3)促进反向传播
激活函数可以促进反向传播,因为它们可以把输入信号转换为可以进行反向传播的输出信号。

三、常见的激活函数

1. sigmoid函数

sigmoid函数又称为S型函数,它的输出值范围是[0,1],输入的值大于0时,输出值就大于0.5,输入的值小于0时,输出值就小于0.5。sigmoid函数也称之为logistic曲线,用来表示二分类的概率函数。

Sigmoid函数的数学表达式为:f(x)=\frac{1}{1+e^{-x}}


2. ReLU函数 

ReLU函数又称为修正线性单元,它是一种非线性激活函数,具有简单的计算过程,增加了深度神经网络的计算效率。它的特点是在输入小于0时,输出就为0,输入大于0时,输出就为输入值,因此它可以把输入的小于0的值给抑制住,让模型的收敛速度更快。

ReLU函数的数学表达式为:ReLU(x) = max(0, x)


3. tanh函数 

tanh函数也是一种非线性激活函数,它是sigmoid函数的变形,输出值的范围是[-1,1],输入的值大于0时,输出值就大于0,输入的值小于0时,输出值就小于0,它的优点是可以把输入的值分散在更广一些的范围内,使模型更好地提取特征。

Tanh函数的数学表达式为:tanh(x) = \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}}


4. Softmax函数 

Softmax函数也叫多分类Logistic回归,是用来表示多分类概率函数的,它的输出是一组概率值,表示每个类别的概率,这些概率的总和为1。

Softmax函数的数学表达式为:y_i=\frac{e^{z_i}}{\sum_j e^{z_j}}
5. Leaky ReLU函数

Leaky ReLU函数是ReLU函数的变种,它在输入小于0时,输出不是0,而是一个比0小的值,这个值一般是0.01,它的优点是可以把输入的小于0的值给抑制住,但不会完全地把它们归零,避免了梯度消失的问题。

Leaky ReLU 函数:f(x) = max(\alpha x, x) ,\alpha是Leaky ReLU函数的参数,通常设置为0.01。

四、激活函数的相关代码实现

import numpy as np
import matplotlib.pyplot as plt
# Sigmoid函数
def sigmoid(x):
    return 1.0 / (1.0 + np.exp(-x))
x = np.linspace(-10, 10, 100)
y = sigmoid(x)
plt.plot(x, y)
plt.show()


# Tanh函数
def tanh(x):
    return (np.exp(x)-np.exp(-x))/(np.exp(x)+np.exp(-x))
x = np.linspace(-5, 5, 100)
y = tanh(x)
plt.plot(x, y)
plt.show()


# ReLU函数
def relu(x):
    return np.maximum(0, x)
x = np.linspace(-10, 10, 100)
y = relu(x)
plt.plot(x, y)
plt.show()


# Leaky ReLU函数
def leaky_relu(x, alpha = 0.05):
    return np.maximum(alpha * x, x)
x = np.linspace(-10, 10, 100)
y = leaky_relu(x)
plt.plot(x, y)
plt.show()

五、总结

激活函数是神经网络中的一类非线性映射函数,它能够将输入数据转化为非线性形式,以便网络可以拟合训练数据中的非线性关系。常用的激活函数有sigmoid、tanh、ReLU、Leaky ReLU、Softmax等,每种激活函数都有不同的特性,应用于不同的神经网络结构,可以改善网络的性能。此外,激活函数还可以防止网络出现梯度消失或梯度爆炸等问题。

欢迎关注我,有什么问题可以私信!

往期作品:

 一、人工智能基础部分

1.人工智能基础部分1-人工智能的初步认识

2.人工智能基础部分2-一元一次函数感知器

3.人工智能基础部分3-方差损失函数的概念

4.人工智能基础部分4-梯度下降和反向传播

5.人工智能基础部分5-激活函数的概念

6.人工智能基础部分6-神经网络初步认识

7.人工智能基础部分7-高维空间的神经网络认识

8.人工智能基础部分8-深度学习框架keras入门案例

9.人工智能基础部分9-深度学习深入了解

10.人工智能基础部分10-卷积神经网络初步认识

11.人工智能基础部分11-图像识别实战

12.人工智能基础部分12-循环神经网络初步认识

13.人工智能基础部分13-LSTM网络:自然语言处理实践

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微学AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值