{
  "id": 279826,
  "title": "[9th] Simple and kinda stable approach",
  "url": "/competitions/rsna-miccai-brain-tumor-radiogenomic-classification/discussion/279826",
  "author_name": "Vadim Timakin",
  "post_date": "2021-10-19T07:52:18.106000",
  "votes": 31,
  "comment_count": 14,
  "views": 0,
  "content": "<p>Hello everyone! First of all, I would like to thank the organizers of the competition, as a result of it I became much closer to my goal of getting the Kaggle Competition Master rank at the age of 17.</p>\n<p>I started solving this competition right after the previous one two weeks before the end, so I didn't have time to write my pipeline from scratch as usual. Instead of this I picked <a href=\"https://www.kaggle.com/rluethy/efficientnet3d-with-one-mri-type\" target=\"_blank\">this</a> notebook as a base. I spent 2 weeks trying different experimental approaches. I tried to solve this problem as a segmentation or detection one, I was taking pretrained models and replacing their head to classificational one. None of these ideas ever produced an acceptable leaderboard score. </p>\n<p>At the same time, I was training Efficientnet3D. Since I didn't have a lot of hardware and time, I used a small image size - 224. Instead of modeling or applying augmentations as usual, I decided to spend the time to check how stable my solution is. As an experiment, I decided to run my solution 10 times on different seeds (the training takes less than 3 hours on RTX 3080), this was the first competition where I did something like this. After already 5 such trainings the CV range was equaled to [0.5, 0.54], so I interrupted this. There were a few days left until the end of the competition and I decided to train the model on a larger image size and check the stability of this solution in the same way, so I switched the image size from 224 to 384. This time CV range after 5 trainings was around [0.52, 0.55], which I found quite interesting, because this supposed to mean that larger image size produces a better stability. </p>\n<p>Finally, I picked an ensemble of these 5 trainings (5 folds each one) as my final submission. It scored  0.66701 on public and 0.60186 on private, which is better than previous submission (based on single training on 224 image size) on 0.07 and 0.03 respectively. Maybe greater image size would produce even higher and stable score, but I didn't have time to train it. I only watched the validation and didn't look at the leaderboard at all, I made a submission of only the two best validation solutions so that I didn't have to choose. </p>\n<p>The reason for my personal shake-up lies in the fact that my best validation solution was also the most stable (as tested) at the same time. I made it as stable as I could, but I clearly understand that it's possible to get the same score by just using a random predictions.</p>\n<p>For those who were solving, but in the end didn't receive a medal, firstly I express my great respect to you, and secondly I ask you not to get upset. I know how it feels, I used to solve one competition for 3 months, but I didn't even get a medal because of noisy leaderboard. You can check this solution <a href=\"https://www.kaggle.com/c/cassava-leaf-disease-classification/discussion/220586#1209522\" target=\"_blank\">here</a>. I wrote it when I was 16 years old and and at that time it was my best solution.</p>\n<p>I wish you good luck at the next competitions, see you there!</p>",
  "messages": [
    {
      "id": 1549791,
      "postDate": "2021-10-19T07:52:18.107Z",
      "content": "<p>Hello everyone! First of all, I would like to thank the organizers of the competition, as a result of it I became much closer to my goal of getting the Kaggle Competition Master rank at the age of 17.</p>\n<p>I started solving this competition right after the previous one two weeks before the end, so I didn't have time to write my pipeline from scratch as usual. Instead of this I picked <a href=\"https://www.kaggle.com/rluethy/efficientnet3d-with-one-mri-type\" target=\"_blank\">this</a> notebook as a base. I spent 2 weeks trying different experimental approaches. I tried to solve this problem as a segmentation or detection one, I was taking pretrained models and replacing their head to classificational one. None of these ideas ever produced an acceptable leaderboard score. </p>\n<p>At the same time, I was training Efficientnet3D. Since I didn't have a lot of hardware and time, I used a small image size - 224. Instead of modeling or applying augmentations as usual, I decided to spend the time to check how stable my solution is. As an experiment, I decided to run my solution 10 times on different seeds (the training takes less than 3 hours on RTX 3080), this was the first competition where I did something like this. After already 5 such trainings the CV range was equaled to [0.5, 0.54], so I interrupted this. There were a few days left until the end of the competition and I decided to train the model on a larger image size and check the stability of this solution in the same way, so I switched the image size from 224 to 384. This time CV range after 5 trainings was around [0.52, 0.55], which I found quite interesting, because this supposed to mean that larger image size produces a better stability. </p>\n<p>Finally, I picked an ensemble of these 5 trainings (5 folds each one) as my final submission. It scored  0.66701 on public and 0.60186 on private, which is better than previous submission (based on single training on 224 image size) on 0.07 and 0.03 respectively. Maybe greater image size would produce even higher and stable score, but I didn't have time to train it. I only watched the validation and didn't look at the leaderboard at all, I made a submission of only the two best validation solutions so that I didn't have to choose. </p>\n<p>The reason for my personal shake-up lies in the fact that my best validation solution was also the most stable (as tested) at the same time. I made it as stable as I could, but I clearly understand that it's possible to get the same score by just using a random predictions.</p>\n<p>For those who were solving, but in the end didn't receive a medal, firstly I express my great respect to you, and secondly I ask you not to get upset. I know how it feels, I used to solve one competition for 3 months, but I didn't even get a medal because of noisy leaderboard. You can check this solution <a href=\"https://www.kaggle.com/c/cassava-leaf-disease-classification/discussion/220586#1209522\" target=\"_blank\">here</a>. I wrote it when I was 16 years old and and at that time it was my best solution.</p>\n<p>I wish you good luck at the next competitions, see you there!</p>",
      "rawMarkdown": "Hello everyone! First of all, I would like to thank the organizers of the competition, as a result of it I became much closer to my goal of getting the Kaggle Competition Master rank at the age of 17.\n\nI started solving this competition right after the previous one two weeks before the end, so I didn't have time to write my pipeline from scratch as usual. Instead of this I picked [this](https://www.kaggle.com/rluethy/efficientnet3d-with-one-mri-type) notebook as a base. I spent 2 weeks trying different experimental approaches. I tried to solve this problem as a segmentation or detection one, I was taking pretrained models and replacing their head to classificational one. None of these ideas ever produced an acceptable leaderboard score. \n\nAt the same time, I was training Efficientnet3D. Since I didn't have a lot of hardware and time, I used a small image size - 224. Instead of modeling or applying augmentations as usual, I decided to spend the time to check how stable my solution is. As an experiment, I decided to run my solution 10 times on different seeds (the training takes less than 3 hours on RTX 3080), this was the first competition where I did something like this. After already 5 such trainings the CV range was equaled to [0.5, 0.54], so I interrupted this. There were a few days left until the end of the competition and I decided to train the model on a larger image size and check the stability of this solution in the same way, so I switched the image size from 224 to 384. This time CV range after 5 trainings was around [0.52, 0.55], which I found quite interesting, because this supposed to mean that larger image size produces a better stability. \n\nFinally, I picked an ensemble of these 5 trainings (5 folds each one) as my final submission. It scored  0.66701 on public and 0.60186 on private, which is better than previous submission (based on single training on 224 image size) on 0.07 and 0.03 respectively. Maybe greater image size would produce even higher and stable score, but I didn't have time to train it. I only watched the validation and didn't look at the leaderboard at all, I made a submission of only the two best validation solutions so that I didn't have to choose. \n\nThe reason for my personal shake-up lies in the fact that my best validation solution was also the most stable (as tested) at the same time. I made it as stable as I could, but I clearly understand that it's possible to get the same score by just using a random predictions.\n\nFor those who were solving, but in the end didn't receive a medal, firstly I express my great respect to you, and secondly I ask you not to get upset. I know how it feels, I used to solve one competition for 3 months, but I didn't even get a medal because of noisy leaderboard. You can check this solution [here](https://www.kaggle.com/c/cassava-leaf-disease-classification/discussion/220586#1209522). I wrote it when I was 16 years old and and at that time it was my best solution.\n\nI wish you good luck at the next competitions, see you there!",
      "votes": 31
    },
    {
      "id": 1556704,
      "postDate": "2021-10-25T05:30:53.320Z",
      "content": "<p><a href=\"https://www.kaggle.com/vadimtimakin\" target=\"_blank\">@vadimtimakin</a> Congrats! <br>\nReally liked the approach for checking the stability of the solution.</p>",
      "rawMarkdown": "@vadimtimakin Congrats! \nReally liked the approach for checking the stability of the solution.",
      "votes": 5
    },
    {
      "id": 1557251,
      "postDate": "2021-10-25T14:30:11.907Z",
      "content": "<p>congratulatios</p>",
      "rawMarkdown": "congratulatios\n",
      "votes": 1
    },
    {
      "id": 1551182,
      "postDate": "2021-10-20T11:41:00.337Z",
      "content": "<p>Congratulations!<br>\nThank you for your sharing!</p>",
      "rawMarkdown": "Congratulations!\nThank you for your sharing!",
      "votes": 1
    },
    {
      "id": 1551116,
      "postDate": "2021-10-20T10:17:23.607Z",
      "content": "<p>Congratulations! <br>\nAnd thank you for sharing your approach.</p>",
      "rawMarkdown": "Congratulations! \nAnd thank you for sharing your approach.",
      "votes": 1
    },
    {
      "id": 1550276,
      "postDate": "2021-10-19T15:15:25.807Z",
      "content": "<p>Congratulations!</p>",
      "rawMarkdown": "Congratulations!",
      "votes": 1
    },
    {
      "id": 1550245,
      "postDate": "2021-10-19T14:53:18.773Z",
      "content": "<p>Красава!     </p>",
      "rawMarkdown": "Красава!     ",
      "votes": 1
    },
    {
      "id": 1550152,
      "postDate": "2021-10-19T13:32:26.393Z",
      "content": "<p>Congrats to you!</p>",
      "rawMarkdown": "Congrats to you!",
      "votes": 1
    },
    {
      "id": 1585212,
      "postDate": "2021-11-17T07:12:48.680Z",
      "content": "<p>My congratulations, Vadim! Your CV range is quite small, but what about folds' scores in one CV?</p>",
      "rawMarkdown": "My congratulations, Vadim! Your CV range is quite small, but what about folds' scores in one CV?",
      "replies": [
        {
          "id": 1585845,
          "postDate": "2021-11-17T15:39:46.410Z",
          "content": "<p>They have almost the same range</p>",
          "rawMarkdown": "They have almost the same range",
          "votes": 1
        },
        {
          "id": 1586065,
          "postDate": "2021-11-17T19:21:26.073Z",
          "content": "<p>I understand, but your one CV in one seed was stable?</p>",
          "rawMarkdown": "I understand, but your one CV in one seed was stable?"
        },
        {
          "id": 1586066,
          "postDate": "2021-11-17T19:22:44.600Z",
          "content": "<p>So is the CV's dispersion small?</p>",
          "rawMarkdown": "So is the CV's dispersion small?"
        },
        {
          "id": 1586074,
          "postDate": "2021-11-17T19:30:23.303Z",
          "content": "<p>No, it wasn't. If the overall range is equaled to 0.14, a single CV range is equaled to 0.09-0.12.</p>",
          "rawMarkdown": "No, it wasn't. If the overall range is equaled to 0.14, a single CV range is equaled to 0.09-0.12.",
          "votes": 1
        },
        {
          "id": 1586088,
          "postDate": "2021-11-17T19:42:24.077Z",
          "content": "<p>Okay, thank you! Your solution is really quite stable! 👍. Upvoted!</p>",
          "rawMarkdown": "Okay, thank you! Your solution is really quite stable! 👍. Upvoted!\n"
        }
      ]
    },
    {
      "id": 1557372,
      "postDate": "2021-10-25T16:10:52.467Z",
      "rawMarkdown": "",
      "votes": 1,
      "isDeleted": true
    }
  ],
  "comments": [
    {
      "id": 1556704,
      "author_name": "Pranshu15",
      "author_url": "",
      "post_date": "2021-10-25T05:30:53.320000",
      "content": "<p><a href=\"https://www.kaggle.com/vadimtimakin\" target=\"_blank\">@vadimtimakin</a> Congrats! <br>\nReally liked the approach for checking the stability of the solution.</p>",
      "votes": 5,
      "replies": []
    },
    {
      "id": 1557251,
      "author_name": "GALOUL Yacine",
      "author_url": "",
      "post_date": "2021-10-25T14:30:11.907000",
      "content": "<p>congratulatios</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1551182,
      "author_name": "Diep Tran",
      "author_url": "",
      "post_date": "2021-10-20T11:41:00.337000",
      "content": "<p>Congratulations!<br>\nThank you for your sharing!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1551116,
      "author_name": "Aleks Mashanski",
      "author_url": "",
      "post_date": "2021-10-20T10:17:23.607000",
      "content": "<p>Congratulations! <br>\nAnd thank you for sharing your approach.</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1550276,
      "author_name": "atfujita",
      "author_url": "",
      "post_date": "2021-10-19T15:15:25.807000",
      "content": "<p>Congratulations!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1550245,
      "author_name": "Radmir Zosimov",
      "author_url": "",
      "post_date": "2021-10-19T14:53:18.773000",
      "content": "<p>Красава!     </p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1550152,
      "author_name": "Swikwislkdjc",
      "author_url": "",
      "post_date": "2021-10-19T13:32:26.393000",
      "content": "<p>Congrats to you!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1585212,
      "author_name": "Vadim Irtlach",
      "author_url": "",
      "post_date": "2021-11-17T07:12:48.680000",
      "content": "<p>My congratulations, Vadim! Your CV range is quite small, but what about folds' scores in one CV?</p>",
      "votes": 0,
      "replies": [
        {
          "id": 1585845,
          "author_name": "Vadim Timakin",
          "author_url": "",
          "post_date": "2021-11-17T15:39:46.410000",
          "content": "<p>They have almost the same range</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1586065,
          "author_name": "Vadim Irtlach",
          "author_url": "",
          "post_date": "2021-11-17T19:21:26.073000",
          "content": "<p>I understand, but your one CV in one seed was stable?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1586066,
          "author_name": "Vadim Irtlach",
          "author_url": "",
          "post_date": "2021-11-17T19:22:44.600000",
          "content": "<p>So is the CV's dispersion small?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1586074,
          "author_name": "Vadim Timakin",
          "author_url": "",
          "post_date": "2021-11-17T19:30:23.303000",
          "content": "<p>No, it wasn't. If the overall range is equaled to 0.14, a single CV range is equaled to 0.09-0.12.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1586088,
          "author_name": "Vadim Irtlach",
          "author_url": "",
          "post_date": "2021-11-17T19:42:24.077000",
          "content": "<p>Okay, thank you! Your solution is really quite stable! 👍. Upvoted!</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 1557372,
      "author_name": "",
      "author_url": "",
      "post_date": "2021-10-25T16:10:52.467000",
      "content": "",
      "votes": 1,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "1549791": "Hello everyone! First of all, I would like to thank the organizers of the competition, as a result of it I became much closer to my goal of getting the Kaggle Competition Master rank at the age of 17.\n\nI started solving this competition right after the previous one two weeks before the end, so I didn't have time to write my pipeline from scratch as usual. Instead of this I picked [this](https://www.kaggle.com/rluethy/efficientnet3d-with-one-mri-type) notebook as a base. I spent 2 weeks trying different experimental approaches. I tried to solve this problem as a segmentation or detection one, I was taking pretrained models and replacing their head to classificational one. None of these ideas ever produced an acceptable leaderboard score. \n\nAt the same time, I was training Efficientnet3D. Since I didn't have a lot of hardware and time, I used a small image size - 224. Instead of modeling or applying augmentations as usual, I decided to spend the time to check how stable my solution is. As an experiment, I decided to run my solution 10 times on different seeds (the training takes less than 3 hours on RTX 3080), this was the first competition where I did something like this. After already 5 such trainings the CV range was equaled to [0.5, 0.54], so I interrupted this. There were a few days left until the end of the competition and I decided to train the model on a larger image size and check the stability of this solution in the same way, so I switched the image size from 224 to 384. This time CV range after 5 trainings was around [0.52, 0.55], which I found quite interesting, because this supposed to mean that larger image size produces a better stability. \n\nFinally, I picked an ensemble of these 5 trainings (5 folds each one) as my final submission. It scored  0.66701 on public and 0.60186 on private, which is better than previous submission (based on single training on 224 image size) on 0.07 and 0.03 respectively. Maybe greater image size would produce even higher and stable score, but I didn't have time to train it. I only watched the validation and didn't look at the leaderboard at all, I made a submission of only the two best validation solutions so that I didn't have to choose. \n\nThe reason for my personal shake-up lies in the fact that my best validation solution was also the most stable (as tested) at the same time. I made it as stable as I could, but I clearly understand that it's possible to get the same score by just using a random predictions.\n\nFor those who were solving, but in the end didn't receive a medal, firstly I express my great respect to you, and secondly I ask you not to get upset. I know how it feels, I used to solve one competition for 3 months, but I didn't even get a medal because of noisy leaderboard. You can check this solution [here](https://www.kaggle.com/c/cassava-leaf-disease-classification/discussion/220586#1209522). I wrote it when I was 16 years old and and at that time it was my best solution.\n\nI wish you good luck at the next competitions, see you there!",
    "1556704": "@vadimtimakin Congrats! \nReally liked the approach for checking the stability of the solution.",
    "1557251": "congratulatios\n",
    "1551182": "Congratulations!\nThank you for your sharing!",
    "1551116": "Congratulations! \nAnd thank you for sharing your approach.",
    "1550276": "Congratulations!",
    "1550245": "Красава!     ",
    "1550152": "Congrats to you!",
    "1585212": "My congratulations, Vadim! Your CV range is quite small, but what about folds' scores in one CV?",
    "1557372": ""
  }
}