【深度学习】吴恩达课程笔记(一)——深度学习概论、神经网络基础

news2024/11/28 20:34:37

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~

吴恩达课程笔记——深度学习概论、神经网络基础

  • 一、概念区别
    • 1.深度学习与机器学习
    • 2.深度学习与神经网络
  • 二、什么是神经网络
    • 1.分类
    • 2.特点
    • 3.工作原理
    • 4.神经网络示意图
    • 5.神经网络进行监督学习
    • 6.深度学习的发展
  • 三、神经网络基础
    • 1.二分分类(Binary Classification)
    • 2.logistic回归
      • 变量定义
      • 损失函数(loss function)
      • 成本函数(cost function)
    • 3.梯度下降法(Gradient Decent)
    • 4.计算图(Computation Graph)
    • 5.单个样本的梯度下降法
    • 6.m个样本的梯度下降法
    • 7.logistic回归一次迭代的向量化形式

一、概念区别

1.深度学习与机器学习

深度学习 < 机器学习

机器学习:用数据或以往经验,优化计算机程序的性能标准

深度学习:学习样本数据的内在规律和表示层次,目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像、声音等数据

2.深度学习与神经网络

神经网络和深度学习是机器学习常见算法中的两个,

“深度学习”训练神经网络

神经网络也改变了深度学习

神经网络:速度快

深度学习:思考能力强

二、什么是神经网络

人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)

1.分类

模型结构

前馈型网络(也称为多层感知机网络)、反馈型网络(也称为Hopfield网络)

学习方式

有监督学习、非监督、半监督学习

工作方式

确定性、随机性

时间特性

连续型、离散型

2.特点

大规模并行处理,分布式存储,弹性拓扑,高度冗余和非线性运算。因而具有很髙的运算速度,很强的联想能力,很强的适应性,很强的容错能力和自组织能力。

3.工作原理

  • 必须先学习,再工作。
  • 神经元间有连接权值,一开始是随机数,通过对训练结果正误的判断,改变随机数的大小。
  • 有监督的学习:利用给定的样本标准进行分类或模仿
  • 无监督的学习:只规定学习方式或某些规则,则具体的学习内容随系统所处环境 (即输入信号情况)而异,系统可以自动发现环境特征和规律性,具有更近似人脑的功能

4.神经网络示意图

在这里插入图片描述

每一个节点都可能与一个或多个神经元连接。用法是:输入x,得到y, 中间过程全由神经网络自身完成。

圆点叫做隐藏单元。

给神经网络足够的 (x,y) 样本,神经网络很善于计算从 x 到 y 的精确映射函数。

5.神经网络进行监督学习

分类与回归

分类的输出类型是离散数据,回归的输出类型是连续数据。

监督学习应用举例

实际估值、线上广告、图像判断、声音处理、机器翻译、自动驾驶

输入(x)输出(y)应用
房屋情况价格实际估值
广告,用户信息是否点击(0/1)线上广告
图像对象(1,…,1000)照片标记
音频文字记录语音识别
英语中文机器翻译
图像,雷达信息其他车辆位置自动驾驶

几种神经网络

卷积神经网络(Convolutional Neural Networks, CNN):图像处理

循环神经网络(Recurrent Neural Network, RNN):一维数据处理

混合神经网络(Hybrid Neural Network, HNN):汽车自动驾驶

6.深度学习的发展

驱动力:规模更大的模型、大量的标签数据

三个基本要素:数据量、计算速度、算法

三、神经网络基础

1.二分分类(Binary Classification)

  • 输出结果只有两种:0/1

  • 符号定义

    • x(输入):图片的特征向量(列向量形式存储)
    • y(输出):0/1

在这里插入图片描述
在这里插入图片描述

  • nx:特征向量x的维度

  • (x,y):一个单独的样本,x是nx维的特征向量,y是值1或0

  • mtrain:训练样本数

  • mtest:测试样本数

  • X:矩阵表示训练样本输入集,X.shape = (nx,m)

  • Y:矩阵表示训练样本输出集,Y.shape = (1,m)

  • 目标:训练出一个分类器,以特征向量x为输入,预测输出结果y是1还是0

