<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CBM on Ettore Saggiorato - Sa1g</title><link>https://sa1g.github.io/tags/cbm/</link><description>Recent content in CBM on Ettore Saggiorato - Sa1g</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 10 Apr 2026 01:00:00 +0000</lastBuildDate><atom:link href="https://sa1g.github.io/tags/cbm/index.xml" rel="self" type="application/rss+xml"/><item><title>Advanced Topics of Machine Learning and Optimization</title><link>https://sa1g.github.io/p/atmlo/</link><pubDate>Fri, 10 Apr 2026 01:00:00 +0000</pubDate><guid>https://sa1g.github.io/p/atmlo/</guid><description>&lt;p&gt;&lt;a class="link" href="https://github.com/sa1g/atmlo" target="_blank" rel="noopener"
&gt;Project Repo&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="improving-concept-bottleneck-models-with-rlhf-style-feedback"&gt;Improving Concept Bottleneck Models with RLHF-style Feedback
&lt;/h1&gt;&lt;p&gt;This project investigates how to improve Concept Bottleneck Models (CBMs) with RLHF-style feedback in a human-in-the-loop setting. Using the CUB-200-2011 bird dataset (112 visual concepts), the work starts from deliberately weakened CBMs created by removing important concepts and reducing training data, then trains a Human Decision Model (HDM) to simulate downstream human feedback. The core contribution is an RLHF-inspired fine-tuning pipeline, including custom concept-quality rewards (CAC/CAHC) and a PPO-based optimization setup, to recover missing concept quality and improve final predictions. Experiments show that the approach is feasible: RLHF can improve degraded models (up to about +17% in some settings), though it still trails standard supervised fine-tuning and remains roughly 10% below a fully trained baseline in harder cases. The study also finds that heuristic reward signals are more useful than similarity metrics like cosine/EMD in this context, and that some CUB concepts appear redundant for downstream classification.&lt;/p&gt;
&lt;p&gt;More details can be found in the report linked below.&lt;/p&gt;
&lt;div align="center" style="display: flex; justify-content: center; gap: 40px; flex-wrap: wrap;"&gt;
&lt;div&gt;
&lt;a href="https://github.com/sa1g/atmlo/blob/master/report/report.pdf"&gt;
&lt;img src="https://raw.githubusercontent.com/sa1g/atmlo/refs/heads/master/report/thumb.png" width="250"/&gt;
&lt;/a&gt;
&lt;p align="center"&gt;Click to download the report&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="reproducibility"&gt;Reproducibility
&lt;/h2&gt;&lt;p&gt;The code is in &lt;code&gt;/src&lt;/code&gt;. To reproduce the results in the report you&amp;rsquo;ll need fast hardware and a lot of patience, if you have a slurm cluster use job-arrays (an example is present in the repo). Most experiments are setup in &lt;code&gt;/src/common/experiment_configs.py&lt;/code&gt;, to select one of them simply run: &lt;code&gt;python main.py -pc &amp;lt;experiment-name&amp;gt;&lt;/code&gt;. Multiple arguments are available to customize the training, see &lt;code&gt;python main.py -h&lt;/code&gt; for details. The code is structured to allow easy addition of new experiments, reward functions, and training setups.&lt;/p&gt;
&lt;p&gt;The code won&amp;rsquo;t be refactored even if it needs it. Currently configs for supervised training, fine-tuning of both CBM and HDM, and RLHF-style training are all mixed together, this makes everything a bit confusing, but it works. This happened because I was aiming to quickly test different ideas and setups, and I didn&amp;rsquo;t want to spend time refactoring the code.&lt;/p&gt;
&lt;p&gt;The coolest thing over the code, except for the &lt;em&gt;custom&lt;/em&gt; PPO behavior is how the supervised training cycle is written to avoid needing to rewrite it for the different training stages (CBM, HDM, and fine-tuning). Most of the same logic is kept in the same place, simply by using basic inheritance and a bit of abstraction.&lt;/p&gt;
&lt;h2 id="ack"&gt;Ack
&lt;/h2&gt;&lt;p&gt;If you are reading this well&amp;hellip;have fun! - Sa1g&lt;/p&gt;</description></item></channel></rss>