什么是神经网络?
神经网络是一种计算机模型或者数学模型,是存在于计算机的神经系统,由大量的神经元相连接并进行计算,在外界信息的基础上,改变内部的结构,常用来对输入和输出之间复杂的关系进行建模。
神经网络架构
下面这张图就是一个神经网络系统,它由很多层组成。输入层负责接收信息,比如一只猫的图片。输出层是计算机对这个输入信息的判断结果,它是不是猫。隐藏层就是对输入信息的传递和加工处理。
神经网络是如何被训练的?
首先它需要很多数据。比如它要判断一张图片是不是猫,就要输入上千万张带有标签的猫猫狗狗的图片,然后再训练上千万次。
神经网络的训练结果有对也有错,如果是错误的结果,将会被当做非常宝贵的经验,神经网络将从这些错误的经验中学习。如何从经验中学习?神经网络将会对比正确答案和错误答案之间的区别,然后把这个区别反向的传递回去,对每个相应的神经元进行一点点的改变。那么在下一次训练的时候就可以用已经改进过的神经元去得到稍微准确的结构。
每个神经元都有属于它的激活函数(activation function),用这些函数给计算机一个刺激行为。
在第一次给计算机看猫的图片时,只有部分的神经元被激活,被激活的神经元所传递的信息是对输出结果最有价值的信息。如果输出的结果被判定为是狗,也就是说是错误的,那么就会修改神经元,一些容易被激活的神经元会变得迟钝,另外一些神经元会变得敏感,这样一次次的训练下去,所有神经元的参数都在被改变,它们变得对重要的信息越来越敏感。