二分类-深度学习2.1-吴恩达老师课程

  • 介绍
  • 案例
  • 符号定义

仅作为个人学习记录

介绍

当实现一个神经网络的时候,我们需要知道一些非常重要的技术和技巧。例如有一个包含mmm个样本的训练集,你很可能习惯于用一个for循环来遍历训练集中的每个样本,但是当实现一个神经网络的时候,我们通常不直接使用for循环来遍历整个训练集,所以在这周的课程中你将学会如何处理训练集。
另外在神经网络的计算中,通常先有一个叫做前向暂停(forward pause)或叫做前向传播(foward propagation)的步骤,接着有一个叫做反向暂停(backward pause) 或叫做反向传播(backward propagation)的步骤。

案例

逻辑回归(logistic regression)是一个用于二分类(binary classification)的算法。首先我们从一个问题开始说起,这里有一个二分类问题的例子,假如你有一张图片作为输入,比如这只猫,如果识别这张图片为猫,则输出标签1作为结果;如果识别出不是猫,那么输出标签0作为结果。现在我们可以用字母yyy来表示输出的结果标签,如下图所示:

我们来看看一张图片在计算机中是如何表示的,为了保存一张图片,需要保存三个矩阵,它们分别对应图片中的红、绿、蓝三种颜色通道,如果你的图片大小为64x64像素,那么你就有三个规模为64x64的矩阵,分别对应图片中红、绿、蓝三种像素的强度值。为了便于表示,这里我画了三个很小的矩阵,注意它们的规模为5x4而不是64x64,如下图所示:
为了把这些像素值放到一个特征向量中,我们需要把这些像素值提取出来,然后放入一个特征向量xxx。为了把这些像素值转换为特征向量xxx,我们需要像下面这样定义一个特征向量 xxx来表示这张图片,我们把所有的像素都取出来,例如255、231等等,直到取完所有的红色像素,接着最后是255、134、…、255、134等等,直到得到一个特征向量,把图片中所有的红、绿、蓝像素值都列出来。

如果图片的大小为64x64像素,那么向量xxx的总维度,将是64乘以64乘以3,这是三个像素矩阵中像素的总量。在这个例子中结果为12288。
现在我们用nx=12288n_x=12288nx​=12288,来表示输入特征向量的维度,有时候为了简洁,我会直接用小写的nnn来表示输入特征向量的维度。所以在二分类问题中,我们的目标就是习得一个分类器,它以图片的特征向量作为输入,然后预测输出结果为1还是0,也就是预测图片中是否有猫。

符号定义

xxx 表示一个nxn_xnx​维数据,为输入数据,维度为(nx,1)(n_x,1)(nx​,1);
yyy表示输出结果,取值为(0,1)(0,1)(0,1);
(x(i),y(i))(x^{(i)},y^{(i)})(x(i),y(i)):表示第iii组数据,可能是训练数据,也可能是测试数据,此处默认为训练数据;
X=[x(1),x(2),...,x(m)]X=[x^{(1)},x^{(2)},...,x^{(m)}]X=[x(1),x(2),...,x(m)] 表示所有的训练数据集的输入值,放在一个nx×mn_x\times mnx​×m的矩阵中,其中mmm表示样本数目;
Y=[y(1),y(2),...,y(m)]Y=[y^{(1)},y^{(2)},...,y^{(m)}]Y=[y(1),y(2),...,y(m)]对应表示所有训练数据集的输出值,维度为1×m1\times m1×m。
用一对(x,y)(x,y)(x,y)来表示一个单独的样本,xxx代表xnx_nxn​维的特征向量, yyy表示标签(输出结果)只能为0或1。 而训练集将由mmm个训练样本组成,其中(x(1),y(1))(x^{(1)},y^{(1)})(x(1),y(1))表示第一个样本的输入和输出,(x(2),y(2))(x^{(2)},y^{(2)})(x(2),y(2))表示第二个样本的输入和输出,直到最后一个样本(x(m),y(m))(x^{(m)},y^{(m)})(x(m),y(m)),然后所有的这些一起表示整个训练集。有时候为了强调这是训练样本的个数,会写作MtestM_{test}Mtest​,当涉及到测试集的时候,我们会使用MtestM_{test}Mtest​来表示测试集的样本数,所以这是测试集的样本数:

最后为了能把训练集表示得更紧凑一点,我们会定义一个矩阵用大写的XXX表示,它由输入向量x(1)x^{(1)}x(1)、x(2)x^{(2)}x(2)等组成,如下图放在矩阵的列中,所以现在我们把x(1)x^{(1)}x(1)作为第一列放在矩阵中,x(2)x^{(2)}x(2)作为第二列,x(m)x^{(m)}x(m)放到第列mmm,然后我们就得到了训练集矩阵XXX。所以这个矩阵有mmm列,mmm是训练集的样本数量,然后这个矩阵的高度记为nxn_xnx​,注意有时候可能因为其他某些原因,矩阵XXX会由训练样本按照行堆叠起来而不是列,如下图所示:x(1)x^{(1)}x(1)的转置直到x(m)x^{(m)}x(m)的转置,但是在实现神经网络的时候,使用左边的这种形式,会让整个实现的过程变得更加简单。

