深度学习1【吴恩达】

news2025/1/10 23:54:11

视频链接:1.5 关于这门课_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1FT4y1E74V?p=5&spm_id_from=pageDriver&vd_source=3b6cdacf9e8cb3171856fe2c07acf498

视频中吴恩达老师所有的话语收录:

机器学习初学者-AI入门的宝典 (ai-start.com)icon-default.png?t=N7T8http://www.ai-start.com/这里重点感谢制作上面公益性网站的人,感谢你们花费大量精力翻译,话语收录,祝福你们生活幸福,事业有成。

我为了方便,在听取吴恩达老师的课程之后,根据自己的理解,删除掉自己认为无用(或者简单)的话语,copy你们的部分文本,制作的深度学习笔记。如涉及到侵权问题,请与我联系!!!

如果有人看到了我的博客,我感到非常荣幸。强烈建议您先看吴恩达老师的课程,针对每一节课程看收录笔记,如果有什么不懂的,可以再看我的博客,希望我整理的内容对您有所帮助。

一、第一周课程 

1.1、什么是神经网络

“深度学习”指的是训练神经网络。

以一个房价预测的例子开始:

假设有一个六间房屋的数据集(包含房屋的面积、房屋价格)。现在想要找到一个函数,根据房屋面积预测房价的函数。此时可以利用线性回归,用这些数据来拟合一条直线,这条粗的蓝线就是想要的函数。如下图所示

图1.1.1

也许可以把这个房屋加个拟合函数看成是一个非常简单的神经网络。我们把房屋的面积作为神经网络的输入,称之为x,通过这个节点(这个小圈圈),输出了预测价格,用y表示。这个小圆圈就是一个独立的神经元。此时的网络实现了上边这个函数的功能。这个神经元所做的就是输入面积完成线性运算,取不小于0的值最后得到预测价格。

图1.1.2

图1.1中的蓝线(开始为0,后面是一条直线),这种函数被称作ReLU函数(全称是修正线性单元,“修正”指的是取不小于0的值)。

这是一个单神经元网络,是规模很小的神经网络。大一点的神经网络,是把这些单个神经元堆叠起来形成的,比如说:

不仅仅可以用房屋的面积来预测价格,现在你还有一些房屋的其它特征,知道了一些别的信息,比如卧室的数量。这样记下来,你可能想到有一个很重要的因素会影响房屋价格,就是家庭人数,这个性质和面积大小相关,还有卧室的数量能否满足住户的家庭人数需求。你可知道邮编,或许能作为一个特征说明了步行化程度,另外根据邮政编码还能体现富裕程度、附近学校的质量。我画的每一个小圈圈,都可能是一个ReLU,即修正线性单元或者其它的不那么线性的函数,基于房屋面积和卧室数量估算家庭人口、基于邮编可以评估步行化程度、学校质量。最后你可能会想,人们愿意在房屋上花费多少钱,和他们关注什么息息相关。在这个例子中,家庭人口、步行化程度以及学校质量,都能帮助你预测房屋的价格。在这个例子中x是所有的这四个输入,y是预测的价格,把这些独立的神经元叠加起来,现在有了一个稍微大一点的神经网络,当你实现它之后,你要做的只是输入x,就能得到输出y。不管训练集有多大,所有的中间过程它都会自己完成。

图1.1.3

那么你实际上做的就是,这有四个输入的神经网络,输入的特征是房屋面积、卧室的数量,邮政编码和周边的富裕程度。已知这些输入的特征,神经网络的工作就是预测对应的价格。同时也注意到这些圈圈,在一个神经网络中它们被叫做“隐藏单元”。每个的输入都同时来自四个特征,此如说我们不会具体说,第一个节点表示家庭人口,或者说家庭人口仅取决于特征x1和x2,我们会这么说,神经网络你自己决定这个节点是什么,我们只给你四个输入特征随便你怎么计算。因此我们说第一层是输入层。中间的这一层,在神经网络中连接数是很高的,因为输入的每个特征,都连接到了中间的每个圈圈,值得注意的是神经网络,只有你喂给它是够多的数据(关于和y的数据),给到足够的x、y训练祥本,神经网络非常擅长于计算从x到y的精准映射函数,这就是一个基本的神经网络。你可能发现自己的神经网络,在监督学习的环境下是如此有效和强大。

图1.1.4

 1.2、用神经网络进行监督学习

监督学习是机器学习的一种。

在监督学习中,输入x,会习得一个函数,映射出y。重要的是,需要机智的选择x和y,才能解决待定问题。

图1.2.1 