2.logistic回归

变量定义

当输出y为1或0时,用于监督学习的一种学习算法,目标是最小化模型预测与实验数据之间的误差。

logistic回归中使用的变量如下:

  • nx维输入特征向量:x

  • 一维反馈结果:y(与x组对出现在输入训练集中)

  • nx维权重向量:w

  • 阀值:b∈R

  • 算法输出:y = σ(wTx + b)

  • sigmoid函数:
    s = σ ( w T x + b ) = σ ( z ) = 1 1 + e − z s=σ(w^Tx+b)=σ(z)=\frac{1}{1+e^{-z}} s=σ(wTx+b)=σ(z)=1+ez1

在这里插入图片描述

(wTx + b)是一个线性函数,但我们想要的是[0,1]的数。在神经网络算法中,我们常常使用sigmoid函数把一个函数映射到[0,1]区间上。

  • 当z很大时,e-z→0,σ(z) = 1
  • 当z很小时(z<0),e-z→∞,σ(z) = 0
  • 当z = 0时,σ(z) = 0.5

损失函数(loss function)

回顾:
y ^ i = σ ( w T x i + b i ) = σ ( z i ) = 1 1 + e − z i ŷ_i=σ(w^Tx_i+b_i)=σ(z_i)=\frac{1}{1+e^{-z_i}} y^i=σ(wTxi+bi)=σ(zi)=1+ezi1

G i v e n { ( x 1 , y 1 ) , ⋯   , ( x m , y m ) } , w e   w a n t   y ^ i ≈ y i Given\{(x_1,y_1),\cdots,(x_m,y_m)\},we\ want\ ŷ_i≈y_i Given{(x1,y1),,(xm,ym)},we want y^iyi

损失函数计算每一个单独的训练样本的出错情况。预测输出 ŷi 与目标输出 yi 之间的差异

损失函数为:
L ( y ^ i , y i ) = − [ y i l o g y ^ i + ( 1 − y i ) l o g ( 1 − y ^ i ) ] L(ŷ_i,y_i)=-[y_ilogŷ_i+(1-y_i)log(1-ŷ_i)] L(y^i,yi)=[yilogy^i+(1yi)log(1y^i)]
分析该函数可得:

  • log1=0

  • 如果 yi = 1,要使L→0,需要 ŷi →1

  • 如果 yi = 0,要使L→0,需要 ŷi →0

成本函数(cost function)

为了训练参数wb,需要定义成本函数。成本函数是整个训练集每个训练样本的损失函数的平均水平。
J ( w , b ) = 1 m ∑ i = 1 m L ( y ^ i , y i ) = − 1 m ∑ i = 1 m [ y i l o g y ^ i + ( 1 − y i ) l o g ( 1 − y ^ i ) ] J(w,b)=\frac{1}{m}\sum_{i=1}^{m}{L(ŷ_i,y_i)}=-\frac{1}{m}\sum_{i=1}^{m}{[y_ilogŷ_i+(1-y_i)log(1-ŷ_i)]} J(w,b)=m1i=1mL(y^i,yi)=m1i=1m[yilogy^i+(1yi)log(1y^i)]

3.梯度下降法(Gradient Decent)

使用梯度下降法寻找 J 的最小值以及此时 wb 的值。

wb 进行如下迭代,直到 J 达到一个稳定的最小值,α为学习率
w = w − α d J d w w=w-α\frac{dJ}{dw} w=wαdwdJ

b = b − α d J d b b=b-α\frac{dJ}{db} b=bαdbdJ

4.计算图(Computation Graph)

从左向右:计算中间变量和成本函数 J 的值。

在这里插入图片描述

从右向左:计算 J 对各变量的导数。

在这里插入图片描述

