首页 > 代码库 > 神经网络初探(Neural Networks)

神经网络初探(Neural Networks)

 无论是线性回归还是逻辑回归,都有一个问题:当特征数量太多时,特征项将会非常多甚至可能随着特征数的增加呈几何级数递增。那么就会使得计算负荷非常高。

比如我们输入的特征是一张50*50的灰度图,并且将所有的像素视为特征,那么就会有2500个特征。如果要进一步把这些特征两两组合构成一个多项式模型,那么将会有约300万项。普通的logistic regression模型并不能很好地处理这么多的特征。

对于上述的问题,神经网络能很好的克服。

什么是神经网络?

下图是一个以逻辑回归模型作为自身学习的神经元示例

技术分享

由神经元我们构成了神经网络:

技术分享

Layer 1: 输入层(Input Layer)

Layer 2: 隐藏层(Hidden Layer)

Layer 3: 输出层(Output Layer)

 注:对每一层都增加一个偏置单位(bias unit)

 

前向传播:

技术分享

ΘX = a;

注:第j层有Sj个单元,那么Θ(j)为Sj+1 * (Sj + 1)的矩阵

 技术分享

 

神经网络工作原理

技术分享

技术分享

随着层数增加实现的逻辑越来越复杂。学到越来越深层的信息。

 

怎么用神经网络实现多类别分类?

 当我们有不止两种分类时,比如我们有四类,那么最后在输出层我们也应该有四个输出单元(四个值)。

技术分享

可能的输出结果如下:

技术分享

 

神经网络初探(Neural Networks)