我了解卷积核的工作原理及其在神经网络中的功能。然而,我不确定在典型的 CNN 中您是否会预先定义卷积核是什么,或者这是否是 CNN“计算出来的”。例如,在制作 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 个内核,可能在多个层中,然后进行其他操作,它会自行找到所有内核。
关于machine-learning - 卷积核是预定义的还是 CNN 在训练期间定义它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40139156/