{
  "id": 587412,
  "title": "10th Place Solution (monnu part)",
  "url": "/competitions/waveform-inversion/discussion/587412",
  "author_name": "monnu",
  "post_date": "2025-07-01T01:56:49.983000",
  "votes": 34,
  "comment_count": 0,
  "views": 0,
  "content": "<p>Congratulations to everyone who organized this event and to the winners! I am deeply thankful to my teammate <a href=\"https://www.kaggle.com/ren4yu\" target=\"_blank\">@ren4yu</a> for working in this challenging competition. Additionally, I would like to express my gratitude to kagglers for sharing valuable knowledge.</p>\n<p>The final submission is a weighted average of contributions from two members. This is my contribution. You can find ren4yu's excellent solution <a href=\"https://www.kaggle.com/competitions/waveform-inversion/discussion/587429\" target=\"_blank\">here</a>.</p>\n<h2>Solution Overview</h2>\n<ul>\n<li>Based on Berthly's ConvNeXt model</li>\n<li>Fine-tuning by applying the forward model to test data</li>\n<li>Post-processing with backpropagation</li>\n</ul>\n<h2>1. Model Structure</h2>\n<ul>\n<li>Base: Berthly's ConvNeXt UNet</li>\n<li>Changes:<ul>\n<li>Resized images with interpolation</li>\n<li>Backbone: ConvNeXt Small → ConvNeXt Large</li></ul></li>\n</ul>\n<h2>2. Training Process</h2>\n<p>After initial training, we created pseudo-labels using the forward model on test data, then fine-tuned to improve generalization.</p>\n<h3>Stage 1: Initial Training</h3>\n<ul>\n<li>Trained on the OpenFWI dataset</li>\n<li>Generated velocity maps from test data</li>\n<li>Converted velocity maps to input images with FWM</li>\n<li>Added these as \"pseudo-labels\" for the next stage</li>\n</ul>\n<h3>Stage 2 and Beyond: Data Augmentation &amp; Fine-Tuning</h3>\n<ul>\n<li>Added Stage 1's test data pairs to the original training data</li>\n<li>Fine-tuned with the augmented dataset</li>\n<li>Repeated this cycle 3 times</li>\n</ul>\n<h2>3. Post-Processing on Test Data</h2>\n<p>This part was a contribution from my teammate yu4u, and it worked well with my model too. We used FWM and backpropagation to optimize the L1 loss between input data and reconstructed predictions for each test sample. For more details, please refer to my teammate's explanation.</p>\n<h2>4. Results (CV and LB)</h2>\n<table>\n<thead>\n<tr>\n<th>Stage</th>\n<th>CV</th>\n<th>LB</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Initial Training</td>\n<td>23.9</td>\n<td>27.2</td>\n</tr>\n<tr>\n<td>Fine-Tune (3round)</td>\n<td>16.8</td>\n<td>17.2</td>\n</tr>\n<tr>\n<td>Post-Processing on Test Data</td>\n<td>12.64 (1/100 downsample)</td>\n<td>13.5</td>\n</tr>\n</tbody>\n</table>\n<p>The final submission was blended with models from other team members to obtain the final score.</p>",
  "messages": [
    {
      "id": 3237247,
      "postDate": "2025-07-01T01:56:49.983Z",
      "content": "<p>Congratulations to everyone who organized this event and to the winners! I am deeply thankful to my teammate <a href=\"https://www.kaggle.com/ren4yu\" target=\"_blank\">@ren4yu</a> for working in this challenging competition. Additionally, I would like to express my gratitude to kagglers for sharing valuable knowledge.</p>\n<p>The final submission is a weighted average of contributions from two members. This is my contribution. You can find ren4yu's excellent solution <a href=\"https://www.kaggle.com/competitions/waveform-inversion/discussion/587429\" target=\"_blank\">here</a>.</p>\n<h2>Solution Overview</h2>\n<ul>\n<li>Based on Berthly's ConvNeXt model</li>\n<li>Fine-tuning by applying the forward model to test data</li>\n<li>Post-processing with backpropagation</li>\n</ul>\n<h2>1. Model Structure</h2>\n<ul>\n<li>Base: Berthly's ConvNeXt UNet</li>\n<li>Changes:<ul>\n<li>Resized images with interpolation</li>\n<li>Backbone: ConvNeXt Small → ConvNeXt Large</li></ul></li>\n</ul>\n<h2>2. Training Process</h2>\n<p>After initial training, we created pseudo-labels using the forward model on test data, then fine-tuned to improve generalization.</p>\n<h3>Stage 1: Initial Training</h3>\n<ul>\n<li>Trained on the OpenFWI dataset</li>\n<li>Generated velocity maps from test data</li>\n<li>Converted velocity maps to input images with FWM</li>\n<li>Added these as \"pseudo-labels\" for the next stage</li>\n</ul>\n<h3>Stage 2 and Beyond: Data Augmentation &amp; Fine-Tuning</h3>\n<ul>\n<li>Added Stage 1's test data pairs to the original training data</li>\n<li>Fine-tuned with the augmented dataset</li>\n<li>Repeated this cycle 3 times</li>\n</ul>\n<h2>3. Post-Processing on Test Data</h2>\n<p>This part was a contribution from my teammate yu4u, and it worked well with my model too. We used FWM and backpropagation to optimize the L1 loss between input data and reconstructed predictions for each test sample. For more details, please refer to my teammate's explanation.</p>\n<h2>4. Results (CV and LB)</h2>\n<table>\n<thead>\n<tr>\n<th>Stage</th>\n<th>CV</th>\n<th>LB</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Initial Training</td>\n<td>23.9</td>\n<td>27.2</td>\n</tr>\n<tr>\n<td>Fine-Tune (3round)</td>\n<td>16.8</td>\n<td>17.2</td>\n</tr>\n<tr>\n<td>Post-Processing on Test Data</td>\n<td>12.64 (1/100 downsample)</td>\n<td>13.5</td>\n</tr>\n</tbody>\n</table>\n<p>The final submission was blended with models from other team members to obtain the final score.</p>",
      "rawMarkdown": "Congratulations to everyone who organized this event and to the winners! I am deeply thankful to my teammate @ren4yu for working in this challenging competition. Additionally, I would like to express my gratitude to kagglers for sharing valuable knowledge.\n\nThe final submission is a weighted average of contributions from two members. This is my contribution. You can find ren4yu's excellent solution [here](https://www.kaggle.com/competitions/waveform-inversion/discussion/587429).\n\n## Solution Overview\n\n- Based on Berthly's ConvNeXt model\n- Fine-tuning by applying the forward model to test data\n- Post-processing with backpropagation\n\n## 1. Model Structure\n\n- Base: Berthly's ConvNeXt UNet\n- Changes:\n  - Resized images with interpolation\n  - Backbone: ConvNeXt Small → ConvNeXt Large\n\n## 2. Training Process\n\nAfter initial training, we created pseudo-labels using the forward model on test data, then fine-tuned to improve generalization.\n\n### Stage 1: Initial Training\n\n- Trained on the OpenFWI dataset\n- Generated velocity maps from test data\n- Converted velocity maps to input images with FWM\n- Added these as \"pseudo-labels\" for the next stage\n\n### Stage 2 and Beyond: Data Augmentation & Fine-Tuning\n\n- Added Stage 1's test data pairs to the original training data\n- Fine-tuned with the augmented dataset\n- Repeated this cycle 3 times\n\n## 3. Post-Processing on Test Data\n\nThis part was a contribution from my teammate yu4u, and it worked well with my model too. We used FWM and backpropagation to optimize the L1 loss between input data and reconstructed predictions for each test sample. For more details, please refer to my teammate's explanation.\n\n## 4. Results (CV and LB)\n\n| Stage                        | CV   | LB   |\n|------------------------------|------|------|\n| Initial Training             | 23.9 | 27.2 |\n| Fine-Tune (3round)                | 16.8 | 17.2 |\n| Post-Processing on Test Data | 12.64 (1/100 downsample) | 13.5 |\n\n\nThe final submission was blended with models from other team members to obtain the final score.",
      "votes": 33
    }
  ],
  "comments": [],
  "raw_markdown_by_id": {
    "3237247": "Congratulations to everyone who organized this event and to the winners! I am deeply thankful to my teammate @ren4yu for working in this challenging competition. Additionally, I would like to express my gratitude to kagglers for sharing valuable knowledge.\n\nThe final submission is a weighted average of contributions from two members. This is my contribution. You can find ren4yu's excellent solution [here](https://www.kaggle.com/competitions/waveform-inversion/discussion/587429).\n\n## Solution Overview\n\n- Based on Berthly's ConvNeXt model\n- Fine-tuning by applying the forward model to test data\n- Post-processing with backpropagation\n\n## 1. Model Structure\n\n- Base: Berthly's ConvNeXt UNet\n- Changes:\n  - Resized images with interpolation\n  - Backbone: ConvNeXt Small → ConvNeXt Large\n\n## 2. Training Process\n\nAfter initial training, we created pseudo-labels using the forward model on test data, then fine-tuned to improve generalization.\n\n### Stage 1: Initial Training\n\n- Trained on the OpenFWI dataset\n- Generated velocity maps from test data\n- Converted velocity maps to input images with FWM\n- Added these as \"pseudo-labels\" for the next stage\n\n### Stage 2 and Beyond: Data Augmentation & Fine-Tuning\n\n- Added Stage 1's test data pairs to the original training data\n- Fine-tuned with the augmented dataset\n- Repeated this cycle 3 times\n\n## 3. Post-Processing on Test Data\n\nThis part was a contribution from my teammate yu4u, and it worked well with my model too. We used FWM and backpropagation to optimize the L1 loss between input data and reconstructed predictions for each test sample. For more details, please refer to my teammate's explanation.\n\n## 4. Results (CV and LB)\n\n| Stage                        | CV   | LB   |\n|------------------------------|------|------|\n| Initial Training             | 23.9 | 27.2 |\n| Fine-Tune (3round)                | 16.8 | 17.2 |\n| Post-Processing on Test Data | 12.64 (1/100 downsample) | 13.5 |\n\n\nThe final submission was blended with models from other team members to obtain the final score."
  }
}