基础!!!吴恩达deeplearning.ai:多标签分类与高级优化方法

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏

文章目录

  • 智能驾驶
  • 高级优化方法
    • 梯度下降算法回顾
  • Adam算法(Adaptive Moment estimation)
    • 模型部分
    • 编译部分
    • 拟合部分


之前我们已经学习了多分类问题的神经网络的搭建。而有一种特殊的分类问题,叫做多标签分类问题,它可以理解为一个图像里面有多个标签存在。让我们举个例子。

智能驾驶

在智能驾驶汽车中常常面临的问题是,你需要同时判断一幅图之中是否有汽车,是否有巴士,是否有行人。
在这里插入图片描述
例如在上图的第一幅图中,有汽车,没有巴士,有行人;第二幅图中,没有汽车,没有巴士,有行人;第三幅图中,有汽车,有巴士,没有行人。
在这种情况之下,输出的y就不仅仅是一个数值,而是由三个布尔值组成的向量,例如,左图的向量就应该为 [ 1.0 , 1 ] [1.0,1] [1.0,1]。这与手写数字识别不同,它的y仅仅是一个数字,尽管它可能有十个不同的取值。
所以,我们该如何解决多标签分类问题呢?
第一种方法,我们可以将三种物品看作三个不同的机器学习问题来分别进行判断。这其实是一种不太合理的方法。随着标签数量的增加,搭建神经网络的任务量也随之线性增加,当需要判断的物体很多时就不太能够实现了。
第二种方法,当然就是搭建一个神经网络,让它同时判断图中是否有汽车,是否有巴士,是否有行人。
在这里插入图片描述
神经网络的架构如上图,将特征矩阵输入隐藏层,再传入最终输出层;最终输出层具有三个神经元,均采用sigmoid函数作为激活函数,那么,这个神经网络的输出就应该是:
a ⃗ [ 3 ] = [ a 1 [ 3 ] , a 2 [ 3 ] , a 3 [ 3 ] ] \vec{a}^{[3]}=[a_1^{[3]},a_2^{[3]},a_3^{[3]}] a [3]=[a1[3],a2[3],a3[3]]
其中a1,a2,a3分别对应是否有汽车,是否有巴士,是否有行人。
多分类问题和多标签分类问题有时候会相互混淆,因此在本篇中详细讲述了多标签分类,从而帮助你能更好地分析问题。
关于分类问题就说到这里,下面主要讲讲神经网络中一些更加高级的概念,包括比梯度下降算法更加优化的算法。

高级优化方法

梯度下降算法是一种广泛应用于机器学习的优化算法,是线性回归和逻辑回归等许多算法以及神经网络早期实现的基础。但事实证明,现在还有一些其它的优化算法可以最小化成本函数,甚至比梯度下降更好。今天我们将了解其中的一种。

梯度下降算法回顾

以下是梯度下降算法的表达式:
w j = w j − α ∂ ∂ w j J ( w ⃗ , b ) w_j=w_j-\alpha\frac{\partial}{\partial w_j}J(\vec{w},b) wj=wjαwjJ(w ,b)
在这里插入图片描述如图,在这个算法之中,可以看到算法一小步一小步向收敛点靠近,很明显,在这个例子中alpha可以设置得大一点。
在这里插入图片描述
而在这个例子之中,算法在收敛点两边反复横跳,且越跳越大,那在这里很明显alpha就显得过大了。
所以你可能会想到,我们为什么不找出一个算法,能够自动调整学习率呢?哈哈没错,这种算法叫做Adam

Adam算法(Adaptive Moment estimation)

Adam算法并没有在全局使用统一的学习率。它对模型的每个参数均使用不同的学习率,所以假设你有十个不同的参数w1~w10,那么学习率就有 α 1 \alpha _1 α1~ α 10 \alpha _{10} α10十个,那么b的学习率就是 α 11 \alpha_{11} α11
它的工作原理是,如果w_j或者b一直在朝着一个方向收敛,那么就增大alpha反之则减小alpha。至于Adam算法是如何实现这一点的,其实有点复杂,这超出了新手学习的范围,因此感兴趣可以自己了解。下面我们介绍下代码的写法:

模型部分

模型与之前完全相同:

model = Sequential([
          tf.keras.layers.Dense(units=25, activation='sigmoid')
          tf.keras.layers.Dense(units=15, activation='sigmoid')
          tf.keras.layers.Dense(units=10, activation='linear')
          ])

编译部分

编译部分与之前十分相似,只是我们要在编译函数中添加一个参数,指定要用Adam优化器。

model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=le-3),
  loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits-True))

需要说明的是,Adam算法也需要初始指定一个学习率(这里指定的是0.001),当你实践这个代码时,有必要多试几个值。

拟合部分

model.fit(X, Y, epochs=100)

如今大部分的深度学习使用者基本都采用Adam算法,希望你也可以掌握。
为了给读者你造成不必要的麻烦,博主的所有视频都没开仅粉丝可见,如果想要阅读我的其他博客,可以点个小小的关注哦。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【亚马逊云新春特辑③】构生成式 AI 文生图工具之借助ControlNet进行AI绘画创作【使用OpenPose优化人物二维码】

文章目录 2.1 使用OpenPose优化人物二维码1)数据及环境准备2)导入骨架数据并启用OpenPose控制单元3)导入二维码并生成美化后的二维码图片 2.1 使用OpenPose优化人物二维码 在上一节体验到了使用ControlNet并结合QR Code生成二维码&#xff0…

雾锁王国服务器官方配置要求说明

