目录
1、利用python和numpy实现--单个网络层上的前向传播
1、大脑中的神经元
神经元接受其他神经元的电脉冲,执行一些计算,然后再通过电脉冲传递给其他神经元。下图是生物神经元和人工神经元之间的松散类比:
2、了解神经网络是如何工作的
1、单个神经元的-----需求预测案例
比如卖衣服来预测是否畅销,假设已知x作为价格,a作为输出(a代表激活,它是一个来自神经科学的术语,指的是一个神经元向下游其他神经元发送的输出。)得到一个单个神经元的
2、多个神经元的----需求预测案例
假设用四个特征来预测一件T恤是否畅销,创造一个人工神经元来估计衣服被认为是非常划算的概率 。
神经网络有四个输入, 算出三个激活值,输出层接受三个激活值,并计算出一个结果,也就是神经网络的输出。一层(layer)是指一组神经元,它们接受相同或相似的特征并产生输出。左边的一层(激活项)有三个神经元,右边的一层(输出层)有一个神经元,所以一层可有一个/多个神经元。在上述神经网络中,对于每一个神经元,我们必须手动选择它接受上一层哪些输出,但当我们构建一个大型神经网络时,这需要大量的工作。所以在实践中的方式是,任一神经元可以接受上一层的所有特征,只需通过合适地设置参数来弄清楚与该神经元有关的特征子集是什么即可。中间层也叫隐藏层(这是由于在给定训练集时,我们可以同时观察 x 和 y,也就是我们知道什么是正确的输入,什么是正确的输出,但是我们不知道中间层输出的激活,可以看作隐藏起来了,所以被称为隐藏层。)
另一种关于神经网络的思考方式是,我们把左半边遮住,只看右半边时,这是一个逻辑回归模型,但使用的特征不是原始特征,而是选择了一些更好的特征进行更准确的预测。所以神经网络所做的是不需要你手动设计特征,它可以自己学习选择合适的特征,这也是使神经网络成为当今世界上最强大的学习算法之一的的原因之一。
3、多个隐藏层(多层感知器)
当我们自己构建神经网络时,其中一个需要做的决定就是设计多少隐藏层和每层多少个神经元,这是神经网络架构的问题。