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

第八次javaweb作业
我们小组课程设计的题目是:超市管理系统,我认领的模块是:商品信息管理 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,本地的就写本地的位置,如果是服务器的就写服务器的路径var request new XMLHttpRequest();request.open("get", url, false); //设置请求方法与路径request.sen…...

关于我转生从零开始学C++这件事:升级Lv.25
❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载,请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主,代码兴国!❤❤❤ OK了老铁们,又是一个周末,大伟又来继续给大家更新我们的C的内容了。那么根据上一篇博…...

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

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

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

FreeRtos进阶——消息队列的操作逻辑
消息队列(queue) 在不同的任务之间,如果我们需要互相之间通信,使用全局变量进行通信,是一种不安全的通信的方式。为保证线程安全,我们需要引入消息队列的通信方式。 粗暴的消息队列 为保证线程的安全&am…...

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

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...