{
  "id": 99461,
  "title": "Please do not allow memorized GAN in this competition",
  "url": "/competitions/generative-dog-images/discussion/99461",
  "author_name": "amigd23",
  "post_date": "2019-07-11T14:23:09.331000",
  "votes": 17,
  "comment_count": 18,
  "views": 0,
  "content": "<p>I think most people know already that memorized GAN is allowed (at least for now). \nThis is really disappointing! Coz it's absolutely meaningless.</p>\n\n<p>I understand it's really hard to check but as long as the rules are clear and you are willing to check the winners and the gold medals (guess just 11 teams), most people will not use memorized GAN, since it will easily goes to the top of the LB and be disqualified. Even for silver medals, it's gonna be hard to tune your model for not being checked!</p>\n\n<p>So please do not allow memorized GAN in this competition!</p>",
  "messages": [
    {
      "id": 572880,
      "postDate": "2019-07-11T14:23:09.330Z",
      "content": "<p>I think most people know already that memorized GAN is allowed (at least for now). \nThis is really disappointing! Coz it's absolutely meaningless.</p>\n\n<p>I understand it's really hard to check but as long as the rules are clear and you are willing to check the winners and the gold medals (guess just 11 teams), most people will not use memorized GAN, since it will easily goes to the top of the LB and be disqualified. Even for silver medals, it's gonna be hard to tune your model for not being checked!</p>\n\n<p>So please do not allow memorized GAN in this competition!</p>",
      "rawMarkdown": "I think most people know already that memorized GAN is allowed (at least for now). \nThis is really disappointing! Coz it's absolutely meaningless.\n\nI understand it's really hard to check but as long as the rules are clear and you are willing to check the winners and the gold medals (guess just 11 teams), most people will not use memorized GAN, since it will easily goes to the top of the LB and be disqualified. Even for silver medals, it's gonna be hard to tune your model for not being checked!\n\nSo please do not allow memorized GAN in this competition!",
      "votes": 17
    },
    {
      "id": 573002,
      "postDate": "2019-07-11T16:38:42.817Z",
      "content": "<p>We should ask <a href=\"/cdeotte\">@cdeotte</a> to check all our models!! ahahaha</p>",
      "rawMarkdown": "We should ask @cdeotte to check all our models!! ahahaha",
      "votes": 4,
      "replies": [
        {
          "id": 573011,
          "postDate": "2019-07-11T16:50:17.353Z",
          "content": "<p>haha, that's a lot of work! I see that <a href=\"https://www.kaggle.com/francoisdubois/ralsgan-dogs-improved-parameters\">your kernel</a> is scoring LB 84 now. Great work! </p>\n\n<p>I've been playing around with it. Specifically, I converted the loss functions from DCGAN to RaLSGAN explained <a href=\"https://www.kaggle.com/c/generative-dog-images/discussion/99485\">here</a>. Then I changed <code>real_label = 1.0</code> back to one for the new loss functions. I also changed picture display to <code>plt.imshow((img+1.)/2.)</code> to fix the dark images.</p>",
          "rawMarkdown": "haha, that's a lot of work! I see that [your kernel][2] is scoring LB 84 now. Great work! \n\nI've been playing around with it. Specifically, I converted the loss functions from DCGAN to RaLSGAN explained [here][1]. Then I changed `real_label = 1.0` back to one for the new loss functions. I also changed picture display to `plt.imshow((img+1.)/2.)` to fix the dark images.\n\n[1]: https://www.kaggle.com/c/generative-dog-images/discussion/99485\n[2]: https://www.kaggle.com/francoisdubois/ralsgan-dogs-improved-parameters",
          "votes": 1
        },
        {
          "id": 573022,
          "postDate": "2019-07-11T17:09:58.487Z",
          "content": "<p>Seems amazing. I will try these changes too. I'm trying now to work on a new architecture. I will share more if it works. </p>",
          "rawMarkdown": "Seems amazing. I will try these changes too. I'm trying now to work on a new architecture. I will share more if it works. ",
          "votes": 2
        }
      ]
    },
    {
      "id": 578680,
      "postDate": "2019-07-18T02:46:45.663Z",
      "content": "<p>I think the reason why memorized GANs has not been banned is that the score in private LB will be calculated by another dataset. While memorized GANs will not get a good score because of overfitting public dataset. Kaggle have confidence on it.   </p>",
      "rawMarkdown": "I think the reason why memorized GANs has not been banned is that the score in private LB will be calculated by another dataset. While memorized GANs will not get a good score because of overfitting public dataset. Kaggle have confidence on it.   ",
      "votes": 1,
      "replies": [
        {
          "id": 579171,
          "postDate": "2019-07-18T15:12:15.510Z",
          "content": "<p>Memorizer Gan will score well on private, as demonstrated here <a href=\"https://www.kaggle.com/jesucristo/private-lb-simulation-i\">https://www.kaggle.com/jesucristo/private-lb-simulation-i</a>\nThey have not been banned yet (imho) because it is painful to manually check all submissions to see if the gan memorizes or actually learns something</p>",
          "rawMarkdown": "Memorizer Gan will score well on private, as demonstrated here https://www.kaggle.com/jesucristo/private-lb-simulation-i\nThey have not been banned yet (imho) because it is painful to manually check all submissions to see if the gan memorizes or actually learns something",
          "votes": 3
        },
        {
          "id": 579177,
          "postDate": "2019-07-18T15:20:47.037Z",
          "content": "<p>I'm curious how Kaggle will pick the 11 gold winners. Kaggle will need to review hundreds of top private leaderboard submissions before they will find a non-memorizer GAN. Will they just assume that if your LB score is below 40 you are using a memorizer GAN. In that case, if you make a generalizer GAN that is too good, you won't win.</p>",
          "rawMarkdown": "I'm curious how Kaggle will pick the 11 gold winners. Kaggle will need to review hundreds of top private leaderboard submissions before they will find a non-memorizer GAN. Will they just assume that if your LB score is below 40 you are using a memorizer GAN. In that case, if you make a generalizer GAN that is too good, you won't win.",
          "votes": 3
        },
        {
          "id": 579192,
          "postDate": "2019-07-18T15:37:57.463Z",
          "content": "<p>If the guy that has the best generelizer GAN is known, then you just have to check the people that are ranked after him until there is enough legit models to fill the gold (silver?) area. \nIf you're in the top 5 you'll have to share your code to claim your prize money so hopefully people with strong legit GANs will let themselves know.</p>",
          "rawMarkdown": "If the guy that has the best generelizer GAN is known, then you just have to check the people that are ranked after him until there is enough legit models to fill the gold (silver?) area. \nIf you're in the top 5 you'll have to share your code to claim your prize money so hopefully people with strong legit GANs will let themselves know.",
          "votes": 1
        },
        {
          "id": 579543,
          "postDate": "2019-07-19T00:22:24.247Z",
          "content": "<p>Thanks for pointing out that~ It's getting complicated ！</p>",
          "rawMarkdown": "Thanks for pointing out that~ It's getting complicated ！"
        },
        {
          "id": 579750,
          "postDate": "2019-07-19T07:00:22.990Z",
          "content": "<p><a href=\"/cdeotte\">@cdeotte</a> Chris, since you know everything about this competition :)  could you please explain how magic number 40 was calculated for threshold? As far as I understand you can take memorizer GAN and make it a little bit worse so just some threshold number won't help or am I wrong?</p>",
          "rawMarkdown": "@cdeotte Chris, since you know everything about this competition :)  could you please explain how magic number 40 was calculated for threshold? As far as I understand you can take memorizer GAN and make it a little bit worse so just some threshold number won't help or am I wrong?"
        },
        {
          "id": 579796,
          "postDate": "2019-07-19T08:14:20.523Z",
          "content": "<p>maybe kaggle should organize another competition to classify kernels of this competition into generalizing GANs or memorizer GANs and use the winner's solution to rank participants of this competition xD</p>",
          "rawMarkdown": "maybe kaggle should organize another competition to classify kernels of this competition into generalizing GANs or memorizer GANs and use the winner's solution to rank participants of this competition xD"
        },
        {
          "id": 579802,
          "postDate": "2019-07-19T08:28:40.443Z",
          "content": "<p>In Kaggle Freesound 2019, it took 2 weeks to release a LB, and 27 days to finalise the LB. It really depends on how much effort the sponsors want to put in. I will be extremely disappointed if any overt memorizer gans pick up medals. </p>",
          "rawMarkdown": "In Kaggle Freesound 2019, it took 2 weeks to release a LB, and 27 days to finalise the LB. It really depends on how much effort the sponsors want to put in. I will be extremely disappointed if any overt memorizer gans pick up medals. ",
          "votes": 3
        },
        {
          "id": 579903,
          "postDate": "2019-07-19T11:35:15.343Z",
          "content": "<p><a href=\"/demonplus\">@demonplus</a> (Anna). I just picked 40 arbitrarily since that was the best traditional GAN for a while. Now it's down to 25. My point is, if we could look at all the submitted images right now we would notice that the highest LB scores of 5 thru 40 would just look like original training images to the human eye (with basic preprocessing like crops, rotations etc). So according to the rules, Kaggle could visually inspect them and declare them too similar to original training images and disqualify them all. Kaggle may only accept submissions with warped funny looking dogs.</p>\n\n<p>So then the question is, should we apply a warping preprocess so even our traditional GANs don't get accidentally disqualified if they are too good?\n<img src=\"http://playagricola.com/Kaggle/warp7719.png\" alt=\"image\"></p>",
          "rawMarkdown": "@demonplus (Anna). I just picked 40 arbitrarily since that was the best traditional GAN for a while. Now it's down to 25. My point is, if we could look at all the submitted images right now we would notice that the highest LB scores of 5 thru 40 would just look like original training images to the human eye (with basic preprocessing like crops, rotations etc). So according to the rules, Kaggle could visually inspect them and declare them too similar to original training images and disqualify them all. Kaggle may only accept submissions with warped funny looking dogs.\n\nSo then the question is, should we apply a warping preprocess so even our traditional GANs don't get accidentally disqualified if they are too good?\n![image](http://playagricola.com/Kaggle/warp7719.png)"
        },
        {
          "id": 579928,
          "postDate": "2019-07-19T12:09:15.130Z",
          "content": "<blockquote>\n  <p>So then the question is, should we apply a warping preprocess so even our traditional GANs don't get accidentally disqualified if they are too good?</p>\n</blockquote>\n\n<p>I noticed that even in my best generated images there are almost always missing small 'scene' details like collars, toys or other minor stuff. Real images looks a lot more feature-rich\nAnd there is much less variety of ground textures.</p>",
          "rawMarkdown": "&gt; So then the question is, should we apply a warping preprocess so even our traditional GANs don't get accidentally disqualified if they are too good?\n\nI noticed that even in my best generated images there are almost always missing small 'scene' details like collars, toys or other minor stuff. Real images looks a lot more feature-rich\nAnd there is much less variety of ground textures.",
          "votes": 2
        },
        {
          "id": 579935,
          "postDate": "2019-07-19T12:17:45.383Z",
          "content": "<p>I noticed that about your images. Some of your images look like a high resolution dog was cut out of a training image and placed on a mostly solid color background.</p>\n\n<p>That makes me wonder. What if I built a CNN that memorizes dog bodies and faces and places them on solid color backgrounds. Is that a valid solution? There is so much gray zone in this comp.</p>",
          "rawMarkdown": "I noticed that about your images. Some of your images look like a high resolution dog was cut out of a training image and placed on a mostly solid color background.\n\nThat makes me wonder. What if I built a CNN that memorizes dog bodies and faces and places them on solid color backgrounds. Is that a valid solution? There is so much gray zone in this comp."
        },
        {
          "id": 579941,
          "postDate": "2019-07-19T12:23:03.453Z",
          "content": "<p><a href=\"/cdeotte\">@cdeotte</a> I don't think that's valid because you're still memorizing and applying minor transformations to original images. \nHowever a CGAN that has information on the background could be a legit alternative option.</p>",
          "rawMarkdown": "@cdeotte I don't think that's valid because you're still memorizing and applying minor transformations to original images. \nHowever a CGAN that has information on the background could be a legit alternative option."
        },
        {
          "id": 579953,
          "postDate": "2019-07-19T12:48:32.210Z",
          "content": "<p>&gt; I noticed that even in my best generated images there are almost always missing small 'scene' details like collars, toys or other minor stuff. Real images looks a lot more feature-rich\nAnd there is much less variety of ground textures.</p>\n\n<p>It's interesting that your GAN realizes that the dogs are the most important objects, and that the collars, toys, background are not important. I think this is the advantage of using a CGAN or ACGAN. It forces the GAN to recognize the importance of the dogs and encourages your GAN to draw high resolution dogs (and low res other stuff).</p>",
          "rawMarkdown": "&gt; I noticed that even in my best generated images there are almost always missing small 'scene' details like collars, toys or other minor stuff. Real images looks a lot more feature-rich\nAnd there is much less variety of ground textures.\n\nIt's interesting that your GAN realizes that the dogs are the most important objects, and that the collars, toys, background are not important. I think this is the advantage of using a CGAN or ACGAN. It forces the GAN to recognize the importance of the dogs and encourages your GAN to draw high resolution dogs (and low res other stuff)."
        },
        {
          "id": 579957,
          "postDate": "2019-07-19T12:59:03.243Z",
          "content": "<p>Yeah, I have the same thoughts. My previous simpler nets were drawing a lot more grass-looking textures and other background things</p>",
          "rawMarkdown": "Yeah, I have the same thoughts. My previous simpler nets were drawing a lot more grass-looking textures and other background things",
          "votes": 1
        }
      ]
    },
    {
      "id": 573147,
      "postDate": "2019-07-11T21:06:39.440Z",
      "rawMarkdown": "",
      "isDeleted": true
    }
  ],
  "comments": [
    {
      "id": 573002,
      "author_name": "François",
      "author_url": "",
      "post_date": "2019-07-11T16:38:42.817000",
      "content": "<p>We should ask <a href=\"/cdeotte\">@cdeotte</a> to check all our models!! ahahaha</p>",
      "votes": 4,
      "replies": [
        {
          "id": 573011,
          "author_name": "Chris Deotte",
          "author_url": "",
          "post_date": "2019-07-11T16:50:17.353000",
          "content": "<p>haha, that's a lot of work! I see that <a href=\"https://www.kaggle.com/francoisdubois/ralsgan-dogs-improved-parameters\">your kernel</a> is scoring LB 84 now. Great work! </p>\n\n<p>I've been playing around with it. Specifically, I converted the loss functions from DCGAN to RaLSGAN explained <a href=\"https://www.kaggle.com/c/generative-dog-images/discussion/99485\">here</a>. Then I changed <code>real_label = 1.0</code> back to one for the new loss functions. I also changed picture display to <code>plt.imshow((img+1.)/2.)</code> to fix the dark images.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 573022,
          "author_name": "François",
          "author_url": "",
          "post_date": "2019-07-11T17:09:58.487000",
          "content": "<p>Seems amazing. I will try these changes too. I'm trying now to work on a new architecture. I will share more if it works. </p>",
          "votes": 2,
          "replies": []
        }
      ]
    },
    {
      "id": 578680,
      "author_name": "Jar",
      "author_url": "",
      "post_date": "2019-07-18T02:46:45.663000",
      "content": "<p>I think the reason why memorized GANs has not been banned is that the score in private LB will be calculated by another dataset. While memorized GANs will not get a good score because of overfitting public dataset. Kaggle have confidence on it.   </p>",
      "votes": 1,
      "replies": [
        {
          "id": 579171,
          "author_name": "Theo Viel",
          "author_url": "",
          "post_date": "2019-07-18T15:12:15.510000",
          "content": "<p>Memorizer Gan will score well on private, as demonstrated here <a href=\"https://www.kaggle.com/jesucristo/private-lb-simulation-i\">https://www.kaggle.com/jesucristo/private-lb-simulation-i</a>\nThey have not been banned yet (imho) because it is painful to manually check all submissions to see if the gan memorizes or actually learns something</p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 579177,
          "author_name": "Chris Deotte",
          "author_url": "",
          "post_date": "2019-07-18T15:20:47.037000",
          "content": "<p>I'm curious how Kaggle will pick the 11 gold winners. Kaggle will need to review hundreds of top private leaderboard submissions before they will find a non-memorizer GAN. Will they just assume that if your LB score is below 40 you are using a memorizer GAN. In that case, if you make a generalizer GAN that is too good, you won't win.</p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 579192,
          "author_name": "Theo Viel",
          "author_url": "",
          "post_date": "2019-07-18T15:37:57.463000",
          "content": "<p>If the guy that has the best generelizer GAN is known, then you just have to check the people that are ranked after him until there is enough legit models to fill the gold (silver?) area. \nIf you're in the top 5 you'll have to share your code to claim your prize money so hopefully people with strong legit GANs will let themselves know.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 579543,
          "author_name": "Jar",
          "author_url": "",
          "post_date": "2019-07-19T00:22:24.247000",
          "content": "<p>Thanks for pointing out that~ It's getting complicated ！</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 579750,
          "author_name": "Anna Novikova",
          "author_url": "",
          "post_date": "2019-07-19T07:00:22.990000",
          "content": "<p><a href=\"/cdeotte\">@cdeotte</a> Chris, since you know everything about this competition :)  could you please explain how magic number 40 was calculated for threshold? As far as I understand you can take memorizer GAN and make it a little bit worse so just some threshold number won't help or am I wrong?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 579796,
          "author_name": "timetraveller",
          "author_url": "",
          "post_date": "2019-07-19T08:14:20.523000",
          "content": "<p>maybe kaggle should organize another competition to classify kernels of this competition into generalizing GANs or memorizer GANs and use the winner's solution to rank participants of this competition xD</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 579802,
          "author_name": "robga",
          "author_url": "",
          "post_date": "2019-07-19T08:28:40.443000",
          "content": "<p>In Kaggle Freesound 2019, it took 2 weeks to release a LB, and 27 days to finalise the LB. It really depends on how much effort the sponsors want to put in. I will be extremely disappointed if any overt memorizer gans pick up medals. </p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 579903,
          "author_name": "Chris Deotte",
          "author_url": "",
          "post_date": "2019-07-19T11:35:15.343000",
          "content": "<p><a href=\"/demonplus\">@demonplus</a> (Anna). I just picked 40 arbitrarily since that was the best traditional GAN for a while. Now it's down to 25. My point is, if we could look at all the submitted images right now we would notice that the highest LB scores of 5 thru 40 would just look like original training images to the human eye (with basic preprocessing like crops, rotations etc). So according to the rules, Kaggle could visually inspect them and declare them too similar to original training images and disqualify them all. Kaggle may only accept submissions with warped funny looking dogs.</p>\n\n<p>So then the question is, should we apply a warping preprocess so even our traditional GANs don't get accidentally disqualified if they are too good?\n<img src=\"http://playagricola.com/Kaggle/warp7719.png\" alt=\"image\"></p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 579928,
          "author_name": "Dmitry Vorobiev",
          "author_url": "",
          "post_date": "2019-07-19T12:09:15.130000",
          "content": "<blockquote>\n  <p>So then the question is, should we apply a warping preprocess so even our traditional GANs don't get accidentally disqualified if they are too good?</p>\n</blockquote>\n\n<p>I noticed that even in my best generated images there are almost always missing small 'scene' details like collars, toys or other minor stuff. Real images looks a lot more feature-rich\nAnd there is much less variety of ground textures.</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 579935,
          "author_name": "Chris Deotte",
          "author_url": "",
          "post_date": "2019-07-19T12:17:45.383000",
          "content": "<p>I noticed that about your images. Some of your images look like a high resolution dog was cut out of a training image and placed on a mostly solid color background.</p>\n\n<p>That makes me wonder. What if I built a CNN that memorizes dog bodies and faces and places them on solid color backgrounds. Is that a valid solution? There is so much gray zone in this comp.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 579941,
          "author_name": "Theo Viel",
          "author_url": "",
          "post_date": "2019-07-19T12:23:03.453000",
          "content": "<p><a href=\"/cdeotte\">@cdeotte</a> I don't think that's valid because you're still memorizing and applying minor transformations to original images. \nHowever a CGAN that has information on the background could be a legit alternative option.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 579953,
          "author_name": "Chris Deotte",
          "author_url": "",
          "post_date": "2019-07-19T12:48:32.210000",
          "content": "<p>&gt; I noticed that even in my best generated images there are almost always missing small 'scene' details like collars, toys or other minor stuff. Real images looks a lot more feature-rich\nAnd there is much less variety of ground textures.</p>\n\n<p>It's interesting that your GAN realizes that the dogs are the most important objects, and that the collars, toys, background are not important. I think this is the advantage of using a CGAN or ACGAN. It forces the GAN to recognize the importance of the dogs and encourages your GAN to draw high resolution dogs (and low res other stuff).</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 579957,
          "author_name": "Dmitry Vorobiev",
          "author_url": "",
          "post_date": "2019-07-19T12:59:03.243000",
          "content": "<p>Yeah, I have the same thoughts. My previous simpler nets were drawing a lot more grass-looking textures and other background things</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 573147,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-07-11T21:06:39.440000",
      "content": "",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "572880": "I think most people know already that memorized GAN is allowed (at least for now). \nThis is really disappointing! Coz it's absolutely meaningless.\n\nI understand it's really hard to check but as long as the rules are clear and you are willing to check the winners and the gold medals (guess just 11 teams), most people will not use memorized GAN, since it will easily goes to the top of the LB and be disqualified. Even for silver medals, it's gonna be hard to tune your model for not being checked!\n\nSo please do not allow memorized GAN in this competition!",
    "573002": "We should ask @cdeotte to check all our models!! ahahaha",
    "578680": "I think the reason why memorized GANs has not been banned is that the score in private LB will be calculated by another dataset. While memorized GANs will not get a good score because of overfitting public dataset. Kaggle have confidence on it.   ",
    "573147": ""
  }
}