深度学习1【吴恩达】

视频链接: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.mzph.cn/news/139256.shtml

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

相关文章

微信小程序刷新当前页面(亲测有效)

有个小功能点,需要刷新当前页面,搜索了很多地方,发现很多搜索的结果其实并不准确。 有的调用的是this.onLoad方法,有的是调用的是this.onReady方法。其实都不能满足我的要求,其实我就只是想刷新下当前页面,…

for each和for of的区别

forEach方法: forEach是Array对象的方法,可以直接使用。forEach会对数组中的每个元素执行指定的回调函数,但无法在回调函数中使用break或return来中止循环。回调函数接受三个参数:当前遍历的元素值、当前遍历的索引和整个数组本身…

CSDN写博文的128天

起因 为什么要写博文? 写博文是因为当我还是编程小白时,我那会啥也不懂,不懂函数调用,不懂指针,更不懂结构体,别更说Linux,平时不会也没有可以问的人,也幸好有CSDN,遇到…

基于python+TensorFlow+Django卷积网络算法+深度学习模型+蔬菜识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 介绍了TensorFlow在图像识别分类中的应用,并通过相关代码进行了讲解。通过TensorFlow提供的工具和库&am…

电脑小Tip---外接键盘F1-F12快捷键与笔记本不同步

当笔记本外接一款非常好用的静音键盘后,会出现一些问题。例如:外接键盘F1-F12与笔记本不同步。具体一个例子就是,在运行matlab程序时,需要点编辑器—运行,这样就很麻烦,直接运行的快捷键是笔记本键盘上的F5…

SpringGateWay——yml文件配置详解

Spring Gateway 是一个基于 Spring 框架的网关服务,主要作用是将流量路由到不同的微服务中。它的灵活性和可扩展性使它成为构建云原生应用架构的不二之选。 下面是 Spring Gateway 的 yml 文件配置参数详解: spring:cloud: gateway: routes: # 路由相…

SQL SELECT INTO 语句

SQL SELECT INTO 语句 使用 SQL,您可以将信息从一个表中复制到另一个表中。 SELECT INTO 语句从一个表中复制数据,然后将数据插入到另一个新表中。 SQL SELECT INTO 语法 我们可以把所有的列都复制到新表中: SELECT * INTO newtable [IN ex…

使用大型语言模型进行文本摘要

路易斯费尔南多托雷斯 📝 Text Summarization with Large Language Models。通过单击链接,您将能够逐步阅读完整的过程,并与图进行交互。谢谢你! 一、介绍 2022 年 11 月 30 日,标志着机器学习历史上的重要篇章。就在这…

uni.getLocation() 微信小程序 线上获取失败

开发版,体验版,用此方法都可以正确获取定位,但是在小程序的线上,总是获取失败 参考:uni-app微信小程序uni.getLocation获取位置;authorize scope.userLocation需要在app.json中声明permission;小程序用户拒绝授权后重新授权-CSDN博客 uniapp 中的 uni.…

2023年A股借壳上市研究报告

第一章 借壳上市概况 1.1 定义 借壳上市作为一种独特的资本市场操作手法,历来是企业拓展融资渠道和实现市场战略目标的重要途径。具体来说,借壳上市可分为狭义与广义两种模式。在狭义的定义下,借壳上市是指一家已上市的公司的控股母公司&am…

RabbitMQ的 五种工作模型

RabbitMQ 其实一共有六种工作模式: 简单模式(Simple)、工作队列模式(Work Queue)、 发布订阅模式(Publish/Subscribe)、路由模式(Routing)、通配符模式(Topi…

【AHK】自用模板新电脑快捷键自用习惯配置

新电脑第一课先配置快捷键 :: send {backspace} returncapslock:: send {enter} return ;xbutton2::ToolTip,;设置鼠标坐标模式为相对屏幕CoordMode, Mouse, ScreenMouseGetPos, mX0, mY0 , hwndIfWinExist, ahk_id %hwnd%{;获取初始窗口位置WinGetPos, wX0, wY0WinActivate, a…

在Ubuntu上搭建Docker环境

步骤 1: 更新系统 sudo apt update sudo apt upgrade步骤 2: 安装Docker 执行以下命令安装Docker: sudo apt install docker.io步骤 3: 启动Docker服务 启动Docker服务,并将其设置为开机启动: sudo systemctl start docker sudo systemctl…

数据结构与算法【二分查找】Java实现

需求:在有序数组 A 内,查找值target 如果找到返回索引如果找不到返回 -1 前提 给定一个内含 n 个元素的有序数组 A,一个待查值 target 1 设置 i0,jn-1 2 如果 i \gt j,结束查找,没找到 3 设置 m (…

Clickhouse学习笔记(3)—— Clickhouse表引擎

前言: 有关Clickhouse的前置知识详见: 1.ClickHouse的安装启动_clickhouse后台启动_THE WHY的博客-CSDN博客 2.ClickHouse目录结构_clickhouse 目录结构-CSDN博客 Cickhouse创建表时必须指定表引擎 表引擎(即表的类型)决定了&…

GBDT减少模型偏差、随机森林减小模型方差

1、Adaboost算法原理,优缺点: 理论上任何学习器都可以用于Adaboost.但一般来说,使用最广泛的Adaboost弱学习器是决策树和神经网络。对于决策树,Adaboost分类用了CART分类树,而Adaboost回归用了CART回归树。 Adaboost…

git准备名字,邮箱,生成ssh-key

设置全局的用户名字和邮箱 git config --global user.name "zhs" git config --global user.email "test163.com"生成ssh-key ssh-keygen -t rsa -C "zhsubuntu-ssd"-t 来指定密钥类型,这里使用的是rsa -C 来指定在密钥中的一个注释…

数据库安全:Hadoop 未授权访问-命令执行漏洞.

数据库安全:Hadoop 未授权访问-命令执行漏洞. Hadoop 未授权访问主要是因为 Hadoop YARN 资源管理系统配置不当,导致可以未经授权进行访问,从而被攻击者恶意利用。攻击者无需认证即可通过 RESTAPI 部署任务来执行任意指令,最终完…

Transmit :macOS 好用的 Ftp/SFtp 工具

Transmit 是一种功能强大的 FTP/SFTP/WebDAV 客户端软件,是一个 Mac OS X 平台上设计的文件传输软件。它由 Panic(一家以软件工具为主的公司)开发和维护,是一款非常受欢迎且易于使用的软件,而且被广泛认为是 Mac OS X …

冒泡排序(Bubble Sort)

目录 1.冒泡排序1.1 基本原理1.2 例子1.3 示例代码 2.魔炮排序2.1 基本原理2.1 例子2.2 示例代码 1.冒泡排序 1.1 基本原理 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历待排序的数列,一次比较两个元素,如果他们的…