- 概念及前向传播(Forward Propagation)
个人觉得将神经网络和逻辑回归联系起来会更好理解
逻辑回归其实就是感知机,结构图如下(以二维为例,方便可视化):
其中:
用矩阵表达为:
其中W维度(1,2), X维度(2,1)
利用逻辑回归可以处理二分类问题,分界线是线性的
倘若数据并不是线性可分的,如下:
那么使用逻辑回归的分类结果就不尽如人意了:
这时我们试试多使用几个感知机,组成如下神经网络(输入层编为第0层):
(其中单元“1”并不是神经元,用来计算偏置系数)
插入一个重要环节:系数编写格式
**************************************************************************************
例第五层有5个神经元,第六层有4个神经元,则
第5层第3个神经元到第6层第4个神经元的权重系数 (神经元→神经元)
第5层到第6层第4个神经元的偏置系数 (层→神经元)
第6层第4个神经元的权重系数矩阵 : (层→神经元)
,维度(1,5)
第6层的权重系数矩阵:(层→层)
,维度(4,5)
第6层的偏置系数矩阵:(层→层)
,维度(4,1)
矩阵维数窍门:行数为该层神经元数,列数为上层神经元数,但 固定都是1列
来计算一下第六层的输出,检验维度:
其中X为第五层的输出A,因为有五个神经元故其维度为(5,1),从而维度计算为
(4,5)*(5,1)+(4,1)=(4,1),对应第六层有4个神经元,说明无误!
**************************************************************************************
回到上图中,含有三个感知机的神经网络到底有什么用处吗?直接来看看结果吧:
可以看到它能生成了非线性分界线(深绿色),原因是什么呢?
我们来计算一下这条分界线 (未通过激励函数)表达式(前向传播):
第一层:
维度(1,2)*(2,1)+(1,1)=(1,1)
以上三个式子可以统合成
维度(3,2)*(2,1)+(3,1)=(3,1)
第二层:
可以看到分界线关于特征X是一个复杂的非线性关系,泛化能力强,这还只是包含了一层隐藏层,如果增加隐层和神经元个数,模型的分类能力就会更强。
其实我们从表达式中可以看到,起非线性作用的是(非线性)**函数,假如我们将**函数省去:
结果变成了线性模型,所以非线性**函数必不可少,否则再多隐藏层也是浪费。
以上是单样本的计算表达式,反映在输入特征X的维度为一列,若是多样本的话,直接按列堆叠成新X即可,W维度不会发生变化(各样本使用同一个网络),而对应Z的的维度产生和X一样的变化,按列堆叠。
当隐藏层多于2时称为深度,DNN与NN主要的区别在于把sigmoid函数替换成了ReLU
图源up主文小刀,非常谢谢他的所有教学视频,推荐给各位!