文档章节

神经网络和深度学习-第二周神经网络基础-第一节:二分分类

侯法超
 侯法超
发布于 2017/12/19 10:42
字数 1384
阅读 550
收藏 12

本系列博客是吴恩达(Andrew Ng)深度学习工程师 课程笔记。全部课程请查看吴恩达(Andrew Ng)深度学习工程师课程目录

本周,我们会学习神经网络编程的基础知识。当你要构建一个神经网络,有些技巧是相当重要的。例如,如果你有m个样本的训练集,你可能会习惯性地去用一个for循环来遍历这m个样本。但事实上实现一个神经网络,如果你要遍历整个训练集,燕不需要直接使用for循环。在本周的课程,你会学到如何做到。

另外,在神经网络的计算过程中,通常有一个正向过程或者叫正向传播步骤,接着会有一个反向步骤也叫做反向传播步骤。在本周的课程中会讲解为什么神经网络的计算过程可以分为正向传播和反向传播两个分开的过程。

在本周课程中,我会用logistic回归来阐述,以便你能更好地理解。如果你之前学习过logistic回归,我也认为,这周的学习材料也会带给你一些新的、有意思的想法。下面正式开始。

Logistic回归是一个用于二分分类的算法,我们从一个问题开始。这里有一个二分分类问题的例子,例如你有一张图片作为输入,就像这样,你想输出识别此图的标签,如果是猫输出1,如果不是则输出0,我们用$y$来表示输出的结果标签:

识别猫

我们看看一张照片在计算机中是如何表示的。计算机保存一张图片,要保存三个独立矩阵分别对应图中红蓝绿三个颜色通道。如果图片是64*64像素的,就有三个64*64矩阵对应图片中的红绿蓝三种像素的亮度。为了方便展示,这里的示例用三个小矩阵:

三原色矩阵

要把这些像素的亮度值放入一个特征向量中,就要把这些像素值都提取出来,放入一个特征向量x,为了把这些像素值取出放入特征向量中需要定义一个特征向量x以表示这张图片

把图片中所有像素强度值都列出来,如果图片是$64 \times 64$的,那么向量$x$的总维度就是$64 \times64 \times3=12288$,因为这是三个矩阵的元素数量。我们用$n_x=12288$来表示输入特征向量x的维度,有时候为了简洁,我会直接用小写的n表示输入特征向量的维度。

在二分类问题中目标是训练出一个分类器,它以图片的特征向量x作为输入,预测输出的结果是标签y(0或1),也就是说预测图片中是否有猫。

现在我们看看在后面课程中需要用到的一些符号。用一对(x, y)表示一个单独的样本,其中$x$是$n_x$维的向量,标签y值为0或1。

$$ (x,y) \qquad x \in R^{n_x},y \in \lbrace 0, 1 \rbrace $$

训练集由m个训练样本构成,$(x^{(1)}, y^{(1)})$表示第一个样本,$(x^{(2)}, y^{(2)})$表示第二个样本...$(x^{(m)}, y^{(m)})$表示最后一个样本$m$,这些一起就表示整个训练集。

$$ m ; training ; example: ; (x^{(1)}, y^{(1)}),(x^{(2)}, y^{(2)}), , ... , ,(x^{(m)}, y^{(m)}) $$

用小写字母$m$ 表示训练集的个数,有时为了强调这个字母是训练集的个数可以写作$m_{train}$,用$m_{test}$表示测试集的样本数量。最后,用更紧凑的符号表示训练集,我们定义一个矩阵,用大写的$X$表示,它由训练集中的$x^{(1)},x^{(2)}, , ... , x^{(m)}$组成:

$$ X= \begin{bmatrix} \mid & \mid & \quad & \mid \ x^{(1)} & x^{(2)} & ... & x^{(m)} \ \mid & \mid & \quad & \mid \ \end{bmatrix} \qquad X \in R^{n_x \times m} $$

这个矩阵由m列组成,高度为$n_x$,

注意:有时候矩阵$X$的定义是训练样本作为行向量堆叠,而不是这样列向量堆叠。在构建神经网络时,用上述这种约定形式,会让构建过程列简单。

当你用Python实现的时候你会看到X.shape(),这条Python命令用来输出矩阵的维度,即$(n_x,m)$。

这就是如何将训练样本,即输入$x$用矩阵表示,对于输出标签$y$同样为了方便构一个建神经网络将$y$标签也放到列中,所以我们定义

