{
  "id": 176109,
  "title": "Thoughts on the large shakeup by the cleaned private set",
  "url": "/competitions/global-wheat-detection/discussion/176109",
  "author_name": "arutema47",
  "post_date": "2020-08-20T14:22:20.792000",
  "votes": 14,
  "comment_count": 12,
  "views": 0,
  "content": "<p>This competition was unique, since we experienced private set shakedowns.. lol<br>\nI was wondering why a large shakeup occurred by the cleaned private set.<br>\nOur score went down from 0.70 to 0.65, which is extremely large for bounding box correction. (But everyone had a score drop of 0.03-0.05)<br>\nLittle can be known, since most of our subs were disabled.<br>\nMystery can be reviled after late subs are open, but would be interesting to discuss on this.</p>\n<p>Some cause for this might be</p>\n<ul>\n<li>our model was overfitting against the dirty labels<br>\n(Many top teams trained with cleaned or pseudo labeled training set)</li>\n<li>Pseudo labeling did some bad..?</li>\n<li>overfitted our threshold setting to LB</li>\n</ul>\n<p>Would be helpful if anyone else insights! Thx!</p>\n<h1>Experiments</h1>\n<p>Late subs are open!<br>\nBased on <a href=\"https://www.kaggle.com/its7171\" target=\"_blank\">@its7171</a> 's insights, I did some experiments on shrinking bb as post processing.<br>\nThe model is based on my best single model for fast experiments.</p>\n<h2>Simply shrinking boxes for post-processing</h2>\n<p>Looks like shrinking 0.96x boosts the private +0.012.</p>\n<table>\n<thead>\n<tr>\n<th>shrink ratio</th>\n<th>1</th>\n<th>0.96</th>\n<th>0.94</th>\n<th>0.92</th>\n<th>0.9</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Public</td>\n<td>0.756</td>\n<td>0.732</td>\n<td>0.729</td>\n<td>0.687</td>\n<td>0.606</td>\n</tr>\n<tr>\n<td>Private</td>\n<td>0.642</td>\n<td><strong>0.654</strong></td>\n<td>0.636</td>\n<td>0.625</td>\n<td>0.573</td>\n</tr>\n</tbody>\n</table>\n<h2>Shrinking boxes for Psuedo Labeling data</h2>\n<p>I shrinked boxes of the train data as well.<br>\nPsuedo Label for 3 epochs with the best single model.<br>\nNote that the boxes are <strong>not</strong> shrinked during the final inference.</p>\n<p>The ratio is 0.96x, resulting in a <strong>+0.027</strong> boost.</p>\n<table>\n<thead>\n<tr>\n<th>Shrink on PL?</th>\n<th>No</th>\n<th>Yes(WBF IoU threshold=0.42)</th>\n<th>Yes (WBF IoU threshold=0.5)</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Public</td>\n<td>0.7561</td>\n<td>0.7378</td>\n<td>0.7402</td>\n</tr>\n<tr>\n<td>Private</td>\n<td>0.6428</td>\n<td>0.6626</td>\n<td><strong>0.6700</strong></td>\n</tr>\n</tbody>\n</table>",
  "messages": [
    {
      "id": 978951,
      "postDate": "2020-08-20T14:22:20.793Z",
      "content": "<p>This competition was unique, since we experienced private set shakedowns.. lol<br>\nI was wondering why a large shakeup occurred by the cleaned private set.<br>\nOur score went down from 0.70 to 0.65, which is extremely large for bounding box correction. (But everyone had a score drop of 0.03-0.05)<br>\nLittle can be known, since most of our subs were disabled.<br>\nMystery can be reviled after late subs are open, but would be interesting to discuss on this.</p>\n<p>Some cause for this might be</p>\n<ul>\n<li>our model was overfitting against the dirty labels<br>\n(Many top teams trained with cleaned or pseudo labeled training set)</li>\n<li>Pseudo labeling did some bad..?</li>\n<li>overfitted our threshold setting to LB</li>\n</ul>\n<p>Would be helpful if anyone else insights! Thx!</p>\n<h1>Experiments</h1>\n<p>Late subs are open!<br>\nBased on <a href=\"https://www.kaggle.com/its7171\" target=\"_blank\">@its7171</a> 's insights, I did some experiments on shrinking bb as post processing.<br>\nThe model is based on my best single model for fast experiments.</p>\n<h2>Simply shrinking boxes for post-processing</h2>\n<p>Looks like shrinking 0.96x boosts the private +0.012.</p>\n<table>\n<thead>\n<tr>\n<th>shrink ratio</th>\n<th>1</th>\n<th>0.96</th>\n<th>0.94</th>\n<th>0.92</th>\n<th>0.9</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Public</td>\n<td>0.756</td>\n<td>0.732</td>\n<td>0.729</td>\n<td>0.687</td>\n<td>0.606</td>\n</tr>\n<tr>\n<td>Private</td>\n<td>0.642</td>\n<td><strong>0.654</strong></td>\n<td>0.636</td>\n<td>0.625</td>\n<td>0.573</td>\n</tr>\n</tbody>\n</table>\n<h2>Shrinking boxes for Psuedo Labeling data</h2>\n<p>I shrinked boxes of the train data as well.<br>\nPsuedo Label for 3 epochs with the best single model.<br>\nNote that the boxes are <strong>not</strong> shrinked during the final inference.</p>\n<p>The ratio is 0.96x, resulting in a <strong>+0.027</strong> boost.</p>\n<table>\n<thead>\n<tr>\n<th>Shrink on PL?</th>\n<th>No</th>\n<th>Yes(WBF IoU threshold=0.42)</th>\n<th>Yes (WBF IoU threshold=0.5)</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Public</td>\n<td>0.7561</td>\n<td>0.7378</td>\n<td>0.7402</td>\n</tr>\n<tr>\n<td>Private</td>\n<td>0.6428</td>\n<td>0.6626</td>\n<td><strong>0.6700</strong></td>\n</tr>\n</tbody>\n</table>",
      "rawMarkdown": "This competition was unique, since we experienced private set shakedowns.. lol\nI was wondering why a large shakeup occurred by the cleaned private set.\nOur score went down from 0.70 to 0.65, which is extremely large for bounding box correction. (But everyone had a score drop of 0.03-0.05)\nLittle can be known, since most of our subs were disabled.\nMystery can be reviled after late subs are open, but would be interesting to discuss on this.\n\nSome cause for this might be\n* our model was overfitting against the dirty labels\n(Many top teams trained with cleaned or pseudo labeled training set)\n* Pseudo labeling did some bad..?\n* overfitted our threshold setting to LB\n\nWould be helpful if anyone else insights! Thx!\n\n# Experiments\nLate subs are open!\nBased on @its7171 's insights, I did some experiments on shrinking bb as post processing.\nThe model is based on my best single model for fast experiments.\n\n## Simply shrinking boxes for post-processing\nLooks like shrinking 0.96x boosts the private +0.012.\n\n| shrink ratio         | 1     |  0.96 | 0.94  | 0.92  | 0.9   |\n|:-------:|-------|:-----:|-------|-------|-------|\n|  Public | 0.756 | 0.732 | 0.729 | 0.687 | 0.606 |\n| Private | 0.642 | **0.654** | 0.636 | 0.625 | 0.573 |\n\n## Shrinking boxes for Psuedo Labeling data\nI shrinked boxes of the train data as well.\nPsuedo Label for 3 epochs with the best single model.\nNote that the boxes are **not** shrinked during the final inference.\n\nThe ratio is 0.96x, resulting in a **+0.027** boost.\n\n| Shrink on PL? | No     |   Yes(WBF IoU threshold=0.42)  | Yes (WBF IoU threshold=0.5)|\n|:-------------:|--------|:------:|:------:|\n|     Public    | 0.7561 | 0.7378 |0.7402|\n|    Private    | 0.6428 | 0.6626  |**0.6700**|",
      "votes": 14
    },
    {
      "id": 980325,
      "postDate": "2020-08-21T14:09:34.780Z",
      "content": "<p>Thank you for sharing the experiment results.<br>\nIt's interesting to shrink bbs for psuedo labeling.<br>\nScore looks very sensitive to the shrink scale and this results consistent with my experience.</p>\n<p>This graph is shrink scale vs score for my 5CV(source split).<br>\nEven for source split 5 CV, the optimal shrink size is not zero.<br>\nAnd best scores differed greatly at its optimal shrink scale.</p>\n<p>So it was very important to select optimal shrink scale for private, which we never know beforehand. :)</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F548996%2F552409d5a24798a66ae71cf3e382ae19%2F.png?generation=1598018273243440&amp;alt=media\" alt=\"shrink scale vs score\"></p>",
      "rawMarkdown": "Thank you for sharing the experiment results.\nIt's interesting to shrink bbs for psuedo labeling.\nScore looks very sensitive to the shrink scale and this results consistent with my experience.\n\nThis graph is shrink scale vs score for my 5CV(source split).\nEven for source split 5 CV, the optimal shrink size is not zero.\nAnd best scores differed greatly at its optimal shrink scale.\n\nSo it was very important to select optimal shrink scale for private, which we never know beforehand. :)\n\n![shrink scale vs score](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F548996%2F552409d5a24798a66ae71cf3e382ae19%2F.png?generation=1598018273243440&alt=media)",
      "votes": 3,
      "replies": [
        {
          "id": 982284,
          "postDate": "2020-08-23T08:13:33.287Z",
          "content": "<blockquote>\n  <p>So it was very important to select optimal shrink scale for private, which we never know beforehand. :)</p>\n</blockquote>\n<p><a href=\"https://www.kaggle.com/its7171\" target=\"_blank\">@its7171</a> As you mention, the challenge was that we never know the optimal parameter for shrinking. BTW, how did you set your shrink scale?</p>\n<p>One step I could have taken was labeling the test set (or part of the train set) manually and look at the mAP dependency on the shrink size. But I didn't think the shrinking would have done such a impact to PB, so I didn't dig much further (which lead to the shake down.. :(</p>\n<p>My teammate also found an interesting solution, where resizing only small boxes can make a further boost.<br>\n<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/176732\" target=\"_blank\">https://www.kaggle.com/c/global-wheat-detection/discussion/176732</a></p>",
          "rawMarkdown": "> So it was very important to select optimal shrink scale for private, which we never know beforehand. :)\n\n@its7171 As you mention, the challenge was that we never know the optimal parameter for shrinking. BTW, how did you set your shrink scale?\n\nOne step I could have taken was labeling the test set (or part of the train set) manually and look at the mAP dependency on the shrink size. But I didn't think the shrinking would have done such a impact to PB, so I didn't dig much further (which lead to the shake down.. :(\n\nMy teammate also found an interesting solution, where resizing only small boxes can make a further boost.\nhttps://www.kaggle.com/c/global-wheat-detection/discussion/176732",
          "votes": 2
        },
        {
          "id": 982808,
          "postDate": "2020-08-23T17:15:19.373Z",
          "content": "<p>I set the shrink scale that gives the best public score for one sub, and set 6% smaller shrink scale for the another sub.<br>\nThis 6% is a kind of wild guess with reference to the figure shown above.</p>\n<blockquote>\n  <p>resizing only small boxes can make a further boost</p>\n</blockquote>\n<p>interesting. 👀</p>",
          "rawMarkdown": "I set the shrink scale that gives the best public score for one sub, and set 6% smaller shrink scale for the another sub.\nThis 6% is a kind of wild guess with reference to the figure shown above.\n\n> resizing only small boxes can make a further boost\n\ninteresting. 👀"
        }
      ]
    },
    {
      "id": 979137,
      "postDate": "2020-08-20T16:42:10.857Z",
      "content": "<p>I had an interesting experience on this.</p>\n<p>These are my 2 final sub scores.</p>\n<table>\n<thead>\n<tr>\n<th>name</th>\n<th>private</th>\n<th>public</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>A</td>\n<td><strong>0.6707</strong></td>\n<td>0.7439</td>\n</tr>\n<tr>\n<td>B</td>\n<td>0.6558</td>\n<td><strong>0.7677</strong></td>\n</tr>\n</tbody>\n</table>\n<p>Only difference of these 2 models is bb size.<br>\nI rescaled predicted boxes in the post processing, modelB has 1.06 times bigger bbs than modelA.<br>\nSo I guess private bbs are smaller than public bbs.</p>\n<p>Your model might have predicted relatively large bbs for some reason, like my model B.</p>",
      "rawMarkdown": "I had an interesting experience on this.\n\nThese are my 2 final sub scores.\n\n| name|private|public|\n| ---- | ---- | ---- |\n| A |**0.6707**|0.7439|\n| B |0.6558|**0.7677**|\n\nOnly difference of these 2 models is bb size.\nI rescaled predicted boxes in the post processing, modelB has 1.06 times bigger bbs than modelA.\nSo I guess private bbs are smaller than public bbs.\n\nYour model might have predicted relatively large bbs for some reason, like my model B.",
      "votes": 4,
      "replies": [
        {
          "id": 979233,
          "postDate": "2020-08-20T17:50:35.217Z",
          "content": "<p>It is a really interesting.</p>\n<p>I also used clean dataset and original dataset.</p>\n<table>\n<thead>\n<tr>\n<th>name</th>\n<th>private</th>\n<th>public</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>A</td>\n<td>0.6444</td>\n<td>0.7545</td>\n</tr>\n<tr>\n<td>B</td>\n<td>0.6484</td>\n<td>0.7552</td>\n</tr>\n</tbody>\n</table>\n<p>Most of the difference is whether or not to delete wrong labels.<br>\nI cannot be verified since previous submissions cannot be viewed.</p>\n<p>So I only reply with my public/private lb. :)</p>",
          "rawMarkdown": "It is a really interesting.\n\nI also used clean dataset and original dataset.\n\n| name  | private  | public |\n| --- | --- | --- |\n| A | 0.6444 | 0.7545 |\n| B | 0.6484 | 0.7552 |\n\n\nMost of the difference is whether or not to delete wrong labels.\nI cannot be verified since previous submissions cannot be viewed.\n\nSo I only reply with my public/private lb. :)",
          "votes": 1
        },
        {
          "id": 979554,
          "postDate": "2020-08-21T00:06:03.477Z",
          "content": "<p><a href=\"https://www.kaggle.com/its7171\" target=\"_blank\">@its7171</a> <br>\nThanks for sharing the knowledge.<br>\nI now remember that the hosts said that the boxes will be tight to the wheat heads, which mean that simply shrinking the boxes will benefit. </p>\n<p>Since the late subs are open, I will test if shrinking will help me much (will report the results to you guys)</p>",
          "rawMarkdown": "@its7171 \nThanks for sharing the knowledge.\nI now remember that the hosts said that the boxes will be tight to the wheat heads, which mean that simply shrinking the boxes will benefit. \n\nSince the late subs are open, I will test if shrinking will help me much (will report the results to you guys)",
          "votes": 2
        },
        {
          "id": 979605,
          "postDate": "2020-08-21T01:48:48.943Z",
          "content": "<p><a href=\"https://www.kaggle.com/piantic\" target=\"_blank\">@piantic</a> <br>\nWe cleaned the mistaken labels too.<br>\nTop teams performed label cleaning on the train set by psuedo label for the wheats on the edges, thinking that was a good solution.</p>\n<p>See Liao and Miras solution for details ;)<br>\n<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/175961\" target=\"_blank\">https://www.kaggle.com/c/global-wheat-detection/discussion/175961</a><br>\n<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/172569\" target=\"_blank\">https://www.kaggle.com/c/global-wheat-detection/discussion/172569</a></p>",
          "rawMarkdown": "@piantic \nWe cleaned the mistaken labels too.\nTop teams performed label cleaning on the train set by psuedo label for the wheats on the edges, thinking that was a good solution.\n\nSee Liao and Miras solution for details ;)\nhttps://www.kaggle.com/c/global-wheat-detection/discussion/175961\nhttps://www.kaggle.com/c/global-wheat-detection/discussion/172569"
        }
      ]
    },
    {
      "id": 983572,
      "postDate": "2020-08-24T12:13:16.013Z",
      "content": "<p>Surprised to see people getting 0.71 with late subs.<br>\nWonder what kind of models are being used..?<br>\n<a href=\"https://kaggledb.com/c/global-wheat-detection/late\" target=\"_blank\">https://kaggledb.com/c/global-wheat-detection/late</a></p>",
      "rawMarkdown": "Surprised to see people getting 0.71 with late subs.\nWonder what kind of models are being used..?\nhttps://kaggledb.com/c/global-wheat-detection/late",
      "votes": 1,
      "replies": [
        {
          "id": 983579,
          "postDate": "2020-08-24T12:18:47.887Z",
          "content": "<p>Didn't know about kaggledb - thanks for sharing. Possibly these are YoloV5? Would be interesting if people want to share.</p>",
          "rawMarkdown": "Didn't know about kaggledb - thanks for sharing. Possibly these are YoloV5? Would be interesting if people want to share."
        }
      ]
    },
    {
      "id": 979596,
      "postDate": "2020-08-21T01:20:39.133Z",
      "content": "<p>I think pseudo labeling is useful.The main reason cause to the drop maybe dirty labels. Our team use models  to predict the trainning data,  average several model's results and ground truth.It helps us to get a stable score(It just like pseudo labeling).</p>",
      "rawMarkdown": "I think pseudo labeling is useful.The main reason cause to the drop maybe dirty labels. Our team use models  to predict the trainning data,  average several model's results and ground truth.It helps us to get a stable score(It just like pseudo labeling).",
      "votes": 1
    },
    {
      "id": 979240,
      "postDate": "2020-08-20T17:55:02.673Z",
      "content": "<p>Very likely you overfitted dirty labels, my score increased by around 3% points on both clean public and private and I used a clean dataset. To put this into perspective, I was placed around 760 on the dirty private leaderboard. I made some kind of mistake in my notebook so I wasn't ever able to get Pseudo labeling works so I cannot speak to that. </p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F1110596%2F5ac3a9619d8154f90c20a970ec32b001%2Fscores.png?generation=1597945900443084&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "Very likely you overfitted dirty labels, my score increased by around 3% points on both clean public and private and I used a clean dataset. To put this into perspective, I was placed around 760 on the dirty private leaderboard. I made some kind of mistake in my notebook so I wasn't ever able to get Pseudo labeling works so I cannot speak to that. \n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F1110596%2F5ac3a9619d8154f90c20a970ec32b001%2Fscores.png?generation=1597945900443084&alt=media)",
      "votes": -2
    },
    {
      "id": 979266,
      "postDate": "2020-08-20T18:21:42.333Z",
      "rawMarkdown": "",
      "votes": -2,
      "isDeleted": true
    }
  ],
  "comments": [
    {
      "id": 980325,
      "author_name": "tito",
      "author_url": "",
      "post_date": "2020-08-21T14:09:34.780000",
      "content": "<p>Thank you for sharing the experiment results.<br>\nIt's interesting to shrink bbs for psuedo labeling.<br>\nScore looks very sensitive to the shrink scale and this results consistent with my experience.</p>\n<p>This graph is shrink scale vs score for my 5CV(source split).<br>\nEven for source split 5 CV, the optimal shrink size is not zero.<br>\nAnd best scores differed greatly at its optimal shrink scale.</p>\n<p>So it was very important to select optimal shrink scale for private, which we never know beforehand. :)</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F548996%2F552409d5a24798a66ae71cf3e382ae19%2F.png?generation=1598018273243440&amp;alt=media\" alt=\"shrink scale vs score\"></p>",
      "votes": 3,
      "replies": [
        {
          "id": 982284,
          "author_name": "arutema47",
          "author_url": "",
          "post_date": "2020-08-23T08:13:33.287000",
          "content": "<blockquote>\n  <p>So it was very important to select optimal shrink scale for private, which we never know beforehand. :)</p>\n</blockquote>\n<p><a href=\"https://www.kaggle.com/its7171\" target=\"_blank\">@its7171</a> As you mention, the challenge was that we never know the optimal parameter for shrinking. BTW, how did you set your shrink scale?</p>\n<p>One step I could have taken was labeling the test set (or part of the train set) manually and look at the mAP dependency on the shrink size. But I didn't think the shrinking would have done such a impact to PB, so I didn't dig much further (which lead to the shake down.. :(</p>\n<p>My teammate also found an interesting solution, where resizing only small boxes can make a further boost.<br>\n<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/176732\" target=\"_blank\">https://www.kaggle.com/c/global-wheat-detection/discussion/176732</a></p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 982808,
          "author_name": "tito",
          "author_url": "",
          "post_date": "2020-08-23T17:15:19.373000",
          "content": "<p>I set the shrink scale that gives the best public score for one sub, and set 6% smaller shrink scale for the another sub.<br>\nThis 6% is a kind of wild guess with reference to the figure shown above.</p>\n<blockquote>\n  <p>resizing only small boxes can make a further boost</p>\n</blockquote>\n<p>interesting. 👀</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 979137,
      "author_name": "tito",
      "author_url": "",
      "post_date": "2020-08-20T16:42:10.857000",
      "content": "<p>I had an interesting experience on this.</p>\n<p>These are my 2 final sub scores.</p>\n<table>\n<thead>\n<tr>\n<th>name</th>\n<th>private</th>\n<th>public</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>A</td>\n<td><strong>0.6707</strong></td>\n<td>0.7439</td>\n</tr>\n<tr>\n<td>B</td>\n<td>0.6558</td>\n<td><strong>0.7677</strong></td>\n</tr>\n</tbody>\n</table>\n<p>Only difference of these 2 models is bb size.<br>\nI rescaled predicted boxes in the post processing, modelB has 1.06 times bigger bbs than modelA.<br>\nSo I guess private bbs are smaller than public bbs.</p>\n<p>Your model might have predicted relatively large bbs for some reason, like my model B.</p>",
      "votes": 4,
      "replies": [
        {
          "id": 979233,
          "author_name": "Heroseo",
          "author_url": "",
          "post_date": "2020-08-20T17:50:35.217000",
          "content": "<p>It is a really interesting.</p>\n<p>I also used clean dataset and original dataset.</p>\n<table>\n<thead>\n<tr>\n<th>name</th>\n<th>private</th>\n<th>public</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>A</td>\n<td>0.6444</td>\n<td>0.7545</td>\n</tr>\n<tr>\n<td>B</td>\n<td>0.6484</td>\n<td>0.7552</td>\n</tr>\n</tbody>\n</table>\n<p>Most of the difference is whether or not to delete wrong labels.<br>\nI cannot be verified since previous submissions cannot be viewed.</p>\n<p>So I only reply with my public/private lb. :)</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 979554,
          "author_name": "arutema47",
          "author_url": "",
          "post_date": "2020-08-21T00:06:03.477000",
          "content": "<p><a href=\"https://www.kaggle.com/its7171\" target=\"_blank\">@its7171</a> <br>\nThanks for sharing the knowledge.<br>\nI now remember that the hosts said that the boxes will be tight to the wheat heads, which mean that simply shrinking the boxes will benefit. </p>\n<p>Since the late subs are open, I will test if shrinking will help me much (will report the results to you guys)</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 979605,
          "author_name": "arutema47",
          "author_url": "",
          "post_date": "2020-08-21T01:48:48.943000",
          "content": "<p><a href=\"https://www.kaggle.com/piantic\" target=\"_blank\">@piantic</a> <br>\nWe cleaned the mistaken labels too.<br>\nTop teams performed label cleaning on the train set by psuedo label for the wheats on the edges, thinking that was a good solution.</p>\n<p>See Liao and Miras solution for details ;)<br>\n<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/175961\" target=\"_blank\">https://www.kaggle.com/c/global-wheat-detection/discussion/175961</a><br>\n<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/172569\" target=\"_blank\">https://www.kaggle.com/c/global-wheat-detection/discussion/172569</a></p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 983572,
      "author_name": "arutema47",
      "author_url": "",
      "post_date": "2020-08-24T12:13:16.013000",
      "content": "<p>Surprised to see people getting 0.71 with late subs.<br>\nWonder what kind of models are being used..?<br>\n<a href=\"https://kaggledb.com/c/global-wheat-detection/late\" target=\"_blank\">https://kaggledb.com/c/global-wheat-detection/late</a></p>",
      "votes": 1,
      "replies": [
        {
          "id": 983579,
          "author_name": "MichaelP",
          "author_url": "",
          "post_date": "2020-08-24T12:18:47.887000",
          "content": "<p>Didn't know about kaggledb - thanks for sharing. Possibly these are YoloV5? Would be interesting if people want to share.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 979596,
      "author_name": "Dapeng",
      "author_url": "",
      "post_date": "2020-08-21T01:20:39.133000",
      "content": "<p>I think pseudo labeling is useful.The main reason cause to the drop maybe dirty labels. Our team use models  to predict the trainning data,  average several model's results and ground truth.It helps us to get a stable score(It just like pseudo labeling).</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 979240,
      "author_name": "Max",
      "author_url": "",
      "post_date": "2020-08-20T17:55:02.673000",
      "content": "<p>Very likely you overfitted dirty labels, my score increased by around 3% points on both clean public and private and I used a clean dataset. To put this into perspective, I was placed around 760 on the dirty private leaderboard. I made some kind of mistake in my notebook so I wasn't ever able to get Pseudo labeling works so I cannot speak to that. </p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F1110596%2F5ac3a9619d8154f90c20a970ec32b001%2Fscores.png?generation=1597945900443084&amp;alt=media\" alt=\"\"></p>",
      "votes": -2,
      "replies": []
    },
    {
      "id": 979266,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-20T18:21:42.333000",
      "content": "",
      "votes": -2,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "978951": "This competition was unique, since we experienced private set shakedowns.. lol\nI was wondering why a large shakeup occurred by the cleaned private set.\nOur score went down from 0.70 to 0.65, which is extremely large for bounding box correction. (But everyone had a score drop of 0.03-0.05)\nLittle can be known, since most of our subs were disabled.\nMystery can be reviled after late subs are open, but would be interesting to discuss on this.\n\nSome cause for this might be\n* our model was overfitting against the dirty labels\n(Many top teams trained with cleaned or pseudo labeled training set)\n* Pseudo labeling did some bad..?\n* overfitted our threshold setting to LB\n\nWould be helpful if anyone else insights! Thx!\n\n# Experiments\nLate subs are open!\nBased on @its7171 's insights, I did some experiments on shrinking bb as post processing.\nThe model is based on my best single model for fast experiments.\n\n## Simply shrinking boxes for post-processing\nLooks like shrinking 0.96x boosts the private +0.012.\n\n| shrink ratio         | 1     |  0.96 | 0.94  | 0.92  | 0.9   |\n|:-------:|-------|:-----:|-------|-------|-------|\n|  Public | 0.756 | 0.732 | 0.729 | 0.687 | 0.606 |\n| Private | 0.642 | **0.654** | 0.636 | 0.625 | 0.573 |\n\n## Shrinking boxes for Psuedo Labeling data\nI shrinked boxes of the train data as well.\nPsuedo Label for 3 epochs with the best single model.\nNote that the boxes are **not** shrinked during the final inference.\n\nThe ratio is 0.96x, resulting in a **+0.027** boost.\n\n| Shrink on PL? | No     |   Yes(WBF IoU threshold=0.42)  | Yes (WBF IoU threshold=0.5)|\n|:-------------:|--------|:------:|:------:|\n|     Public    | 0.7561 | 0.7378 |0.7402|\n|    Private    | 0.6428 | 0.6626  |**0.6700**|",
    "980325": "Thank you for sharing the experiment results.\nIt's interesting to shrink bbs for psuedo labeling.\nScore looks very sensitive to the shrink scale and this results consistent with my experience.\n\nThis graph is shrink scale vs score for my 5CV(source split).\nEven for source split 5 CV, the optimal shrink size is not zero.\nAnd best scores differed greatly at its optimal shrink scale.\n\nSo it was very important to select optimal shrink scale for private, which we never know beforehand. :)\n\n![shrink scale vs score](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F548996%2F552409d5a24798a66ae71cf3e382ae19%2F.png?generation=1598018273243440&alt=media)",
    "979137": "I had an interesting experience on this.\n\nThese are my 2 final sub scores.\n\n| name|private|public|\n| ---- | ---- | ---- |\n| A |**0.6707**|0.7439|\n| B |0.6558|**0.7677**|\n\nOnly difference of these 2 models is bb size.\nI rescaled predicted boxes in the post processing, modelB has 1.06 times bigger bbs than modelA.\nSo I guess private bbs are smaller than public bbs.\n\nYour model might have predicted relatively large bbs for some reason, like my model B.",
    "983572": "Surprised to see people getting 0.71 with late subs.\nWonder what kind of models are being used..?\nhttps://kaggledb.com/c/global-wheat-detection/late",
    "979596": "I think pseudo labeling is useful.The main reason cause to the drop maybe dirty labels. Our team use models  to predict the trainning data,  average several model's results and ground truth.It helps us to get a stable score(It just like pseudo labeling).",
    "979240": "Very likely you overfitted dirty labels, my score increased by around 3% points on both clean public and private and I used a clean dataset. To put this into perspective, I was placed around 760 on the dirty private leaderboard. I made some kind of mistake in my notebook so I wasn't ever able to get Pseudo labeling works so I cannot speak to that. \n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F1110596%2F5ac3a9619d8154f90c20a970ec32b001%2Fscores.png?generation=1597945900443084&alt=media)",
    "979266": ""
  }
}