0

機械学習のソフトウェアプロセス/アーキテクチャ設定に関する概念的な質問があります。私はWebアプリケーションを持っており、Facebookの顔認識(一般的なオブジェクトを除いて)のように機能するいくつかの機械学習アルゴリズムを取り入れようとしています。そのため、モデルはの特定のの画像を私のサービスにアップロードすること(fbが特定の人物をどのように分類できるかなど)を分類する際に良くなります。ユーザ画像タギングによる画像分類モデルの特殊化

ラフ概要は次のとおりです。

event:  User uploads image; image attempts to be classified 
if failure: draw a bounding box on object in image; return image 
interaction: user tags object in box; send image back to server with tag 
????:  somehow this new image/label pair will fine tune the image classifier 

私は最後のステップで助けを必要としています。通常、転送学習や一般的な訓練では、プログラマーはイメージでいっぱいの大きなデータベースを持っています。私の場合、事前にモデル化されたモデル(Googleの初めのバージョン-v3)がありますが、ユーザーがコンテンツをアップロードし始めるまで、微調整データベースは存在しません。

私はどのように特殊なデータベースを構築するためにそのタグ付け方法を使用できますか?私はFBがこの問題に遭遇して解決したと確信していますが、私は彼らの解決策を見つけることができます。いくつかの考え(と決定的研究)した後、私は考えることができる唯一の戦略はどちらかにある:

A) stockpile tagged images and do a big batch train 

B) somehow incrementally input a few tagged images as they get 
    uploaded, and slowly over days/weeks, specialize the image classifier. 

理想的には、私はオプションAを避けたいが、Bがどのように現実的な私にはわからない、また存在する場合このタスクを達成するための他の方法。ありがとう!

+0

1人の学習者を全員、または1人の学習者をユーザーごとに特化しようとしていますか?いずれにしても、新しいラベル付き画像を取得し、ネットワーク上で確率的勾配降下(または他の簡単な方法)を何回か繰り返して実行すると何が問題になりますか? [オンライン学習](https://en.wikipedia.org/wiki/Online_machine_learning)を参照してください。 – user3658307

+0

はい、システム全体の学習者は1人です。そう、オンライン学習は、限られた動的なデータでモデルを「逐次的に」更新できるようにする戦略のようです。 –

答えて

2

はい、これは古典的な例のように聞こえますonline learning

いくつかの新しいデータがある場合、特に深い変換行列の場合、確率的な勾配降下の反復を実行することができます。必要に応じて学習率を調整することも良い考えです(あるサンプルの信頼度に応じて、サンプルの重要度を調整できるように)。 上記のように、これを行うための「ミニバッチ」を保存することもできます(設定によって異なります)。

また、学習者(ユーザーなど)にもう少し特殊化を許可する場合は、domain adaptationを参照してください。

関連する問題