依旧是Deepsleep深度睡眠镇楼
两个可能有用能够帮助到理解的网站 https://alexlenail.me/NN-SVG/
https://playground.tensorflow.org/
从函数到神经网络
让我们看一个生物是不是猫还是狗还是是一株草,对我们人类来说这就是再简单不过的事情,但是对于机器来说这个可能是一个史诗级难题,于是,人们开始使用这种"函数"来尝试着解析这个问题,但是我们如何去找到这个"函数"呢?

在数学物理亦或者是日常生活中,我们经常会使用到函数,最简单的y=x,y=ax+b这些都是比较常见的,如何去求一个简单函数这些我们在学校中已经有几个较为简单的解法了,有些甚至一眼就能看出来对应的函数是什么,比如给你三组(1,2)(2,4)(3,6),你能很自然就看出这个对应的函数是y=2x,其实机器一开始也是这样的,是用猜测来找到对应的或者最接近的函数 比如现在先给你几组数字,机器会先猜
可以看到下图几个坐标点放在坐标系上了之后,靠着y=wx+b去找到这条最接近的线,然后尝试着慢慢调整参数来达到最吻合最接近的那一条线,于是就找到了对应的这个函数,只要以后执行这个任务,那就套用这条函数公式来得出结果
但是有的时候并不会这么简单,有时候是找不到这条函数的,这时候就需要找到最接近的那一条就行,这就是现代人工智能的思路,猜和简化问题(也就是摆烂了,不找了 差不多得了)
直到问题越来越复杂,我们需要开始用到非线性函数了,怎么变成非线性呢,很简单,在原来的函数基础上套一个非线性的运算即可比如f(x)=(wx+b)²、f(x)=sin(wx+b)等等这些都是,即是f(x)=g(wx+b) 激活函数,而且我们实际上不会只有一个x输入,可能会有很多个输入,所以可能会有多个x,每个x会对应一个w 即是 
甚至有的时候一层激活函数还不足以让大部分点都在线上,也就是说这条线还不够灵活 或者不够弯,我们还需要再套一层激活函数,理论上可以无限的去套娃,来构建一条任意无限灵活的函数

神经网络
但是你看了不头大吗?我觉得看着都困了,所以我们来开始简化 我们把这个修改为输入层和输出层,也就是下图,也叫做神经元
如果我们有多个x,多个输入也就是
如果我们刚刚说的,线不够灵活 还需要套一层函数,那则是多一层激活函数,可以看到在外层多了一个激活函数之后,其实就是在原来输入层和输出层中间多了一层变换,

于是就可能会出现左边很多x输入,中间有多层变换的函数 的超级复杂函数

还有一个知识点 就是我们在知道一个函数的情况下 使用它去求解其实就是带入x然后根据他的参数进行数学计算,得出最后的y,变成输入层和输出层的关系之后就是看起来像是从左到右依次,我们也叫他为 前向传播
虽然到这里可能会非常复杂,但是其实我们的目标很明确,就是根据现在已经知道的x和y的值,(猜)找出对应的那条函数,并且让这条函数来为我们所用,如果你看了上一期,你就会觉得这个不就是我们一开始给他的输入还有标签嘛,标签其实就是y,输入就是x,然后他找到这层关系了 就是知道函数了,以后就能够帮我们判断了。
如果想知道求参数的过程是怎么样的 可以看一下飞天闪客,这个比较麻烦,所以作为了解即可哈哈哈 最后再提一个概念,根据输入x计算出输出y,这样我们刚刚说是前向传播,反过来的,计算出每个损失函数(其实就是数学中求均方误差)关于每个参数的梯度这个就是反向传播,每个参数都向着梯度的反方向变化一点点这个就构成了神经网络的依次训练,这样最后让损失函数足够小,越来越接近我们需要的那个函数,这个就是训练的过程
后面还会持续更新~
最后
愿君安康,平安同乐!