6. 神经网络 | 您所在的位置:网站首页 › frequency函数只出一个数值 › 6. 神经网络 |
6.1 非线性假设
假设有一个监督学习分类问题,训练集如图 如果利用logistic回归来解决这个问题,我们可以构造一个包含很多非线性项的logistic回归函数。 但在这个训练集只给出了两个特征,如果一旦特征变多了,多项式就会变得很多。就会出现过拟合、计算量大的问题。 以识别一张图片是否为汽车为例子: 对于识别图像中的一个门把手,对于我们人来说一下子就能看出来,但是对于计算机则是要通过一个像素亮点矩阵来告诉我们这些数值代表一个汽车门把手。 具体说来,用机器学习算法构造一个汽车识别器时,我们要做的就是提供一个带标签的样本集,其中一些样本是各类汽车,另一部分样本不是车,将这个样本集输入给学习算法来训练出一个分类器。然后我们进行测试,输入一幅新的图片,让分类器判定这是什么东西,理想情况下是能识别出是什么。 假设我们用的图片像素为50 * 50,有2500个像素点,因此特征向量N为2500。这还是在使用灰色图像的情况下,如果是RGB彩色图像,则有7500个像素点。 在简单的非线性假设上,使用logistic回归是没有问题的 ,但是在复杂的非线性假设上就不太适用了。而这个时候,神经网络在学习复杂的非线性假设上被证明是一种好得多的算法。 6.2 神经元与大脑神经网络的起源:人们想设计出模仿大脑的算法,它的理念就是如果我们想要建立学习系统,那为什么不去模仿我们所认识的、最神奇的学习机器——人类的大脑呢? 讲述了一些大脑学会“看”“听”的例子 6.3 模型展示在运用神经网络时,我们该如何表示我们的假设或模型? 神经网络模仿了大脑中的神经元或者神经网络,为了解释如何表示假设模型 简而言之:神经元是一个计算单元,它从输入通道接受一定数目的信息并做一些计算,然后将结果通过它的轴突(Axon)传送到其他节点或者大脑中的其他神经元。 现在我们将神经元模拟成一个逻辑单元 一般就会写出三个参数,有时候会额外添加一个参数: 关于神经网络的术语: 有时我们会说上述的逻辑单元是一个带有sigmoid或者logistic激活函数的人工神经元。其中激活函数是指非线性函数上面途中所表示的只是单个神经元,但其实神经网络就是一组神经元连接在一起的集合。具体来说,下图是我们的输入单元是 为了更好的解释这个神经网络的具体步骤,还需要记一些记号: 下面是计算的过程 如果一个网络在第j层有 神经网络的向量化: 在这里的输入层的x可以更换成 如果把输入层遮住,只看隐藏层和输出层,会发现很像逻辑回归。表面上是类似的,但实际上是不同的,因为输入的特征变化了,逻辑回归的输入特征是x而神经网络的输入变成了处理后的a。 6.4 神经网络计算的例子XOR(异或):相同为0,相异为1;XNOR:相同为1,相异为0。 先从AND开始理解:假设有2个二进制的输入 可以看到右下角的真值表,会发现是逻辑与的结果 再来看看逻辑或 结合上面的,现在来推演XNOR ![]() 重点会放在神经网络在分类问题中的应用。 代价函数: logistic regression(逻辑回归): 大括号后面那一项是额外的正则项,因为我们并没有把偏差项 Neural network(神经网络):
其中:l代表层数、i代表当前层的输入参数个数、j代表当前的单元数;L表示第几个层, 利用梯度下降或者其他什么高级优化算法,我们需要做的就是写一段代码,获得输入参数 当我们只有一个训练样本的情况时,也就是一个实数对(x, y),我们来看看计算的顺序是什么。首先我们应用前向传播方法来计算在给定输入时,假设函数是否会真的输出结果。具体地说,这里的 而反向传播算法从直观上说就是对每个结点,我们计算这样一项 计算过程如下:对于每一个输入单元,我们将计算 第一层是输入的值,不用考虑误差项。 总结一般情况的反向传播算法:
为了更好的研究反向传播算法步骤,先来研究一下前向传播的过程 再来看看代价函数 cost(i)是针对的是最后一层的总误差,所以我们得通过这种递推的方法往前推,求解最后的误差和倒数第三层,倒数第四层那些中间值的关系,直到我们得到了最后的误差和所有中间值的关系。 并且这个小delta不是对theta的导数,是对激活输入的导数。 当反向传播和梯度下降结合时,往往会存在一些微妙的bug,这个时候就需要梯度检验来解决这些问题。
更一般的情况 实现梯度检验的过程: 通过反向传播来计算DVec(可能是矩阵当你执行一个算法,例如梯度下降法或者高级优化算法时,我们需要为变量 那么问题来了,怎么样初始化呢? 有一种想法是,将 为了训练神经网络应首先要将权重随机初始化为一个接近0的范围在 在训练一个神经网络时,我们要做的第一件事就是选择一种网络架构(这里的就结构表示神经元之间的连接模式),你可以选择每一层有多少个隐藏单元以及有多少个隐藏层的架构。 首先我们定义了输入单元的数量,一旦你确定了特征集x输入单元的数量就等于特征训练神经网络的步骤: 构建一个神经网络,然后初始化权重,通常会把权重初始化为很小的值接近于0执行前向传播算法,也就是对该神经网络的任意一个输入的 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |