[論文紹介]アノテーションを自動作成してくれるアルゴリズムが凄い！


こんにちは！新米データサイエンティストのりゅうです。今日は半教師あり学習を使用して少ないラベルありデータからセグメンテーションを自動作成してくれるモデルを見つけたので紹介させていただきたいと思います！

#忙しい人向け
1.s4GANを使用したセグメンテーション生成でアノテーションのコストを抑える事ができるよ。
2.過去に発表されたモデルと比べてよい成績を出したよ。


#論文解説
#1.0 要約
SEMANTICセグメンテーションは、多くの画像認識のタスクでとても優れた結果を出してきた。
自動運転、医用画像、ロボット工学　など
しかし、これは非常に多くのアノテーションコストがかかり（画像にラベルを付与する事）。
本論文ではこれの問題を半教師あり学習を使って解決するアプローチを提示しています。


#序論
DualーBranch Method for SemiーSupervised Semantic Segmentation
1. アノテーションされていないデータを少量のアノテーションされているデータを使って効果的に学習する事ができるよ！
2. 私たちのモデルはCNNsが限られたデータで訓練された時に確認される二つの問題をもとに設計されたよ！

問題1
物体の細部をしっかりと認識する事ができない。（違った物体の形、境界、表面）

問題2
間違った分類をしてしまう。（画像の領域を違うクラスに割り当てたり）

####解決策！
この二つの問題を解決するために二つの別々のネットワークを使うよ！

GANのモデルを使って解決するよ！

モデル1
1:GAN-based model 
     -Generator (セグメンテーションを行うネットワークだよ）
　　  - Discriminator (Generatorで作成されたものと本物を比べるよ。）
　　  -　Note: GAN loss の代わりにFeature mapping lossを使用するよ。
　　  -　Note2 self-trainingをDiscriminatorの性能を上げるために使っているよ。

モデル2
2:Semisupervised multiーlabelーclassification
このモデルを使って、与えられた、画像のクラスを判別し、segmentation networkの判別を助けるよ！


####この二つのモデルはお互いを助け合い、予測を向上させていくよ！
####このモデルは訓練用のデータが少ない時に有効だよ、そして、2％のラベルでThe State of Artsを上回ったよ！（めちゃくちゃすごい）

#Methods 
s4GANはピクセルごとのクラスラベルを予測するよ！
MLMT（Multi-Label Mean Teacher）は画像ごとの予測をするよ！

この二つのモデルの結果を組み合わせていくよ！

###s4GAN
s4GANネットワークは、与えられた画像に対してper-pixelクラスラベルを作成するよ。
Network S　= generotor 
prediction = Network Sの予測(segmenaton maps one for each class)
Network D = Discriinator 画像とセグメンテーションを連結させる。本物と予測されたセグメンテーションマップを一致させる。

画像データ→Network S　→　予測　→　予測　＋　Ground Truth -> Network D -> {real, fake}

このNetwork Sは三つの損失を計算したもので、それぞれ
Cross-entropy loss　->ラベル付き画像に対しての損失
Feature matching loss->　予測とラベルの平均損失を最小かする。
Self-training loss -> GenerotorとDiscrimantorのバランスをとるための損失。（どちらかが強すぎる場合しっかりと予測できないため）


Network D 
人の手によって予め作成されたラベルと偽物のラベルを区別する。詳細を知りたい方は、こちらの記事がおすすめです！　GANhttps://qiita.com/triwave33/items/1890ccc71fab6cbca87e

### Multi-label Semi-supervised Classification

二つのネットワークは同じ画像を受け取り、それぞれ下記のような動きをするよ。

生徒　＝　生徒と教師の予測が同じになるように consistency loss(mean-squared error)を二つの予測でとる。
教師　＝　生徒の重みの移動平均を重みとしてとる。

生徒のcategorical cross-entropy lossを、全てのラベルあり画像を使い最適化するよ！

####ちなみに、s4GANで作成されたラベルをふるいに掛けるためにMLMTを使用するよー、そして、二つのネットワークの結果を組み合わせて最終結果を作成するよ。

![S4GAN-fig1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/781753/22b46276-d06e-b38d-6875-d74655371079.png)
#Result
下の画像は条件を変えてそれぞれの結果の比較したもの
GT = Ground Truth(人間の手によってのアノテーション）
Baseline = 教師あり学習を使い生成したもの
使用されたデータセット = PASCAL VOC 2012. 

見て欲しいのが（g）4GAN + MLMTでその他のものと比べても、GTにかなり近いセグメンテーションが生成されていますね！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/781753/a3899aa2-ce2c-06a9-26d0-1a017e37f85d.png)

####ラベルの量を減らしていった時の結果のグラフ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/781753/56c36a78-907d-b29f-a5b8-f74a359e3e3b.png)
他のモデルと比較しても今回のs4GAN + MLMTが優れている事がわかりますね！


#まとめと所感
アノテーション作業の負担を減らす事ができるのはすごい大事だと思うので、今回も論文を共有させていただきました！深層学習はまたまだ未知な部分が多く、面白い論文が毎日のように投稿されているので、これからも定期的に論文のまとめを投稿していきたいと思いますます！

少しでも面白いと思ったなら 「いいね」 や 「コメント」 をもらえるとこれからの励みになります！よろしくお願いします！


#参照
https://arxiv.org/pdf/1908.05724.pdf
参考にした論文
https://www.quora.com/What-is-ground-truth-segmentation-in-image-processing
Ground Truthについて
https://github.com/CuriousAI/mean-teacher/tree/master/pytorch
MLMTレポ