神经网络基础知识

背景

        假设有这样一个监督学习训练集,如下图所示:

        如果使用逻辑回归的方法,我们的预测函数可能包含很多的非线性项,在只有两个特征的情况下,逻辑回归所训练出的预测函数也许可以表现得很好。

        如果问题中的特征项非常多的时候,预测函数将会变得非常复杂。假设有100个特征,而且函数中只包含二次项,那样的话预测函数中将会出现大约5000个二次项。不仅如此,如果算上三次项、四次项等,预测函数的特征空间将急剧膨胀。而且当参数很多时,也可能出现过拟合的现象。

        在许多机器学习问题中,特征数量是非常大的,例如计算机视觉中的算法,一张图片可能有成千上万个像素点,预测函数中的特征数量可能是几百万几千万,这是无法想象的。神经网络可以很好的解决这一问题。


人脑中的神经网络

        人脑中的神经网络是由很多个神经元组成,它们之间相互连接,相互传递信号,一个简单的例子如下图所示:

        其中绿色的圆圈代表神经元中的细胞核,用于对输入的信号进行计算,而Dendrite代表树突,用于接收来自其他神经元的信息。Axon代表轴突,是神经元的输出通道,可以给与它连接的其他神经元传递信息。神经元的工作过程就是由树突接收输入信号,在细胞核中经过一系列的计算,并将计算结果通过轴突传递出去。


计算机中的神经网络

        在计算机中,神经网络被模拟成一组神经元,也就是将多个上述的逻辑单元连接起来。如下图所示:

        可以看出,中间三个黄色圆圈都要进行一系列的计算,并作为输入变量传递给最后的黄色圆圈,进行最后的计算并输出。在神经网络中,第一层蓝色圆圈为输入层,用来输入特征;最后一层黄色圆圈为输出层,用来输出预测的最终结果。输出层和输出层以外的其他所有层都被称为隐藏层。

        在神经网络中,a_{i}^{j} 表示第j 层第i 个激活项,激活项指的就是该结点使用sigmoid激活函数计算输入变量后输出的值。\theta^{j} 表示第j 层的参数矩阵,表示从第j 层到第j+1 层的映射关系。以上图为例,整个神经网络的计算过程为:

        \theta^{(1)} 就表示从第一层到第二层的计算关系,是一个3x4的矩阵。一般来说,如果第j 层拥有s_{j} 个单元,而第j+1 层拥有s_{j+1} 个单元,那么\theta^{(j)} 的维度就是s_{j+1} × (1+s_{j})。+1是因为有偏置项的存在,这里的θ可以称为参数,也可以称为模型的权重。

        现在我们将这个计算过程向量化,首先将g函数中所要计算的项,也就是下图中的式子:

        将这部分分别定义为z_{1}^{(2)}z_{2}^{(2)}z_{3}^{(2)} ,那么a_{1}^{(2)} 就可以表示为:g(z_{1}^{(2)}) ,从而得到a^{(2)}=g(z^{(2)}) 。然后为第二层添加偏置项a_{0}^{(2)}=1 ,这样又可以推导出第三层上的z^{(3)}=\theta^{(2)}*a^{(2)} ,最后得到h_{\theta}(x)=a^{(3)}=g(z^{(3)}) 。这个过程也称为前向传播。

        对于上述的这个简单的神经网络来说,如果我们盖住左边的一部分,剩下的部分看起来就非常像一个逻辑回归,也就是说用左边三个黄色圆圈来输入变量,中间的圆圈来进行预测。此时这个神经网络的计算过程就非常简单了:                                                                                                       h_{\theta}(x)=g(\theta_{0}*a_{0}^{(2)}+\theta_{1}*a_{1}^{(2)}+\theta_{2}*a_{2}^{(2)})

        这实际上就是逻辑回归,但这里输入的特征并不是原始的输入变量x1,x2,x3,而是原始输入变量经过隐藏层计算后输出的特征a1,a2,a3。而且这个隐藏层的计算过程是我们可以控制的,这样一来,我们就可以通过修改参数矩阵\theta^{(1)} 来为隐藏层输出许多有趣和复杂的特征,并可能因此而得到更好的预测函数。总的来说,在神经网络中,输入变量在经过隐藏层的计算时,会变换成其他完全不同的特征,而这些特征又做为后一层的输入来完成进一步的变换,最后到达输出层,得到一个非常好的预测函数,而这就是前向传播的工作原理。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值