我们知道神经网络最初是由感知机发展而来的,感知机其实某种程度是就是一些门电路可以构成表示的,门电路是存在的亚状态的,因此在调整参数的过程中可能某个细微的参数变动就可能导致输出发生很大偏转,比如从0变成1;

因此我们就联想啊,我们人是怎么学习为好呢?
从小到大你发现过你身边的同学有成绩经常此起彼伏的吗?比如这月考是第一名,下次月考就是倒数,这在真实的世界中也是几乎不存在的啊!学习从来是你学的精一点,成绩这次就比上一次高一点,然后基于此下次再学多一点(注意这个微量)成绩就再增长一点!
因此迁移一下我们可不可以把感知机里面的那个阶跃输出函数修改一下呢?修改使得更符合真实世界中的情况呢?
抽象出来就是:我参数修改一点点,你的输出变化也只能是一点点(当然这里面的梯度下降等问题暂不讨论),要么成绩变好一点要么变差一点,既要能有0/1两个状态又要使得0/1过渡的平滑,因此sigmod函数就应运而生了!
如果满足在权值(或偏移)上的小改变只会引起输出上的小幅变化这一性质,那么以此性质为基础,我们就可以改变权值和偏移来使得网络的表现越来越接近我们预期。
从这里我们能得到的感悟是:
我们的世界是一个分形的世界,可以从身边很多的实物上借鉴到很多的学习规律,只要我们善于观察;
我们的学习、我们的成长,从来不要想着一蹴而就,要一步一步、稳重踏实的走,也就是要走一小步,然后看看你自己成长了没有,成长了就继续往这个方向走,没成长就换个方向(要是你会找梯度方向的话就不用浪费时间寻索了)继续尝试往前走,其中核心的一个点就是“每天”进步一点点,“每晚”反思一下进度就能以蜗牛的姿态稳步往前走了!
网友评论