{
  "id": 21318,
  "title": "Questions about CNN",
  "url": "/competitions/state-farm-distracted-driver-detection/discussion/21318",
  "author_name": "",
  "post_date": "2016-05-30T15:15:31.823Z",
  "votes": null,
  "comment_count": 2,
  "views": 849,
  "content": "<p>During my study of CNN, i have some questions:</p>\n\n<p>What's the function of convolution during CNN? How it works? Does anyone know the principle&#65311;</p>\n\n<p>And how to create a suitable kernel ?</p>\n\n<p>Thanks before.</p>",
  "messages": [
    {
      "id": "121873",
      "postDate": "05/30/2016 15:15:31",
      "content": "<p>During my study of CNN, i have some questions:</p>\n\n<p>What's the function of convolution during CNN? How it works? Does anyone know the principle&#65311;</p>\n\n<p>And how to create a suitable kernel ?</p>\n\n<p>Thanks before.</p>",
      "rawMarkdown": "During my study of CNN, i have some questions:\r\n\r\nWhat's the function of convolution during CNN? How it works? Does anyone know the principle？\r\n\r\nAnd how to create a suitable kernel ?\r\n\r\nThanks before.",
      "votes": null
    },
    {
      "id": "121916",
      "postDate": "05/30/2016 22:40:17",
      "content": "<p>A CNN can be viewed as a normal feed-forward network where instead of connecting all neurons in each layer to all neurons to the previous layer, the connections are sparse, and only connect <em>locally</em> between matching points in successive layers. In addition, the weights are shared by each point in a layer - this has benefit of reducing number of parameters required to describe the network, and also intuitively has a good match to problem domains of repeated similar signals in a grid structure.</p>\n\n<p>The end result of this architecture is that such a sparsely connected network can be described by a discrete convolution function. There is no express purpose to it being convolution. It just happens that convolution is a concise description of the maths required to calculate feed-forward steps in the network - same as matrix operations are a concise description when calculating feed-forward steps for fully-connected layers. </p>\n\n<p>In a CNN you don't usually engineer a &quot;suitable&quot; kernel (though in the past this has been done for image problems - look up e.g. Sobel filters). Instead the training process will discover effective kernels. All you need to do is choose the kernel size and number of feature maps (equals number of kernels) in each layer.</p>",
      "rawMarkdown": "A CNN can be viewed as a normal feed-forward network where instead of connecting all neurons in each layer to all neurons to the previous layer, the connections are sparse, and only connect *locally* between matching points in successive layers. In addition, the weights are shared by each point in a layer - this has benefit of reducing number of parameters required to describe the network, and also intuitively has a good match to problem domains of repeated similar signals in a grid structure.\r\n\r\nThe end result of this architecture is that such a sparsely connected network can be described by a discrete convolution function. There is no express purpose to it being convolution. It just happens that convolution is a concise description of the maths required to calculate feed-forward steps in the network - same as matrix operations are a concise description when calculating feed-forward steps for fully-connected layers. \r\n\r\nIn a CNN you don't usually engineer a \"suitable\" kernel (though in the past this has been done for image problems - look up e.g. Sobel filters). Instead the training process will discover effective kernels. All you need to do is choose the kernel size and number of feature maps (equals number of kernels) in each layer.",
      "votes": null
    },
    {
      "id": "122823",
      "postDate": "06/07/2016 15:43:16",
      "content": "<p>Thanks. </p>",
      "rawMarkdown": "Thanks.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 121916,
      "author_name": "slobo777",
      "author_url": "",
      "post_date": "05/30/2016 22:40:17",
      "content": "<p>A CNN can be viewed as a normal feed-forward network where instead of connecting all neurons in each layer to all neurons to the previous layer, the connections are sparse, and only connect <em>locally</em> between matching points in successive layers. In addition, the weights are shared by each point in a layer - this has benefit of reducing number of parameters required to describe the network, and also intuitively has a good match to problem domains of repeated similar signals in a grid structure.</p>\n\n<p>The end result of this architecture is that such a sparsely connected network can be described by a discrete convolution function. There is no express purpose to it being convolution. It just happens that convolution is a concise description of the maths required to calculate feed-forward steps in the network - same as matrix operations are a concise description when calculating feed-forward steps for fully-connected layers. </p>\n\n<p>In a CNN you don't usually engineer a &quot;suitable&quot; kernel (though in the past this has been done for image problems - look up e.g. Sobel filters). Instead the training process will discover effective kernels. All you need to do is choose the kernel size and number of feature maps (equals number of kernels) in each layer.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 122823,
      "author_name": "paulzhong",
      "author_url": "",
      "post_date": "06/07/2016 15:43:16",
      "content": "<p>Thanks. </p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "121873": "During my study of CNN, i have some questions:\r\n\r\nWhat's the function of convolution during CNN? How it works? Does anyone know the principle？\r\n\r\nAnd how to create a suitable kernel ?\r\n\r\nThanks before.",
    "121916": "A CNN can be viewed as a normal feed-forward network where instead of connecting all neurons in each layer to all neurons to the previous layer, the connections are sparse, and only connect *locally* between matching points in successive layers. In addition, the weights are shared by each point in a layer - this has benefit of reducing number of parameters required to describe the network, and also intuitively has a good match to problem domains of repeated similar signals in a grid structure.\r\n\r\nThe end result of this architecture is that such a sparsely connected network can be described by a discrete convolution function. There is no express purpose to it being convolution. It just happens that convolution is a concise description of the maths required to calculate feed-forward steps in the network - same as matrix operations are a concise description when calculating feed-forward steps for fully-connected layers. \r\n\r\nIn a CNN you don't usually engineer a \"suitable\" kernel (though in the past this has been done for image problems - look up e.g. Sobel filters). Instead the training process will discover effective kernels. All you need to do is choose the kernel size and number of feature maps (equals number of kernels) in each layer.",
    "122823": "Thanks."
  },
  "source": "meta"
}