神经网络的前向计算,就是给定一组输入,计算输出的过程。这里先给出前向计算过程中,信息在各层之间的传递过程。
假设我们构造了一个神经网络如下图:
上图表示出了一个3层神经网络,有两个隐层,把输入所在的层看做0层。符号规定:偏置用表示,上标代表了偏置加载的神经元所在层号;权重用表示,上标仍旧是代表了信息计算所在的神经元层,下标前一个序号表示后一层神经元处在第几个,而后一个序号则表示前一层神经元处在第几个,请特别注意观察上图。
下面详细说明层间的信号传递过程,我们摘出其中一个神经元放大如下:
上图表示了一个神经元的计算过程,h(·)表示激活函数,z是输出结果,用式子表示为:
如果把上面图中第1层神经元的计算过程都表示出来,可以使用矩阵计算的方式。为了使过程更清晰,这儿把另外两个神经元的计算式子都写出来。
,其中:
这里激活函数我们采用sigmoid函数,后面会讲到它的实现。
第1层到第2层的传递,和上面完全一样,注意符号的上标和下标即可。输出层可以采用恒等函数或者softmax函数。
关于输出层的设计,需要特别注意的就是分类问题和回归问题。一般而言,回归问题用恒等函数,分类问题用softmax函数。下一节讲前向计算的编程实现。
领取专属 10元无门槛券
私享最新 技术干货