吴恩达机器学习全课程笔记第三篇

目录

前言

P42-P48

神经元和大脑

神经网络中的层

更复杂的神经网络

前向传播(做出预测)

P49-P53

代码中的推理

构建一个神经网络

P54-P60

矩阵乘法

TensorFlow框架实现神经网络

前言

这是吴恩达机器学习笔记的第三篇,第二篇笔记请见:

吴恩达机器学习全课程笔记第二篇

完整的课程链接如下:

吴恩达机器学习教程(bilibili)

推荐网站:

scikit-learn中文社区

吴恩达机器学习资料(github)

P42-P48

神经元和大脑

神经网络的历史

根据大脑的神经元,类比出简化的神经元模型

即使做了简单的类比,我们并不能知道人的大脑是如何工作的,我们也并不需要把生物动机看得太过重要

为什么现在又把神经网络看得如此重要?

传统的ai算法比如线性回归、逻辑回归,不能充分使用数据集,如果能训练一个非常大的神经网络,同时利用已经拥有的大量数据,就可以在从语音识别到图像识别的任何事情上获得性能

一个简单的需求预测实例:x输入到神经元当中得到其畅销的概率,这是一个简化的神经元模型

在上面的基础之上,看一个更加复杂的例子:

可以看出神经网络分为输入层、隐藏层和输出层,每一层都可以有多个神经元

一个神经网络可能有多个隐藏层,如下所示:

下面介绍一个图像识别的例子,对于一个图像,将其像素组合成一个向量,输入到神经网络中,经过多个隐藏层,最后可以输出此人是谁

当你观察隐藏层不同层神经元的时候,找出它们可能再计算什么,比如第一层中,第一个神经元在寻找一条垂直线,第二个神经元寻找像这样的定向先或定向边缘,第三个神经元在那个方向寻找一条线,以此类推

对于下一层隐藏层,你会发现这些神经元可能会将许多小的短线组合在一起,以便寻找面部的部分

神经网络中的层

如何构建神经网络中的一个层?

让我们放大隐藏层来看它的计算,在这个隐藏层中输入四个数字,隐藏层中的三个神经元中每一个都只是执行一个小的逻辑回归单元

右上边方框号表的数字1指的是与神经网络第一层相关的数量

第二层的输入时第一层的输出

在计算出一个a^{[2]}之后,你可以选择执行或不执行最后一个可选步骤,取决于你是否正在进行的是二进制预测

更复杂的神经网络

下面是一个四层的神经网络:

放大第三层隐藏层,一定要注意好每个符号上下标所代表的的含义

前向传播(做出预测)

以书写数字识别为例,区分数字0和1(二进制分类问题)

前向传播简单理解就是将上一层的输出作为下一层的输入,并计算下一层的输出,一直到运算到输出层为止

P49-P53

代码中的推理

以咖啡烘焙为例,要控制的参数有温度和时间

我们将这个数据以张量的形式输入网络

在代码中,我们将输入x设置为两个数的数组,建立隐藏层一,随后建立第二层,将tensorflow(张量流)x向前传播,最后输出

之前说过的那个识别手写数字的代码同理:

numpy中表示数据的方式之间存在一些不一致之处,下面让我们学习tenorflow如何表示数据

矩阵用numpy数组的表示

两种表示矩阵的方法,tensor也可以向array发生转换

构建一个神经网络

通过Sequential把不同层连接起来

对于手写数字识别的列子也是同理:

在一个单层中的向前传播的具体代码如下

如果把具体的层信息和sequential封装起来,就可以写成如下形式,这也是前向传播在python中的常见写法

P54-P60

AI的分类

神经网络中for循环和矢量化的代码对比:

矩阵乘法

向量点乘

矩阵乘法

如何在代码中实现矩阵乘法?

回到前面dense layer的例子,上面的矩阵乘法的原理解释了为什么dense layer的代码可以那样去写

