在上一篇的笔记中,使用了逻辑回归的示例展示了实现一个简单神经网络的些许技巧,下面来依然通过逻辑回归的示例阐述下有关神经网络的一些说法或者称之为概念的东西吧。
1、神经网络的表示(Neural Network Representation)
相信大家对上图见得很多了,输入层、隐藏层和输出层也是一目了然另外。一般的啊,输入那一层不算做神经网络的一层的,所以上图就是个两层的神经网络。输入层,这个层面上类似于逻辑回归示例中的数据表示和处理的那段描述。输出层在逻辑回归示例中将产生某个数值,只是一个单独的实数,就是前向传播后得到的结果。隐藏层的含义:在一个神经网络中,当使用监督学习训练它的时候,训练集包含了输入x也包含了目标输出y,所以术语隐藏层的含义是在训练集中,这些中间结点的准确值是不知道到的,也就是说看不见它们在训练集中应具有的值。大家能看见输入的值,也能看见输出的值,但是隐藏层中的东西,在训练集中是无法看到的。
那么逻辑回归示例中的神经元有多少个呢?还记得对W权重的初始化么?两个,答案是两个,大家思考下为什么不是三个呢,shape明明是3x1啊。逻辑回归示例算是一个只有一个隐藏层的神经网络,这个隐藏层有两个神经元。输出层为sigmoid的激活函数。神经网络的计算就是前向传播和反向传播的计算过程。如此,神经网络的这几个概念上的东东应该有了比较清晰的认识了吧。
2、多样本向量化(Vectorizing across multiple examples)
这是一个神经网络在实现时用的比较多也比较重要的一个技巧了。首先看看向量化,其实就是特征向量便于代码实现,或者说同时为了加速的一个方法。此处在思考下为什么隐藏层是两个神经元。向量化的过程就是将神经网络中的一层神经元参数纵向堆积起来,比如隐藏层中的w纵向堆积起来变成一个(3x1)的矩阵,其中一个是参数b。
然后来看看多样本吧,逻辑回归示例中是将所有样本利用向量化的技巧一起进行了运算,这也算是多样本的一个特例吧,当然也是可以不用向量化而是增加一层for循环一个一个样本计算的,这样做的利弊呵呵了啊。也可以选择一部分样本送进神经网络,也可以随机的选择一部分样本送进神经网络。至于多样本的好处后续学习笔记中会慢慢体现的。
此篇的阐述离不开https://blog.csdn.net/chenleiyfk/article/details/88047397中的代码示例,烦请结合代码理解这些个概念上的东东。