BC learning for images
Implementation of Between-class Learning for Image Classification by Yuji Tokozume, Yoshitaka Ushiku, and Tatsuya Harada.
Our preliminary experimental results on CIFAR-10 and ImageNet-1K were already presented in ILSVRC2017 on July 26, 2017.
Between-class (BC) learning:
- We generate between-class examples by mixing two training examples belonging to different classes with a random ratio.
- We then input the mixed data to the model and train the model to output the mixing ratio.
- Original paper: Learning from Between-class Examples for Deep Sound Recognition by us (github)
- BC learning for images
- BC: mix two images simply using internal divisions.
- BC+: mix two images treating them as waveforms.
- Training of 11-layer CNN on CIFAR datasets
- Install Chainer v1.24 on a machine with CUDA GPU.
- Prepare CIFAR datasets.
python main.py --dataset [cifar10 or cifar100] --netType convnet --data path/to/dataset/directory/ (--BC) (--plus)
Standard learning on CIFAR-10 (around 6.1% error):
python main.py --dataset cifar10 --netType convnet --data path/to/dataset/directory/
BC learning on CIFAR-10 (around 5.4% error):
python main.py --dataset cifar10 --netType convnet --data path/to/dataset/directory/ --BC
BC+ learning on CIFAR-10 (around 5.2% error):
python main.py --dataset cifar10 --netType convnet --data path/to/dataset/directory/ --BC --plus
Error rate (average of 10 trials)
- Other results (please see paper):
 X. Gastaldi. Shake-shake regularization. In ICLR Workshop, 2017.
 S. Xie, R. Girshick, P. Dollar, Z. Tu, and K. He. Aggregated residual transformations for deep neural networks. In CVPR, 2017.