当前位置: 首页 > news >正文

吴恩达2022机器学习专项课程C2W2:2.19 sigmoid函数的替代方案 2.20如何选择激活函数 2.21 激活函数的重要性

这里写目录标题

  • 引言
  • sigmoid激活函数的局限
    • 1.回顾需求案例
    • 2.ReLU激活函数
  • 常用的激活函数
    • 1.线性激活函数的解释
  • 如何选择激活函数?
    • 1.选择输出层的激活函数
    • 2.选择隐藏层的激活函数
  • 选择激活函数的总结
    • 1.输出层总结
    • 2.隐藏层总结
    • 3.TensorFlow设置激活函数
  • 激活函数多样性
  • 为什么神经网络需要激活函数
    • 1.简述
    • 2.线性激活函数的局限
    • 3.其它案例
    • 4.小结

引言

截至目前,我们一直使用sigmoid激活函数构建神经网络,但通过采用不同的激活函数,可以提升神经网络的性能。本篇主要记录激活函数都有什么?如何选择激活函数?为什么神经网络要有激活函数?

sigmoid激活函数的局限

1.回顾需求案例

之前的案例中,T恤知名度(awareness)只有好和坏,是一个二元分类问题。而实际上,它可能不是二元的,他们可能有点意识到,相当意识到,极度意识到,或者它可能已经完全病毒式传播了,因此这个神经元的激活值应该是一个任意非负数而不是仅仅在0-1。

在这里插入图片描述

2.ReLU激活函数

原来的sigmoid激活值,范围在0-1,如果想让激活值的范围更大,我们可以选择ReLU(修正线性单元)激活函数,当z小于0时,输出为0;当输入z大于或等于0时,输出为z,其数学表达式为g(z) = max(0, z)。在这里插入图片描述

常用的激活函数

分别为线性激活函数,sigmoid激活函数,ReLU激活函数
在这里插入图片描述

1.线性激活函数的解释

使用线性激活函数等同于没有使用激活函数,因为输出只是输入的线性组合(即z = wx + b)。在课程中会提到使用线性激活函数而不是没有激活函数。如果听到其他人说没有使用激活函数,他们指的是使用了线性激活函数。

如何选择激活函数?

1.选择输出层的激活函数

取决于目标或真实标签y是什么,有以下3种选择:

  • (1)sigmoid激活函数:处理分类问题时,特别是二元分类问题,其中目标变量y只有两个可能的值,0或1,sigmoid激活函数是最合适的选择。
  • 2)线性回归激活函数:在处理回归问题时,它的目标是预测一个连续的数值,例如预测明天的股价相对于今天的变化量,此时建议使用线性激活函数。线性激活函数的特点是它的输出可以取任意实数值,包括正数和负数。这意味着神经网络的输出可以自由地表示股价上升或下降的量,无论是正值还是负值。
  • (3)ReLU激活函数:如果y只能取非负值且范围不是0-1,例如如果你正在预测房价,那永远不会是负数,那么最自然的选择将是ReLU激活函数。
    在这里插入图片描述

2.选择隐藏层的激活函数

到目前为止,ReLU激活函数是最常见选择,它使你的神经网络学习得更快一些。原因如下:

  • 1)计算效率:ReLU激活函数的计算比sigmoid函数更快。ReLU函数的计算仅涉及计算0和输入值z之间的最大值,这是一个简单的操作。相比之下,sigmoid函数需要进行指数运算和取倒数,这在计算上更为复杂和耗时。
  • (2)梯度下降的效率:当使用梯度下降算法来训练神经网络时,ReLU函数只有一个方向平坦,而sigmoid有两个方向平坦,如果一个函数平坦较多,梯度下降会非常慢。在这里插入图片描述

选择激活函数的总结

1.输出层总结

对于输出层,如果你有一个二元分类问题,使用sigmoid;如果y是一个可以取正值或负值的数字,使用线性;或者如果y只能取正值或零正值或非负值,使用ReLU。
在这里插入图片描述

2.隐藏层总结

然后对于隐藏层,我只是使用ReLU作为默认激活函数。

3.TensorFlow设置激活函数

第一层第二层为隐藏层,使用ReLU,输出层可以根据需求更换激活函数。
在这里插入图片描述

激活函数多样性