其中1、2使用的是 Standard NN(通用标准的神经网络架构);3图像领域里我们经常应用的是卷积神经网络(CNN);4对于序列数据,例如音频中含有时间成分,音频是随着时间播放的,所以音频很自然地被表示为一维时间序列,对于序列数据经常使用循环神经网络(RNN);4、5语言,比如英语和汉语字母或单词都是逐个出现的,所以语言最自然的表示方式也是序列数据,使用更复杂的RNNS;6对于更复杂的应用,比如无人驾驶,你有一张图片可能需要CNN ”卷积神经网络结构” 架构去处理,雷达信息则不一样,需要更加复杂的 混合的神经网络结构。

所以为了更具体地说明,标准的CNN和RNN结构是什么,请看下图:

图1.2.2 

图1.2.3 

图1.2.4 

 数据分为两种,结构化数据、非结构化数据。

图1.2.5 

二、第二周课程

这周我们将学习神经网络的基础知识,其中需要注意的是,当实现一个神经网络的时候,我们需要知道一些非常重要的技术和技巧。例如有一个包含个样本的训练集,你很可能习惯于用一个for循环来遍历训练集中的每个样本,但是当实现一个神经网络的时候,我们通常不直接使用for循环来遍历整个训练集,所以在这周的课程中你将学会如何处理训练集。

另外在神经网络的计算中,通常先有一个叫做前向暂停(forward pause)或叫做前向传播(foward propagation)的步骤,接着有一个叫做反向暂停(backward pause) 或叫做反向传播(backward propagation)的步骤。所以这周我也会向你介绍为什么神经网络的训练过程可以分为前向传播和反向传播两个独立的部分。

在课程中我将使用逻辑回归(logistic regression)来传达这些想法,以使大家能够更加容易地理解这些概念。即使你之前了解过逻辑回归,我认为这里还是有些新的、有趣的东西等着你去发现和了解,所以现在开始进入正题。

2.1 二分分类(logistic回归)

logistc回归是一个用于二分类(binary classification)的算法。

2.2 logistic回归的假设函数

2.3 logistic回归的损失函数

2.4 梯度下降法

我们已经学习了logistic回归模型,也知道了损失函数(是衡量单一训练样例的效果)、成本函数(用于在全部训练集上来衡量参数w和b的效果)。下面我们讨论如何使用梯度下降法来训练或学习训练集上的参数w和b。

回顾一下,第一行是是熟悉的logistic回归算法,第二行是成本函数J(是参数w和b的函数),他是一个平均值,即1/m的损失函数之和。损失函数可以衡量算法的效果,每一个训练样例都输出y^(i),把它和真值标签y (i)进行比较,等于右边展开的完整的公式。

成本函数衡量了参数w和b在训练集上的效果,要习得合适的参数w和b,我们可以想到求出使得成本函数J(w, b)尽可能小的w和b,下面来看看梯度下降法:

以下内容可以直接看笔记原文,从梯度下降法的形象化说明开始看!!!

修改1:

我们之所以使用logistic回归的这个特定成本函数J(w.b) ,是因为它是凸函数。为了找到更好的参数值,我们要做的就是用某初始值初始化w和b。

补充2:

对这张图片进行补充

梯度下降法所做的就是从初始点开始,朝最陡的下坡方向走一 步,在梯度下降一步后,或许在那里停下,因为它正试图沿着最快下降的方向往下走,或者说尽可能快地往下走,这是梯度下降的一次迭代。两次迭代或许会到达那里,或者二次...等等。下图中,隐藏在图上的曲线很有希望收敛到这个全局最优解或接近全局最优解。

2.5 导数

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

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

相关文章

知识蒸馏概述及开源项目推荐