TensorFlow框架实现神经网络

上面都是python的代码,下面展示如何在tensorflow框架中训练神经网络

总结起来的话,就是三个步骤:

1.指定告诉tensorflow的模型,如何计算推理

2.使用特定的损失函数编译模型

3.训练模型

这段代码背后发生了什么?

根据前面所学的知识,逐步解析如下图所示:

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

绿盾限制终端网络访问权限会恢复后,别的网站访问正常就是无法访问钉钉网站和下载东西

环境: Win10 专业版 钉钉7.5.5 绿盾7.0 问题描述: 绿盾限制终端网络访问权限会恢复后,别的网站访问正常就是无法访问钉钉网站和下载东西 解决方案: 排查方法 1.重置浏览器或者更换浏览器测试(未解决&#xff09…

nc开发刚导入项目eclipse出现莫名其妙的错误,红叉,感叹号,文件missing

解决类出现红叉 解决感叹号,文件missing 其他问题 右上角的视图,要选择java,如果是javaEE也会有一些文件没有展示出来。

QYWX企业微信的公告信息限制保存pdf的破解

公司使用企业微信好几年,重大的消息使用公告信息这个模块。可重要的消息无法保存,只能在线收藏。这个玩意只考虑到了维护企业利益,无视员工利益。 后来发现可以利用windows的虚拟打印机,将公告打印成pdf。 用了一段时间&#xf…

IOT-Reaserch安装ghidra以及IDEA和ghidra的配置

Linux research 5.4.0-91-generic #102~18.04.1-Ubuntu SMP Thu Nov 11 14:46:36 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux java --version IOT自带的java是符合要求的,不需要额外下载 iotresearch:~/install-file$ java --version openjdk 11.0.13 2021-10-19 …

【Quasar】quasar轮播图进度条

效果 开始效果 即将结束 结束 码 <template><q-carouselv-model"slide"transition-prev"scale"transition-next"scale"swipeableanimatedinfiniteautoplaynavigationpaddingarrowsheight"300px"class"bg-primary text…

PHP实现分离金额和其他内容便于统计计算

得到的结果可以粘贴到excel计算 <?php if($_GET["x"] "cha"){ $tips isset($_POST[tips]) ? $_POST[tips] : ; $pattern /(\d\.\d|\d)/; $result preg_replace($pattern, "\t\${1}\t", $tips); echo "<h2><strong>数…

ESRI中国培训资料(2013-2018年)

一、2013年培训资料 链接&#xff1a;https://pan.baidu.com/s/1BDQbOlpXGjEE3nLsQowJJg?pwd4j7v 提取码&#xff1a;4j7v 二、2014年培训资料 链接&#xff1a;https://pan.baidu.com/s/1DiDMgrIMz2D-XCAh8jCncA?pwdbfs9 提取码&#xff1a;bfs9 三、2015年培训资料 …

css实现梯形

<div class"trapezoid"></div> .trapezoid {width: 200px;height: 0;border-bottom: 100px solid red; /* 定义梯形的底边 */border-left: 50px solid transparent; /* 定义梯形的左边 */border-right: 50px solid transparent; /* 定义梯形的右边 */} …

Java 2:运算符、表达式和语句

2.1 运算符与表达式 Java提供了丰富的运算符&#xff0c;如算术运算符、关系运算符、逻辑运算符、位运算符等。Java语言中的绝大多数运算符和C语言相同&#xff0c;基本语句如条件分支语句&#xff0c;循环语句等&#xff0c;也和C语言类似。 2.1.1算术运算符与算术表达式 1…

Redis的常见面试题

目录 前言 Redis支持哪些数据类型 五种核心类型 Zset为什么用跳表不用红黑树 &#xff1f; Redis常见的应用场景&#xff1f; 如何检测Redis的连通性&#xff1f; 如何设置key的过期时间&#xff1f; Redis为什么是单线程模型&#xff1f; Redis里的IO多路复用是什…

[计网底层小探索]:实现并部署多线程并发Tcp服务器框架(基于生产者消费者模型的线程池结构)

文章目录 一.网络层与传输层协议sockaddr结构体继承体系(Linux体系)贯穿计算机系统的网络通信架构图示: 二.实现并部署多线程并发Tcp服务器框架线程池模块序列化反序列化工具模块通信信道建立模块服务器主体模块任务回调模块(根据具体应用场景可重构)Tips:DebugC代码过程中遇到…

MySQL学习笔记3: MySQL数据库基础

目录 前言目标数据库操作&#xff08;针对database 的操作&#xff09;1. 创建数据库 create database 数据库名;2. 查看数据库 show databases;3. 选中数据库 use 数据库名;4. 删除数据库 drop database 数据库名; mysql中支持的数据类型1. 数值类型: NUMERIC(M,D)2. 字符串类…

linux platform架构下I2C接口驱动开发

目录 概述 1 认识I2C协议 1.1 初识I2C 1.2 I2C物理层 1.3 I2C协议分析 1.3.1 Start、Stop、ACK 信号 1.3.2 I2C协议的操作流程 1.3.3 操作I2C注意的问题 2 linux platform驱动开发 2.1 更新设备树 2.1.1 添加驱动节点 2.1.2 编译.dts 2.1.3 更新板卡中的.dtb 2.2 …

良好的 API 安全策略的重要性

根据 Cloudflare 2024 年 API 安全与管理报告&#xff0c;到 2024 年&#xff0c;API 请求占全球动态互联网流量的 57%&#xff0c;这证实 API 是现代软件开发的重要组成部分。但随着多年来它们的采用不断增加&#xff0c;相关的安全挑战也随之增加。 在过去两年中&#xff0c…

“目标检测”任务基础认识

“目标检测”任务基础认识 1.目标检测初识 目标检测任务关注的是图片中特定目标物体的位置。 目标检测最终目的&#xff1a;检测在一个窗口中是否有物体。 eg:以猫脸检测举例&#xff0c;当给出一张图片时&#xff0c;我们需要框出猫脸的位置并给出猫脸的大小&#xff0c;如…

Meta 发布 MMCSG (多模态智能眼镜对话数据集)

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

FFmpeg的HEVC解码器源代码学习笔记-1

一直想写一个HEVC的码流解析工具&#xff0c;看了雷神264码流解析工具&#xff0c;本来想尝试模仿写一个相似的265码流分析工具&#xff0c;但是发现265的解码过程和结构体和264的不太一样&#xff0c;很多结构体并没有完全暴露出来&#xff0c;没有想到很好的方法获得量化参数…

HAL STM32 HW I2C DMA + SSD1306/SH1106驱动示例

HAL STM32 HW I2C DMA SSD1306/SH1106驱动示例 &#x1f4cd;硬件I2C DMA驱动参考&#xff1a;https://blog.csdn.net/weixin_45065888/article/details/118225993 &#x1f516;本工程基于STM32F103VCT6&#xff0c;驱动程序独立&#xff0c;可以移植到任意STM32型号上使用。…

VSCODE中使用Django处理后端data和data models

链接&#xff1a; Python and Django tutorial in Visual Studio Code MVC的理解 在实际的程序中采用MVC的方式进行任务拆分。 Model&#xff08;模型&#xff09;负责封装应用程序的数据和业务逻辑部分。Model包含数据结构&#xff0c;数据处理逻辑以及相关的操作方法&#…

如何在debian上实现一键恢复操作系统?

在Debian或任何其他Linux发行版上实现一键恢复操作系统&#xff0c;需要创建一个系统镜像或快照&#xff0c;并设置一个简单的方法来从该镜像恢复。以下是创建和恢复系统的基本步骤&#xff1a; 1. 创建系统镜像&#xff1a; 使用像dd&#xff0c;rsync或专门的备份工具&#…