大量のデータにある秩序を検出問題へ利用する

検出問題の機械学習をするために大量のデータに対してbounding box のアノテーションを実行するなかで、気づいた可能性をメモする。
　



![](https://blog.roboflow.com/content/images/2020/10/image-5.png)

上に引用したのはMS COCO のsegmenation データの１例である。
このようなセグメンテーション済みのデータがあるときには、bboxの算出は機械的な操作になる。

## セグメンテーションから検出枠を問い直してみる。
- セグメンテーションの境界にはエッジが存在する。
- セグメンテーションの境界には特徴点も含んでいる。
- セグメンテーションはgraph cut などの理論が示す最小化問題を含んでいる。
- bboxの辺にはセグメンテーションの境界となる特徴点を含んでいる。
- 人の全身画像で、人の範囲ととするときには、人のボーンの各位置特徴点として存在していて、その最大値・最小値がbbox の位置を与えている。

### 不自然なアノテーション
- 上記の条件を満たさないアノテーションのbboxは、不自然なアノテーションである。
- 人の全身を写している画像である場合、足首・つま先・靴の底（地面と接地している境界）などの特徴がセグメンテーションの中で得られるはずである。
- そのような中で、既にアノテーション済みの大量のデータの中で着目しているルールに近い学習結果は、ある種の一貫性をともなったbboxをともなうべきである。
    - つま先・靴の底（地面と接地している境界）が見えているのに、くるぶしで切れているbboxが与えられていたら、それは不自然なものになる

### このようなセグメンテーションとbbox との関係は、別に人検出の問題に限らない。
- 車両検出の場合にも、同様なセグメンテーションとbobxとの関係を持っている。
- 対象物が不透明の物体である限り、物体のシェーディングに関する規則は共通である。
- 例：コーヒカップの作るシェーディングと、服を着用した人物の作るシェーディングは共通のものである。
- 地面に接地している物体が作る影は、人の足が作るものも、上記の例のウマの足であっても共通の法則に従う。
- だから、物体の領域を決めるセグメンテーションのルールは、bboxで記述する各カテゴリによらない。
- 大量のデータそれ自体の中にある秩序を利用できれば、どこまでが対象物なのか、どこからは背景なのかを利用した物体検出の構築が可能になるはずだ。

# 反復を利用した半教師あり学習としての検出問題の可能性
- 次に述べるのは、半教師あり学習の可能性だ。
- ある程度は、教師あり学習に成功していて、アノテーションなしデータに対して、ほどほどの検出をする（しかし、そのまま真値とするには十分ではない）状態であるときの可能性だ。
- (いわば、物質の単離はほぼできているが、十分な品質の単結晶が得られていないような状況だ。そのような状況が再結晶を繰り返すことで、結晶の純度が上げられるような状況だ。結晶は、物体それ自体が持つ秩序をもとに、規則性のある状況を作り出すことだ。)

## 大量のデータの秩序の利用の手順
1. 大量にあるアノテーション済みの学習データ(データA)でのモデルでアノテーションなしの画像(データB)に**検出**させる。仮の真値とするアノテーション(１回目)を大量に生成することができる。
3. そうして、**仮の真値のアノテーションを含んだ学習**を実行する。
4. そうしてできたモデルを使って、先程のアノテーションなしの画像(データB)に対して、再度、つまり**２回目の仮の真値とするアノテーション**を生成させる。()
5. さらに、**仮の真値とするアノテーション(２回目)を使って学習させる**。
6. そうすると、学習結果が、前回よりもなじんだモデルができあがる。
6. 何度か繰り返した後に、出来上がった仮のアノテーション結果を目視で確認する。
6. 目視で確認して問題がなくなれば、仮の真値から、真値に昇格させる。

## 何が起きているのか。
- 1回めの仮の真値のアノテーションでは、アノテーションなしの画像(データB）の特徴を活用できていない。そのため、仮のアノテーションでつけられる検出位置は、ずれたものになっている。
- １回めの仮の真値のアノテーションを含んだ結果は、従来のモデルとの一致の良いデータは、整合性がよいため、重みに反映しやすい。
- 従来のモデルとの一致の悪いデータは、それが少数であるかぎり、重みに反映されにくい。
- 2回めの仮の真値アノテーションでは、１回目にくらべて、アノテーションなしの画像(データB）での整合性が改善されるデータの比率が増えていく。
- 2回めの仮の真値アノテーションを用いた学習では、整合性が改善された比率が上がってくるため、学習がうまくいきやすい。

このようなことが可能なのは、データそれ自体の中に秩序を含んでいるからと考える。

## 自由エネルギー原理との関連での解釈

![IMG_20230505_200231.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83761/1187210a-c97a-5f35-9e88-d7acadd9ebcd.png)
引用　「脳の大統一理論　自由エネルギー原理とは何か」p.20　図７

この図は、自由エネルギー原理の中で用いられる推論の仕組みを説明しているものです。

物体検出というのは、感覚信号ｓ（カメラ画像の場合には、イメージセンサの信号値）から、外環境の隠れ状態（物体検出の場合には、狭い意味では、イメージセンサ上の対象物の検出位置）を求めることに相当します。

autoencoder を用いた場合には、感覚信号の予測値と観測値の残差が小さくなるように、p(s|u) 条件付き確率前向きモデルを求めていることに対応すると考えます。

（実際には、検出位置での損失関数と分類による損失関数の最小化なので、感覚信号の予測値と観測値の残差を損失関数として違いを見ているわけではないという違いが残ります。）

上記の手順を繰り返すことは、図７の生成モデルを用いた推論の流れを繰り返すことに相当するのではないかと感じています。

繰り返しの結果は、仮の真値のアノテーションと、検出モデルとが整合性が改善して、サプライズが小さくなる状況にたどり着きます。


# 純物質の精製においては、結晶化がある。
- 最初は不純物を含んだ原材料を、結晶化をすることで、物質の純度を上げる方法である。
- 再結晶化を繰り返すことで、物質自体の性質により、結晶の純度があがり、不純物ははじき出されていく。
- ヘルムホルツの自由エネルギーが減少していく。
- 再結晶と自由エネルギーとを含んだ論文の例
[「7. 再結晶と粒成長の速度論」](http://www.numse.nagoya-u.ac.jp/P6/kobashi/img/file51.pdf)

## 学習用データの結晶化（比喩）
- 学習用データの中にある不自然なアノテーションは、統計的な挙動が他のデータとの整合性が悪い。
- 学習データの多数派のデータが学習モデルを構成する。その学習モデルを元に推論した検出枠に置き換えると、データの整合性が高まる。
- この１回の操作のなかで、不自然なアノテーションは、整合性の高いアノテーションに置き換えられる。
- （このことは、再結晶の際には、純物質が結晶表面に付く確率の方が、不純物が付く確率よりも大きいことで、結晶としての整合性が改善していくことに似ている。）
- 仮の真値のアノテーションの生成、そのアノテーションを利用した学習を繰り返すことで、しだいに、不自然なアノテーションは減っていく。不自然なアノテーションとは、ある領域にアノテーションがついていないということも含まれる。（このことで、小さな検出枠なので、アノテーションをつけ漏らしていたもの、オクルージョンが生じているのでアノテーションをつけ漏らしていたものでも、現在の検出器の検出性能に対して検出可能なものに、整合性のあるアノテーションを生成することができる）
- 通常の学習とその学習結果によるアノテーションのつけ直しの1回の処理を、再結晶の1回の処理と対応できる。

## 検出問題として大量のbounding box を必要とするのは、物体についての理解が欠如しているからではなかろうか？

- この3次元の空間の中で複数の光源から照射されている物体の作る映像（RGB画像）は一定の規則を作る。これは、人検出の人という対象物に限らず、自動車の検出という操作の中にも共通のことである。

# 効果
- 大量にあるデータの中で、アノテーションが欠損しているものに対して、つじつまのあうアノテーションを生成することができる。半教師あり学習を実現することができる。

----
# 追記

## 自己教師あり学習に目を向けよう
「自己教師あり学習」が可能なのは、大量の学習データ自体に秩序が存在するからだと思う。
自己教師あり学習の１つは、Masked Autoencoderを使った学習である。Masked　Autoencoder では、欠損値のある入力に対して欠損値を復元するような学習を大量のデータに対して実行するものである。そのため、大量のデータの中に存在する統計的にもっともらしい秩序を引き出すのだと思う。
・最近の機械学習の手法の中では、あえて主要な特徴量であっても、その一部を捨てて、学習をさせているのが多い。
・CNNの学習の中のデータ拡張にあるrandom erase は、分類（もしくは検出）したい対象物の一部を消してしまう手法である。
・そのため、分類（もしくは検出）するうえで、一番の特徴の部分が隠れていても、それ以外の特徴から分類（もしくは検出）できるようになっている。


参考記事: [Masked Autoencoderで視覚のAIが自然言語系の道を辿るのか](https://qiita.com/soukun1988/items/c588d526c9dc12978ee2)