神经网络和深度学习(三)——浅层神经网络的表示与输出
(原创内容,转载请注明来源,谢谢)
一、神经网络的表示
神经网络,实质上是一些输入,经过多层神经元的处理,得到想要的输出。这里的输出,即预测的结果。
现在以logistic回归作为实例,单个神经元,实际上完成了logistic的z=wTx+b的计算以及a=1/(1+e-z)这两步的计算。
对于多层神经网络,实际上是将上一层的输出,作为下一层的输入(即作为z=wTx+b中的x),带入进行计算的。
对于神经网络的层级,每一列为一层,但是需要注意的是,输入的X不被记为层(或者说被认为是第0层),因此下图是一个双层神经网络。
其中中间的所有层(除去输入层和输出层)都是隐藏层,下图有一个隐藏层;最后一层是输出层。
另外,a表示输出,a[l]表示第l层的输出(即l+1层的输入),而下标ai表示的是第i个神经元。
因此,对于第l层,z[l]=W[l]Ta[l-1]+b[l],a[l]=δ(z[l]),l=1,2,3…n,输入层X可以看作是a[0]。
二、神经网络的输出
现在将一个神经元放大,可以看到上面说的内容,将z和a的计算合并在一个神经元中进行。
对于同一层,如果有多个神经元,则会进行多次这样的计算,且共同把结果作为下一层的输入,传给下一层进行计算。
这里详细列出每个神经元的计算结果,可以看到,在同一层中,各个元素的计算是并行的,分别去计算出各自的z、a,并且把结果整合成一个向量,作为下一层的输入变量。
这里也要运用到向量化的技术,即把输入的X、第一层的a,都分别作为一个向量进行计算,而不是对每一层再用for循环去遍历,这样加快了计算的速度,也加快最终得到结果的速度。
三、小结
本文讨论了神经网络的表示和输出,可以看到对于单次logistic回归,在神经网络中是用一个神经元来计算的。而神经网络中有多个神经元,而且有多个层级,这样保证了计算结果的正确率。
——written by linhxx 2018.02.01