{
  "id": 155814,
  "title": "JUNIWARD is the most difficult one to detect ?",
  "url": "/competitions/alaska2-image-steganalysis/discussion/155814",
  "author_name": "",
  "post_date": "2020-06-03T05:15:52.290567700Z",
  "votes": 19,
  "comment_count": 19,
  "views": 0,
  "content": "<p>Here is some information of my model. It seems that JUNIWARD is the most difficult one to detect. </p>\n\n<p>AUC of <strong>all</strong>:  　0.9401968754566749\nAUC of <strong>JMiPOD</strong>:  　0.955721745383109\nAUC of <strong>JUNIWARD</strong>:  　0.8982780573071116\nAUC of <strong>UERD</strong>:  　0.9664128910156301</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F2006644%2F54f9121359e651430b61358453513f69%2Fdownload.png?generation=1591160254445015&amp;alt=media\" alt=\"\"></p>\n\n<p>Is it the same as yours? Any suggestions would be appreciated.</p>",
  "messages": [
    {
      "id": "872335",
      "postDate": "06/03/2020 05:15:52",
      "content": "<p>Here is some information of my model. It seems that JUNIWARD is the most difficult one to detect. </p>\n\n<p>AUC of <strong>all</strong>:  　0.9401968754566749\nAUC of <strong>JMiPOD</strong>:  　0.955721745383109\nAUC of <strong>JUNIWARD</strong>:  　0.8982780573071116\nAUC of <strong>UERD</strong>:  　0.9664128910156301</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F2006644%2F54f9121359e651430b61358453513f69%2Fdownload.png?generation=1591160254445015&amp;alt=media\" alt=\"\"></p>\n\n<p>Is it the same as yours? Any suggestions would be appreciated.</p>",
      "rawMarkdown": "Here is some information of my model. It seems that JUNIWARD is the most difficult one to detect. \n\nAUC of **all**:  　0.9401968754566749\nAUC of **JMiPOD**:  　0.955721745383109\nAUC of **JUNIWARD**:  　0.8982780573071116\nAUC of **UERD**:  　0.9664128910156301\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F2006644%2F54f9121359e651430b61358453513f69%2Fdownload.png?generation=1591160254445015&amp;alt=media)\n\nIs it the same as yours? Any suggestions would be appreciated.",
      "votes": null
    },
    {
      "id": "872443",
      "postDate": "06/03/2020 07:36:10",
      "content": "<p>Hello there,</p>\n\n<p>That is, from my point of view, very interesting and this is typically the kind of feedback I have been expecting :)\nIt is quite acknowledged in the \"steganography research\" community that J-UNIWARD is the current state of the art.\nHowever, those are usually evaluated over grayscale image. And J-MiPOD is an algorithm I have designed specifically for this challenge such that it is not (fully) publicly available yet. \nTherefore, for this new algorithm and for color images and with respect to current art in DL, we did not know exactly .... even though it is not very surprising that J-UNIWARD is the most secure.</p>\n\n<p>Did you train your model your model for each stego algorithm (and then merging the results for testing using a multiclass approach) or did you train your model as a binary classifier blending all three algorithms ?</p>\n\n<p>Rémi</p>",
      "rawMarkdown": "Hello there,\n\nThat is, from my point of view, very interesting and this is typically the kind of feedback I have been expecting :)\nIt is quite acknowledged in the \"steganography research\" community that J-UNIWARD is the current state of the art.\nHowever, those are usually evaluated over grayscale image. And J-MiPOD is an algorithm I have designed specifically for this challenge such that it is not (fully) publicly available yet. \nTherefore, for this new algorithm and for color images and with respect to current art in DL, we did not know exactly .... even though it is not very surprising that J-UNIWARD is the most secure.\n\nDid you train your model your model for each stego algorithm (and then merging the results for testing using a multiclass approach) or did you train your model as a binary classifier blending all three algorithms ?\n\nRémi",
      "votes": null
    },
    {
      "id": "872455",
      "postDate": "06/03/2020 07:45:29",
      "content": "<p>To answer your question, it seems that with other models similar observations holds true : \n<a href=\"https://www.kaggle.com/c/alaska2-image-steganalysis/discussion/155821\">see this post </a></p>\n\n<p>The analysis of the results for each JPEG quality factor is also interesting? In the above results did you merge them all ? \nDid you train a model for each JPEG quality factor ?</p>",
      "rawMarkdown": "To answer your question, it seems that with other models similar observations holds true : \n[see this post ](https://www.kaggle.com/c/alaska2-image-steganalysis/discussion/155821)\n\nThe analysis of the results for each JPEG quality factor is also interesting? In the above results did you merge them all ? \nDid you train a model for each JPEG quality factor ?",
      "votes": null
    },
    {
      "id": "872492",
      "postDate": "06/03/2020 08:31:59",
      "content": "<p>I didn't train model for each stego algorithm or each quality factor yet. The chart came from one multiclass model. \nThank you for your advice. I'll try it later.</p>",
      "rawMarkdown": "I didn't train model for each stego algorithm or each quality factor yet. The chart came from one multiclass model. \nThank you for your advice. I'll try it later.",
      "votes": null
    },
    {
      "id": "872745",
      "postDate": "06/03/2020 13:21:30",
      "content": "<p>wow, do you really have overall weighted AUC with one model 0.940???\nbut anyway, yes - I have made the same observation, here's my weigted AUC on my val. set: 978, 923, 970 (JMiPOD, JUNI, UERD)\nwhat is \"weird\" though, my overall AUC for this one is 917 (which somehow doesn't make sense ... I was expecting average of the algorithms, but I assumed it's actually ok because I couldn't see any error so far in my code)</p>",
      "rawMarkdown": "wow, do you really have overall weighted AUC with one model 0.940???\nbut anyway, yes - I have made the same observation, here's my weigted AUC on my val. set: 978, 923, 970 (JMiPOD, JUNI, UERD)\nwhat is \"weird\" though, my overall AUC for this one is 917 (which somehow doesn't make sense ... I was expecting average of the algorithms, but I assumed it's actually ok because I couldn't see any error so far in my code)",
      "votes": null
    },
    {
      "id": "872806",
      "postDate": "06/03/2020 14:17:28",
      "content": "<p>Yes, it's one fold of one model. (LB is only 0.933)\nIf you use multiple models for each stego algorithm, maybe it's difficult to merge it (I haven't tried it yet). Because the metric is AUC, the important thing is the order. </p>",
      "rawMarkdown": "Yes, it's one fold of one model. (LB is only 0.933)\nIf you use multiple models for each stego algorithm, maybe it's difficult to merge it (I haven't tried it yet). Because the metric is AUC, the important thing is the order.",
      "votes": null
    },
    {
      "id": "872948",
      "postDate": "06/03/2020 16:12:41",
      "content": "<p>in my case it's also just one model with multiclass, guess I have to check where's my \"error\"</p>\n\n<p>edit: btw. how do u calculate the AUC per class?\nI take my full validation set, and consider all with the specific class as \"1\" and cover + 2 other classes as \"0\" and calculate the AUC over the whole set\nI guess that if you calculate the AUC only over the specific algorithm as \"1\" and cover as \"0\" (excluding the other classes from AUC calculation), you could have the different numbers ... have to try it</p>",
      "rawMarkdown": "in my case it's also just one model with multiclass, guess I have to check where's my \"error\"\n\nedit: btw. how do u calculate the AUC per class?\nI take my full validation set, and consider all with the specific class as \"1\" and cover + 2 other classes as \"0\" and calculate the AUC over the whole set\nI guess that if you calculate the AUC only over the specific algorithm as \"1\" and cover as \"0\" (excluding the other classes from AUC calculation), you could have the different numbers ... have to try it",
      "votes": null
    },
    {
      "id": "873150",
      "postDate": "06/03/2020 21:10:55",
      "content": "<p>I am having the same issue.  Here is the confusion matrix for a model trained against all Q factors by stego approach.  The most troubling of these is the confusion between Cover and the JUNIWARD stegos.  </p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1083130%2F00f97e992cf38b765cfa80143249b36f%2FUntitled%208.jpeg?generation=1591218403562294&amp;alt=media\" alt=\"\"></p>\n\n<p>The only paper I have seen that focused on this stego type uses grayscale images with SRNET.  I didn't think that would work, but gave it a shot.  I did not see good results.</p>\n\n<p>I also have trained independent 4 class models by Jpeg Q factor, results were not good, but perhaps I have a problem in my pipeline for those. I am going to take a look.</p>",
      "rawMarkdown": "I am having the same issue.  Here is the confusion matrix for a model trained against all Q factors by stego approach.  The most troubling of these is the confusion between Cover and the JUNIWARD stegos.  \n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1083130%2F00f97e992cf38b765cfa80143249b36f%2FUntitled%208.jpeg?generation=1591218403562294&amp;alt=media)\n\nThe only paper I have seen that focused on this stego type uses grayscale images with SRNET.  I didn't think that would work, but gave it a shot.  I did not see good results.\n\nI also have trained independent 4 class models by Jpeg Q factor, results were not good, but perhaps I have a problem in my pipeline for those. I am going to take a look.",
      "votes": null
    },
    {
      "id": "873226",
      "postDate": "06/03/2020 23:46:43",
      "content": "<blockquote>\n  <p>I guess that if you calculate the AUC only over the specific algorithm as \"1\" and cover as \"0\" (excluding the other classes from AUC calculation), you could have the different numbers … have to try it</p>\n</blockquote>\n\n<p>Yes, I calculate the AUC in this way.</p>",
      "rawMarkdown": "&gt; I guess that if you calculate the AUC only over the specific algorithm as \"1\" and cover as \"0\" (excluding the other classes from AUC calculation), you could have the different numbers … have to try it\n\nYes, I calculate the AUC in this way.",
      "votes": null
    },
    {
      "id": "873254",
      "postDate": "06/04/2020 01:04:04",
      "content": "<p>Nice confusion matrix.\nMay I ask why didn't you separate cover into three Q factors? \nI also tried SRNET. The result was not so good too.</p>",
      "rawMarkdown": "Nice confusion matrix.\nMay I ask why didn't you separate cover into three Q factors? \nI also tried SRNET. The result was not so good too.",
      "votes": null
    },
    {
      "id": "873405",
      "postDate": "06/04/2020 06:01:03",
      "content": "<p>thanks</p>",
      "rawMarkdown": "thanks",
      "votes": null
    },
    {
      "id": "873969",
      "postDate": "06/04/2020 14:46:30",
      "content": "<p>for me this is not true:) for now uerd is the worst one) Overall Validation metric is around 0.9. Juniward is the best one, lol. But i have a different approach to this, not like the ones described until now. But i am surprised that the accuracy on the most difficult class is much better, than for others. I would love to share results bit later, after i plot everyting accurately and try my approach on lb.</p>",
      "rawMarkdown": "for me this is not true:) for now uerd is the worst one) Overall Validation metric is around 0.9. Juniward is the best one, lol. But i have a different approach to this, not like the ones described until now. But i am surprised that the accuracy on the most difficult class is much better, than for others. I would love to share results bit later, after i plot everyting accurately and try my approach on lb.",
      "votes": null
    },
    {
      "id": "874272",
      "postDate": "06/04/2020 19:16:48",
      "content": "<p>I did one set of experiments comparing 12 classes vs 10 classes.  Holding all things equal other than the number of classes, 12 classes outperformed 10 on CV, but 10 classes outperformed 12 on LB.  On 10 class models, my LB and CV are nearly identical.  My hypothesis was the 12 cat model is really learning the QFactor not the stego.  After these experiments, I abandoned the 12 class model.  </p>\n\n<p>That said, I am now doing 3 separate models per Qfactor followed by ensemble.  I am not done yet so I have no useful info to add on this topic as of yet.</p>\n\n<p>PS - Congrats on your LB position.  </p>",
      "rawMarkdown": "I did one set of experiments comparing 12 classes vs 10 classes.  Holding all things equal other than the number of classes, 12 classes outperformed 10 on CV, but 10 classes outperformed 12 on LB.  On 10 class models, my LB and CV are nearly identical.  My hypothesis was the 12 cat model is really learning the QFactor not the stego.  After these experiments, I abandoned the 12 class model.  \n\nThat said, I am now doing 3 separate models per Qfactor followed by ensemble.  I am not done yet so I have no useful info to add on this topic as of yet.\n\nPS - Congrats on your LB position.",
      "votes": null
    },
    {
      "id": "874394",
      "postDate": "06/05/2020 00:01:04",
      "content": "<p>Thank you. I just took part in this competition earlier. And encounter the bottleneck for now. </p>",
      "rawMarkdown": "Thank you. I just took part in this competition earlier. And encounter the bottleneck for now.",
      "votes": null
    },
    {
      "id": "881087",
      "postDate": "06/10/2020 18:44:40",
      "content": "<p>Great work!👍 </p>",
      "rawMarkdown": "Great work!👍",
      "votes": null
    },
    {
      "id": "881637",
      "postDate": "06/11/2020 08:17:25",
      "content": "<p>Is J-MiPOD a variation of MiPOD (Minimizing the Power of Optimal Detector) as in 'Content-adaptive steganography by minimizing statistical detectability” ? </p>",
      "rawMarkdown": "Is J-MiPOD a variation of MiPOD (Minimizing the Power of Optimal Detector) as in 'Content-adaptive steganography by minimizing statistical detectability” ?",
      "votes": null
    },
    {
      "id": "917422",
      "postDate": "07/06/2020 13:44:10",
      "content": "<p>did you guys get the same results? what is the reason for the mysterious cluster in the middle???</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F113660%2Ffe6b663ec796826bb7e0f5513c537f8e%2FSelection_202.png?generation=1594043048368894&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "did you guys get the same results? what is the reason for the mysterious cluster in the middle???\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F113660%2Ffe6b663ec796826bb7e0f5513c537f8e%2FSelection_202.png?generation=1594043048368894&amp;alt=media)",
      "votes": null
    },
    {
      "id": "917541",
      "postDate": "07/06/2020 15:47:50",
      "content": "<p>I also observed this every time.</p>",
      "rawMarkdown": "I also observed this every time.",
      "votes": null
    },
    {
      "id": "917601",
      "postDate": "07/06/2020 16:20:13",
      "content": "<p>It's the point of maximum confusion of the model.  It occurs most frequently when there are low # of bit changes between cover and stego, and represents ~equal prediction probability between the four classes which is why it shows up at 0.75 for 1-prob metric.\nMore interesting to me is the bimodal distribution of # of bits changed for each stego type (both including and excluding image quality).  There's a clear break at the 50th percentile of each distribution.  Maybe two embedding schemes?  Haven't been able to exploit it yet.</p>",
      "rawMarkdown": "It's the point of maximum confusion of the model.  It occurs most frequently when there are low # of bit changes between cover and stego, and represents ~equal prediction probability between the four classes which is why it shows up at 0.75 for 1-prob metric.\nMore interesting to me is the bimodal distribution of # of bits changed for each stego type (both including and excluding image quality).  There's a clear break at the 50th percentile of each distribution.  Maybe two embedding schemes?  Haven't been able to exploit it yet.",
      "votes": null
    },
    {
      "id": "917748",
      "postDate": "07/06/2020 18:20:33",
      "content": "<p><a href=\"/tivfrvqhs5\">@tivfrvqhs5</a> </p>\n\n<p>you are right! <img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F113660%2Fa611ec74ee6526ce14b6b72accaef258%2FSelection_208.png?generation=1594059628569785&amp;alt=media\" alt=\"\">\n see more plots:</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F113660%2Fae0fcf77e4875ad35d6e3837da327064%2FSelection_209.png?generation=1594059730205427&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "tivfrvqhs5 \n\nyou are right! ![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F113660%2Fa611ec74ee6526ce14b6b72accaef258%2FSelection_208.png?generation=1594059628569785&amp;alt=media)\n see more plots:\n\n ![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F113660%2Fae0fcf77e4875ad35d6e3837da327064%2FSelection_209.png?generation=1594059730205427&amp;alt=media)",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 872443,
      "author_name": "remicogranne",
      "author_url": "",
      "post_date": "06/03/2020 07:36:10",
      "content": "<p>Hello there,</p>\n\n<p>That is, from my point of view, very interesting and this is typically the kind of feedback I have been expecting :)\nIt is quite acknowledged in the \"steganography research\" community that J-UNIWARD is the current state of the art.\nHowever, those are usually evaluated over grayscale image. And J-MiPOD is an algorithm I have designed specifically for this challenge such that it is not (fully) publicly available yet. \nTherefore, for this new algorithm and for color images and with respect to current art in DL, we did not know exactly .... even though it is not very surprising that J-UNIWARD is the most secure.</p>\n\n<p>Did you train your model your model for each stego algorithm (and then merging the results for testing using a multiclass approach) or did you train your model as a binary classifier blending all three algorithms ?</p>\n\n<p>Rémi</p>",
      "votes": null,
      "replies": [
        {
          "id": 881637,
          "author_name": "something4kag",
          "author_url": "",
          "post_date": "06/11/2020 08:17:25",
          "content": "<p>Is J-MiPOD a variation of MiPOD (Minimizing the Power of Optimal Detector) as in 'Content-adaptive steganography by minimizing statistical detectability” ? </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 872455,
      "author_name": "remicogranne",
      "author_url": "",
      "post_date": "06/03/2020 07:45:29",
      "content": "<p>To answer your question, it seems that with other models similar observations holds true : \n<a href=\"https://www.kaggle.com/c/alaska2-image-steganalysis/discussion/155821\">see this post </a></p>\n\n<p>The analysis of the results for each JPEG quality factor is also interesting? In the above results did you merge them all ? \nDid you train a model for each JPEG quality factor ?</p>",
      "votes": null,
      "replies": [
        {
          "id": 872492,
          "author_name": "wuliaokaola",
          "author_url": "",
          "post_date": "06/03/2020 08:31:59",
          "content": "<p>I didn't train model for each stego algorithm or each quality factor yet. The chart came from one multiclass model. \nThank you for your advice. I'll try it later.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 872745,
      "author_name": "steelrose",
      "author_url": "",
      "post_date": "06/03/2020 13:21:30",
      "content": "<p>wow, do you really have overall weighted AUC with one model 0.940???\nbut anyway, yes - I have made the same observation, here's my weigted AUC on my val. set: 978, 923, 970 (JMiPOD, JUNI, UERD)\nwhat is \"weird\" though, my overall AUC for this one is 917 (which somehow doesn't make sense ... I was expecting average of the algorithms, but I assumed it's actually ok because I couldn't see any error so far in my code)</p>",
      "votes": null,
      "replies": [
        {
          "id": 872806,
          "author_name": "wuliaokaola",
          "author_url": "",
          "post_date": "06/03/2020 14:17:28",
          "content": "<p>Yes, it's one fold of one model. (LB is only 0.933)\nIf you use multiple models for each stego algorithm, maybe it's difficult to merge it (I haven't tried it yet). Because the metric is AUC, the important thing is the order. </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 872948,
          "author_name": "steelrose",
          "author_url": "",
          "post_date": "06/03/2020 16:12:41",
          "content": "<p>in my case it's also just one model with multiclass, guess I have to check where's my \"error\"</p>\n\n<p>edit: btw. how do u calculate the AUC per class?\nI take my full validation set, and consider all with the specific class as \"1\" and cover + 2 other classes as \"0\" and calculate the AUC over the whole set\nI guess that if you calculate the AUC only over the specific algorithm as \"1\" and cover as \"0\" (excluding the other classes from AUC calculation), you could have the different numbers ... have to try it</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 873226,
          "author_name": "wuliaokaola",
          "author_url": "",
          "post_date": "06/03/2020 23:46:43",
          "content": "<blockquote>\n  <p>I guess that if you calculate the AUC only over the specific algorithm as \"1\" and cover as \"0\" (excluding the other classes from AUC calculation), you could have the different numbers … have to try it</p>\n</blockquote>\n\n<p>Yes, I calculate the AUC in this way.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 873405,
          "author_name": "steelrose",
          "author_url": "",
          "post_date": "06/04/2020 06:01:03",
          "content": "<p>thanks</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 873150,
      "author_name": "jbfarrar",
      "author_url": "",
      "post_date": "06/03/2020 21:10:55",
      "content": "<p>I am having the same issue.  Here is the confusion matrix for a model trained against all Q factors by stego approach.  The most troubling of these is the confusion between Cover and the JUNIWARD stegos.  </p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1083130%2F00f97e992cf38b765cfa80143249b36f%2FUntitled%208.jpeg?generation=1591218403562294&amp;alt=media\" alt=\"\"></p>\n\n<p>The only paper I have seen that focused on this stego type uses grayscale images with SRNET.  I didn't think that would work, but gave it a shot.  I did not see good results.</p>\n\n<p>I also have trained independent 4 class models by Jpeg Q factor, results were not good, but perhaps I have a problem in my pipeline for those. I am going to take a look.</p>",
      "votes": null,
      "replies": [
        {
          "id": 873254,
          "author_name": "wuliaokaola",
          "author_url": "",
          "post_date": "06/04/2020 01:04:04",
          "content": "<p>Nice confusion matrix.\nMay I ask why didn't you separate cover into three Q factors? \nI also tried SRNET. The result was not so good too.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 874272,
          "author_name": "jbfarrar",
          "author_url": "",
          "post_date": "06/04/2020 19:16:48",
          "content": "<p>I did one set of experiments comparing 12 classes vs 10 classes.  Holding all things equal other than the number of classes, 12 classes outperformed 10 on CV, but 10 classes outperformed 12 on LB.  On 10 class models, my LB and CV are nearly identical.  My hypothesis was the 12 cat model is really learning the QFactor not the stego.  After these experiments, I abandoned the 12 class model.  </p>\n\n<p>That said, I am now doing 3 separate models per Qfactor followed by ensemble.  I am not done yet so I have no useful info to add on this topic as of yet.</p>\n\n<p>PS - Congrats on your LB position.  </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 874394,
          "author_name": "wuliaokaola",
          "author_url": "",
          "post_date": "06/05/2020 00:01:04",
          "content": "<p>Thank you. I just took part in this competition earlier. And encounter the bottleneck for now. </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 873969,
      "author_name": "vovanf98",
      "author_url": "",
      "post_date": "06/04/2020 14:46:30",
      "content": "<p>for me this is not true:) for now uerd is the worst one) Overall Validation metric is around 0.9. Juniward is the best one, lol. But i have a different approach to this, not like the ones described until now. But i am surprised that the accuracy on the most difficult class is much better, than for others. I would love to share results bit later, after i plot everyting accurately and try my approach on lb.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 881087,
      "author_name": "pratikbarua",
      "author_url": "",
      "post_date": "06/10/2020 18:44:40",
      "content": "<p>Great work!👍 </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 917422,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "07/06/2020 13:44:10",
      "content": "<p>did you guys get the same results? what is the reason for the mysterious cluster in the middle???</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F113660%2Ffe6b663ec796826bb7e0f5513c537f8e%2FSelection_202.png?generation=1594043048368894&amp;alt=media\" alt=\"\"></p>",
      "votes": null,
      "replies": [
        {
          "id": 917541,
          "author_name": "telljoy",
          "author_url": "",
          "post_date": "07/06/2020 15:47:50",
          "content": "<p>I also observed this every time.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 917601,
          "author_name": "tivfrvqhs5",
          "author_url": "",
          "post_date": "07/06/2020 16:20:13",
          "content": "<p>It's the point of maximum confusion of the model.  It occurs most frequently when there are low # of bit changes between cover and stego, and represents ~equal prediction probability between the four classes which is why it shows up at 0.75 for 1-prob metric.\nMore interesting to me is the bimodal distribution of # of bits changed for each stego type (both including and excluding image quality).  There's a clear break at the 50th percentile of each distribution.  Maybe two embedding schemes?  Haven't been able to exploit it yet.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 917748,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "07/06/2020 18:20:33",
          "content": "<p><a href=\"/tivfrvqhs5\">@tivfrvqhs5</a> </p>\n\n<p>you are right! <img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F113660%2Fa611ec74ee6526ce14b6b72accaef258%2FSelection_208.png?generation=1594059628569785&amp;alt=media\" alt=\"\">\n see more plots:</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F113660%2Fae0fcf77e4875ad35d6e3837da327064%2FSelection_209.png?generation=1594059730205427&amp;alt=media\" alt=\"\"></p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "872335": "Here is some information of my model. It seems that JUNIWARD is the most difficult one to detect. \n\nAUC of **all**:  　0.9401968754566749\nAUC of **JMiPOD**:  　0.955721745383109\nAUC of **JUNIWARD**:  　0.8982780573071116\nAUC of **UERD**:  　0.9664128910156301\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F2006644%2F54f9121359e651430b61358453513f69%2Fdownload.png?generation=1591160254445015&amp;alt=media)\n\nIs it the same as yours? Any suggestions would be appreciated.",
    "872443": "Hello there,\n\nThat is, from my point of view, very interesting and this is typically the kind of feedback I have been expecting :)\nIt is quite acknowledged in the \"steganography research\" community that J-UNIWARD is the current state of the art.\nHowever, those are usually evaluated over grayscale image. And J-MiPOD is an algorithm I have designed specifically for this challenge such that it is not (fully) publicly available yet. \nTherefore, for this new algorithm and for color images and with respect to current art in DL, we did not know exactly .... even though it is not very surprising that J-UNIWARD is the most secure.\n\nDid you train your model your model for each stego algorithm (and then merging the results for testing using a multiclass approach) or did you train your model as a binary classifier blending all three algorithms ?\n\nRémi",
    "872455": "To answer your question, it seems that with other models similar observations holds true : \n[see this post ](https://www.kaggle.com/c/alaska2-image-steganalysis/discussion/155821)\n\nThe analysis of the results for each JPEG quality factor is also interesting? In the above results did you merge them all ? \nDid you train a model for each JPEG quality factor ?",
    "872492": "I didn't train model for each stego algorithm or each quality factor yet. The chart came from one multiclass model. \nThank you for your advice. I'll try it later.",
    "872745": "wow, do you really have overall weighted AUC with one model 0.940???\nbut anyway, yes - I have made the same observation, here's my weigted AUC on my val. set: 978, 923, 970 (JMiPOD, JUNI, UERD)\nwhat is \"weird\" though, my overall AUC for this one is 917 (which somehow doesn't make sense ... I was expecting average of the algorithms, but I assumed it's actually ok because I couldn't see any error so far in my code)",
    "872806": "Yes, it's one fold of one model. (LB is only 0.933)\nIf you use multiple models for each stego algorithm, maybe it's difficult to merge it (I haven't tried it yet). Because the metric is AUC, the important thing is the order.",
    "872948": "in my case it's also just one model with multiclass, guess I have to check where's my \"error\"\n\nedit: btw. how do u calculate the AUC per class?\nI take my full validation set, and consider all with the specific class as \"1\" and cover + 2 other classes as \"0\" and calculate the AUC over the whole set\nI guess that if you calculate the AUC only over the specific algorithm as \"1\" and cover as \"0\" (excluding the other classes from AUC calculation), you could have the different numbers ... have to try it",
    "873150": "I am having the same issue.  Here is the confusion matrix for a model trained against all Q factors by stego approach.  The most troubling of these is the confusion between Cover and the JUNIWARD stegos.  \n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1083130%2F00f97e992cf38b765cfa80143249b36f%2FUntitled%208.jpeg?generation=1591218403562294&amp;alt=media)\n\nThe only paper I have seen that focused on this stego type uses grayscale images with SRNET.  I didn't think that would work, but gave it a shot.  I did not see good results.\n\nI also have trained independent 4 class models by Jpeg Q factor, results were not good, but perhaps I have a problem in my pipeline for those. I am going to take a look.",
    "873226": "&gt; I guess that if you calculate the AUC only over the specific algorithm as \"1\" and cover as \"0\" (excluding the other classes from AUC calculation), you could have the different numbers … have to try it\n\nYes, I calculate the AUC in this way.",
    "873254": "Nice confusion matrix.\nMay I ask why didn't you separate cover into three Q factors? \nI also tried SRNET. The result was not so good too.",
    "873405": "thanks",
    "873969": "for me this is not true:) for now uerd is the worst one) Overall Validation metric is around 0.9. Juniward is the best one, lol. But i have a different approach to this, not like the ones described until now. But i am surprised that the accuracy on the most difficult class is much better, than for others. I would love to share results bit later, after i plot everyting accurately and try my approach on lb.",
    "874272": "I did one set of experiments comparing 12 classes vs 10 classes.  Holding all things equal other than the number of classes, 12 classes outperformed 10 on CV, but 10 classes outperformed 12 on LB.  On 10 class models, my LB and CV are nearly identical.  My hypothesis was the 12 cat model is really learning the QFactor not the stego.  After these experiments, I abandoned the 12 class model.  \n\nThat said, I am now doing 3 separate models per Qfactor followed by ensemble.  I am not done yet so I have no useful info to add on this topic as of yet.\n\nPS - Congrats on your LB position.",
    "874394": "Thank you. I just took part in this competition earlier. And encounter the bottleneck for now.",
    "881087": "Great work!👍",
    "881637": "Is J-MiPOD a variation of MiPOD (Minimizing the Power of Optimal Detector) as in 'Content-adaptive steganography by minimizing statistical detectability” ?",
    "917422": "did you guys get the same results? what is the reason for the mysterious cluster in the middle???\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F113660%2Ffe6b663ec796826bb7e0f5513c537f8e%2FSelection_202.png?generation=1594043048368894&amp;alt=media)",
    "917541": "I also observed this every time.",
    "917601": "It's the point of maximum confusion of the model.  It occurs most frequently when there are low # of bit changes between cover and stego, and represents ~equal prediction probability between the four classes which is why it shows up at 0.75 for 1-prob metric.\nMore interesting to me is the bimodal distribution of # of bits changed for each stego type (both including and excluding image quality).  There's a clear break at the 50th percentile of each distribution.  Maybe two embedding schemes?  Haven't been able to exploit it yet.",
    "917748": "tivfrvqhs5 \n\nyou are right! ![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F113660%2Fa611ec74ee6526ce14b6b72accaef258%2FSelection_208.png?generation=1594059628569785&amp;alt=media)\n see more plots:\n\n ![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F113660%2Fae0fcf77e4875ad35d6e3837da327064%2FSelection_209.png?generation=1594059730205427&amp;alt=media)"
  },
  "source": "meta"
}