{
  "id": 270386,
  "title": "adjust your CQT",
  "url": "/competitions/g2net-gravitational-wave-detection/discussion/270386",
  "author_name": "hengck23",
  "post_date": "2021-09-05T01:46:12.707000",
  "votes": 79,
  "comment_count": 62,
  "views": 0,
  "content": "<p>the forum is the best place to find baseline results:</p>\n<p><img src=\"https://i.ibb.co/9VwB3n2/Selection-799.png\" alt=\"https://i.ibb.co/9VwB3n2/Selection-799.png\"></p>",
  "messages": [
    {
      "id": 1503093,
      "postDate": "2021-09-05T01:46:12.707Z",
      "content": "<p>the forum is the best place to find baseline results:</p>\n<p><img src=\"https://i.ibb.co/9VwB3n2/Selection-799.png\" alt=\"https://i.ibb.co/9VwB3n2/Selection-799.png\"></p>",
      "rawMarkdown": "the forum is the best place to find baseline results:\n\n![https://i.ibb.co/9VwB3n2/Selection-799.png](https://i.ibb.co/9VwB3n2/Selection-799.png)",
      "votes": 79
    },
    {
      "id": 1507590,
      "postDate": "2021-09-09T10:42:53.130Z",
      "content": "<p>interactive web app:<br>\n<a href=\"https://share.streamlit.io/jkanner/streamlit-dataview/app.py\" target=\"_blank\">https://share.streamlit.io/jkanner/streamlit-dataview/app.py</a></p>\n<p>you can adjust the parameters of CQT and see the results instantly</p>\n<pre><code>A parameter called “Q” refers to the quality factor. A higher quality factor corresponds to a larger number of cycles in each time-frequency pixel.\n\nFor gravitational-wave signals, binary black holes are most clear with lower Q values (Q = 5-20), where binary neutron star mergers work better with higher Q values (Q = 80 - 120).\n</code></pre>\n<p>maybe more here:</p>\n<p><a href=\"https://share.streamlit.io/jkanner/streamlit-audio/main/app.py\" target=\"_blank\">https://share.streamlit.io/jkanner/streamlit-audio/main/app.py</a><br>\n<a href=\"https://iphysresearch.github.io/blog/project/gwda/\" target=\"_blank\">https://iphysresearch.github.io/blog/project/gwda/</a><br>\n<a href=\"https://github.com/moble/MatchedFiltering\" target=\"_blank\">https://github.com/moble/MatchedFiltering</a></p>",
      "rawMarkdown": "interactive web app:\nhttps://share.streamlit.io/jkanner/streamlit-dataview/app.py\n\n\nyou can adjust the parameters of CQT and see the results instantly\n```\nA parameter called “Q” refers to the quality factor. A higher quality factor corresponds to a larger number of cycles in each time-frequency pixel.\n\nFor gravitational-wave signals, binary black holes are most clear with lower Q values (Q = 5-20), where binary neutron star mergers work better with higher Q values (Q = 80 - 120).\n```\n\nmaybe more here:\n\nhttps://share.streamlit.io/jkanner/streamlit-audio/main/app.py\nhttps://iphysresearch.github.io/blog/project/gwda/\nhttps://github.com/moble/MatchedFiltering",
      "votes": 21,
      "replies": [
        {
          "id": 1513380,
          "postDate": "2021-09-15T05:56:07.223Z",
          "content": "<p><a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a> Q-factor is this some thing one can set using various API we use for CQT ?</p>",
          "rawMarkdown": "@hengck23 Q-factor is this some thing one can set using various API we use for CQT ?"
        },
        {
          "id": 1513389,
          "postDate": "2021-09-15T06:17:44.547Z",
          "content": "<p>you would have to read the code/document of your API</p>\n<pre><code>        Q = float(filter_scale)/(2**(1/num_bin_per_octave)-1)\n</code></pre>",
          "rawMarkdown": "you would have to read the code/document of your API\n\n```\n\n        Q = float(filter_scale)/(2**(1/num_bin_per_octave)-1)\n\n```",
          "votes": 2
        },
        {
          "id": 1513416,
          "postDate": "2021-09-15T06:56:43.410Z",
          "content": "<p>oops yes i saw this now..</p>",
          "rawMarkdown": "oops yes i saw this now.."
        }
      ]
    },
    {
      "id": 1514990,
      "postDate": "2021-09-16T16:12:26.190Z",
      "content": "<p>watch how the signal is buried in noise when I increase the snr</p>\n<p><img src=\"https://i.ibb.co/fnqwq52/noise.gif\" alt=\"https://i.ibb.co/fnqwq52/noise.gif\"></p>",
      "rawMarkdown": "watch how the signal is buried in noise when I increase the snr\n\n![https://i.ibb.co/fnqwq52/noise.gif](https://i.ibb.co/fnqwq52/noise.gif)",
      "votes": 16
    },
    {
      "id": 1510706,
      "postDate": "2021-09-12T16:54:07.673Z",
      "content": "<p>after reading several papers and some numerous papers, I make the following observations:</p>\n<p>(1) there must be some reasons why we need many, many, many templates in classical match filtering. <br>\ni think this is because there is so much noise that the template needs to be very precise.</p>\n<p>(2) this is also why deep network (e.g. effb7) with many parameters tends to work better</p>\n<p>(3) there is inconsistent reporting and results on various signal processing. e.g. bandpass filtering seems to work for some kagglers, but not all. In fact, some cqt parameters only work for some network architectures, etc</p>\n<p>this is because I think  various signal processing is affecting different subsets of the test samples</p>\n<p>(4)  rather than thinking about ensembling, maybe it is more worthwhile to think about divide and conquer. e.g. different sets of parameters for different subsets of the test samples. cascade of refinement networks, training with adaboost weights, etc</p>\n<p>maybe no one model can solve the problem alone</p>\n<p>when it comes to waveform and fft, one has to be careful about 64-bit, 32-bit and 16-bit</p>",
      "rawMarkdown": "after reading several papers and some numerous papers, I make the following observations:\n\n(1) there must be some reasons why we need many, many, many templates in classical match filtering. \ni think this is because there is so much noise that the template needs to be very precise.\n\n\n\n(2) this is also why deep network (e.g. effb7) with many parameters tends to work better\n\n(3) there is inconsistent reporting and results on various signal processing. e.g. bandpass filtering seems to work for some kagglers, but not all. In fact, some cqt parameters only work for some network architectures, etc\n\nthis is because I think  various signal processing is affecting different subsets of the test samples\n\n (4)  rather than thinking about ensembling, maybe it is more worthwhile to think about divide and conquer. e.g. different sets of parameters for different subsets of the test samples. cascade of refinement networks, training with adaboost weights, etc\n\nmaybe no one model can solve the problem alone\n\nwhen it comes to waveform and fft, one has to be careful about 64-bit, 32-bit and 16-bit",
      "votes": 11
    },
    {
      "id": 1506165,
      "postDate": "2021-09-08T00:59:48.483Z",
      "content": "<p>update1:<br>\n<img src=\"https://i.ibb.co/HYcdHb0/Selection-804.png\" alt=\"https://i.ibb.co/HYcdHb0/Selection-804.png\"></p>\n<p><img src=\"https://i.ibb.co/LQMt6rW/Selection-805.png\" alt=\"https://i.ibb.co/LQMt6rW/Selection-805.png\"></p>",
      "rawMarkdown": "update1:\n![https://i.ibb.co/HYcdHb0/Selection-804.png](https://i.ibb.co/HYcdHb0/Selection-804.png)\n\n![https://i.ibb.co/LQMt6rW/Selection-805.png](https://i.ibb.co/LQMt6rW/Selection-805.png)",
      "votes": 9,
      "replies": [
        {
          "id": 1507020,
          "postDate": "2021-09-08T18:25:08.717Z",
          "content": "<p><a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>  how we build fake mask attn </p>",
          "rawMarkdown": "@hengck23  how we build fake mask attn ",
          "votes": 1
        },
        {
          "id": 1507046,
          "postDate": "2021-09-08T18:53:28.493Z",
          "content": "<p>Just darken the areas where you feel there's less likely to be a GW. Original image = 128x128, \"faux\" segmentation = 4x4, there should be one pixel (lol?) in that region that is less likely to have a gw.</p>",
          "rawMarkdown": "Just darken the areas where you feel there's less likely to be a GW. Original image = 128x128, \"faux\" segmentation = 4x4, there should be one pixel (lol?) in that region that is less likely to have a gw."
        },
        {
          "id": 1507458,
          "postDate": "2021-09-09T08:10:03.640Z",
          "content": "<p>note that many of the improvements in 128x128 may not necessarily work as well for larger sizes like 256x256, etc.</p>\n<p>the improvement seems to diminishes for larger size.</p>\n<p>here is another results:</p>\n<p>input 128  <br>\ncv 0.86947 (configure11)/ 0.870493(configure11a)        <br>\nuse sin2 and cos2 as separate channels, instead of the normal magnitude channel. this results in 6 channel input to CNN (instead of the usual 3)</p>",
          "rawMarkdown": "note that many of the improvements in 128x128 may not necessarily work as well for larger sizes like 256x256, etc.\n\nthe improvement seems to diminishes for larger size.\n\nhere is another results:\n\ninput 128  \ncv 0.86947 (configure11)/ 0.870493(configure11a)\t\t\nuse sin2 and cos2 as separate channels, instead of the normal magnitude channel. this results in 6 channel input to CNN (instead of the usual 3)\n",
          "votes": 3
        },
        {
          "id": 1507686,
          "postDate": "2021-09-09T12:27:25.343Z",
          "content": "<p><code>use sin2 and cos2 separate channel (i.e. 6 channel input to CNN)\n</code><br>\nHi <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>, Can you please share something about this. I couldn't understand.</p>",
          "rawMarkdown": "`use sin2 and cos2 separate channel (i.e. 6 channel input to CNN)\n`\nHi @hengck23, Can you please share something about this. I couldn't understand.",
          "votes": 1
        },
        {
          "id": 1513778,
          "postDate": "2021-09-15T12:04:00.927Z",
          "content": "<p><a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a> your latest high with b2 is using   image size  256 and  adjusted CQT parameters? i tried b0 with best possible combinations of CQT couldnt go beyond 87.2 so far</p>",
          "rawMarkdown": "@hengck23 your latest high with b2 is using   image size  256 and  adjusted CQT parameters? i tried b0 with best possible combinations of CQT couldnt go beyond 87.2 so far"
        }
      ]
    },
    {
      "id": 1503882,
      "postDate": "2021-09-05T19:52:40.823Z",
      "content": "<p>as a side remark:<br>\nwhy limit to 3 channels input to your CNN. you can have multiple-Q in your CQT. e.g. have N cqt per wave to create 3N channel input</p>",
      "rawMarkdown": "as a side remark:\nwhy limit to 3 channels input to your CNN. you can have multiple-Q in your CQT. e.g. have N cqt per wave to create 3N channel input",
      "votes": 7
    },
    {
      "id": 1520218,
      "postDate": "2021-09-22T07:53:18.457Z",
      "content": "<p>i did some last-minute experiments on trainable CQT.</p>\n<p>Actually, it works. i don't see any significant improvement or degrade of results currently. the trick is to use a very large batch size.</p>\n<p>for me, it needs batch size &gt;768.  i think 1024 would be better.</p>\n<p>but there is an issue. with large batch size and large input image size, the tensor is too large and nvidia cudnn conv2d cannot process the data (i can fit like tensor into memory since i have a 48GB gpu card but the cudnn conv has an error due to large tensor)</p>",
      "rawMarkdown": "i did some last-minute experiments on trainable CQT.\n\nActually, it works. i don't see any significant improvement or degrade of results currently. the trick is to use a very large batch size.\n\nfor me, it needs batch size >768.  i think 1024 would be better.\n\nbut there is an issue. with large batch size and large input image size, the tensor is too large and nvidia cudnn conv2d cannot process the data (i can fit like tensor into memory since i have a 48GB gpu card but the cudnn conv has an error due to large tensor)",
      "votes": 5,
      "replies": [
        {
          "id": 1521117,
          "postDate": "2021-09-22T22:46:40.060Z",
          "rawMarkdown": "",
          "isDeleted": true
        },
        {
          "id": 1521137,
          "postDate": "2021-09-22T23:44:39.970Z",
          "content": "<p>how the CQT of learnable kernels looks like … pretty noisy.<br>\n<img src=\"https://i.ibb.co/mhjgSrC/Selection-889.png\" alt=\"https://i.ibb.co/mhjgSrC/Selection-889.png\"></p>\n<hr>\n<p><img src=\"https://i.ibb.co/SrTYdGN/Selection-915.png\" alt=\"https://i.ibb.co/SrTYdGN/Selection-915.png\"></p>",
          "rawMarkdown": "how the CQT of learnable kernels looks like ... pretty noisy.\n![https://i.ibb.co/mhjgSrC/Selection-889.png](https://i.ibb.co/mhjgSrC/Selection-889.png)\n\n---\n![https://i.ibb.co/SrTYdGN/Selection-915.png](https://i.ibb.co/SrTYdGN/Selection-915.png)",
          "votes": 1
        },
        {
          "id": 1521139,
          "postDate": "2021-09-22T23:48:10.617Z",
          "content": "<p><a href=\"https://www.kaggle.com/egortrushin\" target=\"_blank\">@egortrushin</a> </p>\n<p>even with large batch size, there is overfitting.</p>\n<p>in the original code of nn.Audio, the whole kernel is learnable, i.e. all values to the size of max kernel width</p>\n<p>i make modifications to the code to restrict the length of each kernel.</p>",
          "rawMarkdown": "@egortrushin \n\neven with large batch size, there is overfitting.\n\nin the original code of nn.Audio, the whole kernel is learnable, i.e. all values to the size of max kernel width\n\ni make modifications to the code to restrict the length of each kernel.",
          "votes": 1
        },
        {
          "id": 1521145,
          "postDate": "2021-09-23T00:13:33.540Z",
          "content": "<p>examples of learned kernels</p>\n<p><img src=\"https://i.ibb.co/S38CDB2/Selection-898.png\" alt=\"https://i.ibb.co/S38CDB2/Selection-898.png\"></p>",
          "rawMarkdown": "examples of learned kernels\n\n![https://i.ibb.co/S38CDB2/Selection-898.png](https://i.ibb.co/S38CDB2/Selection-898.png)",
          "votes": 3
        }
      ]
    },
    {
      "id": 1526246,
      "postDate": "2021-09-28T01:14:04.697Z",
      "content": "<p>I am still struggling to make whitening works. This is a must read <a href=\"https://arxiv.org/pdf/gr-qc/0412119.pdf\" target=\"_blank\">https://arxiv.org/pdf/gr-qc/0412119.pdf</a></p>\n<p><a href=\"https://dcc.ligo.org/public/0035/G040521/000/G040521-00.pdf\" target=\"_blank\">https://dcc.ligo.org/public/0035/G040521/000/G040521-00.pdf</a></p>",
      "rawMarkdown": "I am still struggling to make whitening works. This is a must read https://arxiv.org/pdf/gr-qc/0412119.pdf\n\nhttps://dcc.ligo.org/public/0035/G040521/000/G040521-00.pdf",
      "votes": 3,
      "replies": [
        {
          "id": 1526282,
          "postDate": "2021-09-28T02:14:36.350Z",
          "content": "<p>As always, thanks for sharing <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>. The procedure in the paper definitely does \"something\". Just dunno if it makes modeling easier or not yet. I've visually tested a few different filter sizes. I didn't understand the part on how to make it 'zero phase' so for now, response is lagged I guess:</p>\n<p>Image pairs are 'whitened' and 'whitened bandpassed' per filter length.<br>\n<img src=\"https://i.ibb.co/h7KR3h5/attempt.png\" alt=\"\"></p>",
          "rawMarkdown": "As always, thanks for sharing @hengck23. The procedure in the paper definitely does \"something\". Just dunno if it makes modeling easier or not yet. I've visually tested a few different filter sizes. I didn't understand the part on how to make it 'zero phase' so for now, response is lagged I guess:\n\nImage pairs are 'whitened' and 'whitened bandpassed' per filter length.\n![](https://i.ibb.co/h7KR3h5/attempt.png)",
          "votes": 1
        },
        {
          "id": 1526424,
          "postDate": "2021-09-28T05:29:15.677Z",
          "content": "<p>refer to chapter-14: <a href=\"https://core.ac.uk/download/pdf/4399555.pdf\" target=\"_blank\">https://core.ac.uk/download/pdf/4399555.pdf</a></p>",
          "rawMarkdown": "refer to chapter-14: https://core.ac.uk/download/pdf/4399555.pdf",
          "votes": 1
        },
        {
          "id": 1527827,
          "postDate": "2021-09-29T06:16:14.240Z",
          "content": "<p><a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>  <a href=\"https://www.kaggle.com/authman\" target=\"_blank\">@authman</a> Described \"whitening\" seems strange to me, as authors basically suggests to build a parametrized linear combination from lagged versions of signal, and then minimize RMSE with original signal. Solution to this problem would be constant (with low snr signal for sure): [N, 0, 0, … ,0] - coefficients of linear combination. Taking one with least lag will minimize RMSE in no time. <em>If i read it right</em></p>",
          "rawMarkdown": "@hengck23  @authman Described \"whitening\" seems strange to me, as authors basically suggests to build a parametrized linear combination from lagged versions of signal, and then minimize RMSE with original signal. Solution to this problem would be constant (with low snr signal for sure): [N, 0, 0, ... ,0] - coefficients of linear combination. Taking one with least lag will minimize RMSE in no time. *If i read it right*"
        },
        {
          "id": 1528160,
          "postDate": "2021-09-29T12:21:25.383Z",
          "content": "<p>I wasn't able to get it to work. For one, all of the autoregression python packages expect that you're going to predict a chunk of timesteps and aren't setup to +1,+1,+1 predict timestep after timestep with updated information. Due to this I had to roll out the code myself which was SLOW. And then second, the nets wouldn't converge, neither in 1d or 2d. It was strange since at least one big gw spike image I visualized looked like it was improved by this procedure <img src=\"https://i.ibb.co/wYmps7F/whitening.png\" alt=\"\"></p>",
          "rawMarkdown": "I wasn't able to get it to work. For one, all of the autoregression python packages expect that you're going to predict a chunk of timesteps and aren't setup to +1,+1,+1 predict timestep after timestep with updated information. Due to this I had to roll out the code myself which was SLOW. And then second, the nets wouldn't converge, neither in 1d or 2d. It was strange since at least one big gw spike image I visualized looked like it was improved by this procedure ![](https://i.ibb.co/wYmps7F/whitening.png)\n\n"
        },
        {
          "id": 1528570,
          "postDate": "2021-09-29T18:38:20.360Z",
          "content": "<p>i give up on whitening for now. maybe i will try after the deadline.<br>\nbut I discover something interesting?</p>\n<p>\"if you cannot whiten your signal, normalize your filters\"</p>",
          "rawMarkdown": "i give up on whitening for now. maybe i will try after the deadline.\nbut I discover something interesting?\n\n\"if you cannot whiten your signal, normalize your filters\"",
          "votes": 1
        },
        {
          "id": 1528574,
          "postDate": "2021-09-29T18:44:05.043Z",
          "content": "<p>I tried something sorta similar to that. After fully training a model, I weiber filter all convolutional kernels and let it train on the same fold again @ 50% initial LR, and it usually converges a few auc higher. It would have been interesting competing with you on a team <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>, you have a lot of great ideas and with some team mates you can delegate to better explore them.</p>",
          "rawMarkdown": "I tried something sorta similar to that. After fully training a model, I weiber filter all convolutional kernels and let it train on the same fold again @ 50% initial LR, and it usually converges a few auc higher. It would have been interesting competing with you on a team @hengck23, you have a lot of great ideas and with some team mates you can delegate to better explore them.",
          "votes": 1
        }
      ]
    },
    {
      "id": 1506174,
      "postDate": "2021-09-08T01:21:02.737Z",
      "content": "<p>anyone can provide workable pytorch cwt code (continuous wavelet) and parameters for me to plug and play?<br>\ni will provide experiment results and enhancement.</p>",
      "rawMarkdown": "anyone can provide workable pytorch cwt code (continuous wavelet) and parameters for me to plug and play?\ni will provide experiment results and enhancement.",
      "votes": 3,
      "replies": [
        {
          "id": 1506353,
          "postDate": "2021-09-08T06:30:22.150Z",
          "content": "<p><a href=\"https://www.kaggle.com/anjum48/continuous-wavelet-transform-cwt-in-pytorch\" target=\"_blank\">https://www.kaggle.com/anjum48/continuous-wavelet-transform-cwt-in-pytorch</a></p>\n<p>I come across that if it can help you in any way.<br>\nThank you always for all your sharing</p>",
          "rawMarkdown": "[https://www.kaggle.com/anjum48/continuous-wavelet-transform-cwt-in-pytorch](https://www.kaggle.com/anjum48/continuous-wavelet-transform-cwt-in-pytorch)\n\nI come across that if it can help you in any way.\nThank you always for all your sharing",
          "votes": 1
        }
      ]
    },
    {
      "id": 1510015,
      "postDate": "2021-09-12T00:03:13.067Z",
      "content": "<p>train your own kernel<br>\n(the upper hydrid 1d and 2d cnn is interesting)<br>\n<img src=\"https://i.ibb.co/f007Wrc/Selection-840.png\" alt=\"https://i.ibb.co/f007Wrc/Selection-840.png\"></p>\n<p>you can input multiple CQT transform, some are trainable and some are not</p>",
      "rawMarkdown": "train your own kernel\n(the upper hydrid 1d and 2d cnn is interesting)\n![https://i.ibb.co/f007Wrc/Selection-840.png](https://i.ibb.co/f007Wrc/Selection-840.png)\n\n\nyou can input multiple CQT transform, some are trainable and some are not",
      "votes": 4,
      "replies": [
        {
          "id": 1510474,
          "postDate": "2021-09-12T12:55:13.143Z",
          "content": "<p>I have noticed that the CQT function in <code>nnAudio</code> has a <code>trainable</code> parameter (set to <code>False</code> by default) so might be linked to what you have shared. 👌</p>",
          "rawMarkdown": "I have noticed that the CQT function in `nnAudio` has a `trainable` parameter (set to `False` by default) so might be linked to what you have shared. 👌"
        }
      ]
    },
    {
      "id": 1509951,
      "postDate": "2021-09-11T20:10:40.747Z",
      "content": "<p>interesting paper:<br>\n<a href=\"https://arxiv.org/pdf/2010.15049.pdf\" target=\"_blank\">https://arxiv.org/pdf/2010.15049.pdf</a><br>\n<a href=\"https://www.youtube.com/watch?v=6L4eA59J_a4\" target=\"_blank\">https://www.youtube.com/watch?v=6L4eA59J_a4</a><br>\n<a href=\"https://github.com/SubramaniKrishna/STFTgrad\" target=\"_blank\">https://github.com/SubramaniKrishna/STFTgrad</a></p>\n<p>The Short-Time Fourier Transform (STFT) has been a staple of signal processing, often being the first step for many audio tasks. A very familiar process when using the STFT is the search for the best<br>\nSTFT parameters, as they often have significant side effects if chosen poorly. These parameters are often defined in terms of an integer number of samples, which makes their optimization non-trivial. In this paper we show an approach that allows us to obtain a gradient for STFT parameters with respect to arbitrary cost functions, and thus<br>\nenable the ability to employ gradient descent optimization of quantities like the STFT window length, or the STFT hop size …</p>",
      "rawMarkdown": "interesting paper:\nhttps://arxiv.org/pdf/2010.15049.pdf\nhttps://www.youtube.com/watch?v=6L4eA59J_a4\nhttps://github.com/SubramaniKrishna/STFTgrad\n\n\nThe Short-Time Fourier Transform (STFT) has been a staple of signal processing, often being the first step for many audio tasks. A very familiar process when using the STFT is the search for the best\nSTFT parameters, as they often have significant side effects if chosen poorly. These parameters are often defined in terms of an integer number of samples, which makes their optimization non-trivial. In this paper we show an approach that allows us to obtain a gradient for STFT parameters with respect to arbitrary cost functions, and thus\nenable the ability to employ gradient descent optimization of quantities like the STFT window length, or the STFT hop size ...",
      "votes": 4,
      "replies": [
        {
          "id": 1512092,
          "postDate": "2021-09-14T00:37:51.897Z",
          "content": "<p>LEAF: A Learnable Frontend for Audio Classification<br>\n<a href=\"https://ai.googleblog.com/2021/03/leaf-learnable-frontend-for-audio.html\" target=\"_blank\">https://ai.googleblog.com/2021/03/leaf-learnable-frontend-for-audio.html</a></p>\n<p><img src=\"https://1.bp.blogspot.com/-m4e9QZ6qDCw/YEuqCqOEgcI/AAAAAAAAHS8/kzNrjSNTgt8dUoMFqfFwCInLrjSwZdubQCLcBGAsYHQ/w640-h236/image1.png\" alt=\"https://1.bp.blogspot.com/-m4e9QZ6qDCw/YEuqCqOEgcI/AAAAAAAAHS8/kzNrjSNTgt8dUoMFqfFwCInLrjSwZdubQCLcBGAsYHQ/w640-h236/image1.png\"></p>",
          "rawMarkdown": "LEAF: A Learnable Frontend for Audio Classification\nhttps://ai.googleblog.com/2021/03/leaf-learnable-frontend-for-audio.html\n\n![https://1.bp.blogspot.com/-m4e9QZ6qDCw/YEuqCqOEgcI/AAAAAAAAHS8/kzNrjSNTgt8dUoMFqfFwCInLrjSwZdubQCLcBGAsYHQ/w640-h236/image1.png](https://1.bp.blogspot.com/-m4e9QZ6qDCw/YEuqCqOEgcI/AAAAAAAAHS8/kzNrjSNTgt8dUoMFqfFwCInLrjSwZdubQCLcBGAsYHQ/w640-h236/image1.png)\n",
          "votes": 1
        },
        {
          "id": 1512143,
          "postDate": "2021-09-14T02:58:17.770Z",
          "content": "<p>more trainable front-end:</p>\n<ul>\n<li>A Multi-Head Relevance Weighting Framework For Learning Raw Waveform Audio Representations</li>\n<li>FastAudio: A Learnable Audio Front-End for Spoof Speech Detection</li>\n</ul>\n<p><img src=\"https://i.ibb.co/L1pg4b0/Selection-866.png\" alt=\"https://i.ibb.co/L1pg4b0/Selection-866.png\"></p>",
          "rawMarkdown": "more trainable front-end:\n- A Multi-Head Relevance Weighting Framework For Learning Raw Waveform Audio Representations\n- FastAudio: A Learnable Audio Front-End for Spoof Speech Detection\n\n![https://i.ibb.co/L1pg4b0/Selection-866.png](https://i.ibb.co/L1pg4b0/Selection-866.png)",
          "votes": 1
        }
      ]
    },
    {
      "id": 1504363,
      "postDate": "2021-09-06T10:06:38.900Z",
      "content": "<p>thank you for your share,bandpass is not work for me, i try diffs bandpass params,all of them reduce the cv.</p>",
      "rawMarkdown": "thank you for your share,bandpass is not work for me, i try diffs bandpass params,all of them reduce the cv.",
      "votes": 4
    },
    {
      "id": 1504015,
      "postDate": "2021-09-06T02:09:04.353Z",
      "content": "<p>on a side note, i wonder if anyone attempts to cluster the negative samples.  how many different types of simulated noisy environments?</p>\n<p>also for a negative sample, how the CQT changes if the CQT parameters changes …<br>\n(I expect behaviour of +ve and -ve samples should be different)</p>",
      "rawMarkdown": "on a side note, i wonder if anyone attempts to cluster the negative samples.  how many different types of simulated noisy environments?\n\nalso for a negative sample, how the CQT changes if the CQT parameters changes ...\n(I expect behaviour of +ve and -ve samples should be different)",
      "votes": 4
    },
    {
      "id": 1503876,
      "postDate": "2021-09-05T19:38:37.837Z",
      "content": "<p>Thank you for sharing <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a> ! This nice video helps as well to understand better which kind of time/frequency resolution is needed to set filter scale.</p>\n<p><a href=\"https://youtu.be/kuuUaqAjeoA\" target=\"_blank\">https://youtu.be/kuuUaqAjeoA</a></p>",
      "rawMarkdown": "Thank you for sharing @hengck23 ! This nice video helps as well to understand better which kind of time/frequency resolution is needed to set filter scale.\n\nhttps://youtu.be/kuuUaqAjeoA\n\n",
      "votes": 4
    },
    {
      "id": 1503291,
      "postDate": "2021-09-05T08:25:36.197Z",
      "content": "<p><a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>  what is filter_scale in your CQT1992v2 as I have not found any parameter like filter_scale</p>",
      "rawMarkdown": "@hengck23  what is filter_scale in your CQT1992v2 as I have not found any parameter like filter_scale",
      "votes": 4,
      "replies": [
        {
          "id": 1503393,
          "postDate": "2021-09-05T10:27:02.620Z",
          "content": "<p>It's in the github repo (we could directly install from github) - <a href=\"https://kinwaicheuk.github.io/nnAudio/master/_autosummary/nnAudio.Spectrogram.CQT1992v2.html\" target=\"_blank\">https://kinwaicheuk.github.io/nnAudio/master/_autosummary/nnAudio.Spectrogram.CQT1992v2.html</a> </p>",
          "rawMarkdown": "It's in the github repo (we could directly install from github) - https://kinwaicheuk.github.io/nnAudio/master/_autosummary/nnAudio.Spectrogram.CQT1992v2.html ",
          "votes": 3
        },
        {
          "id": 1503414,
          "postDate": "2021-09-05T10:50:42.840Z",
          "content": "<p>Thanks for the repo <a href=\"https://www.kaggle.com/rashmibanthia\" target=\"_blank\">@rashmibanthia</a> </p>",
          "rawMarkdown": "Thanks for the repo @rashmibanthia ",
          "votes": 2
        }
      ]
    },
    {
      "id": 1517721,
      "postDate": "2021-09-20T02:32:01.203Z",
      "content": "<p>at high resolution, i start to see the shift</p>\n<p><img src=\"https://i.ibb.co/872cysj/Selection-883.png\" alt=\"https://i.ibb.co/872cysj/Selection-883.png\"><br>\n<img src=\"https://i.ibb.co/zPw1vT4/Selection-884.png\" alt=\"https://i.ibb.co/zPw1vT4/Selection-884.png\"></p>\n<p>maybe good for augmentation (and i wonder how to max pooling in 1d cnn)</p>",
      "rawMarkdown": "at high resolution, i start to see the shift\n\n![https://i.ibb.co/872cysj/Selection-883.png](https://i.ibb.co/872cysj/Selection-883.png)\n![https://i.ibb.co/zPw1vT4/Selection-884.png](https://i.ibb.co/zPw1vT4/Selection-884.png)\n\nmaybe good for augmentation (and i wonder how to max pooling in 1d cnn)",
      "votes": 1
    },
    {
      "id": 1517712,
      "postDate": "2021-09-20T02:10:14.987Z",
      "content": "<p>customize resize?</p>\n<p><img src=\"https://i.ibb.co/w0zsNGR/Selection-879.png\" alt=\"https://i.ibb.co/w0zsNGR/Selection-879.png\"></p>",
      "rawMarkdown": "customize resize?\n\n![https://i.ibb.co/w0zsNGR/Selection-879.png](https://i.ibb.co/w0zsNGR/Selection-879.png)",
      "votes": 1
    },
    {
      "id": 1506190,
      "postDate": "2021-09-08T01:57:47.827Z",
      "content": "<p>Have you meet this problem when you set a high filter_scale?</p>\n<p>columns 4045 to 4050 ….<br>\n….<br>\n….<br>\ncolumns 4093 to 4096 ….<br>\n[ torch.cuda.FloatTensor{6,1,4096}  ]</p>\n<p>(sorry, unable to copy to kaggle comment…)</p>",
      "rawMarkdown": "Have you meet this problem when you set a high filter_scale?\n\n\ncolumns 4045 to 4050 ....\n....\n....\ncolumns 4093 to 4096 ....\n[ torch.cuda.FloatTensor{6,1,4096}  ]\n\n\n(sorry, unable to copy to kaggle comment...)",
      "votes": 1
    },
    {
      "id": 1513165,
      "postDate": "2021-09-14T22:35:08.197Z",
      "content": "<p>Reinforcement learning to search for best signal processing</p>\n<p>i wonder did another use RL to search for best parameters of CQT, bandpass filtering, etc.<br>\nthis would be very computation-intensive.<br>\nbut maybe it would be a good application of RL?</p>\n<p>the search would be similar to NAS (network architectural search)<br>\ni am just using \"trial and error\" approach.<br>\nmore \"scientific\" ways would include RL, bayesian hypropt, etc<br>\nI wonder how these autoML would compare against human?</p>",
      "rawMarkdown": "Reinforcement learning to search for best signal processing\n \n\ni wonder did another use RL to search for best parameters of CQT, bandpass filtering, etc.\nthis would be very computation-intensive.\nbut maybe it would be a good application of RL?\n\nthe search would be similar to NAS (network architectural search)\ni am just using \"trial and error\" approach.\nmore \"scientific\" ways would include RL, bayesian hypropt, etc\nI wonder how these autoML would compare against human?",
      "votes": 2,
      "replies": [
        {
          "id": 1513170,
          "postDate": "2021-09-14T22:49:25.280Z",
          "content": "<p>I've tried some simple grid search with small model and less data, but it take a long time. And I got nothing for now. :(</p>",
          "rawMarkdown": "I've tried some simple grid search with small model and less data, but it take a long time. And I got nothing for now. :("
        },
        {
          "id": 1514875,
          "postDate": "2021-09-16T14:03:50.987Z",
          "content": "<p>grid search in reality<br>\n<img src=\"https://i.ibb.co/SX9ZQnx/Selection-877.png\" alt=\"https://i.ibb.co/SX9ZQnx/Selection-877.png\"></p>",
          "rawMarkdown": "grid search in reality\n![https://i.ibb.co/SX9ZQnx/Selection-877.png](https://i.ibb.co/SX9ZQnx/Selection-877.png)",
          "votes": 4
        },
        {
          "id": 1519161,
          "postDate": "2021-09-21T11:16:38.930Z",
          "content": "<p>I am a newcomer to this competition. I've seen a lot of kernels and discussion, and thought similar to this comment. Most discussions and kernels use raw data to processed signal. At this time, can we make the model learn how to process the signal itself? I wondered if the model could learn not only parameters in CQT, but whether to use CQT, STFT, or even a new operation.</p>",
          "rawMarkdown": "I am a newcomer to this competition. I've seen a lot of kernels and discussion, and thought similar to this comment. Most discussions and kernels use raw data to processed signal. At this time, can we make the model learn how to process the signal itself? I wondered if the model could learn not only parameters in CQT, but whether to use CQT, STFT, or even a new operation."
        },
        {
          "id": 1519815,
          "postDate": "2021-09-22T00:05:41.930Z",
          "content": "<p>i think the following approach is good:</p>\n<p>(1) use current CQT, CWT, STFT. These are baseline results and you need something to test your signal pre processing as well</p>\n<p>(2) Analyze results. you can tune the parameters by hand to improve. This becomes another baseline for automatic tunning (like RL or other learnable front-end)</p>\n<p>in designing models ourselves, the most important thing is to set the optimal expected performance. It gives us a \"direction\" to do our experiments. Hence setting baseline is important.</p>\n<p>(3) From the experiment results, maybe you can discover something new and design your \"own operation\", etc. your \"own operation\" should at least match the results of (1) and (2) and preferably improve them</p>\n<p>whether the experiments will succeed or not depends on the data.  e.g. if there is not enough data for automatic learning, then standard CQT, CWT may work better.</p>\n<p>e.g. if sin/cos wave is the \"best solution\", how much data does it need for a model to learn the perfect sinuous wave form (without noise)?</p>",
          "rawMarkdown": "i think the following approach is good:\n\n(1) use current CQT, CWT, STFT. These are baseline results and you need something to test your signal pre processing as well\n\n(2) Analyze results. you can tune the parameters by hand to improve. This becomes another baseline for automatic tunning (like RL or other learnable front-end)\n\nin designing models ourselves, the most important thing is to set the optimal expected performance. It gives us a \"direction\" to do our experiments. Hence setting baseline is important.\n\n(3) From the experiment results, maybe you can discover something new and design your \"own operation\", etc. your \"own operation\" should at least match the results of (1) and (2) and preferably improve them\n\nwhether the experiments will succeed or not depends on the data.  e.g. if there is not enough data for automatic learning, then standard CQT, CWT may work better.\n\ne.g. if sin/cos wave is the \"best solution\", how much data does it need for a model to learn the perfect sinuous wave form (without noise)?",
          "votes": 3
        },
        {
          "id": 1526209,
          "postDate": "2021-09-28T00:16:41.827Z",
          "content": "<p><a href=\"https://pure.mpg.de/rest/items/item_3320786/component/file_3320788/content\" target=\"_blank\">https://pure.mpg.de/rest/items/item_3320786/component/file_3320788/content</a><br>\nGenetic-algorithm-optimized neural networks for gravitational wave<br>\nclassification</p>",
          "rawMarkdown": "https://pure.mpg.de/rest/items/item_3320786/component/file_3320788/content\nGenetic-algorithm-optimized neural networks for gravitational wave\nclassification",
          "votes": 1
        }
      ]
    },
    {
      "id": 1504014,
      "postDate": "2021-09-06T02:07:08.843Z",
      "content": "<p>ensembling still works if your input is different.</p>\n<p>if you use multiple different networks on the same input, effect of ensembling is less (this is due to distribution of the predicted score)</p>",
      "rawMarkdown": "ensembling still works if your input is different.\n\nif you use multiple different networks on the same input, effect of ensembling is less (this is due to distribution of the predicted score)",
      "votes": 2
    },
    {
      "id": 1504048,
      "postDate": "2021-09-06T03:11:37.933Z",
      "content": "<p>How are you resizing your spectograms <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a> ? <code>torch.nn.functional.interpolate</code> ?</p>",
      "rawMarkdown": "How are you resizing your spectograms @hengck23 ? `torch.nn.functional.interpolate` ?"
    },
    {
      "id": 1559745,
      "postDate": "2021-10-27T07:11:16.297Z",
      "content": "<p>Hey All,</p>\n<p>Thank you all for taking part in our competition. The participation has been overwhelmingly positive. We are currently conducting a survey to gauge the demographic and outreach achieved. Kindly spare 2min and fill in this survey <a href=\"https://forms.gle/QP9L16niPexozyhu5\" target=\"_blank\">https://forms.gle/QP9L16niPexozyhu5</a>.</p>\n<p>Thank you all,</p>\n<p>Regards,<br>\nChris</p>",
      "rawMarkdown": "Hey All,\n\nThank you all for taking part in our competition. The participation has been overwhelmingly positive. We are currently conducting a survey to gauge the demographic and outreach achieved. Kindly spare 2min and fill in this survey https://forms.gle/QP9L16niPexozyhu5.\n\nThank you all,\n\nRegards,\nChris"
    },
    {
      "id": 1511873,
      "postDate": "2021-09-13T18:35:11.637Z",
      "content": "<p>I can confirm that your CQT params are better than most public kernel params. It improved val_auc and cv score:</p>\n<p><img src=\"https://i.ibb.co/F3G2wGZ/bc.jpg\" alt=\"bc.jpg\"></p>",
      "rawMarkdown": "I can confirm that your CQT params are better than most public kernel params. It improved val_auc and cv score:\n\n![bc.jpg](https://i.ibb.co/F3G2wGZ/bc.jpg)"
    },
    {
      "id": 1509744,
      "postDate": "2021-09-11T16:35:36.967Z",
      "content": "<p>how to change the image size by adjust the CQT parameters? can you give a example?</p>",
      "rawMarkdown": "how to change the image size by adjust the CQT parameters? can you give a example?",
      "replies": [
        {
          "id": 1509836,
          "postDate": "2021-09-11T18:18:33.807Z",
          "content": "<p>Just try. </p>",
          "rawMarkdown": "Just try. "
        },
        {
          "id": 1510481,
          "postDate": "2021-09-12T12:57:51.180Z",
          "content": "<p>Changing the <code>CQT1992v2</code> parameters in <code>nnAudio</code>, for example <code>hop_length</code>, <code>bins_per_octave</code>, and so on, will change the CQT 2D output (this is the image you refer to I guess). </p>\n<p>As mentioned by <a href=\"https://www.kaggle.com/cpmpml\" target=\"_blank\">@cpmpml</a>, change some of the parameters and check how the shape of the output changes. This experiment can be done quickly using one signal for example.</p>\n<p>Best of luck!</p>",
          "rawMarkdown": "Changing the `CQT1992v2` parameters in `nnAudio`, for example `hop_length`, `bins_per_octave`, and so on, will change the CQT 2D output (this is the image you refer to I guess). \n\nAs mentioned by @cpmpml, change some of the parameters and check how the shape of the output changes. This experiment can be done quickly using one signal for example.\n\nBest of luck!"
        },
        {
          "id": 1511833,
          "postDate": "2021-09-13T18:06:49.713Z",
          "content": "<p>Adjust n_hop to get different time frames, adjust bins_per_octave and filter_scale to get different frequecy bins:</p>\n<pre><code>'n_hop': 24/25/27/28/36 -&gt; 513/492/456/439/342 time frames\n'bins_per_octave' and 'filter_scale':(12, 1)/(24, 0.5)/(30, 0.4)/(40, 0.3)/(48, 0.25) -&gt; 69/137/171/228/273 freq bins\n</code></pre>",
          "rawMarkdown": "Adjust n_hop to get different time frames, adjust bins_per_octave and filter_scale to get different frequecy bins:\n\n```\n'n_hop': 24/25/27/28/36 -> 513/492/456/439/342 time frames\n'bins_per_octave' and 'filter_scale':(12, 1)/(24, 0.5)/(30, 0.4)/(40, 0.3)/(48, 0.25) -> 69/137/171/228/273 freq bins\n```",
          "votes": 2
        }
      ]
    },
    {
      "id": 1507375,
      "postDate": "2021-09-09T06:30:19.770Z",
      "content": "<p>Thanks <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a> , this thread is super helpful!</p>",
      "rawMarkdown": "Thanks @hengck23 , this thread is super helpful!"
    },
    {
      "id": 1505383,
      "postDate": "2021-09-07T07:52:10.263Z",
      "content": "<p><a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>  any difference between CQT freq limits and explicit Bandapss filter.. in some forum i have  read  that they are said same </p>",
      "rawMarkdown": "@hengck23  any difference between CQT freq limits and explicit Bandapss filter.. in some forum i have  read  that they are said same ",
      "replies": [
        {
          "id": 1505448,
          "postDate": "2021-09-07T09:14:04.110Z",
          "rawMarkdown": "",
          "isDeleted": true
        },
        {
          "id": 1505652,
          "postDate": "2021-09-07T13:01:09.043Z",
          "content": "<p>Bandpass/bandstop doesn't annihilate the frequencies past the defined boundaries, but actually attenuates them: <img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/Bandwidth_2.svg/600px-Bandwidth_2.svg.png\" alt=\"\"> Due to this, it is not idempotent and you'll get different results when applied multiple times even with the exact same range. </p>",
          "rawMarkdown": "Bandpass/bandstop doesn't annihilate the frequencies past the defined boundaries, but actually attenuates them: ![](https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/Bandwidth_2.svg/600px-Bandwidth_2.svg.png) Due to this, it is not idempotent and you'll get different results when applied multiple times even with the exact same range. ",
          "votes": 3
        }
      ]
    },
    {
      "id": 1503181,
      "postDate": "2021-09-05T05:41:48.303Z",
      "rawMarkdown": "",
      "isDeleted": true
    },
    {
      "id": 1510448,
      "postDate": "2021-09-12T12:31:42.213Z",
      "content": "<p>thank you for your share!</p>",
      "rawMarkdown": "thank you for your share!",
      "votes": 1
    },
    {
      "id": 1528248,
      "postDate": "2021-09-29T13:53:06.740Z",
      "content": "<p>thank for sharing</p>",
      "rawMarkdown": "thank for sharing"
    }
  ],
  "comments": [
    {
      "id": 1507590,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-09T10:42:53.130000",
      "content": "<p>interactive web app:<br>\n<a href=\"https://share.streamlit.io/jkanner/streamlit-dataview/app.py\" target=\"_blank\">https://share.streamlit.io/jkanner/streamlit-dataview/app.py</a></p>\n<p>you can adjust the parameters of CQT and see the results instantly</p>\n<pre><code>A parameter called “Q” refers to the quality factor. A higher quality factor corresponds to a larger number of cycles in each time-frequency pixel.\n\nFor gravitational-wave signals, binary black holes are most clear with lower Q values (Q = 5-20), where binary neutron star mergers work better with higher Q values (Q = 80 - 120).\n</code></pre>\n<p>maybe more here:</p>\n<p><a href=\"https://share.streamlit.io/jkanner/streamlit-audio/main/app.py\" target=\"_blank\">https://share.streamlit.io/jkanner/streamlit-audio/main/app.py</a><br>\n<a href=\"https://iphysresearch.github.io/blog/project/gwda/\" target=\"_blank\">https://iphysresearch.github.io/blog/project/gwda/</a><br>\n<a href=\"https://github.com/moble/MatchedFiltering\" target=\"_blank\">https://github.com/moble/MatchedFiltering</a></p>",
      "votes": 21,
      "replies": [
        {
          "id": 1513380,
          "author_name": "Jaideep",
          "author_url": "",
          "post_date": "2021-09-15T05:56:07.223000",
          "content": "<p><a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a> Q-factor is this some thing one can set using various API we use for CQT ?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1513389,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2021-09-15T06:17:44.547000",
          "content": "<p>you would have to read the code/document of your API</p>\n<pre><code>        Q = float(filter_scale)/(2**(1/num_bin_per_octave)-1)\n</code></pre>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 1513416,
          "author_name": "Jaideep",
          "author_url": "",
          "post_date": "2021-09-15T06:56:43.410000",
          "content": "<p>oops yes i saw this now..</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 1514990,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-16T16:12:26.190000",
      "content": "<p>watch how the signal is buried in noise when I increase the snr</p>\n<p><img src=\"https://i.ibb.co/fnqwq52/noise.gif\" alt=\"https://i.ibb.co/fnqwq52/noise.gif\"></p>",
      "votes": 16,
      "replies": []
    },
    {
      "id": 1510706,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-12T16:54:07.673000",
      "content": "<p>after reading several papers and some numerous papers, I make the following observations:</p>\n<p>(1) there must be some reasons why we need many, many, many templates in classical match filtering. <br>\ni think this is because there is so much noise that the template needs to be very precise.</p>\n<p>(2) this is also why deep network (e.g. effb7) with many parameters tends to work better</p>\n<p>(3) there is inconsistent reporting and results on various signal processing. e.g. bandpass filtering seems to work for some kagglers, but not all. In fact, some cqt parameters only work for some network architectures, etc</p>\n<p>this is because I think  various signal processing is affecting different subsets of the test samples</p>\n<p>(4)  rather than thinking about ensembling, maybe it is more worthwhile to think about divide and conquer. e.g. different sets of parameters for different subsets of the test samples. cascade of refinement networks, training with adaboost weights, etc</p>\n<p>maybe no one model can solve the problem alone</p>\n<p>when it comes to waveform and fft, one has to be careful about 64-bit, 32-bit and 16-bit</p>",
      "votes": 11,
      "replies": []
    },
    {
      "id": 1506165,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-08T00:59:48.483000",
      "content": "<p>update1:<br>\n<img src=\"https://i.ibb.co/HYcdHb0/Selection-804.png\" alt=\"https://i.ibb.co/HYcdHb0/Selection-804.png\"></p>\n<p><img src=\"https://i.ibb.co/LQMt6rW/Selection-805.png\" alt=\"https://i.ibb.co/LQMt6rW/Selection-805.png\"></p>",
      "votes": 9,
      "replies": [
        {
          "id": 1507020,
          "author_name": "Jaideep",
          "author_url": "",
          "post_date": "2021-09-08T18:25:08.717000",
          "content": "<p><a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>  how we build fake mask attn </p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1507046,
          "author_name": "عثمان",
          "author_url": "",
          "post_date": "2021-09-08T18:53:28.493000",
          "content": "<p>Just darken the areas where you feel there's less likely to be a GW. Original image = 128x128, \"faux\" segmentation = 4x4, there should be one pixel (lol?) in that region that is less likely to have a gw.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1507458,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2021-09-09T08:10:03.640000",
          "content": "<p>note that many of the improvements in 128x128 may not necessarily work as well for larger sizes like 256x256, etc.</p>\n<p>the improvement seems to diminishes for larger size.</p>\n<p>here is another results:</p>\n<p>input 128  <br>\ncv 0.86947 (configure11)/ 0.870493(configure11a)        <br>\nuse sin2 and cos2 as separate channels, instead of the normal magnitude channel. this results in 6 channel input to CNN (instead of the usual 3)</p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 1507686,
          "author_name": "Aman Harsh",
          "author_url": "",
          "post_date": "2021-09-09T12:27:25.343000",
          "content": "<p><code>use sin2 and cos2 separate channel (i.e. 6 channel input to CNN)\n</code><br>\nHi <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>, Can you please share something about this. I couldn't understand.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1513778,
          "author_name": "Jaideep",
          "author_url": "",
          "post_date": "2021-09-15T12:04:00.927000",
          "content": "<p><a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a> your latest high with b2 is using   image size  256 and  adjusted CQT parameters? i tried b0 with best possible combinations of CQT couldnt go beyond 87.2 so far</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 1503882,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-05T19:52:40.823000",
      "content": "<p>as a side remark:<br>\nwhy limit to 3 channels input to your CNN. you can have multiple-Q in your CQT. e.g. have N cqt per wave to create 3N channel input</p>",
      "votes": 7,
      "replies": []
    },
    {
      "id": 1520218,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-22T07:53:18.457000",
      "content": "<p>i did some last-minute experiments on trainable CQT.</p>\n<p>Actually, it works. i don't see any significant improvement or degrade of results currently. the trick is to use a very large batch size.</p>\n<p>for me, it needs batch size &gt;768.  i think 1024 would be better.</p>\n<p>but there is an issue. with large batch size and large input image size, the tensor is too large and nvidia cudnn conv2d cannot process the data (i can fit like tensor into memory since i have a 48GB gpu card but the cudnn conv has an error due to large tensor)</p>",
      "votes": 5,
      "replies": [
        {
          "id": 1521117,
          "author_name": "",
          "author_url": "",
          "post_date": "2021-09-22T22:46:40.060000",
          "content": "",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1521137,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2021-09-22T23:44:39.970000",
          "content": "<p>how the CQT of learnable kernels looks like … pretty noisy.<br>\n<img src=\"https://i.ibb.co/mhjgSrC/Selection-889.png\" alt=\"https://i.ibb.co/mhjgSrC/Selection-889.png\"></p>\n<hr>\n<p><img src=\"https://i.ibb.co/SrTYdGN/Selection-915.png\" alt=\"https://i.ibb.co/SrTYdGN/Selection-915.png\"></p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1521139,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2021-09-22T23:48:10.617000",
          "content": "<p><a href=\"https://www.kaggle.com/egortrushin\" target=\"_blank\">@egortrushin</a> </p>\n<p>even with large batch size, there is overfitting.</p>\n<p>in the original code of nn.Audio, the whole kernel is learnable, i.e. all values to the size of max kernel width</p>\n<p>i make modifications to the code to restrict the length of each kernel.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1521145,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2021-09-23T00:13:33.540000",
          "content": "<p>examples of learned kernels</p>\n<p><img src=\"https://i.ibb.co/S38CDB2/Selection-898.png\" alt=\"https://i.ibb.co/S38CDB2/Selection-898.png\"></p>",
          "votes": 3,
          "replies": []
        }
      ]
    },
    {
      "id": 1526246,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-28T01:14:04.697000",
      "content": "<p>I am still struggling to make whitening works. This is a must read <a href=\"https://arxiv.org/pdf/gr-qc/0412119.pdf\" target=\"_blank\">https://arxiv.org/pdf/gr-qc/0412119.pdf</a></p>\n<p><a href=\"https://dcc.ligo.org/public/0035/G040521/000/G040521-00.pdf\" target=\"_blank\">https://dcc.ligo.org/public/0035/G040521/000/G040521-00.pdf</a></p>",
      "votes": 3,
      "replies": [
        {
          "id": 1526282,
          "author_name": "عثمان",
          "author_url": "",
          "post_date": "2021-09-28T02:14:36.350000",
          "content": "<p>As always, thanks for sharing <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>. The procedure in the paper definitely does \"something\". Just dunno if it makes modeling easier or not yet. I've visually tested a few different filter sizes. I didn't understand the part on how to make it 'zero phase' so for now, response is lagged I guess:</p>\n<p>Image pairs are 'whitened' and 'whitened bandpassed' per filter length.<br>\n<img src=\"https://i.ibb.co/h7KR3h5/attempt.png\" alt=\"\"></p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1526424,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2021-09-28T05:29:15.677000",
          "content": "<p>refer to chapter-14: <a href=\"https://core.ac.uk/download/pdf/4399555.pdf\" target=\"_blank\">https://core.ac.uk/download/pdf/4399555.pdf</a></p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1527827,
          "author_name": "Gleb",
          "author_url": "",
          "post_date": "2021-09-29T06:16:14.240000",
          "content": "<p><a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>  <a href=\"https://www.kaggle.com/authman\" target=\"_blank\">@authman</a> Described \"whitening\" seems strange to me, as authors basically suggests to build a parametrized linear combination from lagged versions of signal, and then minimize RMSE with original signal. Solution to this problem would be constant (with low snr signal for sure): [N, 0, 0, … ,0] - coefficients of linear combination. Taking one with least lag will minimize RMSE in no time. <em>If i read it right</em></p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1528160,
          "author_name": "عثمان",
          "author_url": "",
          "post_date": "2021-09-29T12:21:25.383000",
          "content": "<p>I wasn't able to get it to work. For one, all of the autoregression python packages expect that you're going to predict a chunk of timesteps and aren't setup to +1,+1,+1 predict timestep after timestep with updated information. Due to this I had to roll out the code myself which was SLOW. And then second, the nets wouldn't converge, neither in 1d or 2d. It was strange since at least one big gw spike image I visualized looked like it was improved by this procedure <img src=\"https://i.ibb.co/wYmps7F/whitening.png\" alt=\"\"></p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1528570,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2021-09-29T18:38:20.360000",
          "content": "<p>i give up on whitening for now. maybe i will try after the deadline.<br>\nbut I discover something interesting?</p>\n<p>\"if you cannot whiten your signal, normalize your filters\"</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1528574,
          "author_name": "عثمان",
          "author_url": "",
          "post_date": "2021-09-29T18:44:05.043000",
          "content": "<p>I tried something sorta similar to that. After fully training a model, I weiber filter all convolutional kernels and let it train on the same fold again @ 50% initial LR, and it usually converges a few auc higher. It would have been interesting competing with you on a team <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>, you have a lot of great ideas and with some team mates you can delegate to better explore them.</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 1506174,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-08T01:21:02.737000",
      "content": "<p>anyone can provide workable pytorch cwt code (continuous wavelet) and parameters for me to plug and play?<br>\ni will provide experiment results and enhancement.</p>",
      "votes": 3,
      "replies": [
        {
          "id": 1506353,
          "author_name": "yukiya",
          "author_url": "",
          "post_date": "2021-09-08T06:30:22.150000",
          "content": "<p><a href=\"https://www.kaggle.com/anjum48/continuous-wavelet-transform-cwt-in-pytorch\" target=\"_blank\">https://www.kaggle.com/anjum48/continuous-wavelet-transform-cwt-in-pytorch</a></p>\n<p>I come across that if it can help you in any way.<br>\nThank you always for all your sharing</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 1510015,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-12T00:03:13.067000",
      "content": "<p>train your own kernel<br>\n(the upper hydrid 1d and 2d cnn is interesting)<br>\n<img src=\"https://i.ibb.co/f007Wrc/Selection-840.png\" alt=\"https://i.ibb.co/f007Wrc/Selection-840.png\"></p>\n<p>you can input multiple CQT transform, some are trainable and some are not</p>",
      "votes": 4,
      "replies": [
        {
          "id": 1510474,
          "author_name": "Yassine Alouini",
          "author_url": "",
          "post_date": "2021-09-12T12:55:13.143000",
          "content": "<p>I have noticed that the CQT function in <code>nnAudio</code> has a <code>trainable</code> parameter (set to <code>False</code> by default) so might be linked to what you have shared. 👌</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 1509951,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-11T20:10:40.747000",
      "content": "<p>interesting paper:<br>\n<a href=\"https://arxiv.org/pdf/2010.15049.pdf\" target=\"_blank\">https://arxiv.org/pdf/2010.15049.pdf</a><br>\n<a href=\"https://www.youtube.com/watch?v=6L4eA59J_a4\" target=\"_blank\">https://www.youtube.com/watch?v=6L4eA59J_a4</a><br>\n<a href=\"https://github.com/SubramaniKrishna/STFTgrad\" target=\"_blank\">https://github.com/SubramaniKrishna/STFTgrad</a></p>\n<p>The Short-Time Fourier Transform (STFT) has been a staple of signal processing, often being the first step for many audio tasks. A very familiar process when using the STFT is the search for the best<br>\nSTFT parameters, as they often have significant side effects if chosen poorly. These parameters are often defined in terms of an integer number of samples, which makes their optimization non-trivial. In this paper we show an approach that allows us to obtain a gradient for STFT parameters with respect to arbitrary cost functions, and thus<br>\nenable the ability to employ gradient descent optimization of quantities like the STFT window length, or the STFT hop size …</p>",
      "votes": 4,
      "replies": [
        {
          "id": 1512092,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2021-09-14T00:37:51.897000",
          "content": "<p>LEAF: A Learnable Frontend for Audio Classification<br>\n<a href=\"https://ai.googleblog.com/2021/03/leaf-learnable-frontend-for-audio.html\" target=\"_blank\">https://ai.googleblog.com/2021/03/leaf-learnable-frontend-for-audio.html</a></p>\n<p><img src=\"https://1.bp.blogspot.com/-m4e9QZ6qDCw/YEuqCqOEgcI/AAAAAAAAHS8/kzNrjSNTgt8dUoMFqfFwCInLrjSwZdubQCLcBGAsYHQ/w640-h236/image1.png\" alt=\"https://1.bp.blogspot.com/-m4e9QZ6qDCw/YEuqCqOEgcI/AAAAAAAAHS8/kzNrjSNTgt8dUoMFqfFwCInLrjSwZdubQCLcBGAsYHQ/w640-h236/image1.png\"></p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1512143,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2021-09-14T02:58:17.770000",
          "content": "<p>more trainable front-end:</p>\n<ul>\n<li>A Multi-Head Relevance Weighting Framework For Learning Raw Waveform Audio Representations</li>\n<li>FastAudio: A Learnable Audio Front-End for Spoof Speech Detection</li>\n</ul>\n<p><img src=\"https://i.ibb.co/L1pg4b0/Selection-866.png\" alt=\"https://i.ibb.co/L1pg4b0/Selection-866.png\"></p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 1504363,
      "author_name": "Hanson0910",
      "author_url": "",
      "post_date": "2021-09-06T10:06:38.900000",
      "content": "<p>thank you for your share,bandpass is not work for me, i try diffs bandpass params,all of them reduce the cv.</p>",
      "votes": 4,
      "replies": []
    },
    {
      "id": 1504015,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-06T02:09:04.353000",
      "content": "<p>on a side note, i wonder if anyone attempts to cluster the negative samples.  how many different types of simulated noisy environments?</p>\n<p>also for a negative sample, how the CQT changes if the CQT parameters changes …<br>\n(I expect behaviour of +ve and -ve samples should be different)</p>",
      "votes": 4,
      "replies": []
    },
    {
      "id": 1503876,
      "author_name": "Laura Fink",
      "author_url": "",
      "post_date": "2021-09-05T19:38:37.837000",
      "content": "<p>Thank you for sharing <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a> ! This nice video helps as well to understand better which kind of time/frequency resolution is needed to set filter scale.</p>\n<p><a href=\"https://youtu.be/kuuUaqAjeoA\" target=\"_blank\">https://youtu.be/kuuUaqAjeoA</a></p>",
      "votes": 4,
      "replies": []
    },
    {
      "id": 1503291,
      "author_name": "Tanish Gupta",
      "author_url": "",
      "post_date": "2021-09-05T08:25:36.197000",
      "content": "<p><a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>  what is filter_scale in your CQT1992v2 as I have not found any parameter like filter_scale</p>",
      "votes": 4,
      "replies": [
        {
          "id": 1503393,
          "author_name": "RB",
          "author_url": "",
          "post_date": "2021-09-05T10:27:02.620000",
          "content": "<p>It's in the github repo (we could directly install from github) - <a href=\"https://kinwaicheuk.github.io/nnAudio/master/_autosummary/nnAudio.Spectrogram.CQT1992v2.html\" target=\"_blank\">https://kinwaicheuk.github.io/nnAudio/master/_autosummary/nnAudio.Spectrogram.CQT1992v2.html</a> </p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 1503414,
          "author_name": "Tanish Gupta",
          "author_url": "",
          "post_date": "2021-09-05T10:50:42.840000",
          "content": "<p>Thanks for the repo <a href=\"https://www.kaggle.com/rashmibanthia\" target=\"_blank\">@rashmibanthia</a> </p>",
          "votes": 2,
          "replies": []
        }
      ]
    },
    {
      "id": 1517721,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-20T02:32:01.203000",
      "content": "<p>at high resolution, i start to see the shift</p>\n<p><img src=\"https://i.ibb.co/872cysj/Selection-883.png\" alt=\"https://i.ibb.co/872cysj/Selection-883.png\"><br>\n<img src=\"https://i.ibb.co/zPw1vT4/Selection-884.png\" alt=\"https://i.ibb.co/zPw1vT4/Selection-884.png\"></p>\n<p>maybe good for augmentation (and i wonder how to max pooling in 1d cnn)</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1517712,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-20T02:10:14.987000",
      "content": "<p>customize resize?</p>\n<p><img src=\"https://i.ibb.co/w0zsNGR/Selection-879.png\" alt=\"https://i.ibb.co/w0zsNGR/Selection-879.png\"></p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1506190,
      "author_name": "Pims",
      "author_url": "",
      "post_date": "2021-09-08T01:57:47.827000",
      "content": "<p>Have you meet this problem when you set a high filter_scale?</p>\n<p>columns 4045 to 4050 ….<br>\n….<br>\n….<br>\ncolumns 4093 to 4096 ….<br>\n[ torch.cuda.FloatTensor{6,1,4096}  ]</p>\n<p>(sorry, unable to copy to kaggle comment…)</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1513165,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-14T22:35:08.197000",
      "content": "<p>Reinforcement learning to search for best signal processing</p>\n<p>i wonder did another use RL to search for best parameters of CQT, bandpass filtering, etc.<br>\nthis would be very computation-intensive.<br>\nbut maybe it would be a good application of RL?</p>\n<p>the search would be similar to NAS (network architectural search)<br>\ni am just using \"trial and error\" approach.<br>\nmore \"scientific\" ways would include RL, bayesian hypropt, etc<br>\nI wonder how these autoML would compare against human?</p>",
      "votes": 2,
      "replies": [
        {
          "id": 1513170,
          "author_name": "Johnny Lee",
          "author_url": "",
          "post_date": "2021-09-14T22:49:25.280000",
          "content": "<p>I've tried some simple grid search with small model and less data, but it take a long time. And I got nothing for now. :(</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1514875,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2021-09-16T14:03:50.987000",
          "content": "<p>grid search in reality<br>\n<img src=\"https://i.ibb.co/SX9ZQnx/Selection-877.png\" alt=\"https://i.ibb.co/SX9ZQnx/Selection-877.png\"></p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 1519161,
          "author_name": "Wonho Song",
          "author_url": "",
          "post_date": "2021-09-21T11:16:38.930000",
          "content": "<p>I am a newcomer to this competition. I've seen a lot of kernels and discussion, and thought similar to this comment. Most discussions and kernels use raw data to processed signal. At this time, can we make the model learn how to process the signal itself? I wondered if the model could learn not only parameters in CQT, but whether to use CQT, STFT, or even a new operation.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1519815,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2021-09-22T00:05:41.930000",
          "content": "<p>i think the following approach is good:</p>\n<p>(1) use current CQT, CWT, STFT. These are baseline results and you need something to test your signal pre processing as well</p>\n<p>(2) Analyze results. you can tune the parameters by hand to improve. This becomes another baseline for automatic tunning (like RL or other learnable front-end)</p>\n<p>in designing models ourselves, the most important thing is to set the optimal expected performance. It gives us a \"direction\" to do our experiments. Hence setting baseline is important.</p>\n<p>(3) From the experiment results, maybe you can discover something new and design your \"own operation\", etc. your \"own operation\" should at least match the results of (1) and (2) and preferably improve them</p>\n<p>whether the experiments will succeed or not depends on the data.  e.g. if there is not enough data for automatic learning, then standard CQT, CWT may work better.</p>\n<p>e.g. if sin/cos wave is the \"best solution\", how much data does it need for a model to learn the perfect sinuous wave form (without noise)?</p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 1526209,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "2021-09-28T00:16:41.827000",
          "content": "<p><a href=\"https://pure.mpg.de/rest/items/item_3320786/component/file_3320788/content\" target=\"_blank\">https://pure.mpg.de/rest/items/item_3320786/component/file_3320788/content</a><br>\nGenetic-algorithm-optimized neural networks for gravitational wave<br>\nclassification</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 1504014,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "2021-09-06T02:07:08.843000",
      "content": "<p>ensembling still works if your input is different.</p>\n<p>if you use multiple different networks on the same input, effect of ensembling is less (this is due to distribution of the predicted score)</p>",
      "votes": 2,
      "replies": []
    },
    {
      "id": 1504048,
      "author_name": "Ayushman Buragohain",
      "author_url": "",
      "post_date": "2021-09-06T03:11:37.933000",
      "content": "<p>How are you resizing your spectograms <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a> ? <code>torch.nn.functional.interpolate</code> ?</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 1559745,
      "author_name": "ChristopherZerafa",
      "author_url": "",
      "post_date": "2021-10-27T07:11:16.297000",
      "content": "<p>Hey All,</p>\n<p>Thank you all for taking part in our competition. The participation has been overwhelmingly positive. We are currently conducting a survey to gauge the demographic and outreach achieved. Kindly spare 2min and fill in this survey <a href=\"https://forms.gle/QP9L16niPexozyhu5\" target=\"_blank\">https://forms.gle/QP9L16niPexozyhu5</a>.</p>\n<p>Thank you all,</p>\n<p>Regards,<br>\nChris</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 1511873,
      "author_name": "Furkan K",
      "author_url": "",
      "post_date": "2021-09-13T18:35:11.637000",
      "content": "<p>I can confirm that your CQT params are better than most public kernel params. It improved val_auc and cv score:</p>\n<p><img src=\"https://i.ibb.co/F3G2wGZ/bc.jpg\" alt=\"bc.jpg\"></p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 1509744,
      "author_name": "Hao Ge",
      "author_url": "",
      "post_date": "2021-09-11T16:35:36.967000",
      "content": "<p>how to change the image size by adjust the CQT parameters? can you give a example?</p>",
      "votes": 0,
      "replies": [
        {
          "id": 1509836,
          "author_name": "CPMP",
          "author_url": "",
          "post_date": "2021-09-11T18:18:33.807000",
          "content": "<p>Just try. </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1510481,
          "author_name": "Yassine Alouini",
          "author_url": "",
          "post_date": "2021-09-12T12:57:51.180000",
          "content": "<p>Changing the <code>CQT1992v2</code> parameters in <code>nnAudio</code>, for example <code>hop_length</code>, <code>bins_per_octave</code>, and so on, will change the CQT 2D output (this is the image you refer to I guess). </p>\n<p>As mentioned by <a href=\"https://www.kaggle.com/cpmpml\" target=\"_blank\">@cpmpml</a>, change some of the parameters and check how the shape of the output changes. This experiment can be done quickly using one signal for example.</p>\n<p>Best of luck!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1511833,
          "author_name": "Hao",
          "author_url": "",
          "post_date": "2021-09-13T18:06:49.713000",
          "content": "<p>Adjust n_hop to get different time frames, adjust bins_per_octave and filter_scale to get different frequecy bins:</p>\n<pre><code>'n_hop': 24/25/27/28/36 -&gt; 513/492/456/439/342 time frames\n'bins_per_octave' and 'filter_scale':(12, 1)/(24, 0.5)/(30, 0.4)/(40, 0.3)/(48, 0.25) -&gt; 69/137/171/228/273 freq bins\n</code></pre>",
          "votes": 2,
          "replies": []
        }
      ]
    },
    {
      "id": 1507375,
      "author_name": "Old Monk",
      "author_url": "",
      "post_date": "2021-09-09T06:30:19.770000",
      "content": "<p>Thanks <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a> , this thread is super helpful!</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 1505383,
      "author_name": "Jaideep",
      "author_url": "",
      "post_date": "2021-09-07T07:52:10.263000",
      "content": "<p><a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>  any difference between CQT freq limits and explicit Bandapss filter.. in some forum i have  read  that they are said same </p>",
      "votes": 0,
      "replies": [
        {
          "id": 1505448,
          "author_name": "",
          "author_url": "",
          "post_date": "2021-09-07T09:14:04.110000",
          "content": "",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1505652,
          "author_name": "عثمان",
          "author_url": "",
          "post_date": "2021-09-07T13:01:09.043000",
          "content": "<p>Bandpass/bandstop doesn't annihilate the frequencies past the defined boundaries, but actually attenuates them: <img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/Bandwidth_2.svg/600px-Bandwidth_2.svg.png\" alt=\"\"> Due to this, it is not idempotent and you'll get different results when applied multiple times even with the exact same range. </p>",
          "votes": 3,
          "replies": []
        }
      ]
    },
    {
      "id": 1503181,
      "author_name": "",
      "author_url": "",
      "post_date": "2021-09-05T05:41:48.303000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 1510448,
      "author_name": "954",
      "author_url": "",
      "post_date": "2021-09-12T12:31:42.213000",
      "content": "<p>thank you for your share!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1528248,
      "author_name": "pppxia",
      "author_url": "",
      "post_date": "2021-09-29T13:53:06.740000",
      "content": "<p>thank for sharing</p>",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "1503093": "the forum is the best place to find baseline results:\n\n![https://i.ibb.co/9VwB3n2/Selection-799.png](https://i.ibb.co/9VwB3n2/Selection-799.png)",
    "1507590": "interactive web app:\nhttps://share.streamlit.io/jkanner/streamlit-dataview/app.py\n\n\nyou can adjust the parameters of CQT and see the results instantly\n```\nA parameter called “Q” refers to the quality factor. A higher quality factor corresponds to a larger number of cycles in each time-frequency pixel.\n\nFor gravitational-wave signals, binary black holes are most clear with lower Q values (Q = 5-20), where binary neutron star mergers work better with higher Q values (Q = 80 - 120).\n```\n\nmaybe more here:\n\nhttps://share.streamlit.io/jkanner/streamlit-audio/main/app.py\nhttps://iphysresearch.github.io/blog/project/gwda/\nhttps://github.com/moble/MatchedFiltering",
    "1514990": "watch how the signal is buried in noise when I increase the snr\n\n![https://i.ibb.co/fnqwq52/noise.gif](https://i.ibb.co/fnqwq52/noise.gif)",
    "1510706": "after reading several papers and some numerous papers, I make the following observations:\n\n(1) there must be some reasons why we need many, many, many templates in classical match filtering. \ni think this is because there is so much noise that the template needs to be very precise.\n\n\n\n(2) this is also why deep network (e.g. effb7) with many parameters tends to work better\n\n(3) there is inconsistent reporting and results on various signal processing. e.g. bandpass filtering seems to work for some kagglers, but not all. In fact, some cqt parameters only work for some network architectures, etc\n\nthis is because I think  various signal processing is affecting different subsets of the test samples\n\n (4)  rather than thinking about ensembling, maybe it is more worthwhile to think about divide and conquer. e.g. different sets of parameters for different subsets of the test samples. cascade of refinement networks, training with adaboost weights, etc\n\nmaybe no one model can solve the problem alone\n\nwhen it comes to waveform and fft, one has to be careful about 64-bit, 32-bit and 16-bit",
    "1506165": "update1:\n![https://i.ibb.co/HYcdHb0/Selection-804.png](https://i.ibb.co/HYcdHb0/Selection-804.png)\n\n![https://i.ibb.co/LQMt6rW/Selection-805.png](https://i.ibb.co/LQMt6rW/Selection-805.png)",
    "1503882": "as a side remark:\nwhy limit to 3 channels input to your CNN. you can have multiple-Q in your CQT. e.g. have N cqt per wave to create 3N channel input",
    "1520218": "i did some last-minute experiments on trainable CQT.\n\nActually, it works. i don't see any significant improvement or degrade of results currently. the trick is to use a very large batch size.\n\nfor me, it needs batch size >768.  i think 1024 would be better.\n\nbut there is an issue. with large batch size and large input image size, the tensor is too large and nvidia cudnn conv2d cannot process the data (i can fit like tensor into memory since i have a 48GB gpu card but the cudnn conv has an error due to large tensor)",
    "1526246": "I am still struggling to make whitening works. This is a must read https://arxiv.org/pdf/gr-qc/0412119.pdf\n\nhttps://dcc.ligo.org/public/0035/G040521/000/G040521-00.pdf",
    "1506174": "anyone can provide workable pytorch cwt code (continuous wavelet) and parameters for me to plug and play?\ni will provide experiment results and enhancement.",
    "1510015": "train your own kernel\n(the upper hydrid 1d and 2d cnn is interesting)\n![https://i.ibb.co/f007Wrc/Selection-840.png](https://i.ibb.co/f007Wrc/Selection-840.png)\n\n\nyou can input multiple CQT transform, some are trainable and some are not",
    "1509951": "interesting paper:\nhttps://arxiv.org/pdf/2010.15049.pdf\nhttps://www.youtube.com/watch?v=6L4eA59J_a4\nhttps://github.com/SubramaniKrishna/STFTgrad\n\n\nThe Short-Time Fourier Transform (STFT) has been a staple of signal processing, often being the first step for many audio tasks. A very familiar process when using the STFT is the search for the best\nSTFT parameters, as they often have significant side effects if chosen poorly. These parameters are often defined in terms of an integer number of samples, which makes their optimization non-trivial. In this paper we show an approach that allows us to obtain a gradient for STFT parameters with respect to arbitrary cost functions, and thus\nenable the ability to employ gradient descent optimization of quantities like the STFT window length, or the STFT hop size ...",
    "1504363": "thank you for your share,bandpass is not work for me, i try diffs bandpass params,all of them reduce the cv.",
    "1504015": "on a side note, i wonder if anyone attempts to cluster the negative samples.  how many different types of simulated noisy environments?\n\nalso for a negative sample, how the CQT changes if the CQT parameters changes ...\n(I expect behaviour of +ve and -ve samples should be different)",
    "1503876": "Thank you for sharing @hengck23 ! This nice video helps as well to understand better which kind of time/frequency resolution is needed to set filter scale.\n\nhttps://youtu.be/kuuUaqAjeoA\n\n",
    "1503291": "@hengck23  what is filter_scale in your CQT1992v2 as I have not found any parameter like filter_scale",
    "1517721": "at high resolution, i start to see the shift\n\n![https://i.ibb.co/872cysj/Selection-883.png](https://i.ibb.co/872cysj/Selection-883.png)\n![https://i.ibb.co/zPw1vT4/Selection-884.png](https://i.ibb.co/zPw1vT4/Selection-884.png)\n\nmaybe good for augmentation (and i wonder how to max pooling in 1d cnn)",
    "1517712": "customize resize?\n\n![https://i.ibb.co/w0zsNGR/Selection-879.png](https://i.ibb.co/w0zsNGR/Selection-879.png)",
    "1506190": "Have you meet this problem when you set a high filter_scale?\n\n\ncolumns 4045 to 4050 ....\n....\n....\ncolumns 4093 to 4096 ....\n[ torch.cuda.FloatTensor{6,1,4096}  ]\n\n\n(sorry, unable to copy to kaggle comment...)",
    "1513165": "Reinforcement learning to search for best signal processing\n \n\ni wonder did another use RL to search for best parameters of CQT, bandpass filtering, etc.\nthis would be very computation-intensive.\nbut maybe it would be a good application of RL?\n\nthe search would be similar to NAS (network architectural search)\ni am just using \"trial and error\" approach.\nmore \"scientific\" ways would include RL, bayesian hypropt, etc\nI wonder how these autoML would compare against human?",
    "1504014": "ensembling still works if your input is different.\n\nif you use multiple different networks on the same input, effect of ensembling is less (this is due to distribution of the predicted score)",
    "1504048": "How are you resizing your spectograms @hengck23 ? `torch.nn.functional.interpolate` ?",
    "1559745": "Hey All,\n\nThank you all for taking part in our competition. The participation has been overwhelmingly positive. We are currently conducting a survey to gauge the demographic and outreach achieved. Kindly spare 2min and fill in this survey https://forms.gle/QP9L16niPexozyhu5.\n\nThank you all,\n\nRegards,\nChris",
    "1511873": "I can confirm that your CQT params are better than most public kernel params. It improved val_auc and cv score:\n\n![bc.jpg](https://i.ibb.co/F3G2wGZ/bc.jpg)",
    "1509744": "how to change the image size by adjust the CQT parameters? can you give a example?",
    "1507375": "Thanks @hengck23 , this thread is super helpful!",
    "1505383": "@hengck23  any difference between CQT freq limits and explicit Bandapss filter.. in some forum i have  read  that they are said same ",
    "1503181": "",
    "1510448": "thank you for your share!",
    "1528248": "thank for sharing"
  }
}