5.神经网络-激活函数

目录

1. 激活函数不是阶跃函数

1.1 激活函数和阶跃函数都是非线性函数

1.2 激活函数不是阶跃函数

2. sigmoid 函数

2.1 sigmoid 函数表达式

2.2 sigmoid 函数 Python 实现

2.4 sigmoid 函数图

3. ReLU 函数

3.1 ReLU 函数表达式

3.2 ReLU 函数 Python 实现

3.4 ReLU 函数图


        在下面的文章中提到了激活函数,事实上激活函数有很多种,本文介绍两种最常见的。另外文章中可能会用到一些 numpy、Matplotlib 模块的知识,同学们如果没有了解可以看看下面的文章。

4. 从感知机到神经网络-CSDN博客

1. 介绍 Matplotlib-CSDN博客

Python 数据分析_江南野栀子的博客-CSDN博客

1. 激活函数不是阶跃函数

1.1 激活函数和阶跃函数都是非线性函数

        在这里我们会提到数学上的专有名词 “线性函数” 和 “非线性函数”,两者是相对的。不是线性函数,就是非线性函数。

        激活函数和阶跃函数都是非线性函数。线性和非线性是相对而言的,它们是用来区分函数 y = f(x) 对自变量 x 的依赖关系的。

  • 线性:如果函数 y = f(x) 满足以下两个条件,那么它就是一个线性函数:

    • 叠加原理成立,即 f(ax + by) = af(x) + bf(y),其中 a 和 b 是任意常数。

    • 齐次原理成立,即 f(kx) = kf(x),其中 k 是任意常数。

  • 非线性:如果函数 y = f(x) 不满足以上两个条件,那么它就是一个非线性函数。

        从几何上看,线性函数的图像是一条直线,而非线性函数的图像是一条曲线或者不连续的线段。但是请注意,图像是一条直线的不一定是线性函数。

        严格来说,只有过原点的最简单的直线f(x)=kx才被称为一元线性函数;f(x)=kx+b 这种函数是不能满足叠加原理和齐次原理的。但是 f(x)=kx+b 的图是一条直线!

1.2 激活函数不是阶跃函数

        激活函数不是阶跃函数,阶跃函数的图是两条直线。激活函数的图是曲线的。

        阶跃函数适用于感知机,激活函数适用于神经网络,但是感知机的初级模型和神经网络的神经元图模型非常相似,仅此而已。

        下面是阶跃函数的 python 代码实现和图。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
def step_function(x):return(np.array(x>0,dtype=np.int32))
x=np.arange(-5.0,5.0,0.1)
y=step_function(x)
plt.plot(x,y)
plt.xlabel("x line")
plt.ylabel("y line")
plt.xlim(-5,5.1) #指定 x 轴的位置
plt.ylim(-1,1.1) #指定 y 轴的位置
plt.show()

        神经网络的激活函数必须使用非线性函数,如果使用线性函数,那么加深神经网络的层数就没有意义了。 

2. sigmoid 函数

        sigmoid 函数是一种在数学和工程领域中广泛使用的函数,在人工神经网络中也经常使用。

2.1 sigmoid 函数表达式

        它的数学定义可以表示为:

        f(x)=1/(1+e^{-x})

        其中 e 是自然对数的底数。这个函数将输入值映射到 (0,1) 的区间内,当输入值趋于正无穷或负无穷时,输出分别趋近于 1 和 0。

        Sigmoid函数具有以下特性:

  • 连续性和可导性:它是连续且可导的,这使得它在数学处理上非常方便。
  • 有界性:函数的值域被限制在 (0,1) 之间,这个性质使得它在需要将输出解释为概率值的场景中非常有用。
  • 对称性:关于原点对称,这意味着如果 x 是输入,那么 -x 也是输入,并且输出相同。
  • S形曲线:它的图形呈现优美的 S 形曲线,这也是其名称的来源。
  • 易于求导:它的导数可以用自身表示,即 f'(x)=f(x)(1-f(x)) ,这大大简化了计算过程。

尽管Sigmoid函数具有上述优点,但它也存在一些缺点:

  • 计算量大:由于涉及指数运算,它的计算成本相对较高。
  • 梯度消失问题:在反向传播过程中,当输入值很大或很小的时候,梯度会趋近于零,这会导致权重更新缓慢,影响网络的训练效率。

因此,虽然Sigmoid函数在神经网络和逻辑回归中有广泛的应用,但在处理深层网络时可能会遇到一些计算和优化上的挑战。

2.2 sigmoid 函数 Python 实现

        sigmoid 函数的 python 实现如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
def sigmoid_function(x):return(1/(1+np.exp(-x)))
x=np.arange(-5.0,5.0,0.1)
y1=step_function(x)
y2=sigmoid_function(x)
plt.plot(x,y1,label="step")
plt.plot(x,y2,linestyle="dashdot",label="sigmoid")
plt.xlabel("x line")
plt.ylabel("y line")
plt.xlim(-5,5.1) #指定 x 轴的位置
plt.ylim(-1,2) #指定 y 轴的位置
plt.show()

