并甚至在图像识别之外做各种各样智能的东西也许你也想分解成一些抽象的层 例如句子的分析涉及到把原始的语音提出一些独特的声音构成一些音节再构成词再构成词组以及更为抽象的思想等。
但回到这些实际是怎样工作的把你自己现在就放到这个的情景怎样来设计 如何在让这层中的激励函数可以决定下一层的激励函数呢? 这目标是有一些机能它想起来可以集中到一个特定的样本来把一些像素结合成 边或者把边结合成式样或者式样成为数字
在这个特别的例子里面 我们希望第二层的这一个神经元 可以正确的识别出这个图像里有没有一条边
现在我们想知道的是网路里有哪些参数 要怎么调整这些参数才能让完整的表达出是这个图案
还是其他的图案或是由数个边组合成的圆圈之类的
我们会分配给神经元和输入层间的每一个连接线一个权重 权重单纯只是一个数字而已
然后计算所有激励函数的加权总和
把这些权重整理成一个图像应该更好理解 我把正的权重值标记为绿色 负的权重值标记为红色 当颜色越亮代表它的值跟 0 差距越大
除了我们所关注的区域以外
所有的权重值都改为 0 然后去取得所有像素的加权总合 几乎就等于只有我们所关注的区域的值提升了
如果知道这里是不是真的存在一条边。你只需要在周围加上负的权重 这样当中间的像素亮但是周围的像素暗 就可以得到最大的加权总和
当你计算加权总和时 它的值可能是任意实数 但是在这里我们想要计算完的结果介于0 跟1 之间 所以我们通常会把这个值丢进一个函数里面
把这个实数轴压缩成一个介于0 到1 之间 有一个常见的函数叫做「Sigmoid」也被称为「逻辑函数」 基本上越小的数会越来越接近0 越大的数会越来越接近1输入值在0附近的会平稳增长
所以从神经网络得到的激励函数基本上就代表加权总和的大小 但是不是每次只要加权总和大于零的时候就点亮神经元 也许你只想要在它大于 10 的时候启动 所以要加入一个门槛来确保它不会随便启动
我们只要在加权总和后面加上一个像是 负10 之类的数 再把它塞进逻辑函数里 这个附加的数字就叫做偏置 所以权重告诉我们下一层的神经元所关注的图样 偏置则告诉我们加权总和要超过什么程度才是有意义的 以上只是一个神经元的情况
在这一层的每个神经元都会连接第一层共784个神经元 而且这784条连接线都各有一个属于自己的权重还有每一个神经元都会在计算完加权总和后再加上自己的偏置再用逻辑函数输出自己的结果
让我们看看这个有着16个神经元的隐藏层这16个神经元都各有784个自己的权重和16个偏置这些还只是第一层和第二层的连接而已在其他层里还有他们各自的权重和偏置
整体来说整个网络使用了大约13,000个权重和偏置
参考
https://youtu.be/aircAruvnKk?si=vvJtlByXpXaDHj7y