卷积核是预定义的还是 CNN 在训练期间定义它们

Are Convolution Kernels Predefined or Does a CNN Define them During Training

我了解卷积核的工作原理及其在神经网络中的作用。但是,我不确定在典型的 CNN 中您是否会预定义卷积核是什么,或者这是否是 CNN "figures out." 例如,在制作 CNN 时,您是否会像这样简单地定义一些 5x5 卷积核:

kernel = [[ 0,  1, -2,  1,  0]
          [ 0,  2, -1,  2,  1]
          [ 1,  0,  1,  0,  0]
          [-1, -1,  0, -3, -1]
          [-3, -2,  0,  1,  1]]

或者您会简单地告诉 CNN 找到一个 5x5 内核,并且在训练之后它会得出一个好的 5x5 内核吗?

对于 CNN,内核是在优化过程中训练的,因此矩阵中的每个数字都是一个自由参数,根据针对该特定变量考虑的损失的偏导数进行调整。

所以要回答

Or would you simply tell the CNN to find a 5x5 kernel and after training it will have come up with a good 5x5 kernel?

您可以告诉模型使用给定大小的 K 个内核,给定的间距,可能在多个层中,然后进行其他操作,它会自行找到所有内核。