Multi-agent Deep Reinforcement Learning for Hyperspectral Band Selection with Hybrid Teacher Guide Knowledge-Based Systems
Jie Feng *, Qiyang Gao , Ronghua Shang , Xianghai Cao , Gaiqin Bai , Xiangrong Zhang , Licheng Jiao
- Multi-agent band selection. Every spectral band is an agent that only decides select or deselect, which turns the huge action space of single-agent DRL into a binary one.
- Presentation-evaluation network (PE-Net). A 3D–2D CNN pre-trained with random band combinations scores any candidate band subset without fine-tuning (the reward), and its spatial-spectral features represent the environment (the state).
- Hybrid teacher guide. BS-Nets (filter), SICNN (wrapper) and TWCNN (embedded) take turns correcting the agents' low-confidence bands in early exploration; the agents then keep improving with deep Q-learning on their own.
![]() Hybrid teacher guide: low-confidence bands are advised by the teacher. |
![]() Deep Q-network of each agent. |
Mean ± std (population std) over 3 random splits of this PyTorch implementation.
| Dataset | Bands | OA | AA | Kappa |
|---|---|---|---|---|
| Indian Pines | 60 / 200 | 98.28 ± 0.23 | 98.26 ± 0.34 | 98.04 ± 0.26 |
| Pavia University | 30 / 103 | 99.86 ± 0.01 | 99.77 ± 0.03 | 99.82 ± 0.02 |
| University of Houston | 40 / 144 | 98.97 ± 0.25 | 99.04 ± 0.30 | 98.89 ± 0.27 |
As in Sec. 4.3 of the paper, each compared method is evaluated with its own classifier (RBF-SVM on pixels for BS-Nets, ABCNN, MR-SVM and DDCNN; a 15 × 15 2D CNN for TWCNN, SICNN and DRLBS), while MH-DRL uses an ensemble of 4 PE-Nets with test-time flips. The comparison is therefore between complete pipelines; any method's bands can be fed to the same ensemble with python -m mhdrl.boost --json runs/<ds>/<method>/seed<k>.json --members ....
Per-class accuracies: results/main_table.md · Selected bands: results/selected_bands.json
Classification maps
Selected bands (blue) on the information-entropy curve of each band
Band search — reward and PE-Net accuracy during the teacher-guided and self-exploration stages
Requires a CUDA GPU. Tested with Python 3.10, PyTorch 2.5.1, NumPy 1.26.4, SciPy 1.15.3 and scikit-learn 1.7.2.
pip install -r requirements.txt
python -m mhdrl.run --ds indian --method mhdrl --seed 0 # band selection + evaluation
python -m mhdrl.infer --ds indian --weights weights/indian_seed0 # evaluate the released weights
bash scripts/reproduce.sh # all datasets, methods and splits





