机器学习笔记(参考吴恩达机器学习视频笔记)07_神经网络介绍

版权声明:博客内容都是对一些知识的整理,可能有些部分存在借鉴,如果存在侵权,请联系我删掉。 https://blog.csdn.net/cunxinlitian/article/details/82727741

7 神经网络介绍

当特征太多时,无论是线性回归还是逻辑回归模型计算的负荷会非常大。这时需要神经网络。神经网络是一种很古老的算法,它最初产生的目的是制造能模拟大脑的机器。神经网络是计算量有些偏大的算法。然而大概由于近些年计算机的运行速度变快,才足以真正运行起大规模的神经网络。

类似于神经元的神经网络,效果如下:

其中,是输入单元(input units),将原始数据输入给它们。是中间单元,它们负责将数据进行处理,然后呈递到下一层。最后是输出单元,它负责计算。第一层成为输入层( Input Layer),最后一层称为输出层(Output Layer),中间一层成为隐藏层(Hidden Layers)。代表第j层的第i个激活单元。代表第j层映射到第j+1层时的权重的矩阵,例如代表从第一层映射到第二层的权重的矩阵。其尺寸为:以第j+1层的激活单元数量为行数,以第j层的激活单元数加一为列数的矩阵。例如:的尺寸为3*4。

对于上图所示的模型,激活单元和输出分别表达为:

   

   

   

   

每一个a都是由上一层所有的x和每一个x所对应的决定的,这种从左到右的算法称为前向传播算法(FORWARD PROPAGATION)。

可以看成更为高级的特征值,即的进化体,它们由x决定,因为是梯度下降的,所以a是变化的,并且变得越来越厉害,这些更高级的特征值远比仅仅将x次方厉害,也能更好的预测新数据。这就是神经网络相比于逻辑回归和线性回归的优势。

可以认为第二层中的特征是神经网络通过学习后自己得出的一系列用于预测输出变量的新特征。

神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑与(AND)、逻辑或(OR)。

AND函数示例如下:

OR函数示例如下:

当输入特征为布尔值(0或1)时,用一个单一的激活层可以作为二元逻辑运算符,只需要选择不同的权重即可。

逻辑运算的表示方式如下图所示:

可以用神经元来组合成复杂的神经网络来实现复杂的运算。实现(XNOR)功能(输入的两个值必须一样,均为1或均为0)即:

XNOR=()OR( (NOT)AND(NOT) )

首先构造一个表达(NOT)AND(NOT)部分的神经元:

然后将表示 AND 的神经元和表示(NOT)AND(NOT )的神经元以及表示 OR 的神经元进行组合就能实现XNOR运算符的功能:

针对多类分类问题,例如:训练一个神经网络算法来识别路人、汽车、摩托车和卡车,在输出层应该有4个值。第一个值为 1 或 0 用于预测是否是行人,第二个值用于判断是否为汽车,依次类推。神经网络的结构示意图如下:

猜你喜欢

转载自blog.csdn.net/cunxinlitian/article/details/82727741
今日推荐