半教師付きの物体検出について調査中

機械学習に興味があるあなたのことだ。おそらくMNISTの手書き文字分類の機械学習のデモプログラムを実行したことがあるだろう。




SSII2020 から[限られたデータからの深層学習]
(https://confit.atlas.jp/guide/event/ssii2020/static/lecturenotes#OS)

[ドメイン適応の原理と応用](https://www.slideshare.net/YoshitakaUshiku/ss-233976323)

[SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習 ](https://www.slideshare.net/SSII_Slides/ssii2020-os202-235273375)
[SSII2020 [OS2-03] 深層学習における半教師あり学習の最新動向](https://www.slideshare.net/SSII_Slides/ssii2020-os203-235389281) 


### 擬似ラベル：
ラベルづけされているデータで作った学習済みモデルを使って、ラベルづけされていないデータで予測値を出して作ったラベルのこと。

### 非対称な三叉学習
「同じ推定結果 & 事後確率が閾値以上 →疑似ラベルとして推定結果」

ふむふむ。何も工夫しないで、予測値を出して、それをそのまま学習データにできるほどあまくない。


### ドメイン適応：

> ドメイン適応（Domain Adaptation）は，転移学習（Transfer Learning）と呼ばれる学習手法の一種です．十分な教師ラベルを持つドメイン（Source Domain，ソースドメイン）から得られた知識を，十分な情報がない目標のドメイン（Target Domain, ターゲットドメイン）に適用することで，目標ドメインにおいて高い精度で働く識別器などを学習します（ここで、ドメイン（Domain）とは，データの集まりを指す言葉です）．[出典](https://www.mi.t.u-tokyo.ac.jp/research/domain_adaptation/)


>・Source ドメインの識別エラーを最小化
>・ドメイン間の重なりを最大化

そのため、損失関数がclassification loss とDomain　Lossの重み付きの和からなるように書き換えられている。



### Deep Domain Confusion
https://github.com/syorami/DDC-transfer-learning

```
    SOURCE_NAME = 'amazon'
    TARGET_NAME = 'webcam'
```
source ドメインとtarget ドメイン間でのDomain Loss の値をも小さくするようになっている。
Pytorch のtorch.nn.CrossEntropyLoss()を利用している。

```
    clf_criterion = nn.CrossEntropyLoss()
```
https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html


ここにあるのは画像分類。


### [Cross-Domain Weakly-Supervised Object Detection through Progressive Domain Adaptation](https://arxiv.org/abs/1803.11365)

![](https://naoto0804.github.io/cross_domain_detection/dets_watercolor.png)

https://naoto0804.github.io/cross_domain_detection/

上記の論文のコードのgithub

https://github.com/naoto0804/cross-domain-detection

ふむふむ。
SSD300　というネットワークモデルを使っているようだ。
 
```
from chainercv.links import SSD300
...
model = SSD300(
    n_fg_class=len(voc_bbox_label_names), pretrained_model='voc0712')
```


### Adversarial Discriminative Domain Adaptation

https://github.com/erictzeng/adda

https://github.com/corenel/pytorch-adda

https://github.com/truongthanhdat/ADDA

### Strong-Weak Distribution Alignment 

https://arxiv.org/abs/1812.04798

![](https://raw.githubusercontent.com/VisionLearningGroup/DA_Detection/master/docs/swda.png)

VGG, ResNet101 のネットワークモデル。

github [A Pytorch Implementation of Strong-Weak Distribution Alignment for Adaptive Object Detection (CVPR 2019)]
(https://github.com/VisionLearningGroup/DA_Detection)


### consistency regularization
摂動を加えても同一の予測になるように制限を加える。
学習画像の側に摂動が加わるだけでなく、損失関数の中にも変更があるらしい。


https://github.com/perrying/pytorch-consistency-regularization


https://github.com/tensorfreitas/Temporal-Ensembling-for-Semi-Supervised-Learning

https://github.com/lyakaap/VAT-pytorch
https://github.com/takerum/vat_tf
https://github.com/9310gaurav/virtual-adversarial-training


---

https://github.com/kevinhkhsu/DA_detection

[Source code for STAC: A Simple Semi-Supervised Learning Framework for Object Detection]
(https://github.com/google-research/ssl_detection)



https://github.com/TinyGrass/CV_WSSL

https://github.com/yassouali/awesome-semi-supervised-learning

https://github.com/soo89/CSD-SSD

https://papers.nips.cc/paper/9259-consistency-based-semi-supervised-learning-for-object-detection.pdf

https://github.com/ksaito-ut/atda

pdf https://openaccess.thecvf.com/content_ICCV_2019/papers/Khodabandeh_A_Robust_Learning_Approach_to_Domain_Adaptive_Object_Detection_ICCV_2019_paper.pdf

pdf [Domain Adaptive Faster R-CNN for Object Detection in the Wild](https://arxiv.org/pdf/1803.03243.pdf)

github [Domain Adaptive Faster R-CNN in PyTorch](https://github.com/krumo/Domain-Adaptive-Faster-RCNN-PyTorch)


---
以下の論文では、暗がりの中の物体検出を、ドメイン適応で改善している。

[YOLO in the Dark - Domain Adaptation Method for Merging Multiple Models -](https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123660341.pdf)

---
### https://github.com/biparnakroy/pseudoLabelGeneratorForYOLO

このリポジトリは、既存のYoloの学習結果を元に、仮のラベルを付けて、さらなる学習を進めるためのものらしい。

---
追記
以下の情報は、学習をロバストにする手法の１例を示している。

qiita [論文紹介: ImageNet-trained CNNs are biased towards texture; increasing shape bias improves accuracy and robustness]
(https://qiita.com/f0o0o/items/eb1e86d11318aeb54109)

追記(2022.11.10)
最近の機械学習の流れとしては、ある程度学習ができている状況で、さらに学習するべきデータをどのようにサンプリングするのかという部分にフォーカスしているらしい。
さらには、CNNでは対応しきれない部分をVisual Transformer で解消しつつあるらしい。