神经网络
在当食物在某一范围有毒,其他范围无毒的时候,简单的一个神经元已经不能解决现有的问题
第一个神经元对数据的预测结果:
第二个神经元对数据的预测结果
两个神经元的输出作为第三个神经元的输入再输出可以得到一个合适的预测结果
两个结果相加
经过激活函数
可以理解为不同神经元对一个输入有不同的理解,结合之后可以产生不单调的结果
新增加的神经元被叫做神经网络的隐藏层,更负责的神经网络原理也是这样的
泛化
在经历海量数据训练后得到的模型,在遇到新的相同问题的新数据的时候也会很大可能适合这些新数据,这被叫做模型的泛化
深度神经 网络
中间的隐藏层超过三层的就叫做深度神经网络
两个输入的情况
之前都是用食物的大小来判断是否有毒,现在当食物的颜色也作为决定因素的时候,单个输入很明显不能用来描述,于是,我们要用三维坐标系
可以看出分类为两个平面
哪我们预测的结果也应该是个曲面,类似二维时候的sigmod曲线
进一步来说,如果是这种情况
单个神经元就无法做到
类比之前的二维情况中添加一层隐藏层的情况,三维中也是一样
如果是这样的呢
答案是三个
那这样的呢
给大家推荐一个网站 playground.tensorflow.org(tensorflow游乐场)
大家不妨试试,当我们中间给出三层隐藏层,每层四个
结果发现没有出现任何效果这是为什么呢
答案是sigmod函数的问题,我们前面说了sigmod函数的优点是处处可导且导数不为0。但是也会出现一种问题
当结果远离中心点的时候,斜率太小,以至于 梯度下降 很难进行,称为“梯度消失”,解决办法是采用rule激活函数:
可以将输出节点以外的神经网络用relu作为激活函数,输出节点的激活函数用sigmod,因为它更适合得到一个0-1分类的结果
多个输入
在输入维度越来越多的时候,他们对结果的权重也不一样,这时候不同的权重w就起到了作用,多维输入的情况下,作为三维生物的我们很难再作图画出来,但是可以通过数学的方法来描述,那就是向量和矩阵
类似上面这种
第二篇结束啦