{
  "id": 492327,
  "title": "This competition is in a class of its own when it comes to 'weird things that work\"",
  "url": "/competitions/hms-harmful-brain-activity-classification/discussion/492327",
  "author_name": "",
  "post_date": "2024-04-09T09:30:18.736036900Z",
  "votes": 13,
  "comment_count": 10,
  "views": 0,
  "content": "<p>One piece of advice I always offer to deep-learning total beginners is that you can never predict what will work and what won't. Sometimes, the most logical and elegant ideas underperform, while an unexpected bug in your code could unexpectedly boost your performance. And let me tell you, this competition absolutely takes the cake when it comes to showcasing methods that defy expectations but somehow succeed.<br>\nI was utterly amazed to discover that stacking spectrograms into a single-channel image yields better results than treating them as separate channels. How can this be? You would think that separate channels, with their precise alignment along both temporal and frequency axes, would be more effective. Yet, they're not.<br>\nDiving into other competitors' approaches, I realized my perspective on data processing wasn't as flexible as it needed to be. The standout strategy for me in this competition was the innovative approach of treating EEG data directly as an image, skipping the Mel Spectrogram/STFT process altogether. Like was done here:<br>\n<a href=\"https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/492254\" target=\"_blank\">https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/492254</a> <br>\nand here<br>\n<a href=\"https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/492281\" target=\"_blank\">https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/492281</a><br>\nWas this competition as surprising for you? What things that underperformed or outperformed your expectations?</p>",
  "messages": [
    {
      "id": "2743210",
      "postDate": "04/09/2024 09:30:18",
      "content": "<p>One piece of advice I always offer to deep-learning total beginners is that you can never predict what will work and what won't. Sometimes, the most logical and elegant ideas underperform, while an unexpected bug in your code could unexpectedly boost your performance. And let me tell you, this competition absolutely takes the cake when it comes to showcasing methods that defy expectations but somehow succeed.<br>\nI was utterly amazed to discover that stacking spectrograms into a single-channel image yields better results than treating them as separate channels. How can this be? You would think that separate channels, with their precise alignment along both temporal and frequency axes, would be more effective. Yet, they're not.<br>\nDiving into other competitors' approaches, I realized my perspective on data processing wasn't as flexible as it needed to be. The standout strategy for me in this competition was the innovative approach of treating EEG data directly as an image, skipping the Mel Spectrogram/STFT process altogether. Like was done here:<br>\n<a href=\"https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/492254\" target=\"_blank\">https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/492254</a> <br>\nand here<br>\n<a href=\"https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/492281\" target=\"_blank\">https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/492281</a><br>\nWas this competition as surprising for you? What things that underperformed or outperformed your expectations?</p>",
      "rawMarkdown": "One piece of advice I always offer to deep-learning total beginners is that you can never predict what will work and what won't. Sometimes, the most logical and elegant ideas underperform, while an unexpected bug in your code could unexpectedly boost your performance. And let me tell you, this competition absolutely takes the cake when it comes to showcasing methods that defy expectations but somehow succeed.\nI was utterly amazed to discover that stacking spectrograms into a single-channel image yields better results than treating them as separate channels. How can this be? You would think that separate channels, with their precise alignment along both temporal and frequency axes, would be more effective. Yet, they're not.\nDiving into other competitors' approaches, I realized my perspective on data processing wasn't as flexible as it needed to be. The standout strategy for me in this competition was the innovative approach of treating EEG data directly as an image, skipping the Mel Spectrogram/STFT process altogether. Like was done here:\nhttps://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/492254 \nand here\nhttps://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/492281\nWas this competition as surprising for you? What things that underperformed or outperformed your expectations?",
      "votes": null
    },
    {
      "id": "2743222",
      "postDate": "04/09/2024 09:39:55",
      "content": "<p>\"I was utterly amazed to discover that stacking spectrograms into a single-channel image yields better results than treating them as separate channels.\" Same with me for both eeg spectrogram and raw eeg data. In addition, I consider raw eeg data as a picture and feed to dinov2 vision vit.</p>",
      "rawMarkdown": "\"I was utterly amazed to discover that stacking spectrograms into a single-channel image yields better results than treating them as separate channels.\" Same with me for both eeg spectrogram and raw eeg data. In addition, I consider raw eeg data as a picture and feed to dinov2 vision vit.",
      "votes": null
    },
    {
      "id": "2743236",
      "postDate": "04/09/2024 09:51:50",
      "content": "<p>I conducted a lot of tests, as it turned out, I rejected some of the ideas too early. Need to check better, interesting experience. This competition once again confirmed the idea that for ML training models is only a small part of the work, while a much more important part is working with the data, correct preprocessing, correct input of data into the model and so on - do the magic</p>",
      "rawMarkdown": "I conducted a lot of tests, as it turned out, I rejected some of the ideas too early. Need to check better, interesting experience. This competition once again confirmed the idea that for ML training models is only a small part of the work, while a much more important part is working with the data, correct preprocessing, correct input of data into the model and so on - do the magic",
      "votes": null
    },
    {
      "id": "2743243",
      "postDate": "04/09/2024 10:02:25",
      "content": "<p>For this 'treating EEG data directly as an image',  I think it's quit reasonable to process like this. Using conv2d to slidding the eeg, is quiet like human to check the eeg. We check the time and channel dimentions in the same time.<br>\nAnd in the same time, that's why 3d model can work when use separate channels spectrums.</p>",
      "rawMarkdown": "For this 'treating EEG data directly as an image',  I think it's quit reasonable to process like this. Using conv2d to slidding the eeg, is quiet like human to check the eeg. We check the time and channel dimentions in the same time.\nAnd in the same time, that's why 3d model can work when use separate channels spectrums.",
      "votes": null
    },
    {
      "id": "2743253",
      "postDate": "04/09/2024 10:08:37",
      "content": "<p>Good for you, coolz. And it shows in your place :) It's also reasonable for me now. Having the benefit of hindsight :)</p>",
      "rawMarkdown": "Good for you, coolz. And it shows in your place :) It's also reasonable for me now. Having the benefit of hindsight :)",
      "votes": null
    },
    {
      "id": "2743344",
      "postDate": "04/09/2024 11:53:07",
      "content": "<p>I too was surprised that using channels was not at all as effective as stacking. I am still unsure why TBH.</p>",
      "rawMarkdown": "I too was surprised that using channels was not at all as effective as stacking. I am still unsure why TBH.",
      "votes": null
    },
    {
      "id": "2743359",
      "postDate": "04/09/2024 12:09:13",
      "content": "<p>Yep. I wouldn't be AS surprised if this approach worked better only for transformers that have global receptive field, but it works equally well for things like EfficientNet B0.</p>",
      "rawMarkdown": "Yep. I wouldn't be AS surprised if this approach worked better only for transformers that have global receptive field, but it works equally well for things like EfficientNet B0.",
      "votes": null
    },
    {
      "id": "2743454",
      "postDate": "04/09/2024 13:08:17",
      "content": "<p>Wow I did not even try stacking for the same understanding, I guess this is another lesson I will take from this comp. This one was a letdown for us so I will definitely remember it.</p>",
      "rawMarkdown": "Wow I did not even try stacking for the same understanding, I guess this is another lesson I will take from this comp. This one was a letdown for us so I will definitely remember it.",
      "votes": null
    },
    {
      "id": "2743692",
      "postDate": "04/09/2024 15:21:44",
      "content": "<p>Hi Dennis,  Although I'm new to ML, I have experience fitting models to data, and  this is one of the things I would have liked to try but ran out of time.  There WERE discussions that we were simulating what the physicians were deciding rather than trying to assess the ground truth.   In fact, there is some serious circular flow of information here in that the papers lay out  numerical requirements for the signals in the guidelines (that could be processed using signal processing), but instead we were expanding all this energy to replicate the Dr.'s/Human version of signal processing instead of doing it directly.   On top of that, the Dr.'s weren't actually  doing it correctly, if I know how to measure Hertz off a graph : <a href=\"https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/484433\" target=\"_blank\">https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/484433</a></p>",
      "rawMarkdown": "Hi Dennis,  Although I'm new to ML, I have experience fitting models to data, and  this is one of the things I would have liked to try but ran out of time.  There WERE discussions that we were simulating what the physicians were deciding rather than trying to assess the ground truth.   In fact, there is some serious circular flow of information here in that the papers lay out  numerical requirements for the signals in the guidelines (that could be processed using signal processing), but instead we were expanding all this energy to replicate the Dr.'s/Human version of signal processing instead of doing it directly.   On top of that, the Dr.'s weren't actually  doing it correctly, if I know how to measure Hertz off a graph : https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/484433",
      "votes": null
    },
    {
      "id": "2743732",
      "postDate": "04/09/2024 15:36:21",
      "content": "<p>It is indeed a learning experience for me, too. Based on some academic research papers, I started with the temporal, spatial, and separable convolution network for feature extraction, but it didn't work well. I am pleased to find that Kagglers have come up with better solutions. Congratulations, <a href=\"https://www.kaggle.com/cooolz\" target=\"_blank\">@cooolz</a>!</p>",
      "rawMarkdown": "It is indeed a learning experience for me, too. Based on some academic research papers, I started with the temporal, spatial, and separable convolution network for feature extraction, but it didn't work well. I am pleased to find that Kagglers have come up with better solutions. Congratulations, @cooolz!",
      "votes": null
    },
    {
      "id": "2744238",
      "postDate": "04/09/2024 20:02:40",
      "content": "<p>OMG. This Chris Deotte's approach just blows my mind. <br>\n\"Second model receives 2D matplotlib plots of the montage waveforms converted into a 2D image\"<br>\nAm I too easily amused? 😂</p>",
      "rawMarkdown": "OMG. This Chris Deotte's approach just blows my mind. \n\"Second model receives 2D matplotlib plots of the montage waveforms converted into a 2D image\"\nAm I too easily amused? 😂",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 2743222,
      "author_name": "quan0095",
      "author_url": "",
      "post_date": "04/09/2024 09:39:55",
      "content": "<p>\"I was utterly amazed to discover that stacking spectrograms into a single-channel image yields better results than treating them as separate channels.\" Same with me for both eeg spectrogram and raw eeg data. In addition, I consider raw eeg data as a picture and feed to dinov2 vision vit.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 2743236,
      "author_name": "aikhmelnytskyy",
      "author_url": "",
      "post_date": "04/09/2024 09:51:50",
      "content": "<p>I conducted a lot of tests, as it turned out, I rejected some of the ideas too early. Need to check better, interesting experience. This competition once again confirmed the idea that for ML training models is only a small part of the work, while a much more important part is working with the data, correct preprocessing, correct input of data into the model and so on - do the magic</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 2743243,
      "author_name": "cooolz",
      "author_url": "",
      "post_date": "04/09/2024 10:02:25",
      "content": "<p>For this 'treating EEG data directly as an image',  I think it's quit reasonable to process like this. Using conv2d to slidding the eeg, is quiet like human to check the eeg. We check the time and channel dimentions in the same time.<br>\nAnd in the same time, that's why 3d model can work when use separate channels spectrums.</p>",
      "votes": null,
      "replies": [
        {
          "id": 2743253,
          "author_name": "sakvaua",
          "author_url": "",
          "post_date": "04/09/2024 10:08:37",
          "content": "<p>Good for you, coolz. And it shows in your place :) It's also reasonable for me now. Having the benefit of hindsight :)</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 2743344,
      "author_name": "cpmpml",
      "author_url": "",
      "post_date": "04/09/2024 11:53:07",
      "content": "<p>I too was surprised that using channels was not at all as effective as stacking. I am still unsure why TBH.</p>",
      "votes": null,
      "replies": [
        {
          "id": 2743359,
          "author_name": "sakvaua",
          "author_url": "",
          "post_date": "04/09/2024 12:09:13",
          "content": "<p>Yep. I wouldn't be AS surprised if this approach worked better only for transformers that have global receptive field, but it works equally well for things like EfficientNet B0.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 2743454,
      "author_name": "cody11null",
      "author_url": "",
      "post_date": "04/09/2024 13:08:17",
      "content": "<p>Wow I did not even try stacking for the same understanding, I guess this is another lesson I will take from this comp. This one was a letdown for us so I will definitely remember it.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 2743692,
      "author_name": "idithhaber",
      "author_url": "",
      "post_date": "04/09/2024 15:21:44",
      "content": "<p>Hi Dennis,  Although I'm new to ML, I have experience fitting models to data, and  this is one of the things I would have liked to try but ran out of time.  There WERE discussions that we were simulating what the physicians were deciding rather than trying to assess the ground truth.   In fact, there is some serious circular flow of information here in that the papers lay out  numerical requirements for the signals in the guidelines (that could be processed using signal processing), but instead we were expanding all this energy to replicate the Dr.'s/Human version of signal processing instead of doing it directly.   On top of that, the Dr.'s weren't actually  doing it correctly, if I know how to measure Hertz off a graph : <a href=\"https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/484433\" target=\"_blank\">https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/484433</a></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 2743732,
      "author_name": "makio323",
      "author_url": "",
      "post_date": "04/09/2024 15:36:21",
      "content": "<p>It is indeed a learning experience for me, too. Based on some academic research papers, I started with the temporal, spatial, and separable convolution network for feature extraction, but it didn't work well. I am pleased to find that Kagglers have come up with better solutions. Congratulations, <a href=\"https://www.kaggle.com/cooolz\" target=\"_blank\">@cooolz</a>!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 2744238,
      "author_name": "sakvaua",
      "author_url": "",
      "post_date": "04/09/2024 20:02:40",
      "content": "<p>OMG. This Chris Deotte's approach just blows my mind. <br>\n\"Second model receives 2D matplotlib plots of the montage waveforms converted into a 2D image\"<br>\nAm I too easily amused? 😂</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "2743210": "One piece of advice I always offer to deep-learning total beginners is that you can never predict what will work and what won't. Sometimes, the most logical and elegant ideas underperform, while an unexpected bug in your code could unexpectedly boost your performance. And let me tell you, this competition absolutely takes the cake when it comes to showcasing methods that defy expectations but somehow succeed.\nI was utterly amazed to discover that stacking spectrograms into a single-channel image yields better results than treating them as separate channels. How can this be? You would think that separate channels, with their precise alignment along both temporal and frequency axes, would be more effective. Yet, they're not.\nDiving into other competitors' approaches, I realized my perspective on data processing wasn't as flexible as it needed to be. The standout strategy for me in this competition was the innovative approach of treating EEG data directly as an image, skipping the Mel Spectrogram/STFT process altogether. Like was done here:\nhttps://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/492254 \nand here\nhttps://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/492281\nWas this competition as surprising for you? What things that underperformed or outperformed your expectations?",
    "2743222": "\"I was utterly amazed to discover that stacking spectrograms into a single-channel image yields better results than treating them as separate channels.\" Same with me for both eeg spectrogram and raw eeg data. In addition, I consider raw eeg data as a picture and feed to dinov2 vision vit.",
    "2743236": "I conducted a lot of tests, as it turned out, I rejected some of the ideas too early. Need to check better, interesting experience. This competition once again confirmed the idea that for ML training models is only a small part of the work, while a much more important part is working with the data, correct preprocessing, correct input of data into the model and so on - do the magic",
    "2743243": "For this 'treating EEG data directly as an image',  I think it's quit reasonable to process like this. Using conv2d to slidding the eeg, is quiet like human to check the eeg. We check the time and channel dimentions in the same time.\nAnd in the same time, that's why 3d model can work when use separate channels spectrums.",
    "2743253": "Good for you, coolz. And it shows in your place :) It's also reasonable for me now. Having the benefit of hindsight :)",
    "2743344": "I too was surprised that using channels was not at all as effective as stacking. I am still unsure why TBH.",
    "2743359": "Yep. I wouldn't be AS surprised if this approach worked better only for transformers that have global receptive field, but it works equally well for things like EfficientNet B0.",
    "2743454": "Wow I did not even try stacking for the same understanding, I guess this is another lesson I will take from this comp. This one was a letdown for us so I will definitely remember it.",
    "2743692": "Hi Dennis,  Although I'm new to ML, I have experience fitting models to data, and  this is one of the things I would have liked to try but ran out of time.  There WERE discussions that we were simulating what the physicians were deciding rather than trying to assess the ground truth.   In fact, there is some serious circular flow of information here in that the papers lay out  numerical requirements for the signals in the guidelines (that could be processed using signal processing), but instead we were expanding all this energy to replicate the Dr.'s/Human version of signal processing instead of doing it directly.   On top of that, the Dr.'s weren't actually  doing it correctly, if I know how to measure Hertz off a graph : https://www.kaggle.com/competitions/hms-harmful-brain-activity-classification/discussion/484433",
    "2743732": "It is indeed a learning experience for me, too. Based on some academic research papers, I started with the temporal, spatial, and separable convolution network for feature extraction, but it didn't work well. I am pleased to find that Kagglers have come up with better solutions. Congratulations, @cooolz!",
    "2744238": "OMG. This Chris Deotte's approach just blows my mind. \n\"Second model receives 2D matplotlib plots of the montage waveforms converted into a 2D image\"\nAm I too easily amused? 😂"
  },
  "source": "meta"
}