文章目录 1.介绍2.知识2.1 基于响应的知识(response-based)2.2 基于特征的知识(feature-based)2.3 基于关系的知识(relation-based) 3.蒸馏机制3.1 离线蒸馏3.2 在线蒸馏3.3 自蒸馏 4.教师-学生架构5.蒸馏算法5.1 对抗性蒸馏(Adversarial Dis…

计算机组成原理第四章(存储系统)(一)

一、存储器概述 1.分类: 存取方式:随机存储器(RAM)、顺序存储器(SAM)、直接存储器(DAM) 存储介质:磁性材料存储器、半导体存储器、光存储器 功能和存取速度: …

docker stop slow 解决

验证 NanoMQ stop slow 的问题 daemon 和非 daemon 两种方式 docker stop 都很慢 疑问是默认情况下,SIGTERM 会被处理。 模拟 docker 内发送 SIGTERM 信号 # The default signal for kill is TERM # pkill will send the specified signal (by defau…

常微分方程

什么是常微分方程: 未知函数为单变量(一元)函数 例1 设有温度为100摄氏度的物体放置在20摄氏度的空气冷却,求物体温度随时间 变化 的规律。 解:设t时刻物体温度为T 对两边求共积分 设比例系数为k>0 令C, 微分方程: 联系着…

算法导论笔记4:散列数 hash

一 了解一些散列的基本概念,仅从文字角度,整理了最基础的定义。 发现一本书,《算法图解》,微信读书APP可读,有图,并且是科普性质的读物,用的比喻很生活化,可以与《算法导论》合并起…

论文笔记--Baichuan 2: Open Large-scale Language Models

论文笔记--Baichuan 2: Open Large-scale Language Models 1. 文章简介2. 文章概括3 文章重点技术3.1 预训练3.1.1 预训练数据3.1.2 模型架构 3.2 对齐3.2.1 SFT3.2.2 Reward Model(RM)3.2.3 PPO 3.3 安全性 4. 文章亮点5. 原文传送门 1. 文章简介 标题:Baichuan 2…

专用博客模板

【点我-这里送书】 本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的…

用excel计算一个矩阵的逆矩阵

假设我们的原矩阵是一个3*3的矩阵: 125346789 我们现在要求该矩阵的逆矩阵: 鼠标点到其它空白的地方,用来存放计算结果: 插入-》函数: 选择MINVERSE函数,这个就是求逆矩阵的函数: 点击“继续…

[C国演义] 第十八章

第十八章 最长斐波那契子序列的长度最长等差数列等差序列划分II - 子序列 最长斐波那契子序列的长度 力扣链接 子序列 ⇒ dp[i] — — 以 arr[i] 结尾的所有子序列中, 斐波那契子序列的最长长度子序列 ⇒ 状态转移方程 — — 根据最后一个位置的组成来划分 初始化 — — 根…

开发知识点-Vue-Electron

Electron ElectronVue打包.exe桌面程序 ElectronVue打包.exe桌面程序 为了不报错 卸载以前的脚手架 npm uninstall -g vue-cli安装最新版脚手架 cnpm install -g vue/cli创建一个 vue 随便起个名 vue create electron-vue-example (随便起个名字electron-vue-example)进入 创建…

PDF文件编辑器有哪些?10 个适用的PDF 编辑器推荐!

PDF 编辑器始终配备简单的界面以及高效管理工作所需的所有功能。 那么如何选择合适的版本呢?在线工具还是离线工具更好? 为了帮助您回答这些问题,我将通过多次深入的测试来详细回顾十大免费编辑器。现在让我们来探索一下吧! 10 …

扭矩传感器信号模拟地、数据地与电源地

在电子电路中,电源地、信号地、数字地和模拟地都是不同的地(ground)节点,它们在电路中有不同的作用。 电源地(Power Ground)是指用于连接电源电源回路的地节点。在大多数电子设备中,电源地通常是…

算法导论笔记5:贪心算法

P216 第15章动态规划 最优子结构 具有它可能意味着适合应用贪心策略 动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法。 剪切-粘贴技术证明 每个子问题的解就是它本身的最优解(利用反证法&#xff0…

模板初阶 C++

目录 泛型编程 函数模板 概念 格式 原理 函数模板的实例化 类模板 格式 类模板的实例化 泛型编程 当我们要实现一个交换函数,我们可以利用函数重载实现,但是有几个不好的地方 1.函数重载仅仅是类型不同,代码复用率较低,只…

Springboot集成JWT,用户名,密码生成token

何为token?【如果想直接看代码可以往下翻】 使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的: 1. 客户端使用用户名跟密码请求登录 2. 服务端收到请求,去验证用户名与密码 3. 验证成功后&a…

【java:牛客每日三十题总结-6】

java:牛客每日三十题总结 总结如下 总结如下 transient 变量和序列化有关,这是一个空接口,起标记作用,具体的序列化由ObjectOutputStream和ObjectInputStream完成。transient修饰的变量不能被序列化,static变量不管加没加transie…

Linux基础开发工具之调试器gdb

文章目录 1.编译成的可调试的debug版本1.1gcc test.c -o testdebug -g1.2readelf -S testdebug | grep -i debug 2.调试指令2.0quit退出2.1list/l/l 数字: 显示代码2.2run/r运行2.3断点相关1. break num/b num: 设置2. info b: 查看3. d index: 删除4. n: F10逐过程5. p 变量名…

聊一聊 Solid 和 Vue 框架有啥差异性?

Solid.js和Vue.js都是JavaScript框架,在开发者社区中引起了相当大的关注和采用。每个框架都满足了不同的需求和偏好,具有独特的方法论、理念和特性。本文旨在对它们进行评估,探讨它们的基本理念、架构、可用性、性能等方面。 让我们从两个简短…

一文搞懂设计模式之单例模式

大家好,我是晴天,本周我们一起来学习单例模式。本文将介绍单例模式的基本属性,两种构造单例的方法(饿汉模式和懒汉模式)以及golang自带的sync.Once()方法。 什么是单例模式 GoF对单例模式的定义是:保证一个…

Python实战 | 使用 Python 和 TensorFlow 构建卷积神经网络(CNN)进行人脸识别

专栏集锦,大佬们可以收藏以备不时之需 Spring Cloud实战专栏:https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏:https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏:https:/…