$$ Y=[y^{(1)},y^{(2)}, , ... , y^{(m)}] \qquad Y \in R^{1 \times m} $$

在后面的课程中,要实现神经网络,你会发现好的惯例符号能够将不同训练样本的数据联系起来,这里说的数据不仅有$x,y$,还会有之后其他变量,将不同的训练样本数据取出来,放到不同的列上,就像刚刚我们处理$x,y$那样。

这门课程中在logistic回归和神经网络要用到的符号就这些了如果你忘记了这些符号的意义,我们也会在课程网站上放上符号说明,方便快速查阅每个符号的意义。下个课程将以logistic回归作为开始。

© 著作权归作者所有

共有 人打赏支持
侯法超
粉丝 152
博文 57
码字总数 105341
作品 0
大兴
程序员
私信 提问
加载中

评论(5)

侯法超
侯法超

引用来自“Kit_lee”的评论

还有就是,博文篇幅略小,也没有将一节里边的内容做小结,希望是每篇文章都有一个知识点的总结会比较好

谢谢您的建议,我会逐渐完善的。
Kit_lee
Kit_lee
还有就是,博文篇幅略小,也没有将一节里边的内容做小结,希望是每篇文章都有一个知识点的总结会比较好
Kit_lee
Kit_lee

引用来自“Kit_lee”的评论

还是写复杂了

引用来自“侯法超”的评论

有更好的建议可以提一下
我觉得既然是基础的话,应该先把最基础的机器学习相关概念解释清楚,例如将聚类、回归、分类。这几类机器学习内容用最简单数学的方式作解释,再然后延伸到神经网络如何与传统机器学习的不同点,例如在处理线性不可分,或对图像处理方面的优势。多大概看了一下这个系列的前几篇博文,很多太基础的理论还是带过得非常快的。如果对机器学习、对神经元那些权值、偏移量是怎么求出来的都不太理解的话,会觉得很难看下去。
侯法超
侯法超

引用来自“Kit_lee”的评论

还是写复杂了
有更好的建议可以提一下
Kit_lee
Kit_lee
还是写复杂了
ng-深度学习-课程笔记-0: 概述

课程概述 这是一个专项课程(Specialization),包含5个独立的课程,学习这门课程后做了相关的笔记记录。 (1) 神经网络和深度学习 (2) 改善深层神经网络:超参数调试,正则化,优化 (3) 结构化...

PilgrimHui
2017/10/09
0
0
17 BP神经网络算法原理推导和数据演示

反向传播算法(BackpropagationAlgorithm,简称BP算法)是深度学习的重要思想基础,对于初学者来说也是必须要掌握的基础知识!本文希望以一个清晰的脉络和详细的说明,来让读者彻底明白BP算法...

7125messi
06/25
0
0
CMU 深度学习导论更新 | 第四讲:反向传播

AI 研习社获得官方授权,汉化翻译CMU 2018 秋季《深度学习导论》课程,9月27日正式上线中文字幕版。 好消息!CMU 深度学习小组在 AI 研习社突破 700 人啦! 扫描二维码 ↓↓↓ 即可加入~ 春风...

雷锋字幕组
11/27
0
0
独家 | CMU 2018 秋季《深度学习导论》中文字幕版今日上线!

AI 研习社获得官方授权,汉化翻译CMU 2018 秋季《深度学习导论》课程,今日正式上线中文字幕版。 CMU 2018 秋季《深度学习导论》为官方开源最新版本,由卡耐基梅隆大学教授 Bhiksha Raj 授权...

雷锋字幕组
09/27
0
0
吴恩达老师深度学习视频课笔记:单隐含层神经网络公式推导及C++实现(二分类)

关于逻辑回归的公式推导和实现可以参考: http://blog.csdn.net/fengbingchun/article/details/79346691 下面是在逻辑回归的基础上,对单隐含层的神经网络进行公式推导: 选择激活函数时的一...

fengbingchun
02/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
今天
10
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
17
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
11
0
java框架学习日志-6(bean作用域和自动装配)

本章补充bean的作用域和自动装配 bean作用域 之前提到可以用scope来设置单例模式 <bean id="type" class="cn.dota2.tpye.Type" scope="singleton"></bean> 除此之外还有几种用法 singleton:......

白话
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部