2.1 二分类(Binary Classification)
当实现一个神经网络的时候,我们需要知道一些非常重要的技术和技巧。例如有一个包含个样本的训练集,你很可能习惯于用一个for循环来遍历训练集中的每个样本,但是当实现一个神经网络的时候,我们通常不直接使用for循环来遍历整个训练集,所以在这周的课程中你将学会如何处理训练集。
另外在神经网络的计算中,通常先有一个叫做前向暂停(forward pause)或叫做前向传播(foward propagation)的步骤,接着有一个叫做反向暂停(backward pause) 或叫做反向传播(backward propagation)的步骤。所以这周我也会向你介绍为什么神经网络的训练过程可以分为前向传播和反向传播两个独立的部分。
逻辑回归(logistic regression)是一个用于二分类(binary classification)的算法。
首先我们从一个问题开始说起,这里有一个二分类问题的例子,假如你有一张图片作为输入,比如这只猫,如果识别这张图片为猫,则输出标签1作为结果;如果识别出不是猫,那么输出标签0作为结果。现在我们可以用字母来表示输出的结果标签,如下图所示:
我们来看看一张图片在计算机中是如何表示的,为了保存一张图片,需要保存三个矩阵,它们分别对应图片中的红、绿、蓝三种颜色通道,如果你的图片大小为64x64像素,那么你就有三个规模为64x64的矩阵,分别对应图片中红、绿、蓝三种像素的强度值。为了便于表示,这里我画了三个很小的矩阵,注意它们的规模为5x4 而不是64x64,如下图所示:
为了把这些像素值放到一个特征向量中,我们需要把这些像素值提取出来,然后放入一个特征向量。为了把这些像素值转换为特征向量
,我们需要像下面这样定义一个特征向量
来表示这张图片,我们把所有的像素都取出来,例如255、231等等,直到取完所有的红色像素,接着最后是255、134、…、255、134等等,直到得到一个特征向量,把图片中所有的红、绿、蓝像素值都列出来。如果图片的大小为64x64像素,那么向量
的总维度将是64*64*3=12,288,这是三个像素矩阵中像素的总量。现在我们用
来表示输入特征向量的维度,有时候为了简洁,我会直接用小写的n来表示输入特征向量的维度。所以在二分类问题中,我们的目标就是习得一个分类器,它以图片的特征向量作为输入,然后预测输出结果
为1还是0,也就是预测图片中是否有猫:
接下来我们说明一些在余下课程中,需要用到的一些符号。
符号定义 ::表示一个
维数据,为输入数据,维度为(
,1)
:表示输出结果,取值为(0,1)
(,
):表示第
组数据,可能是训练数据,也可能是测试数据,此处默认为训练数据;
:表示所有的训练数据集的输出值,放在一个
x
的矩阵中,其中
表示样本数目
;对应所有训练集的输出值,维度是1x
相关文章
- 高德POI分类爬取,从未如此简单!
- 使用 CNN 进行图像分类
- Python对中国电信消费者特征预测:随机森林、朴素贝叶斯、神经网络、最近邻分类、逻辑回归、支持向量回归(SVR)
- A.机器学习入门算法(四): 基于支持向量机的分类预测
- 【数据挖掘】决策树 分类 ( 抽取分类规则 | 过拟合 | 剪枝 | 先剪 | 后剪 | 连续数值离散化 | 最优化分点 | 增益率选择划分属性 )
- 【计算机网络】数据链路层 : 选择重传协议 SR ( 帧分类 | “发送方“ 确认帧、超时事件 | “接受方“ 接收帧机制 | 滑动窗口长度 | 计算示例 )★
- 动手造轮子自己实现人工智能神经网络(ANN),解决鸢尾花分类问题Golang1.18实现
- typecho判断当前分类是否有子分类
- PHP实现无限级分类详解编程语言
- 深入了解Oracle触发器的分类类型(oracle触发器类型)
- Oracle触发器:分类及其用途(oracle触发器类型)
- SQL Server中的锁分类机制(sqlserver锁分类)
- MySQL事务分类详解原子性与隔离性(mysql中事物的分类)