**
什么是神经网络?
它从信息处理角度对人脑神经元网络进行抽象,模拟生物神经网络建立某种简单模型,按不同的连接方式组成不同的网络。
人工神经网络与生物神经网络不同的是它的神经元网络是初始存在的。
它分为输入层,输出层(当然这期间也有隐藏层),输入层是获取相关数据信息,输出层进行信息整合进而输出结果。
那么神经网络是怎么工作的呢?(下面以猫狗识别为例)
神经网络模型在大量带有标签(是猫还是狗)的数据图片上进行训练,神经网络中的每个神经元都有激励函数,这个刺激函数会告知对应的神经元这是猫还是狗,此时神经元就有了记忆,当然并不是每个神经元都那么敏感,只会有一部分的神经元被激活进行训练,所以一个神经网络需要上千万次的训练。(当然我们不需要担心时间,现在的计算机的计算速度已经满足我们的我需求了)
上述工作原理我们需要注意的是,当出现认知错误的时候,此时神经网络会进行误差反向传播计算,此时神经网络的准确性会有提升。
同是我们需要注意的是上图中间的隐藏层,这个隐藏层可以说是把输入层的人眼能识别的猫转化为模型能识别的另一种形象的猫,而经过若干层隐藏层的处理之后,起初的猫图被一步一步的转换为更加准确的代表特征。可以说隐藏层就是进行代表特征转换的,随着一次一次的转换,神经网络对数据的理解更加准确,输出层的预测结果也更加准确。
所以我对隐藏层的理解为:自动提取样本数据的特征。
因为隐藏层提取的特征过多,我们往往无法认知,从而认为神经网络的隐藏层非常难以理解,但是神经网络是可以认知理解这些特征的,这种能力往往也会被发展为更高端的神经网络算法,比如迁移学习(这里不做详解)