通过使用不同的激活函数,可以构建比单一使用sigmoid激活函数时更为强大和灵活的神经网络。在研究文献中,除了常用的激活函数如ReLU,还有其他类型的激活函数,例如tanh、LeakyReLU、swish等。尽管存在多种激活函数,但对于大多数应用场景,本篇中介绍的激活函数已经足够。

为什么神经网络需要激活函数

1.简述

将神经网络退化为全由线性激活函数构成的形式,就等于放弃了其处理非线性问题的能力,使其等同于较为基础的线性回归工具,违背了利用神经网络解决更复杂问题的初衷。
在这里插入图片描述

2.线性激活函数的局限

以一个简单的只有一个输入、一个隐藏层单元和一个输出层单元的神经网络为例,当神经元都使用线性激活函数时,计算过程表明最终输出是关于输入的线性函数,即等同于线性回归模型的输出。这是因为线性函数的复合依然是线性函数。因此与其使用一个包含隐藏层和输出层的神经网络,我们还不如直接采用线性回归模型。
在这里插入图片描述

3.其它案例

当神经网络的多层(包括隐藏层和输出层)均采用线性激活,输出等同于线性回归的输出。
在这里插入图片描述
若隐藏层维持线性而仅输出层采用逻辑激活函数,则模型相当于逻辑回归。这类神经网络并未超越逻辑回归的能力。在这里插入图片描述因此,神经网络的隐藏层通常不使用线性激活函数,而是推荐使用ReLU等非线性激活函数。

4.小结

数激活函数对于神经网络至关重要,因为它们引入非线性,使网络能够学习复杂模式。如果所有层使用线性激活函数(等于未使用激活函数),网络就退化为线性回归,无法拟合复杂的数据。因此,为了使神经网络能够计算出比线性模型更复杂的特征,必须使用非线性激活函数,如ReLU。

相关文章:

吴恩达2022机器学习专项课程C2W2:2.19 sigmoid函数的替代方案 2.20如何选择激活函数 2.21 激活函数的重要性

这里写目录标题 引言sigmoid激活函数的局限1.回顾需求案例2.ReLU激活函数 常用的激活函数1.线性激活函数的解释 如何选择激活函数?1.选择输出层的激活函数2.选择隐藏层的激活函数 选择激活函数的总结1.输出层总结2.隐藏层总结3.TensorFlow设置激活函数 激活函数多样…...

循序渐进Docker Compose

文章目录 1.概述1.1 Docker Compose 定义1.2 Docker Compose背景1.3 Docker Compose核心概念 2.安装2.1 Official Repos2.2 Manual Installation2.3 v1.x 兼容性 3. YAML 配置说明3.1 Services3.2 Volumes & Networks 4. 解析 Service4.1 Pulling一个Image4.2 Building一个…...

怎样查看JavaScript中没有输出结果的数组值?

在JavaScript中,可以方便地定义和使用数组,对于已经定义的数组,怎样查看其值呢? 看下面的示例,并运行它。 上面的示例中,标签不完整,请补充完整再试运行。你知道少了什么标签么? 注…...

强化学习学习笔记-李宏毅

Policy Gradient actorenvreward function,env和reward是不能控制的,唯一可以变的是actor,Policy π \pi π是一个网络,参数为 θ \theta θ,输入是当前的观察,输出是采取的行为,例如游戏中输…...

吴恩达深度学习笔记:超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架(Hyperparameter tuning)3.8-3.9

