深度学习相关概念整理
数值梯度和解析梯度
数值梯度就是通过梯度得定义去计算出来的梯度:给予x_i一个非常小的偏移量,去计算出y的偏移量,最后用y的偏移去除以x_i的偏移就是在x_i处的偏导数。
解析梯度就是对目标函数进行直接求偏导,得到的偏导式所算出来的梯度。
CNN中的卷积层与池化层
卷积层,就是将两个对应的函数进行卷积操作。举个例子,有一组input的image,数据大小为7x7x3,假设有两个filter,大小为3x3x3,步长为2,(size+(n-1)*步长=7)那么我可以在卷积层的output中得到一个大小为n=3的一个大小为3x3x2的矩阵。
这个矩阵可以这么计算,第一个的3x3x1矩阵M0中,M0[i,j]=X[i+m,j+n]*W0[i,j],X为原来的输入矩阵,W0是第一个卷积核,其中m,n表示原来的输入矩阵X被滑到窗口的位置; M1[i,j]=X[i+m,j+n]*W1[i,j],原理与上面一致,不再赘述。当然,输出结束后需要激活函数去进行Activate操作。
所以为什么要卷积操作呢?假设我们使用的是一个全链接的隐层,那么我们就需要将每个神经元与下一层的每个神经元连接起来,如果说这个图像比较大,我们就需要很大的参数空间去存储参数。但是CNN的卷积层选择了将这些参数以Filter的形式进行存储,这样就可以节省很大的一部分空间。
池化层也是使用了Filter,可以进一步的削减隐藏层中矩阵的体量。
还有有的时候,我们会使用多层卷积,原因是多次较小的卷积核效果比少量的较大卷积核效果要好。
原文地址:https://www.cnblogs.com/harrysong666/p/10929844.html
时间: 2024-11-02 14:38:33