2.4 sigmoid 函数图

        下面是 sigmoid 函数和阶跃函数的比对图。

         从图上看 sigmoid 函数和阶跃函数 还是有很多共同之处:

  • 不管输入信号是多少,输出信号都是在 0 和 1 之间。
  • 输入信号越大,输出信号越接近 1;输入信号越小,输出信号越接近 0;

3. ReLU 函数

        ReLU(Rectified Linear Unit)函数是一种常用的激活函数,近些年 ReLU 函数在深度学习中被广泛应用,因为它的计算简单且能够有效地缓解梯度消失问题。

        ReLU函数的优点包括:计算简单,梯度不会饱和,能够加速收敛速度,并且能够提供稀疏激活性。

3.1 ReLU 函数表达式

        ReLU 函数在输入大于 0 时候,直接输出该值;在输入小于 等于 0 时候,输出 0.

        其数学表达式为:

        f(x)=\left\{\begin{matrix} x (x>0)\\ 0 (x<=0))\\ \end{matrix}\right.

3.2 ReLU 函数 Python 实现

        ReLU 函数的 python 实现如下:

def ReLU_function(x):return(np.maximum(0,x))
x=np.arange(-5.0,5.0,0.1)
y=ReLU_function(x)
plt.plot(x,y,label="ReLU")
plt.xlabel("x line")
plt.ylabel("y line")
plt.xlim(-5,5.1) #指定 x 轴的位置
plt.ylim(-5,5.1) #指定 y 轴的位置
plt.show()

3.4 ReLU 函数图

        下面是 sigmoid 函数、阶跃函数、ReLU 的比对图。

'''

要是大家觉得写得还行,麻烦点个赞或者收藏吧,想给博客涨涨人气,非常感谢!

'''

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/328157.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

接口自动化-requests库

requests库是用来发送请求的库&#xff0c;本篇用来讲解requests库的基本使用。 1.安装requests库 pip install requests 2.requests库底层方法的调用逻辑 &#xff08;1&#xff09;get / post / put / delete 四种方法底层调用 request方法 注意&#xff1a;data和json都…

边缘计算安全有多重要

德迅云安全研究发现边缘安全是对存储或处理在网络边缘的数据的保护。边缘可以用不同的方式定义&#xff0c;但一般来说&#xff0c;它包括企业直接控制之外的任何设备或位置。这可能包括传感器、连接物联网的设备和移动设备。 边缘计算正在彻底改变商业运作方式。这引发了对边缘…

WordPress原创插件:超链接点击访问统计

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 一般我们都使用第三方统计服务&#xff08;比如百度统计&#xff09;来统计网站的访问量&#xff0c;使用此插件可以统计文章的浏览次数&#xff0c;那么&#xff0c;如果想统计网站外…

(规格参考)ADP5360ACBZ-1-R7 电量计 电池管理IC,ADP5072ACBZ 双通道直流开关稳压器,ADL5903ACPZN 射频检测器

1、ADP5360ACBZ-1-R7&#xff1a;具有超低功耗电量计、电池保护功能的先进电池管理PMIC 功能&#xff1a;电池保护 电池化学成份&#xff1a;锂离子/聚合物 电池数&#xff1a;1 故障保护&#xff1a;超温&#xff0c;过压 接口&#xff1a;I2C 工作温度&#xff1a;-40C ~ 85…

生活服务商家拥抱数字化,鸿运果系统加速“服务生意数字化”进程

在数字化转型的大潮中&#xff0c;生活服务商家正积极拥抱变革&#xff0c;以适应新的市场环境和消费者需求。鸿运果系统作为专业的“服务生意”数字化解决方案提供商&#xff0c;正助力商家加速数字化转型&#xff0c;推动行业向智能化、个性化服务转型。 数字化转型的背景 …

人才测评:计划管理能力与岗位胜任力素质测评

计划管理能力指的是什么&#xff1f; 计划管理能力&#xff0c;可以体现为从业者在精准制定好任务&#xff0c;或是根据任务的时间长&#xff0c;困难的程度来设定好完成的目标&#xff0c;一步一个脚印将工作完成好&#xff0c;并且能预估出可能出现的突发事件&#xff0c;将…

AI工具的热门与卓越:揭示AI技术的实际应用和影响

文章目录 每日一句正能量前言常用AI工具创新AI应用个人体验分享后记 每日一句正能量 我们在我们的劳动过程中学习思考&#xff0c;劳动的结果&#xff0c;我们认识了世界的奥妙&#xff0c;于是我们就真正来改变生活了。 前言 随着人工智能&#xff08;AI&#xff09;技术的快…

【Linux取经路】进程通信之匿名管道