d v = d J d v = 3 , d u = d J d v d v d u = 3 dv=\frac{dJ}{dv}=3,du=\frac{dJ}{dv}\frac{dv}{du}=3 dv=dvdJ=3,du=dvdJdudv=3

d a = d J d v d v d a = 3 × 1 = 3 da=\frac{dJ}{dv}\frac{dv}{da}=3\times1=3 da=dvdJdadv=3×1=3

d b = d J d v d v d u d u d b = 3 × 1 × 2 = 6 db=\frac{dJ}{dv}\frac{dv}{du}\frac{du}{db}=3\times1\times2=6 db=dvdJdudvdbdu=3×1×2=6

d c = d J d v d v d u d u d c = 3 × 1 × 3 = 9 dc=\frac{dJ}{dv}\frac{dv}{du}\frac{du}{dc}=3\times1\times3=9 dc=dvdJdudvdcdu=3×1×3=9

5.单个样本的梯度下降法

单个训练样本的损失函数和对应的参数wb

在这里插入图片描述

d L d a = − y a + 1 − y 1 − a \frac{dL}{da}=-\frac{y}{a}+\frac{1-y}{1-a} dadL=ay+1a1y

d a d z = a ( 1 − a ) \frac{da}{dz}=a(1-a) dzda=a(1a)

d z = d L d z = d L d a d a d z = a − y dz=\frac{dL}{dz}=\frac{dL}{da}\frac{da}{dz}=a-y dz=dzdL=dadLdzda=ay

d L d w 1 = d L d z d z d w 1 = x 1 d z , d L d w i = x i d z \frac{dL}{dw_1}=\frac{dL}{dz}\frac{dz}{dw_1}=x_1dz,\frac{dL}{dw_{i}}=x_{i}dz dw1dL=dzdLdw1dz=x1dz,dwidL=xidz

d b = d z db=dz db=dz

w i = w i − α d L d w i w_i=w_i-α\frac{dL}{dw_i} wi=wiαdwidL

b = b − α d L d b b=b-α\frac{dL}{db} b=bαdbdL

6.m个样本的梯度下降法

randomly initialize w and b
repeat these until J is small enough:
    J=0
    dw=0
    db=0
    #计算m个样本在目前w和b情况下的成本函数
    for i=1 to m:	#m个样本
        z[i]=w*x[i]+b
        a[i]=σ(z[i])
        J+=L(a,y[i])
        dz=a[i]-y[i]
        for j=1 to n_x:		#样本x的维度n_x
        	dw[j]+=x[i][j]*dz
        db += dz
    #得到当前成本函数值(和这一轮用来迭代的dw、db)
    J /= m
    for j=1 to n_x:
        dw[j] /= m
    db /= m
    #对w和b进行迭代
    for i=1 to m:
        w[i] = w[i] - α * dw
    b = b - α * db

这里显式地使用了许多for循环,对运行效率有很大负面影响。接下来会介绍如何使用向量化技术来为训练提速。

7.logistic回归一次迭代的向量化形式

Z = w^T * X + b
  = np.dot(w.T, X) + b
A = σ(Z)
dZ = A - Y
dw = 1/m * X * dZ^T
db = 1/m * np.sum(dZ)

w = w - αdw
b = b - αdw

推导过程如下:
在这里插入图片描述

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

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

相关文章

mathtype怎么更改编号 mathtype章节编号错乱怎么办

mathtype作为一款功能强大的公式编辑器&#xff0c;使用范围广泛&#xff0c;与多款软件兼容。但新手可能会对mathtype的操作不熟悉&#xff0c;不知道如何在mathtype中更改编号&#xff0c;以及解决章节编号错乱问题。本文将围绕mathtype怎么更改编号&#xff0c;mathtype章节…

Ansible 安装部署及常用命令和17个模块详解

目录 Ansible 1 ansible 环境安装部署 1.1 管理端安装 ansible 1.2 ansible 目录结构 1.3 配置主机清单 1.4 配置密钥对验证 2 ansible 命令行模块 2.1 command 模块 2.2 shell 模块 2.3 cron 模块 2.4 user 模块 2.5 group 模块 2.6 copy 模块 2.7 file 模块 2.…

