当前位置: 首页 > 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中文官网 下载(如果后续要将后台调成中文的话,一定要从中文…...

数据集004:跌倒检测数据集 (含数据集下载链接)

数据集简介&#xff1a; 该数据集为跌倒检测数据集&#xff0c;属于imageclassify任务&#xff0c;分为fall和nofall两大类&#xff0c;累计共1000张图片&#xff0c;均为人工标注 xml格式&#xff0c;可用于yolo训练。 数据集链接&#xff1a;跌倒检测数据集&#xff08;1000…...

苹果与OpenAI合作在即:iOS 18中的ChatGPT引发期待与担忧

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

Android 逆向学习【2】——APK基本结构

APK安装在安卓机器上的&#xff0c;相当于就是windows的exe文件 APK实际上是个压缩包 只要是压缩的东西 .jar也是压缩包 里面是.class(java编译后的一些东西) APK是Android Package的缩写,即Android安装包。而apk文件其实就是一个压缩包&#xff0c;我们可以将apk文件的后…...

你对仲裁裁决不服怎么办?我教你四个狠招!

你对仲裁裁决不服怎么办&#xff1f;我教你四个狠招&#xff01; 这个标题是什么意思呢&#xff1f;也就是说&#xff0c;当你&#xff08;或用人单位&#xff09;向劳动仲裁委提出仲裁申请后&#xff0c;但劳动仲裁结果没有维护你的权益&#xff0c;或者你不满意&#xff0c;…...

绿色智能:低代码开发在AI机器学习中的深度应用与实践案例

随着科技的飞速进步&#xff0c;软件开发的方式也在不断演变。其中&#xff0c;低代码开发作为一种新兴的编程方式&#xff0c;以其高效、便捷的特性受到了广泛关注。同时&#xff0c;AI机器学习技术的发展也为软件开发带来了新的可能。本文将简要介绍低代码开发的概念&#xf…...

《NoSQL数据库技术与应用》 文档存储数据库MongoDB

搜索 《NoSQL数据库技术与应用》 教学设计 课程名称&#xff1a;NoSQL数据库技术与应用 授课年级&#xff1a; 20xx年级 授课学期&#xff1a; 20xx学年第一学期 教师姓名&#xff1a; 某某老师 2020年5月6日 课题 名称 第2章 文档存储数据库MongoDB 计划学时 4 课时 内容 分…...

设置AXI主寄存器切片和AXI数据FIFO

设置AXI主寄存器切片和AXI数据FIFO 打开MHS文件&#xff0c;并为每个AXI主机设置启用寄存器切片/启用数据FIFO。到 确定正确的设置&#xff0c;使用下表中的信息搜索MHS。 进行搜索时&#xff0c;将<intf_name>替换为相关的BUS_INTERFACE名称。 例如&#xff0c;BUS_INTE…...

Golang协程和通道

文章目录 协程&#xff08;goroutine&#xff09;基本介绍GMP模型协程间共享变量 通道&#xff08;channel&#xff09;基本介绍channel的定义方式channel的读写channel的关闭channel的遍历方式只读/只写channelchannel最佳案例select语句 协程&#xff08;goroutine&#xff0…...

Enable Full Line suggestions 启用全行建议

开启后效果如下&#xff1a; 直接提示可能要输入的参数...

Java 文件操作和输入输出流

在 Java 编程中&#xff0c;文件操作和输入输出流是非常常见和重要的任务&#xff0c;它们允许你读取和写入文件、处理数据流等。 文件操作概述 文件操作是指对文件进行创建、读取、写入、删除等操作的过程。在 Java 中&#xff0c;文件操作通常涉及到使用文件对象、输入输出…...