{
  "id": 307286,
  "title": "2 stage Model Prediction Approach",
  "url": "/competitions/happy-whale-and-dolphin/discussion/307286",
  "author_name": "",
  "post_date": "2022-02-13T16:22:12.147415200Z",
  "votes": 17,
  "comment_count": 16,
  "views": 0,
  "content": "<h2>Overview</h2>\n<p>After reading some discussions and past competition solutions, I thought that one approach to this competition would be to use 2-stage model prediction. (This may be obvious to many of the participants).<br>\nI don't know if this approach will work for this competition, but if anyone has already tried it, I would appreciate it if you could share your results.</p>\n<h2>2 stage model prediction</h2>\n<h4>stage1: 'Species' prediction</h4>\n<p>Image classification: Using general image classification (CNN, vit, etc.), classify 30 types (actually, <a href=\"https://www.kaggle.com/c/happy-whale-and-dolphin/discussion/305341\" target=\"_blank\">26 species</a>).</p>\n<h4>stage2:'Individual' prediction</h4>\n<p>Individual prediction: Identify individuals using current mainstream baseline methods such as Arcface.</p>\n<p>In addition to the above, as shown in this discussion, there are a lot of photos of individuals with <a href=\"https://www.kaggle.com/c/happy-whale-and-dolphin/discussion/305428\" target=\"_blank\">only one sample</a>, so it is important to select pre/post processing and models that can cope with this challenge. </p>",
  "messages": [
    {
      "id": "1688454",
      "postDate": "02/13/2022 16:22:12",
      "content": "<h2>Overview</h2>\n<p>After reading some discussions and past competition solutions, I thought that one approach to this competition would be to use 2-stage model prediction. (This may be obvious to many of the participants).<br>\nI don't know if this approach will work for this competition, but if anyone has already tried it, I would appreciate it if you could share your results.</p>\n<h2>2 stage model prediction</h2>\n<h4>stage1: 'Species' prediction</h4>\n<p>Image classification: Using general image classification (CNN, vit, etc.), classify 30 types (actually, <a href=\"https://www.kaggle.com/c/happy-whale-and-dolphin/discussion/305341\" target=\"_blank\">26 species</a>).</p>\n<h4>stage2:'Individual' prediction</h4>\n<p>Individual prediction: Identify individuals using current mainstream baseline methods such as Arcface.</p>\n<p>In addition to the above, as shown in this discussion, there are a lot of photos of individuals with <a href=\"https://www.kaggle.com/c/happy-whale-and-dolphin/discussion/305428\" target=\"_blank\">only one sample</a>, so it is important to select pre/post processing and models that can cope with this challenge. </p>",
      "rawMarkdown": "## Overview\nAfter reading some discussions and past competition solutions, I thought that one approach to this competition would be to use 2-stage model prediction. (This may be obvious to many of the participants).\nI don't know if this approach will work for this competition, but if anyone has already tried it, I would appreciate it if you could share your results.\n\n\n## 2 stage model prediction\n#### stage1: 'Species' prediction\nImage classification: Using general image classification (CNN, vit, etc.), classify 30 types (actually, [26 species](https://www.kaggle.com/c/happy-whale-and-dolphin/discussion/305341)).\n\n#### stage2:'Individual' prediction\nIndividual prediction: Identify individuals using current mainstream baseline methods such as Arcface.\n\nIn addition to the above, as shown in this discussion, there are a lot of photos of individuals with [only one sample](https://www.kaggle.com/c/happy-whale-and-dolphin/discussion/305428), so it is important to select pre/post processing and models that can cope with this challenge.",
      "votes": null
    },
    {
      "id": "1689089",
      "postDate": "02/14/2022 03:11:04",
      "content": "<p>Thanks for sharing your thoughts <a href=\"https://www.kaggle.com/mujrush\" target=\"_blank\">@mujrush</a> ! Y this is definitely a tough one. it might be even more complex as there is extreme difference in the views, thus very different looking images for.the same instance. </p>\n<p>It would benifit a lot if we can someone be able to identify between the different views. To either treat them as different individuals during training so their embedding location could be separate.</p>\n<p>You might be interested in this paper that first predicts the view and have multiple pair view loss based on the views. And they establish that making the model view invariant helps contrastive learning significantly. But it requires labels that say if two postive images are from the same view or different. <br>\n<a href=\"https://www.google.com/url?sa=t&amp;source=web&amp;rct=j&amp;url=https://arxiv.org/abs/1910.04104&amp;ved=2ahUKEwit96btm_71AhV5Q_EDHVeQBK4QFnoECAUQAQ&amp;usg=AOvVaw2cnujaPLLNmyUkD9R0i3A_\" target=\"_blank\">paper</a></p>",
      "rawMarkdown": "Thanks for sharing your thoughts @mujrush ! Y this is definitely a tough one. it might be even more complex as there is extreme difference in the views, thus very different looking images for.the same instance. \n\nIt would benifit a lot if we can someone be able to identify between the different views. To either treat them as different individuals during training so their embedding location could be separate.\n\n You might be interested in this paper that first predicts the view and have multiple pair view loss based on the views. And they establish that making the model view invariant helps contrastive learning significantly. But it requires labels that say if two postive images are from the same view or different. \n[paper](https://www.google.com/url?sa=t&source=web&rct=j&url=https://arxiv.org/abs/1910.04104&ved=2ahUKEwit96btm_71AhV5Q_EDHVeQBK4QFnoECAUQAQ&usg=AOvVaw2cnujaPLLNmyUkD9R0i3A_)",
      "votes": null
    },
    {
      "id": "1689819",
      "postDate": "02/14/2022 14:16:19",
      "content": "<p><a href=\"https://www.kaggle.com/bsridatta\" target=\"_blank\">@bsridatta</a> </p>\n<p>Thank you for your comments and for sharing paper!<br>\nI also read your paper and found it very interesting.<br>\nIt was a bit difficult for me to understand😅</p>\n<p>I think you are right, we need to deal with not only the one sample problem, but also the problem of recognizing the same individual in different views.<br>\nAnd when the above two are combined (i.e., when there is only one sample in the train data and the same individual in different views in the test data), it becomes even more complicated😂</p>",
      "rawMarkdown": "bsridatta \n\nThank you for your comments and for sharing paper!\nI also read your paper and found it very interesting.\nIt was a bit difficult for me to understand😅\n\nI think you are right, we need to deal with not only the one sample problem, but also the problem of recognizing the same individual in different views.\nAnd when the above two are combined (i.e., when there is only one sample in the train data and the same individual in different views in the test data), it becomes even more complicated😂",
      "votes": null
    },
    {
      "id": "1690154",
      "postDate": "02/14/2022 18:28:09",
      "content": "<p>I'm pondering <em>three</em> models (two in parallel):</p>\n<ul>\n<li>Species identification</li>\n<li>Camera viewpoint (port full body, starboard full body, port dorsal fin crop, starboard dorsal fin crop, …) etc. (I've already made good progress on this.)</li>\n</ul>\n<p>Feed those two + source image into : </p>\n<ul>\n<li>Twin network(s) (One can well imagine \"dorsal fin geometry\" and \"head callosities\" problems are different enough that they'd be better solved by multiple networks, not just throwing everything into a single model.)</li>\n</ul>",
      "rawMarkdown": "I'm pondering _three_ models (two in parallel):\n\n- Species identification\n- Camera viewpoint (port full body, starboard full body, port dorsal fin crop, starboard dorsal fin crop, ...) etc. (I've already made good progress on this.)\n\nFeed those two + source image into : \n\n- Twin network(s) (One can well imagine \"dorsal fin geometry\" and \"head callosities\" problems are different enough that they'd be better solved by multiple networks, not just throwing everything into a single model.)",
      "votes": null
    },
    {
      "id": "1690705",
      "postDate": "02/15/2022 04:16:01",
      "content": "<p>It's great if you could just get the main idea of what they were trying to solve and how. </p>\n<p>Yes indeed, we got to make sure that our encoder is smart enough to understand that. 😅</p>",
      "rawMarkdown": "It's great if you could just get the main idea of what they were trying to solve and how. \n\nYes indeed, we got to make sure that our encoder is smart enough to understand that. 😅",
      "votes": null
    },
    {
      "id": "1690709",
      "postDate": "02/15/2022 04:18:34",
      "content": "<p>That sounds creative, curious to know how you would identify these views. Thanks for sharing your thoughts <a href=\"https://www.kaggle.com/lobrien\" target=\"_blank\">@lobrien</a> </p>",
      "rawMarkdown": "That sounds creative, curious to know how you would identify these views. Thanks for sharing your thoughts @lobrien",
      "votes": null
    },
    {
      "id": "1691602",
      "postDate": "02/15/2022 13:52:12",
      "content": "<p><a href=\"https://www.kaggle.com/lobrien\" target=\"_blank\">@lobrien</a> <br>\nThree models… It's so cool!<br>\nEspecially this part.<code>(I've already made good progress on this.)</code></p>\n<p>Thanks for sharing your advanced approach.<br>\nIt's going to take time and patience😆</p>",
      "rawMarkdown": "lobrien \nThree models... It's so cool!\nEspecially this part.` (I've already made good progress on this.)`\n\nThanks for sharing your advanced approach.\nIt's going to take time and patience😆",
      "votes": null
    },
    {
      "id": "1696182",
      "postDate": "02/18/2022 16:34:04",
      "content": "<p>I was thinking about the same approach. But I am afraid of a mistake of species classifier. The overall error is equal to the multiplication of every stage error. </p>\n<p>I came up with the idea to attach species classification logits/embedding to some kind of ArcFace embedding. I hope it will allow the model to decide that is more important in a particular cases - species or raw embedding. What do you think about this idea?</p>",
      "rawMarkdown": "I was thinking about the same approach. But I am afraid of a mistake of species classifier. The overall error is equal to the multiplication of every stage error. \n\nI came up with the idea to attach species classification logits/embedding to some kind of ArcFace embedding. I hope it will allow the model to decide that is more important in a particular cases - species or raw embedding. What do you think about this idea?",
      "votes": null
    },
    {
      "id": "1696472",
      "postDate": "02/18/2022 21:29:09",
      "content": "<p>Haha, I was thinking about 3 stage approach 😆😆<br>\n1) Whale Vs Dolphin<br>\n2) Species<br>\n3) Individual</p>\n<p>But 2 stage is sufficient as we have 28 species</p>",
      "rawMarkdown": "Haha, I was thinking about 3 stage approach 😆😆\n1) Whale Vs Dolphin\n2) Species\n3) Individual\n\nBut 2 stage is sufficient as we have 28 species",
      "votes": null
    },
    {
      "id": "1696491",
      "postDate": "02/18/2022 22:28:36",
      "content": "<p>Do you expect any performace boost by splitting species recognition into whale/dolphin -&gt; species prediction? Some whales are visually similar to dolphins. It add more complexity to task becase whale/dolphin error case prior error in final species, isn't it?</p>",
      "rawMarkdown": "Do you expect any performace boost by splitting species recognition into whale/dolphin -> species prediction? Some whales are visually similar to dolphins. It add more complexity to task becase whale/dolphin error case prior error in final species, isn't it?",
      "votes": null
    },
    {
      "id": "1698420",
      "postDate": "02/20/2022 11:25:08",
      "content": "<p><a href=\"https://www.kaggle.com/meowmeowmeowmeowmeow\" target=\"_blank\">@meowmeowmeowmeowmeow</a> <br>\nIs it something like stacking?<br>\nThat's interesting!</p>\n<p>Since I don't understand the details about arcface,  I'm sorry I don't know the theoretical behavior of entering logits into arcface, but I think you need to do the kaggler's rule, 'do everything' in such cases😅</p>",
      "rawMarkdown": "meowmeowmeowmeowmeow \nIs it something like stacking?\nThat's interesting!\n\nSince I don't understand the details about arcface,  I'm sorry I don't know the theoretical behavior of entering logits into arcface, but I think you need to do the kaggler's rule, 'do everything' in such cases😅",
      "votes": null
    },
    {
      "id": "1698576",
      "postDate": "02/20/2022 13:46:21",
      "content": "<p>I am not familiar with ArcFace yet too (:<br>\nThe approach I've described isn't about stacking. It is about incorporating additional features to the arc face rather than stacking models.<br>\nI will start with kaggler's rule :)</p>",
      "rawMarkdown": "I am not familiar with ArcFace yet too (:\nThe approach I've described isn't about stacking. It is about incorporating additional features to the arc face rather than stacking models.\nI will start with kaggler's rule :)",
      "votes": null
    },
    {
      "id": "1698749",
      "postDate": "02/20/2022 16:18:32",
      "content": "<p>\"Kaggler's rule\"-love it! </p>\n<p>I have just returned to Kaggle after my Chai break and this is the third time I'm quoting <a href=\"https://www.kaggle.com/cpmpml\" target=\"_blank\">@cpmpml</a> in a week. </p>\n<p>I hope its not a bad thing to quote people you respect? 🙏</p>\n<p>CPMP mentioned <a href=\"https://twitter.com/JFPuget/status/1443902657630855170?s=20&amp;t=ggjUxiA0LHqqiYhdsCxXQg\" target=\"_blank\">this</a> in reply to</p>\n<p>Q: \"What have you learned in your Kaggle journey?\"</p>\n<p>A: Try your ideas instead of asking if they would work :) </p>",
      "rawMarkdown": "\"Kaggler's rule\"-love it! \n\nI have just returned to Kaggle after my Chai break and this is the third time I'm quoting @cpmpml in a week. \n\nI hope its not a bad thing to quote people you respect? 🙏\n\nCPMP mentioned [this](https://twitter.com/JFPuget/status/1443902657630855170?s=20&t=ggjUxiA0LHqqiYhdsCxXQg) in reply to\n\nQ: \"What have you learned in your Kaggle journey?\"\n\nA: Try your ideas instead of asking if they would work :)",
      "votes": null
    },
    {
      "id": "1701618",
      "postDate": "02/22/2022 23:43:50",
      "content": "<p>Without experiment, you never know.</p>",
      "rawMarkdown": "Without experiment, you never know.",
      "votes": null
    },
    {
      "id": "1701759",
      "postDate": "02/23/2022 03:56:24",
      "content": "<p><a href=\"https://www.kaggle.com/init27\" target=\"_blank\">@init27</a> </p>\n<p><code>A: Try your ideas instead of asking if they would work :)</code><br>\nThat's a nice answer!</p>\n<p>I want to have the coding skill to try many ideas 😆</p>",
      "rawMarkdown": "init27 \n\n`A: Try your ideas instead of asking if they would work :)`\nThat's a nice answer!\n\nI want to have the coding skill to try many ideas 😆",
      "votes": null
    },
    {
      "id": "1701796",
      "postDate": "02/23/2022 04:29:45",
      "content": "<p>I feel the same way 🙏</p>",
      "rawMarkdown": "I feel the same way 🙏",
      "votes": null
    },
    {
      "id": "1701808",
      "postDate": "02/23/2022 04:43:53",
      "content": "<p>Yes, I refer to this as…</p>\n<p>\"Suck it and see\"</p>\n<p>It's how science is done.</p>",
      "rawMarkdown": "Yes, I refer to this as...\n\n\"Suck it and see\"\n\nIt's how science is done.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1689089,
      "author_name": "bsridatta",
      "author_url": "",
      "post_date": "02/14/2022 03:11:04",
      "content": "<p>Thanks for sharing your thoughts <a href=\"https://www.kaggle.com/mujrush\" target=\"_blank\">@mujrush</a> ! Y this is definitely a tough one. it might be even more complex as there is extreme difference in the views, thus very different looking images for.the same instance. </p>\n<p>It would benifit a lot if we can someone be able to identify between the different views. To either treat them as different individuals during training so their embedding location could be separate.</p>\n<p>You might be interested in this paper that first predicts the view and have multiple pair view loss based on the views. And they establish that making the model view invariant helps contrastive learning significantly. But it requires labels that say if two postive images are from the same view or different. <br>\n<a href=\"https://www.google.com/url?sa=t&amp;source=web&amp;rct=j&amp;url=https://arxiv.org/abs/1910.04104&amp;ved=2ahUKEwit96btm_71AhV5Q_EDHVeQBK4QFnoECAUQAQ&amp;usg=AOvVaw2cnujaPLLNmyUkD9R0i3A_\" target=\"_blank\">paper</a></p>",
      "votes": null,
      "replies": [
        {
          "id": 1689819,
          "author_name": "mujrush",
          "author_url": "",
          "post_date": "02/14/2022 14:16:19",
          "content": "<p><a href=\"https://www.kaggle.com/bsridatta\" target=\"_blank\">@bsridatta</a> </p>\n<p>Thank you for your comments and for sharing paper!<br>\nI also read your paper and found it very interesting.<br>\nIt was a bit difficult for me to understand😅</p>\n<p>I think you are right, we need to deal with not only the one sample problem, but also the problem of recognizing the same individual in different views.<br>\nAnd when the above two are combined (i.e., when there is only one sample in the train data and the same individual in different views in the test data), it becomes even more complicated😂</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1690705,
          "author_name": "bsridatta",
          "author_url": "",
          "post_date": "02/15/2022 04:16:01",
          "content": "<p>It's great if you could just get the main idea of what they were trying to solve and how. </p>\n<p>Yes indeed, we got to make sure that our encoder is smart enough to understand that. 😅</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1690154,
      "author_name": "lobrien",
      "author_url": "",
      "post_date": "02/14/2022 18:28:09",
      "content": "<p>I'm pondering <em>three</em> models (two in parallel):</p>\n<ul>\n<li>Species identification</li>\n<li>Camera viewpoint (port full body, starboard full body, port dorsal fin crop, starboard dorsal fin crop, …) etc. (I've already made good progress on this.)</li>\n</ul>\n<p>Feed those two + source image into : </p>\n<ul>\n<li>Twin network(s) (One can well imagine \"dorsal fin geometry\" and \"head callosities\" problems are different enough that they'd be better solved by multiple networks, not just throwing everything into a single model.)</li>\n</ul>",
      "votes": null,
      "replies": [
        {
          "id": 1690709,
          "author_name": "bsridatta",
          "author_url": "",
          "post_date": "02/15/2022 04:18:34",
          "content": "<p>That sounds creative, curious to know how you would identify these views. Thanks for sharing your thoughts <a href=\"https://www.kaggle.com/lobrien\" target=\"_blank\">@lobrien</a> </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1691602,
          "author_name": "mujrush",
          "author_url": "",
          "post_date": "02/15/2022 13:52:12",
          "content": "<p><a href=\"https://www.kaggle.com/lobrien\" target=\"_blank\">@lobrien</a> <br>\nThree models… It's so cool!<br>\nEspecially this part.<code>(I've already made good progress on this.)</code></p>\n<p>Thanks for sharing your advanced approach.<br>\nIt's going to take time and patience😆</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1696182,
      "author_name": "meowmeowmeowmeowmeow",
      "author_url": "",
      "post_date": "02/18/2022 16:34:04",
      "content": "<p>I was thinking about the same approach. But I am afraid of a mistake of species classifier. The overall error is equal to the multiplication of every stage error. </p>\n<p>I came up with the idea to attach species classification logits/embedding to some kind of ArcFace embedding. I hope it will allow the model to decide that is more important in a particular cases - species or raw embedding. What do you think about this idea?</p>",
      "votes": null,
      "replies": [
        {
          "id": 1698420,
          "author_name": "mujrush",
          "author_url": "",
          "post_date": "02/20/2022 11:25:08",
          "content": "<p><a href=\"https://www.kaggle.com/meowmeowmeowmeowmeow\" target=\"_blank\">@meowmeowmeowmeowmeow</a> <br>\nIs it something like stacking?<br>\nThat's interesting!</p>\n<p>Since I don't understand the details about arcface,  I'm sorry I don't know the theoretical behavior of entering logits into arcface, but I think you need to do the kaggler's rule, 'do everything' in such cases😅</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1698576,
          "author_name": "meowmeowmeowmeowmeow",
          "author_url": "",
          "post_date": "02/20/2022 13:46:21",
          "content": "<p>I am not familiar with ArcFace yet too (:<br>\nThe approach I've described isn't about stacking. It is about incorporating additional features to the arc face rather than stacking models.<br>\nI will start with kaggler's rule :)</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1698749,
          "author_name": "init27",
          "author_url": "",
          "post_date": "02/20/2022 16:18:32",
          "content": "<p>\"Kaggler's rule\"-love it! </p>\n<p>I have just returned to Kaggle after my Chai break and this is the third time I'm quoting <a href=\"https://www.kaggle.com/cpmpml\" target=\"_blank\">@cpmpml</a> in a week. </p>\n<p>I hope its not a bad thing to quote people you respect? 🙏</p>\n<p>CPMP mentioned <a href=\"https://twitter.com/JFPuget/status/1443902657630855170?s=20&amp;t=ggjUxiA0LHqqiYhdsCxXQg\" target=\"_blank\">this</a> in reply to</p>\n<p>Q: \"What have you learned in your Kaggle journey?\"</p>\n<p>A: Try your ideas instead of asking if they would work :) </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1701759,
          "author_name": "mujrush",
          "author_url": "",
          "post_date": "02/23/2022 03:56:24",
          "content": "<p><a href=\"https://www.kaggle.com/init27\" target=\"_blank\">@init27</a> </p>\n<p><code>A: Try your ideas instead of asking if they would work :)</code><br>\nThat's a nice answer!</p>\n<p>I want to have the coding skill to try many ideas 😆</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1701796,
          "author_name": "init27",
          "author_url": "",
          "post_date": "02/23/2022 04:29:45",
          "content": "<p>I feel the same way 🙏</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1701808,
          "author_name": "mutantspore",
          "author_url": "",
          "post_date": "02/23/2022 04:43:53",
          "content": "<p>Yes, I refer to this as…</p>\n<p>\"Suck it and see\"</p>\n<p>It's how science is done.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1696472,
      "author_name": "rajborgohain",
      "author_url": "",
      "post_date": "02/18/2022 21:29:09",
      "content": "<p>Haha, I was thinking about 3 stage approach 😆😆<br>\n1) Whale Vs Dolphin<br>\n2) Species<br>\n3) Individual</p>\n<p>But 2 stage is sufficient as we have 28 species</p>",
      "votes": null,
      "replies": [
        {
          "id": 1696491,
          "author_name": "meowmeowmeowmeowmeow",
          "author_url": "",
          "post_date": "02/18/2022 22:28:36",
          "content": "<p>Do you expect any performace boost by splitting species recognition into whale/dolphin -&gt; species prediction? Some whales are visually similar to dolphins. It add more complexity to task becase whale/dolphin error case prior error in final species, isn't it?</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1701618,
          "author_name": "rajborgohain",
          "author_url": "",
          "post_date": "02/22/2022 23:43:50",
          "content": "<p>Without experiment, you never know.</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "1688454": "## Overview\nAfter reading some discussions and past competition solutions, I thought that one approach to this competition would be to use 2-stage model prediction. (This may be obvious to many of the participants).\nI don't know if this approach will work for this competition, but if anyone has already tried it, I would appreciate it if you could share your results.\n\n\n## 2 stage model prediction\n#### stage1: 'Species' prediction\nImage classification: Using general image classification (CNN, vit, etc.), classify 30 types (actually, [26 species](https://www.kaggle.com/c/happy-whale-and-dolphin/discussion/305341)).\n\n#### stage2:'Individual' prediction\nIndividual prediction: Identify individuals using current mainstream baseline methods such as Arcface.\n\nIn addition to the above, as shown in this discussion, there are a lot of photos of individuals with [only one sample](https://www.kaggle.com/c/happy-whale-and-dolphin/discussion/305428), so it is important to select pre/post processing and models that can cope with this challenge.",
    "1689089": "Thanks for sharing your thoughts @mujrush ! Y this is definitely a tough one. it might be even more complex as there is extreme difference in the views, thus very different looking images for.the same instance. \n\nIt would benifit a lot if we can someone be able to identify between the different views. To either treat them as different individuals during training so their embedding location could be separate.\n\n You might be interested in this paper that first predicts the view and have multiple pair view loss based on the views. And they establish that making the model view invariant helps contrastive learning significantly. But it requires labels that say if two postive images are from the same view or different. \n[paper](https://www.google.com/url?sa=t&source=web&rct=j&url=https://arxiv.org/abs/1910.04104&ved=2ahUKEwit96btm_71AhV5Q_EDHVeQBK4QFnoECAUQAQ&usg=AOvVaw2cnujaPLLNmyUkD9R0i3A_)",
    "1689819": "bsridatta \n\nThank you for your comments and for sharing paper!\nI also read your paper and found it very interesting.\nIt was a bit difficult for me to understand😅\n\nI think you are right, we need to deal with not only the one sample problem, but also the problem of recognizing the same individual in different views.\nAnd when the above two are combined (i.e., when there is only one sample in the train data and the same individual in different views in the test data), it becomes even more complicated😂",
    "1690154": "I'm pondering _three_ models (two in parallel):\n\n- Species identification\n- Camera viewpoint (port full body, starboard full body, port dorsal fin crop, starboard dorsal fin crop, ...) etc. (I've already made good progress on this.)\n\nFeed those two + source image into : \n\n- Twin network(s) (One can well imagine \"dorsal fin geometry\" and \"head callosities\" problems are different enough that they'd be better solved by multiple networks, not just throwing everything into a single model.)",
    "1690705": "It's great if you could just get the main idea of what they were trying to solve and how. \n\nYes indeed, we got to make sure that our encoder is smart enough to understand that. 😅",
    "1690709": "That sounds creative, curious to know how you would identify these views. Thanks for sharing your thoughts @lobrien",
    "1691602": "lobrien \nThree models... It's so cool!\nEspecially this part.` (I've already made good progress on this.)`\n\nThanks for sharing your advanced approach.\nIt's going to take time and patience😆",
    "1696182": "I was thinking about the same approach. But I am afraid of a mistake of species classifier. The overall error is equal to the multiplication of every stage error. \n\nI came up with the idea to attach species classification logits/embedding to some kind of ArcFace embedding. I hope it will allow the model to decide that is more important in a particular cases - species or raw embedding. What do you think about this idea?",
    "1696472": "Haha, I was thinking about 3 stage approach 😆😆\n1) Whale Vs Dolphin\n2) Species\n3) Individual\n\nBut 2 stage is sufficient as we have 28 species",
    "1696491": "Do you expect any performace boost by splitting species recognition into whale/dolphin -> species prediction? Some whales are visually similar to dolphins. It add more complexity to task becase whale/dolphin error case prior error in final species, isn't it?",
    "1698420": "meowmeowmeowmeowmeow \nIs it something like stacking?\nThat's interesting!\n\nSince I don't understand the details about arcface,  I'm sorry I don't know the theoretical behavior of entering logits into arcface, but I think you need to do the kaggler's rule, 'do everything' in such cases😅",
    "1698576": "I am not familiar with ArcFace yet too (:\nThe approach I've described isn't about stacking. It is about incorporating additional features to the arc face rather than stacking models.\nI will start with kaggler's rule :)",
    "1698749": "\"Kaggler's rule\"-love it! \n\nI have just returned to Kaggle after my Chai break and this is the third time I'm quoting @cpmpml in a week. \n\nI hope its not a bad thing to quote people you respect? 🙏\n\nCPMP mentioned [this](https://twitter.com/JFPuget/status/1443902657630855170?s=20&t=ggjUxiA0LHqqiYhdsCxXQg) in reply to\n\nQ: \"What have you learned in your Kaggle journey?\"\n\nA: Try your ideas instead of asking if they would work :)",
    "1701618": "Without experiment, you never know.",
    "1701759": "init27 \n\n`A: Try your ideas instead of asking if they would work :)`\nThat's a nice answer!\n\nI want to have the coding skill to try many ideas 😆",
    "1701796": "I feel the same way 🙏",
    "1701808": "Yes, I refer to this as...\n\n\"Suck it and see\"\n\nIt's how science is done."
  },
  "source": "meta"
}