磁盘的结构(磁道,扇区,盘面,柱面,物理地址)

目录 1.磁盘、磁道、扇区的概念1.磁盘2.磁道3.扇区 2.如何在磁盘中读/写数据3.盘面、柱面的概念4.磁盘的物理地址1.根据地址读取一个“块” 5.磁盘的分类1.活动头磁道2.固定头磁盘3.根据盘片是否可更换 1.磁盘、磁道、扇区的概念 1.磁盘 磁盘的表面由一些磁性物质组成&#xf…

VS Code打开新的文件夹,会覆盖原来的文件夹。如何保持原来的文件夹并新打开一个窗口

默认打开新文件夹时&#xff0c;会覆盖掉当前的窗口&#xff0c;导致每次只能看一个项目文件夹。想让其打开新文件夹时&#xff0c;以新窗口打开&#xff0c;不覆盖当前窗口&#xff0c;可以进行如下设置。 然后重启VS Code就可以生效了&#xff01;可以同时打开多个文件夹。效…

CSS宽度100%和宽度100vw之间有什么不同?

vw和vh分别代表视口宽度和视口高度。 使用width: 100vw代替的区别在于width: 100%&#xff0c;虽然100%将使元素适合所有可用空间&#xff0c;但视口宽度具有特定的度量&#xff0c;在这种情况下&#xff0c;可用屏幕的宽度 。 如果设置样式body { margin: 0 }&#xff0c;则1…

网络原理之IP协议

文章目录 前言IP 协议的协议头格式地址管理1. 动态分配 IP2. NAT机制&#xff08;网络地址转换&#xff09;NAT 机制是如何工作的 3. IPv6 网段划分子网掩码路由选择 前言 前面我们学习了关于 UDP 协议和 TCP 协议方面的内容&#xff0c;这些都是网络传输中传输层方面的协议&a…

WebGIS瓦片地图添加水印(矢量瓦片、栅格瓦片)

水印技术 水印能为收到版权信息产品归属提供有力的证据, 并能够监视被保护数据的传播, 真伪鉴别以及非法拷贝控制等.在现今流行的线上地图同样需要水印技术, 保护地图数据.本文将介绍如何实现瓦片地图水印添加, 包括栅格瓦片、矢量瓦片. 在探索过程中, 参考了《前端水印生成方案…

NTRU 加密方案

参考文献&#xff1a; [Rivest97] Rivest R L. All-or-nothing encryption and the package transform[C]//Fast Software Encryption: 4th International Workshop, FSE’97 Haifa, Israel, January 20–22 1997 Proceedings 4. Springer Berlin Heidelberg, 1997: 210-218.[…

云安全-云原生技术架构(Docker逃逸技术-特权与危险挂载)

0x00 云原生技术-docker docker容器和虚拟机的对比&#xff1a;前者是将运行环境打包&#xff0c;封装一个环境。后者是将整个系统打包&#xff0c;封装一个系统。在操作使用上来说各有利弊。 0x01 docker容器的三种逃逸类型 特权模式启动&#xff08;不安全的启动方式&…

Qt5.15:MinGW64位编译Oracle 19c数据库驱动及代码测试 - 安装时没有选Sources处理办法

文章目录 0 代码仓库1 环境以及条件说明2 准备一&#xff1a;下载Oracle 19c驱动&#xff0c;需要下载两个包&#xff0c;注意分x86和x642.1 32位2.2 64位2.3 新建目录并解压缩2.4 记录路径2.4.1 x86需要的路径2.4.2 x64需要的路径 3 准备二&#xff1a;下载Sources源代码的两种…

毅速丨金属3D打印能替代传统制造吗?