雾锁王国/Enshrouded服务器CPU内存配置如何选择?阿里云服务器网aliyunfuwuqi.com建议选择8核32G配置,支持4人玩家畅玩,自带10M公网带宽,1个月90元,3个月271元,幻兽帕鲁服务器申请页面 https://t.aliyun.com…

自动从金蝶取数,做BI报表的工具,快来长见识!

技术越进步,分析工具越智能,如今做数据分析、数据可视化,不仅能连接金蝶系统,更能直接从金蝶ERP中取数做分析,自动输出BI数据可视化分析报表。这就是奥威-金蝶BI方案。 是骡子是马,牵出来遛遛就知道&#…

STM32标准库开发—硬件SPI外设

SPI外设简介 SPI1与SPI2所挂载的总线位置不一样,所以时钟频率也不一样,SPI2挂载在APB1时钟频率为36MHZ是SPI1的一半 I2S是一种音频传输协议,适用于STM32大容量产品 一般来说串口发送数据时是低位先行,SPI通信是高位先行 SPI框图 发…

看完这篇爽文我终于学会了示波器(一)

大家好,我是砖一。 示波器是电子行业的工程师的“老熟人”了,有句老话说:电子工程师不能失去示波器,就像西方不能失去耶路撒冷,足以见得示波器的重要地位。今天讲解一下基础知识篇,话不多说,直…

Day 4.进程间的通信:管道和通信

进程间的通信 1.管道 2.信号 3.消息队列 4.共享内存 5.信号灯 6.套接字 1.管道(一次读4k,一共能读16次)64k 1.无名管道 无名管道只能用于具有亲缘关系的进程间的通信 pipe int pipe(int pipefd[2]); 功能:创建一个无名…

云原生高级第一次作业

目录 实验需求: 第一个实验步骤: openEuler 二进制方式安装MySQL 8.0.x 1.首先需要获取软件包 2.然后安装tar和xz格式可进行解压工具 3.接下来就是安装MySQL 4.配置环境变量 5.登入并修改密码 6.停止服务脚本 7.提供配置文件 8.进入/etc/my.cnf…

如何利用动态代理IP进行海外社媒推广?

动态代理IP,顾名思义,是一种可以动态变化的IP地址。与传统的静态IP地址不同,动态代理IP在每次网络请求时都能提供一个新的IP地址。在进行海外推广活动时,它的应用非常关键。 动态代理IP的工作原理基于一个庞大的IP地址池。当用户…

IPD(集成产品开发)—核心思想

企业发展到一定阶段就会遇到管理瓶颈,IPD流程是一种高度结构化的产品开发流程,它集成了业界很多优秀的产品开发方法论,像搭积木一样的组合成一种非常有效的流程。如果我们能根据企业的规模和行业特点,对全流程的IPD进行合适的裁剪…

代码随想录刷题笔记-Day25

1. 分割回文串 131. 分割回文串https://leetcode.cn/problems/palindrome-partitioning/ 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1&#xf…

端智能:面向手机计算环境的端云协同AI技术创新

近年来,随着移动端设备软硬件能力的进步,移动端的算力有了很大提升,同时面向移动端的机器学习框架和模型轻量化技术越来越成熟,端上的AI能力逐渐进入大众视野,端智能在电商领域也开始逐步走向规模化应用。通过持续探索…

动态规划之解码方法【LeetCode】

动态规划之解码方法 91. 解码方法解法1解法2 91. 解码方法 91. 解码方法 解法1 状态表示(这是最重要的):dp[i]表示以第i个字符为结尾,解码方法的总数。 状态转移方程(最难的):根据最近的一步来…

故障诊断 | 一文解决,PSO-BP粒子群算法优化BP神经网络模型的故障诊断(Matlab)

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断 | 一文解决,PSO-BP粒子群算法优化BP神经网络模型的故障诊断(Matlab) 粒子群优化算法(Particle Swarm Optimization, PSO)是一种群体智能优化算法,用于求解优化问题。BP神经网络是一种用于模…

【机器学习】线性回归模型(Linear Regression)

🌸博主主页:釉色清风🌸文章专栏:机器学习🌸今日语录:温柔的一半是知识,没有知识的涵养撑不起你想要的风骨。 ☘️0文章预览 本系列文章主要是根据吴恩达老师的机器学习课程以及自己的理解整合而成&#xf…

【MySQL】基本查询(表的增删改查)-- 详解

CRUD:Create(创建),Retrieve(读取),Update(更新),Delete(删除)。 一、Create insert [into] table_name [(column [, column] ...)] v…

2月28日做题总结(C/C++真题)

今天是2月28日,做题第三天。道阻且长,行则将至;行而不辍,则未来可期! 第一题 static char a[2]{1,2,3};说法是否正确? A---正确 B---错误 正确答案:B 解析:数组定义时&#xf…

Linux系统——Nginx拓展

目录 一、重写功能——rewrite 1.if 1.1 if 2. return 2.1状态码301和302的区别 301 302 3. set 4. break 5. rewrite 5.1 rewrite flag使用 5.2 flag说明 5.3举例 5.3.1访问 bj 跳转 beijing 5.3.2举例——break 5.3.3 http 转 https 5.3.4 break 与 last …

JavaScript 进阶03

编程思想 面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用 面向对象 面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。 在面向对象程序开发思想中&a…

kali安装ARL灯塔(docker)

1、root身份进入容器 ┌──(root㉿Kali)-[~/桌面] └─# su root ┌──(root㉿Kali)-[~/桌面] └─# docker 2、先更新再克隆 ┌──(root㉿Kali)-[~/桌面] └─# apt-get update …

如何在windows系统部署Lychee网站,并结合内网穿透打造个人云图床

文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站,可以看做是云存储的一部分,既可…
最新文章