文章目录 一、进程间通信介绍1.1 进程间通信是什么&#xff1f;1.2 进程间通信的目的1.3 进程通信该如何实现 二、管道2.1 匿名管道2.1.1 站在文件描述符角度深入理解管道2.1.2 接口使用2.1.3 PIPE_BUFFER 和 Pipe capacity2.1.4 管道中的四种情况2.1.5 管道特征总结 2.2 匿名管…

华为、小米、魅族都开始造车了!中国还有多少手机厂家要下场造车?2024如果创业适合干什么?2024最适合创业的细分行业

要说现在中国最火、声量最高的创业是什么&#xff1f;那一定是造车&#xff01; 小米这样的手机公司在造车、创维这样的电视家电品牌在造车、甚至就连五粮液这样的白酒品牌也在造车&#xff01;至于其他的还有什么做地产的恒大、做电动车的新日等等&#xff0c;数不数胜。而在手…

如何进行事务处理

1、问题背景 在数据库存储系统中&#xff0c;事务处理是一种保证多个数据库操作作为单个逻辑单元执行的技术。事务处理可以确保数据的一致性、完整性和隔离性。 在使用 Google Cloud Datastore 时&#xff0c;可以使用 datastore.transaction() 函数来进行事务处理。datastor…

DBeaver连接数据库

前言 DBeaver是一款免费和开源的数据库管理工具&#xff0c;为开发人员和数据库管理员提供了一个通用的数据库解决方案。以下是DBeaver的主要特点和功能&#xff1a; 跨平台支持&#xff1a;DBeaver支持Windows、Linux、macOS等主流操作系统&#xff0c;用户可以在不同的平台…

MATLAB公式推导和导出Latex格式的方法

最近在推机械臂正逆运动学公式&#xff0c;那个旋转矩阵乘起来是真滴多&#xff0c;手算算的脑浆疼。突然想起来MATLAB还有符号计算这个功能&#xff0c;于是翻了翻手册&#xff0c; 找到了这个利用MATLAB帮助计算公式并且直接导出Latex格式的办法。 先定义符号变量&#xff0…

我的职场加速器-高效工作从可道云teamOS开始

不论是作为管理者&#xff0c;还是普通打工人&#xff0c;在日常工作中&#xff0c;我们都需要一款既能够保障数据安全&#xff0c;又能够提升团队协作效率的平台。 近期&#xff0c;我体验了可道云teamOS&#xff0c;这款企业级云协作平台给我留下了深刻的印象。 一、极简风…

基于springboot+mybatis+vue的项目实战之前端

步骤&#xff1a; 1、项目准备&#xff1a;新建项目&#xff0c;并删除自带demo程序&#xff0c;修改application.properties. 2、使用Apifox准备好json数据的mock地址 3、编写基于vue的静态页面 4、运行 整个的目录结构如下&#xff1a; 0、项目准备 新建项目&#xff0…

力扣【旋转函数】python

如果直接用暴力的话&#xff0c;只能过4个样例好像&#xff0c;超时 因此得用递推公式 F1F0前n-1个数-(n-1)*第n个数 F0sum(nums)-n*第n个数 nlen(nums) ans[]#定义一个存最大值值的列表 ss sum(nums) dm 0 for j in range(n):dm j * nums[j] ans.append(dm) print(dm) n…

Google IO 2024有哪些看点呢?

有了 24 小时前 OpenAI 用 GPT-4o 带来的炸场之后&#xff0c;今年的 Google I/O 还未开始&#xff0c;似乎就被架在了一个相当尴尬的地位&#xff0c;即使每个人都知道 Google 将发布足够多的新 AI 内容&#xff0c;但有了 GPT-4o 的珠玉在前&#xff0c;即使是 Google 也不得…

应用软件安全保证措施方案书

系统安全保证措施方案—word原件 软件全套资料进主页获取或者本文末个人名片直接获取。

“网络安全新纪元:等保2.0的详细解读与实践”

网络安全等级保护基本要求》&#xff08;等保2.0&#xff09;于2019年6月发布&#xff0c;是我国网络安全等级保护制度的一项重要标准。等保2.0主要针对关键信息基础设施的网络安全保护&#xff0c;对数据安全和个人信息保护提出了更高的要求。本文将对等保2.0进行详细解读&…

微信小程序如何变现

微信小程序有多种变现方式&#xff0c;以下是一些主要的方法&#xff1a; 广告变现&#xff1a;在小程序中嵌入广告&#xff0c;通过点击、曝光等手段获取收益。这是一种非常普遍的变现方式&#xff0c;尤其适合流量较大、用户活跃度较高的小程序。 电商变现&#xff1a;通过…

嵌入式科普(16)c语言函数参数的传递方式

目录 一、概述 二、C函数参数 2.1 一张图讲清 2.2 按数据类型分类&#xff1a; 2.2.1 基本数据类型参数&#xff1a; 2.2.2 数组参数&#xff1a; 2.2.3 结构体参数&#xff1a; 2.2.4 指针参数&#xff1a; 2.2.5 函数指针参数&#xff1a; 2.3 按传递方式分类&…