Coursera Week11
はじめに
CourseraのWeek11を実施しましたので、私のメモを公開します。
Courseraってなんだ?という方はWeek1から御覧ください。
Photo OCR problem
写真の中のテキストを解析する問題で、以下のような手順で実施する。(Potho OCR pipelineという。)
1.写真の中のどこがテキストなのかを判断
2.そのテキストを1文字ずつに分割
3.なんの文字なのか解析
4.解析した文字の意味を考えて誤解析を訂正(例 "1"を"l"に訂正。)
※4はこのビデオでは解説しない
これが高い精度で実現できることで、盲目の人がカメラを持って歩いたときに標識の内容などを教えるようなことができる。
画像の歩行者検出について
テキストの検出より歩行者の検出の方が一般的に簡単である。
なぜなら歩行者は大体アスペクト比が一緒だから。(テキストは色々。)
歩行者検出の手順
1.まずアスペクト比を決定する。(ビデオでは82x36)
2.教師データとして歩行者を含む画像($y=1$)と含まない画像($y=0$)を用意する。(それぞれ1000~10000くらい)
3.教師あり学習を実施する。
4.解析したい大きい画像から学習したアスペクト比の部分だけ切り出して歩行者がいるかどうか検出する。(これを少しずつずらしながら何度も繰り返す。)
5.検出するアスペクト比の矩形を大きくして4と同じことを繰り返す。(これでサイズが大きい人(手前にいる人)も検出できる。)
このやり方をSliding window detectionという。
写真からテキストを検出する方法も同様のやり方でできる。
文字の分類
文字の分類も教師あり学習で実現する。
切り抜いた画像のちょうど真ん中が文字の切れ目のデータを$y=1$とし、文字の切れ目ではないデータを$y=0$と考える。
これもSliding window detectionで分類をする。
人工データ合成
大量のトレーニングデータを集めるために、トレーニングデータを作成する手法。
ビデオの例では写真内のテキスト画像を人工的に作成する。
例では文字のフォントを変えたり、背景を変えたり、歪ませたりする。
また、音声でも同様に雑音を入れるなどしてトレーニングデータを増幅させることができる。
人工データ合成でトレーニングデータの増幅をする前に、分類器が低バイアスか、多くのトレーニングデータが本当に役立つのかを検証しておくことが必要である。
次に、現在持っているデータセットを10倍にするのにどれだけの仕事が必要か考えることが必要である。
データセットが10倍になれば機械学習のパフォーマンスは大きく向上するはず。
Ceiling Analysis
パイプラインでの解析を実施する際に、パイプラインのどのセクションを改善すれば効果的かを判断する。
それぞれのセクションでの何%の改善余地があるかを算出して一番効果がある箇所を改善の対象とする。