我们先来看几个神经网络的例子:
物体识别
语音识别
微软识花
帮助决策,判断
他们的共同特征就是我们给出一张图片,一个语音(输入),他们能给出一个结果(输出)他们是如何实现的,工作原理是什么,我们如何建立一个神经网络
我们把这一部份拆开看一下
它包含了两层结构,并且每层都有4个节点
还包含了大量wxx,bxx
这些bxx,wxx是整个神经网络的关键,通过这些wxx,bxx的值,可以对每个输入的内容进行判断,然后结出结果
整个神经网络的核心就是计算出这些wxx,bxx的值
至于我们要设计几层结构,每层多少个节点,需要根据项目的需求进行处理
接下来我们来看一下这些wxx,bxx是如何生成的
计算机只能处理数字,所以我们还是以上面的识花模型来解释,每一张图片所代表的花的名字,我们需要将他转换为相应的数字,如【1,0,0,0】代表菊花,【0,1,0,0】代表玫瑰花,【0,0,1,0】,【0,0,0,1】代表杜鹃
我们将每一张图片输入到神经网络中,神经网络将按照一定的步骤,将图片的每个点的数值xW+b 然后通过一个函数输入给下一层神经网络直到最后层,计算得出一个结果,
如将菊花的图片输入,计算出的可能是【0,0,0,1】这与菊花代表的数字不一样,
接下来就是调整w,b的值的时候了,神经网络会将计算出的结果【0,0,0,1】与图片代表的真实的代号【1,0,0,0】进行比较,计算他们的差值,每个w,b对这个差值的贡献程度不一样,神经网络会进行按贡献度的不同而进行相应的调整,如果差值大,贡献度大的w,b就会进行大的调整,如果小则小调整;
一个完整的循环如下
如果只有一张图像,我们可以直接调整到位就行,而如何有多张图像,对第一张图像调整的值并不一定适合下一个图像的,所以我们需要一次只调整一小点,然后重复多次,直到对所有的图片,计算的结果与真实的结果相同;这个调整的幅度一般叫做学习率a
正向过程,反向过程,一般的神经网络工具都替我们完成好了,我们所需要做的只是
1.设计框架结构(要几层神经网络,一层有多少个节点)
2.选择激活函数,初始化wxx,bxx的值
3.选择反向传播的算法
然后通过不断的训练,生成w,b,框架结构保存,然后就可以使用这个模型进行识别了