现在来简单温习一下:XXX是一个规模为nxn_xnx​乘以mmm的矩阵,当你用Python实现的时候,你会看到X.shape,这是一条Python命令,用于显示矩阵的规模,即X.shape等于(nx,m)(n_x,m)(nx​,m),XXX是一个规模为nxn_xnx​乘以mmm的矩阵。所以综上所述,这就是如何将训练样本(输入向量XXX的集合)表示为一个矩阵。
那么输出标签yyy呢?同样的道理,为了能更加容易地实现一个神经网络,将标签yyy放在列中将会使得后续计算非常方便,所以我们定义大写YYY的等于y(1),y(2),...,y(m)y^{(1)},y^{(2)},...,y^{(m)}y(1),y(2),...,y(m),所以在这里是一个规模为1乘以mmm的矩阵,同样地使用Python将表示为Y.shape等于(1,m)(1,m)(1,m),表示这是一个规模为1乘以mmm的矩阵。

深度学习2.1二分类(Binary Classification)相关推荐

  1. 2.1 二分类(Binary Classification)

    当实现一个神经网络的时候,我们需要知道一些非常重要的技术和技巧.例如有一个包含个样本的训练集,你很可能习惯于用一个for循环来遍历训练集中的每个样本,但是当实现一个神经网络的时候,我们通常不直接使用f ...

  2. 深度学习1:二分类问题

    IMDB数据 包含来自互联网电影数据库的50000条两极分化的评论,数据集被分为用于训练的25000条评论与用于测试的25000条评论,训练集和测试集都包含百分之五十的正面评论和百分之五十负面评论. ...

  3. 基于深度学习的简单二分类(招聘信息的真假)

    招聘数据真假分类 此次机器学习课程大作业-招聘数据真假分类,是一个二分类问题.训练集中共有14304个样本,每个样本有18个特征,目标是判断不含有标签的招聘信息的真假性. 利用Pandas读取训练集和 ...

  4. 用深度学习解决大规模文本分类问题

     用深度学习解决大规模文本分类问题 人工智能头条 2017-03-27 22:14:22 淘宝 阅读(228) 评论(0) 声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者 ...

  5. 【NLP】相当全面:各种深度学习模型在文本分类任务上的应用

    论文标题:Deep Learning Based Text Classification:A Comprehensive Review 论文链接:https://arxiv.org/pdf/2004. ...

  6. 使用Excel分析数据学习笔记之 二分类与混淆矩阵

    使用Excel分析数据学习笔记之 二分类与混淆矩阵 混淆矩阵的构成: e.g.1:Bombers and seagulls 案例背景 混淆矩阵 如何根据混淆矩阵得到ROC曲线? 如何设定最佳阈值(op ...

  7. 【信号识别】基于matlab深度学习CNN信号调制分类【含Matlab源码 2066期】

    ⛄一.深度学习CNN信号调制分类概述 1 背景介绍 在通信信号处理领域, 特别是在非协作通信信号盲解调研究领域, 每时隙突发信号的调制方式不同, 必须进行信号的调制方式自动识别.信号的调制方式识别效果 ...

  8. 三维深度学习中的目标分类与语义分割

    (转载的文章,仅供学习,如有侵权请随时联系删帖) 在过去的几年中,基于RGB的深度学习已经在目标分类与语义分割方面取得了非常好的效果,也促进了很多技术的发展,深度学习在现实生活中的应用也越来越多.但是 ...

  9. 利用深度学习(Keras)进行癫痫分类-Python案例

    目录 癫痫介绍 数据集 Keras深度学习案例 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 QQ交流群:903290195 癫痫介绍 癫痫,即俗称"羊癫风",是由多种 ...

最新文章

  1. idea 编译java程序_Java,Hello World,《算法》环境搭建中的问题,用 cmd 和 IntelliJ Idea 分别编译和运行 Java 程序...
  2. 在 Linux 中如何禁止用户登录
  3. SharePoint【学习笔记】-- SharePoint 2010 技术参数整理
  4. java phantomjs alert_Python+Selenium+PhantomJS脚本中的Javascript警报
  5. Hyper-V损坏数据恢复报告
  6. ajax 防止用户反复提交
  7. 《统计学习方法》—— 逻辑斯谛回归 与 最大熵模型 的介绍以及详细推导
  8. word中的总页数不包括封面、目录
  9. Go语言实战爬虫项目
  10. java方法重载与返回值类型无关
  11. 如何用python编写问卷调查_通过Python实现自动填写调查问卷
  12. STM32 自定义串口协议
  13. 京东云李道兵:对象存储的新挑战
  14. 信息系统风险评估内容
  15. 前端技能汇总 知识结构
  16. 手机网站——移动互联网新趋势
  17. C++ 所有GetLastError返回错误码代表的意思
  18. linux shell 网页,Linux上shell命令
  19. java的简单数字时钟_Java实现的简单数字时钟功能示例
  20. 留学生论文辅导的种类都有哪些?

热门文章

  1. Python随机游走模型
  2. 高斯误差线性单元 Gaussian Error Linear Units(GELU)
  3. python如何安装sklearn库_1.sklearn库的安装
  4. 未来的流量红利在哪?如何把握流量红利?流量红利为什么会消失
  5. 360 se html document html,360浏览器使用meta标签强制使用指定内核
  6. 汉诺塔算法 c语言实验报告,C语言汉诺塔算法原理分析与实践
  7. 苹果账号--证书管理
  8. python变量中可以包括_Python变量
  9. 毕设周报(2023.3.7)
  10. C# Firebird SQL 语句带参数书写