{
  "id": 48547,
  "title": "2 Challenges: label representation and cost definition",
  "url": "/competitions/data-science-bowl-2018/discussion/48547",
  "author_name": "",
  "post_date": "2018-01-29T15:20:13.242025900Z",
  "votes": null,
  "comment_count": 2,
  "views": 0,
  "content": "<p>Hi, </p>\n\n<p>I'm new in object detection challenges and I have some questions, I hope someone can contribute by clarifying on these topics:</p>\n\n<p><strong>Label Representation.</strong>\nHow should you represent the labels? My first intuition was to stack the image masks to create a single 2d- binary representation for all masks of a given image ID. However, the evaluation metric seems to be object-centric. In other words, it evaluates nuclei-by-nuclei rather than pixel-by-pixel. So what is a good way to incorporate this?</p>\n\n<p><strong>Cost definition.</strong>\nI see some different cost functions in the kernels posted by fellow Kagglers. My guess is that the best cost function is the cost function that exactly matches the evaluation metric. But then again, the metric is based by evaluating each object separately as true positive, false positive or false negative. What is a smart way to do this? Does anyone have an example?</p>",
  "messages": [
    {
      "id": "275605",
      "postDate": "01/29/2018 15:20:13",
      "content": "<p>Hi, </p>\n\n<p>I'm new in object detection challenges and I have some questions, I hope someone can contribute by clarifying on these topics:</p>\n\n<p><strong>Label Representation.</strong>\nHow should you represent the labels? My first intuition was to stack the image masks to create a single 2d- binary representation for all masks of a given image ID. However, the evaluation metric seems to be object-centric. In other words, it evaluates nuclei-by-nuclei rather than pixel-by-pixel. So what is a good way to incorporate this?</p>\n\n<p><strong>Cost definition.</strong>\nI see some different cost functions in the kernels posted by fellow Kagglers. My guess is that the best cost function is the cost function that exactly matches the evaluation metric. But then again, the metric is based by evaluating each object separately as true positive, false positive or false negative. What is a smart way to do this? Does anyone have an example?</p>",
      "rawMarkdown": "Hi, \n\nI'm new in object detection challenges and I have some questions, I hope someone can contribute by clarifying on these topics:\n\n**Label Representation.**\nHow should you represent the labels? My first intuition was to stack the image masks to create a single 2d- binary representation for all masks of a given image ID. However, the evaluation metric seems to be object-centric. In other words, it evaluates nuclei-by-nuclei rather than pixel-by-pixel. So what is a good way to incorporate this?\n\n**Cost definition.**\nI see some different cost functions in the kernels posted by fellow Kagglers. My guess is that the best cost function is the cost function that exactly matches the evaluation metric. But then again, the metric is based by evaluating each object separately as true positive, false positive or false negative. What is a smart way to do this? Does anyone have an example?",
      "votes": null
    },
    {
      "id": "275704",
      "postDate": "01/29/2018 20:27:55",
      "content": "<p>hi there,</p>\n\n<p>happy that you cast the same question I thought about before I got my hands dirty. </p>\n\n<p>I think it doesn't matter if you stack all masks for one training image or not. If you do, you got a normal semantic segmentation task; if you don't, it's still possible to apply methods like recurrent CNN with the number of masks as the length of time slice. Both work well and I prefer the first approach because it's easier to implement.</p>\n\n<p>as for the loss function, I guess a normal cross entropy loss will also work in this case. After all, \"the lower the better\" works for all optimization goals, right? </p>\n\n<p>hope it helps :)</p>",
      "rawMarkdown": "hi there,\n\nhappy that you cast the same question I thought about before I got my hands dirty. \n\nI think it doesn't matter if you stack all masks for one training image or not. If you do, you got a normal semantic segmentation task; if you don't, it's still possible to apply methods like recurrent CNN with the number of masks as the length of time slice. Both work well and I prefer the first approach because it's easier to implement.\n\nas for the loss function, I guess a normal cross entropy loss will also work in this case. After all, \"the lower the better\" works for all optimization goals, right? \n\nhope it helps :)",
      "votes": null
    },
    {
      "id": "276006",
      "postDate": "01/30/2018 13:06:25",
      "content": "<p>Thanks,</p>\n\n<p>I'll try to implement the simplest version first then and see if I get any results ;)</p>",
      "rawMarkdown": "Thanks,\n\nI'll try to implement the simplest version first then and see if I get any results ;)",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 275704,
      "author_name": "zhenyuchen",
      "author_url": "",
      "post_date": "01/29/2018 20:27:55",
      "content": "<p>hi there,</p>\n\n<p>happy that you cast the same question I thought about before I got my hands dirty. </p>\n\n<p>I think it doesn't matter if you stack all masks for one training image or not. If you do, you got a normal semantic segmentation task; if you don't, it's still possible to apply methods like recurrent CNN with the number of masks as the length of time slice. Both work well and I prefer the first approach because it's easier to implement.</p>\n\n<p>as for the loss function, I guess a normal cross entropy loss will also work in this case. After all, \"the lower the better\" works for all optimization goals, right? </p>\n\n<p>hope it helps :)</p>",
      "votes": null,
      "replies": [
        {
          "id": 276006,
          "author_name": "arjanso",
          "author_url": "",
          "post_date": "01/30/2018 13:06:25",
          "content": "<p>Thanks,</p>\n\n<p>I'll try to implement the simplest version first then and see if I get any results ;)</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "275605": "Hi, \n\nI'm new in object detection challenges and I have some questions, I hope someone can contribute by clarifying on these topics:\n\n**Label Representation.**\nHow should you represent the labels? My first intuition was to stack the image masks to create a single 2d- binary representation for all masks of a given image ID. However, the evaluation metric seems to be object-centric. In other words, it evaluates nuclei-by-nuclei rather than pixel-by-pixel. So what is a good way to incorporate this?\n\n**Cost definition.**\nI see some different cost functions in the kernels posted by fellow Kagglers. My guess is that the best cost function is the cost function that exactly matches the evaluation metric. But then again, the metric is based by evaluating each object separately as true positive, false positive or false negative. What is a smart way to do this? Does anyone have an example?",
    "275704": "hi there,\n\nhappy that you cast the same question I thought about before I got my hands dirty. \n\nI think it doesn't matter if you stack all masks for one training image or not. If you do, you got a normal semantic segmentation task; if you don't, it's still possible to apply methods like recurrent CNN with the number of masks as the length of time slice. Both work well and I prefer the first approach because it's easier to implement.\n\nas for the loss function, I guess a normal cross entropy loss will also work in this case. After all, \"the lower the better\" works for all optimization goals, right? \n\nhope it helps :)",
    "276006": "Thanks,\n\nI'll try to implement the simplest version first then and see if I get any results ;)"
  },
  "source": "meta"
}