线性模型与非线性模型
人工神经网络是一种计算机算法
考虑以下问题:
假设需要将苹果和梨按照直径和重量进行分类任务
注意此时的数据是线性不可分的
如上图所示,显然这是线性不可分的
那么如何实现其可分呢
如果一条直线不可分,那么可以做多条直线,如下图中的绿线,每一条线对应的逻辑图在右边
z = 1*w0 + 1*w1 + 2*w2
后面的这个
是求一个概率
在最优化以后,就可以得到如图所示的绿线
第二个图和第一个图的区别就是w不同
我们现在把2层拓展到3层,就像这样
最终的结果就是这样的
可见,对于线性不可分的模型,多取几个就可以变成线性可分的模型
以上的线性到非线性的转变,一个重要的因素就是sigmod激活函数,也就是这里的:
若不加这个激活函数,则无论w和b是怎么变化的,其最后一层输出的结果只是各个单个线性模型的相加而已,最终得到的还是一个线性模型,证明如下:
显然最后的结果还是线性模型
而有了非线性的模型,我们就可以解决非线性的问题,为什么加了激活函数之后,我们就得到了非线性的模型呢,证明如下:
前向传播
前向传播就是从左到右
前向传播的示意图如下:
这里的这个:
其实是一个偏置项
这个乘上
就相当于一个bias
反向传播
反向传播的目的是去优化W和b
反向传播是从loss出发,loss是指我们通过模型算出来的值和真实值之间的差距
这个差距当然是越小越好
如果没有反向传播,想得到每一个初始的节点对于loss的贡献值是难以计算的
但是若使用反向的方法,将loss一级级地往前推
关于前向传播和反向传播详细的介绍,见后面的文章
参考资料:https://www.bilibili.com/video/av26416178/?spm_id_from=333.788.videocard.3