目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第三周: 超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架(Hyperparameter …...

SQL 语言:数据控制

文章目录 概述授权(GRANT)销权(REVOKE)总结 概述 SQL语言中的数据控制权限分配是数据库管理的重要组成部分,它涉及到如何合理地为用户分配对数据库资源的访问和使用权限。 权限类型:在SQL中,权限主要分为…...

『ZJUBCA Weekly Feed 07』MEV | AO超并行计算机 | Eigen layer AVS生态

一文读懂MEV:区块链的黑暗森林法则 01 💡TL;DR 这篇文章介绍了区块链中的最大可提取价值(MEV)概念,MEV 让矿工和验证者通过抢先交易、尾随交易和三明治攻击等手段获利,但也导致网络拥堵和交易费用增加。为了…...

正点原子延时函数delay_ms延时失效的原因

1、问题陈述 今天在测试小车程序的时候使用了如下代码,发现延时并没有达到期望的4s,而是仅仅延时了0.4s左右,本来以为少加了个0,最后在我多次测试下来,发现在延时大约超过2s的时候就会失效。 while(1){Set_Pwm(6000,60…...

MySQL 满足条件函数中使用查询最大值函数

在实际的数据库操作中,我们常常需要根据某些条件找到最大值并据此进行下一步的操作。例如,在一个包含订单信息的表中,可能需要找到特定客户的最大订单金额,并据此进行某些统计或决策。MySQL 提供了多种函数和查询方法,…...

Java | Leetcode Java题解之第101题对称二叉树

题目&#xff1a; 题解&#xff1a; class Solution {public boolean isSymmetric(TreeNode root) {return check(root, root);}public boolean check(TreeNode u, TreeNode v) {Queue<TreeNode> q new LinkedList<TreeNode>();q.offer(u);q.offer(v);while (!q.…...

【区块链】智能合约漏洞测试

打开Ganache vscode打开智能合约漏洞工程 合约内容 pragma solidity >0.8.3;contract EtherStore {mapping(address > uint) public balances;function deposit() public payable {balances[msg.sender] msg.value;emit Balance(balances[msg.sender]);}function with…...

大模型主流 RAG 框架TOP10

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接…...

第八次javaweb作业

我们小组课程设计的题目是&#xff1a;超市管理系统&#xff0c;我认领的模块是&#xff1a;商品信息管理 controller package com.example.supermarker.controller;import com.example.supermarker.pojo.MerchInfo; import com.example.supermarker.pojo.PageBean; import c…...

js积累四 (读json文件)

function ReadRadioJson() {var url "../radio.json" //json文件url&#xff0c;本地的就写本地的位置&#xff0c;如果是服务器的就写服务器的路径var request new XMLHttpRequest();request.open("get", url, false); //设置请求方法与路径request.sen…...

关于我转生从零开始学C++这件事:升级Lv.25

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载&#xff0c;请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主&#xff0c;代码兴国&#xff01;❤❤❤ OK了老铁们&#xff0c;又是一个周末&#xff0c;大伟又来继续给大家更新我们的C的内容了。那么根据上一篇博…...

mysql中text,longtext,mediumtext区别

文章目录 一.概览二、字节限制不同三、I/O 不同四、行迁移不同 一.概览 在 MySQL 中&#xff0c;text、mediumtext 和 longtext 都是用来存储大量文本数据的数据类型。 TEXT&#xff1a;TEXT 数据类型可以用来存储最大长度为 65,535(2^16-1)个字符的文本数据。如果存储的数据…...

IP协议说明

文章目录 前言一、IP协议的简介二、IP数据报1.IP 数据报结构2.IP 数据报的分片解析3.IP 数据报的分片重装 三、IP 数据报的输出四、IP 数据报的输入 前言 IP 指网际互连协议&#xff0c; Internet Protocol 的缩写&#xff0c;是 TCP/IP 体系中的网络层协议。设计 IP 的目的是…...

第13章 层次式架构设计理论与实践

层次式架构的核心思想是将系统组成为一种层次结构&#xff0c;每一层为上层服务&#xff0c;并作为下层客户。其实不管是分层还是其他的架构都是为了解耦&#xff0c;更好的复用&#xff0c;只要秉承着这种思想去理解一切都迎刃而解了。 13.1 层次上体系结构概述 回顾一下软件…...

FreeRtos进阶——消息队列的操作逻辑

消息队列&#xff08;queue&#xff09; 在不同的任务之间&#xff0c;如果我们需要互相之间通信&#xff0c;使用全局变量进行通信&#xff0c;是一种不安全的通信的方式。为保证线程安全&#xff0c;我们需要引入消息队列的通信方式。 粗暴的消息队列 为保证线程的安全&am…...

WordPress搭建流程

1. 简介 WordPress 是一个 PHP 编写的网站制作平台。WordPress 本身免费,并且拥有众多的主题可以使用,适合用于搭建个人博客、公司官网、独立站等。 2. 环境准备 2.1 WordPress 下载 WordPress 可以在 Worpress中文官网 下载(如果后续要将后台调成中文的话,一定要从中文…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...