神经网络的结构
神经元:可以理解成一个用来装数字(0-1)的容器,进而理解成一个函数,他的输入是上一层的输出,输出是0-1
第一层总神经元个数:图片上所有像素点数
每层装的数字代表对应像素的灰度值,称“激活值”。
理想情况下希望倒数第二层的各个神经元能分别对应一个笔画部件,最后一层只要学习哪些部件能组合出哪个数字即可。
部件也是由各种各样的“短边”构成的,所以再前一层在理想状态下最好对应上各种各样的短边。
给第一层各个像素赋予相应权重,程激活值,来看是否构成第二层的某个“短边”。注意给关注区域周围一圈的像素赋予负的权重,才能真正达到中间像素亮,周围像素暗的需求。
常用sigmoid函数进行输出值的0-1压缩。(现在基本都用ReLU了)
为了避免激发出现偏差,要给激发加上一个偏置值来保证激发是有意义的。(先用输出-偏置值,再送入sigmoid压缩函数)
机器学习的过程其实是找到合适的权重和偏置。
留个坑:14分正作者提到的线代的本质
深度学习小技巧-YoloV4当中的Mosaic数据增强
Mosaic数据增强:将多张图片进行翻转、缩放、色域变化等,用矩阵把各个图片截取,进行拼接。
深度学习之梯度下降法 Part 2
定义出代价函数来告诉学习网络好坏,将每个垃圾输出激活值与想要的值差的平方加起来,即代价。
即在整个网络中是由原输入得到输出的函数,参数是权重和偏置值。而代价函数是让权重和偏置值作为输入,输出单个数值来表示这些权重和偏置值有多差劲。要告诉网络怎么改变这些权重和偏置才能有进步,找到特定的权重偏置,从而使一个代价函数最小化。
【官方双语】深度学习之反向传播算法 上/下 Part 3
反向传播:最开始我们得到的结果是随即权重胡乱来的,所以要对最后的偏置、权重以及激活值进行调整。例如把此神经元对上一层的激活值的期待(使得在特定输入下此神经元输出增大其余输出减小),和其他结果(输出神经元)的期待全部加起来,作为对如何改变倒数第二层神经元的指示。这样我们就得到前一层需要的改变的正负以及大小,以此类推再改变前一层,直到第一层,即反向传播。对每个训练样本都要进行反向传播,记录下每个样本想怎样修改权重与偏置,最后取一个平均。
还没看完