{
  "id": 172441,
  "title": "Some interesting things I tried",
  "url": "/competitions/global-wheat-detection/discussion/172441",
  "author_name": "",
  "post_date": "2020-08-05T04:52:13.146334500Z",
  "votes": 2,
  "comment_count": 1,
  "views": 0,
  "content": "<ol>\n<li><p>I saw that my model was making blatantly wrong predictions for some of the predictions, so I trained a LeNet on the RoI-Aligned crops of boxes to do a 2-class classification to try to eliminate them. For negative samples, I recreated the distribution in the paper and randomly sampled boxes that does not overlap greatly with the ground truth. Though I was able to get 0.985+ AUC on the validation set, it still cannot reject those blatantly wrong predictions on my validation set.</p></li>\n<li><p>Train sources differ by such a significant factor that you can train a classifier that reaches 1.00 accuracy on the validation set. Here's a T-SNE plot of a EfficientNet-B2 (noisy student pretrained) trained with CrossEntropy+CircleLoss:</p></li>\n</ol>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1330987%2Fd9c206558a53cdbe37c0989b0ce4fa06%2Fwheat.png?generation=1596603113323955&amp;alt=media\" alt=\"\"></p>",
  "messages": [
    {
      "id": "958624",
      "postDate": "08/05/2020 04:52:13",
      "content": "<ol>\n<li><p>I saw that my model was making blatantly wrong predictions for some of the predictions, so I trained a LeNet on the RoI-Aligned crops of boxes to do a 2-class classification to try to eliminate them. For negative samples, I recreated the distribution in the paper and randomly sampled boxes that does not overlap greatly with the ground truth. Though I was able to get 0.985+ AUC on the validation set, it still cannot reject those blatantly wrong predictions on my validation set.</p></li>\n<li><p>Train sources differ by such a significant factor that you can train a classifier that reaches 1.00 accuracy on the validation set. Here's a T-SNE plot of a EfficientNet-B2 (noisy student pretrained) trained with CrossEntropy+CircleLoss:</p></li>\n</ol>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1330987%2Fd9c206558a53cdbe37c0989b0ce4fa06%2Fwheat.png?generation=1596603113323955&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "1. I saw that my model was making blatantly wrong predictions for some of the predictions, so I trained a LeNet on the RoI-Aligned crops of boxes to do a 2-class classification to try to eliminate them. For negative samples, I recreated the distribution in the paper and randomly sampled boxes that does not overlap greatly with the ground truth. Though I was able to get 0.985+ AUC on the validation set, it still cannot reject those blatantly wrong predictions on my validation set.\n\n2. Train sources differ by such a significant factor that you can train a classifier that reaches 1.00 accuracy on the validation set. Here's a T-SNE plot of a EfficientNet-B2 (noisy student pretrained) trained with CrossEntropy+CircleLoss:\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1330987%2Fd9c206558a53cdbe37c0989b0ce4fa06%2Fwheat.png?generation=1596603113323955&amp;alt=media)",
      "votes": null
    },
    {
      "id": "958661",
      "postDate": "08/05/2020 05:26:58",
      "content": "<p>I did a similar thing using tSNE. I basically passed the images through a ResNet backbone to get their feature vector. Then reduced the dimensionality using tSNE and clustered the patches. I used it in two places in my pipeline:\n1. To balance my validation set, I stratified by the cluster ids to get an even distribution of images in both train and val sets.\n2. To separate the test data into clusters and perform pseudolabeling on each cluster individually. It did help but I was hoping for a bigger boost.</p>\n\n<p>Heres an example of my tSNE + Clustering\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F846065%2Fa30f734cd49bde680778cc40596dc36c%2Ftsne.jpg?generation=1596605194356813&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "I did a similar thing using tSNE. I basically passed the images through a ResNet backbone to get their feature vector. Then reduced the dimensionality using tSNE and clustered the patches. I used it in two places in my pipeline:\n1. To balance my validation set, I stratified by the cluster ids to get an even distribution of images in both train and val sets.\n2. To separate the test data into clusters and perform pseudolabeling on each cluster individually. It did help but I was hoping for a bigger boost.\n\nHeres an example of my tSNE + Clustering\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F846065%2Fa30f734cd49bde680778cc40596dc36c%2Ftsne.jpg?generation=1596605194356813&amp;alt=media)",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 958661,
      "author_name": "matthewmasters",
      "author_url": "",
      "post_date": "08/05/2020 05:26:58",
      "content": "<p>I did a similar thing using tSNE. I basically passed the images through a ResNet backbone to get their feature vector. Then reduced the dimensionality using tSNE and clustered the patches. I used it in two places in my pipeline:\n1. To balance my validation set, I stratified by the cluster ids to get an even distribution of images in both train and val sets.\n2. To separate the test data into clusters and perform pseudolabeling on each cluster individually. It did help but I was hoping for a bigger boost.</p>\n\n<p>Heres an example of my tSNE + Clustering\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F846065%2Fa30f734cd49bde680778cc40596dc36c%2Ftsne.jpg?generation=1596605194356813&amp;alt=media\" alt=\"\"></p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "958624": "1. I saw that my model was making blatantly wrong predictions for some of the predictions, so I trained a LeNet on the RoI-Aligned crops of boxes to do a 2-class classification to try to eliminate them. For negative samples, I recreated the distribution in the paper and randomly sampled boxes that does not overlap greatly with the ground truth. Though I was able to get 0.985+ AUC on the validation set, it still cannot reject those blatantly wrong predictions on my validation set.\n\n2. Train sources differ by such a significant factor that you can train a classifier that reaches 1.00 accuracy on the validation set. Here's a T-SNE plot of a EfficientNet-B2 (noisy student pretrained) trained with CrossEntropy+CircleLoss:\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1330987%2Fd9c206558a53cdbe37c0989b0ce4fa06%2Fwheat.png?generation=1596603113323955&amp;alt=media)",
    "958661": "I did a similar thing using tSNE. I basically passed the images through a ResNet backbone to get their feature vector. Then reduced the dimensionality using tSNE and clustered the patches. I used it in two places in my pipeline:\n1. To balance my validation set, I stratified by the cluster ids to get an even distribution of images in both train and val sets.\n2. To separate the test data into clusters and perform pseudolabeling on each cluster individually. It did help but I was hoping for a bigger boost.\n\nHeres an example of my tSNE + Clustering\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F846065%2Fa30f734cd49bde680778cc40596dc36c%2Ftsne.jpg?generation=1596605194356813&amp;alt=media)"
  },
  "source": "meta"
}