{
  "id": 115870,
  "title": "Did *_any label help improve the model?",
  "url": "/competitions/rsna-intracranial-hemorrhage-detection/discussion/115870",
  "author_name": "kambarakun",
  "post_date": "2019-11-05T19:17:31.116000",
  "votes": 0,
  "comment_count": 2,
  "views": 0,
  "content": "<p>I finally trained my models using the loss function below. Compared to the 5-label, training with 6-label(weighted) was better with my model. How was everyone?</p>\n\n<p>Also, including future competitions, do you think it would be useful to add a label like *_any when you'll perform multi-label classification if it doesn't include in the LB evaluation metrics?  </p>\n\n<p>And, is it difficult in multi-class classification due to the softmax activation function?</p>\n\n<p><code>\nBCEWithLogitsLoss(weight=torch.FloatTensor([1, 1, 1, 1, 1, 2]).to(defaults.device))\n</code></p>",
  "messages": [
    {
      "id": 666160,
      "postDate": "2019-11-05T20:05:05.573Z",
      "content": "<p>Answering your second question - it's always nice to use additional targets to learn better feature representations. \n<a href=\"https://en.wikipedia.org/wiki/Multi-task_learning\">https://en.wikipedia.org/wiki/Multi-task_learning</a></p>",
      "rawMarkdown": "Answering your second question - it's always nice to use additional targets to learn better feature representations. \nhttps://en.wikipedia.org/wiki/Multi-task_learning",
      "votes": 2
    },
    {
      "id": 666169,
      "postDate": "2019-11-05T20:28:05.180Z",
      "content": "<p>Softmax is really not a good idea when the samples may have multiple classes. For me you should not use Softmax here.\nIn stage 2 training we have \n752803 samples\n32074 &gt; 1 class\n7248 &gt; 2 classes\n1031 &gt; 3 classes\n23 &gt; 4 classes\nand by chance none with 6 classes (I take healthy = 1. - any)\nAnd I agree with Oleg that it is good to have additional targets but then tricky to mix them in the right manner as they may not share the same dimensions.</p>",
      "rawMarkdown": "Softmax is really not a good idea when the samples may have multiple classes. For me you should not use Softmax here.\nIn stage 2 training we have \n752803 samples\n32074 &gt; 1 class\n7248 &gt; 2 classes\n1031 &gt; 3 classes\n23 &gt; 4 classes\nand by chance none with 6 classes (I take healthy = 1. - any)\nAnd I agree with Oleg that it is good to have additional targets but then tricky to mix them in the right manner as they may not share the same dimensions."
    },
    {
      "id": 666138,
      "postDate": "2019-11-05T19:17:31.117Z",
      "content": "<p>I finally trained my models using the loss function below. Compared to the 5-label, training with 6-label(weighted) was better with my model. How was everyone?</p>\n\n<p>Also, including future competitions, do you think it would be useful to add a label like *_any when you'll perform multi-label classification if it doesn't include in the LB evaluation metrics?  </p>\n\n<p>And, is it difficult in multi-class classification due to the softmax activation function?</p>\n\n<p><code>\nBCEWithLogitsLoss(weight=torch.FloatTensor([1, 1, 1, 1, 1, 2]).to(defaults.device))\n</code></p>",
      "rawMarkdown": "I finally trained my models using the loss function below. Compared to the 5-label, training with 6-label(weighted) was better with my model. How was everyone?\n\nAlso, including future competitions, do you think it would be useful to add a label like *_any when you'll perform multi-label classification if it doesn't include in the LB evaluation metrics?  \n\nAnd, is it difficult in multi-class classification due to the softmax activation function?\n\n```\nBCEWithLogitsLoss(weight=torch.FloatTensor([1, 1, 1, 1, 1, 2]).to(defaults.device))\n```"
    }
  ],
  "comments": [
    {
      "id": 666160,
      "author_name": "Oleg Yaroshevskiy",
      "author_url": "",
      "post_date": "2019-11-05T20:05:05.573000",
      "content": "<p>Answering your second question - it's always nice to use additional targets to learn better feature representations. \n<a href=\"https://en.wikipedia.org/wiki/Multi-task_learning\">https://en.wikipedia.org/wiki/Multi-task_learning</a></p>",
      "votes": 2,
      "replies": []
    },
    {
      "id": 666169,
      "author_name": "Cogitae _ Thomas Soumarmon",
      "author_url": "",
      "post_date": "2019-11-05T20:28:05.180000",
      "content": "<p>Softmax is really not a good idea when the samples may have multiple classes. For me you should not use Softmax here.\nIn stage 2 training we have \n752803 samples\n32074 &gt; 1 class\n7248 &gt; 2 classes\n1031 &gt; 3 classes\n23 &gt; 4 classes\nand by chance none with 6 classes (I take healthy = 1. - any)\nAnd I agree with Oleg that it is good to have additional targets but then tricky to mix them in the right manner as they may not share the same dimensions.</p>",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "666160": "Answering your second question - it's always nice to use additional targets to learn better feature representations. \nhttps://en.wikipedia.org/wiki/Multi-task_learning",
    "666169": "Softmax is really not a good idea when the samples may have multiple classes. For me you should not use Softmax here.\nIn stage 2 training we have \n752803 samples\n32074 &gt; 1 class\n7248 &gt; 2 classes\n1031 &gt; 3 classes\n23 &gt; 4 classes\nand by chance none with 6 classes (I take healthy = 1. - any)\nAnd I agree with Oleg that it is good to have additional targets but then tricky to mix them in the right manner as they may not share the same dimensions.",
    "666138": "I finally trained my models using the loss function below. Compared to the 5-label, training with 6-label(weighted) was better with my model. How was everyone?\n\nAlso, including future competitions, do you think it would be useful to add a label like *_any when you'll perform multi-label classification if it doesn't include in the LB evaluation metrics?  \n\nAnd, is it difficult in multi-class classification due to the softmax activation function?\n\n```\nBCEWithLogitsLoss(weight=torch.FloatTensor([1, 1, 1, 1, 1, 2]).to(defaults.device))\n```"
  }
}