金属3D打印技术已经逐渐被很多行业认可和应用&#xff0c;但是目前&#xff0c;金属3D打印多数被作为传统制造技术的一种补充&#xff0c;暂时还不能完全替代传统制造。 金属3D打印使用的是金属粉末进行选择性激光烧结&#xff0c;打印时在成型缸里铺上金属粉末&#xff0c;打印…

【刷题宝典NO.1】

Nim游戏 https://leetcode.cn/problems/nim-game/description/ 你和你的朋友&#xff0c;两个人一起玩 Nim 游戏&#xff1a; 桌子上有一堆石头。 你们轮流进行自己的回合&#xff0c; 你作为先手 。 每一回合&#xff0c;轮到的人拿掉 1 - 3 块石头。 拿掉最后一块石头的人…

替换所有的问号

这篇也是凑数的 哈哈.... 稍后会整合到算法通关第三关白银挑战 . 描述 : 给你一个仅包含小写英文字母和 ? 字符的字符串 s&#xff0c;请你将所有的 ? 转换为若干小写字母&#xff0c;使最终的字符串不包含任何 连续重复 的字符。 注意 : 不能 修改非 ? 字符 . 题目 : …

分类预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元数据分类预测

分类预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元数据分类预测 目录 分类预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双…

【计算机视觉】3D视觉

文章目录 一、基本问题二、三个坐标系 X w \boldsymbol{X}_w Xw​到 X c \boldsymbol{X}_c Xc​的转换 X c \boldsymbol{X}_c Xc​到 x i \boldsymbol{x}_i xi​的转换投影矩阵尺度模糊问题 三、相机标定四、立体视觉 我的《计算机视觉》系列参考UC Berkeley的CS180课程&#x…

JDK21下载和安装

说明 本文介绍 JDK21&#xff08;Oracle版&#xff09;的下载和安装。 下载 Oracle官网JDK21下载页面 根据操作系统的类型&#xff0c;下载相应的版本。本文下载的是Windows64位的安装版。 下载页面示例 安装包示例 安装 双击安装包&#xff0c;开始安装。 把路径改为自定…

【数据结构】数组和字符串(八):稀疏矩阵的链接存储:十字链表的创建、插入元素、遍历打印(按行、按列、打印矩阵)、销毁

文章目录 4.2.1 矩阵的数组表示4.2.2 特殊矩阵的压缩存储a. 对角矩阵的压缩存储b~c. 三角、对称矩阵的压缩存储d. 稀疏矩阵的压缩存储——三元组表4.2.3三元组表的转置、加法、乘法、操作4.2.4十字链表0. 十字链表结构1. 创建2. 销毁3. 插入4. 打印矩阵形式5. 按行打印6.按列打…

京东平台数据分析(京东销量):2023年9月京东吸尘器行业品牌销售排行榜

鲸参谋监测的京东平台9月份吸尘器市场销售数据已出炉&#xff01; 根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;今年9月&#xff0c;京东吸尘器的销量为19万&#xff0c;环比下滑约12%&#xff0c;同比下滑约25%&#xff1b;销售额为1.2亿&#xff0c;环比下滑约11%&…

刀具磨损状态识别(Python代码,MSCNN_LSTM_Attention模型,初期磨损、正常磨损和急剧磨损分类,解压缩直接运行)

1.运行效果&#xff1a;刀具磨损状态识别&#xff08;Python代码&#xff0c;MSCNN_LSTM_Attention模型&#xff0c;初期磨损、正常磨损和急剧磨损&#xff09;_哔哩哔哩_bilibili 环境库&#xff1a; NumPy 版本: 1.19.4 Pandas 版本: 0.23.4 Matplotlib 版本: 2.2.3 Keras …

【Qt之控件QTreeView】设置单元格高度、设置图标尺寸

设置列宽 设置高度 自定义代理 继承QItemDelegate&#xff0c;实现sizeHint ()方法&#xff0c;设置自定义委托。 class itemDelegate : public QItemDelegate {Q_OBJECTpublic:explicit itemDelegate(QObject *parent 0) : QItemDelegate(parent){}~itemDelegate(){}virtua…