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

标签 machine-learning neural-network artificial-intelligence convolution conv-neural-network

我了解卷积核的工作原理及其在神经网络中的功能。然而,我不确定在典型的 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/

相关文章:

algorithm - 如何计算多标签分配的分类任务的成功率

algorithm - 朴素贝叶斯和零频问题

python - 我应该在神经网络中转置特征或权重吗?

php - 那里有任何 PHP 人工智能项目吗?

python - 在 Pycaffe 中通过索引访问 blob

python - 如何用max代替tensorflow softmax来在神经网络的输出层生成一个热向量?

machine-learning - 神经网络中的激活函数

java - 是否有任何基于 "Description Logic"或基于 FOL 的推理引擎 Java 库可用?

artificial-intelligence - 最佳编程游戏

azure - 在一个实验中测试多种算法