午後を費やしてラベルのない画像10万枚にラベルを付け、上司の費用を3万ドル節約しました

午後を費やしてラベルのない画像10万枚にラベルを付け、上司の費用を3万ドル節約しました

[51CTO.com オリジナル記事] 上司がラベルのない写真 10 万枚を渡して、サンダル、パンツ、ブーツなどに分類するように頼んだと想像してください。

[[220286]]

現在、ラベル付けされていないデータが大量にあるので、それにラベルを付ける必要がある。何をすべきでしょうか?

この問題はよくあることです。多くの企業は、取引データ、IoT センサーによって生成される膨大なデータ、セキュリティ ログ、画像や音声データなど、データの海に溺れています。これらはすべてラベルのないデータです。

ラベル付けされたデータが非常に少ないため、機械学習モデルの構築は、あらゆる企業のデータ サイエンティストにとって面倒なプロセスです。

Google のストリートビュー データを例に挙げて、Gebru 氏は、ごくわずかなラベル付きデータを使用して 5,000 万枚の画像内の自動車にラベルを付ける方法を考えなければなりませんでした。

Facebookでは、エンジニアがアルゴリズムを使用して50万本のビデオにラベルを付けましたが、これは他の方法であれば16年かかる作業です。

この投稿では、わずか午後で数十万枚の画像に注釈を付ける方法を紹介します。画像に注釈を付ける場合でも、従来の表形式データに注釈を付ける場合でも(たとえば、サイバーセキュリティ攻撃やコンポーネントの障害の可能性を識別する場合)、同じアプローチを使用できます。

手動注釈方式

ほとんどのデータ サイエンティストは、何かを依頼された場合、まずそれを実行できる他の代替手段があるかどうかを考えます。

[[220287]]

しかし、Mechanical Turk や他の同様の競合プラットフォームでは、10 万枚の画像を作成するのに少なくとも 3 万ドルかかるでしょう。

結局のところ、あなたを雇ったのは上司なので、上司はこれを低価格で行うことを期待しています。現在、彼女にはあなたの給料以外の予算はありません (信じられない場合は、pydata にアクセスしてください)。

深呼吸して、1 時間で 200 枚の画像にラベルを付けることができると考えます。つまり、3 週間休みなく作業すれば、すべてのデータにラベルを付けることができるということです。おっと!

シンプルなモデルを構築する

最初のアイデアは、画像のサブセットにラベルを付け、それを使用して機械学習モデルをトレーニングし、それを使用して残りの画像のラベルを予測することです。

この演習では、Fashion-MNIST データセットを使用します (quickdraw を使用して独自のデータセットを作成することもできます)。

識別すべき画像には 10 のカテゴリがあり、その内容は次のとおりです。

各画像は 28×28 ピクセルで構成されており、784 個の固有の機能/変数が含まれているため、このデータセットを見て興奮しました。

これらの機能は、私が書きたいブログ投稿には最適ですが、現実世界ではこのようなデータセットは絶対に見かけません。現実世界では、データセットの幅がはるかに狭い (従来の表形式のビジネス問題データセット) か、はるかに広い (実際の画像ははるかに大きく、さまざまな色で構成されています) 傾向があります。

モデルの構築には、ロジスティック回帰、サポート ベクター マシン (SVM)、ランダム フォレスト、勾配ブースティング マシン (GBM) など、最も一般的なデータ サイエンス アルゴリズムを使用しました。

100、200、500、1000、2000 枚の画像にラベルを付ける際のパフォーマンスを評価します。

これを見たら、ゆっくりして絵を注意深く観察するべきです。この写真には良いところがたくさんあります。

どのアルゴリズムが最適ですか? (データ サイエンティストであれば、この質問に混乱することはないはずです。) この質問に対する答えは、実際には要件環境によって異なります。

すぐに使える高速で信頼性の高いものが必要な場合は、ロジスティック回帰アルゴリズムを選択できます。ランダムフォレストアルゴリズムは最初からはるかに先を進んでおり、SVM は開始点が低いにもかかわらず、非常に速い速度で追いついています。ラベル付けされたデータが増えるにつれて、SVM はランダム フォレストよりも優れたパフォーマンスを発揮します。

GBM はうまく機能しますが、最高のパフォーマンスを実現するには追加の作業が必要です。ここでの各アルゴリズムのスコアは、R で実装されたライブラリ (e1071、randomForest、gbm、nnet) を使用して評価されます。

ベンチマークが 10 個のカテゴリを持つ画像分類タスクで 80% の精度を達成することである場合、1,000 枚の画像を使用してランダム フォレスト モデルを構築することでこの目標を達成できます。

しかし、1,000 枚の画像にラベルを付ける作業量は依然として非常に多く、5 時間かかると見積もっています。では、これをどう改善できるか考えてみましょう。

データについて考えてみましょう

少し考えた後、あなたは他の人によく言う一文を思い出します。「データはランダムではなく、パターンがある。」これらのパターンを活用することで、データをより深く理解できるようになります。

まずはオートエンコーダー (AE) から始めましょう。オートエンコーダーは、スープをブイヨンキューブに変えるのと同じように、データを圧縮することを目的としています。オートエンコーダーは、非線形変換をサポートする、非常に流行している主成分分析 (PCA) を使用します。

実際には、これは、幅広いデータ (784 個の特徴/変数) を 128 個の特徴に削減することを意味します。次に、新しい圧縮データを使用して機械学習アルゴリズムをトレーニングします (この場合は SVM を使用)。

以下のグラフは、オートエンコーダーによって圧縮されたデータ (AE_SVM) でトレーニングされた SVM と、元のデータでトレーニングされた SVM のパフォーマンスの違いを示しています。

情報を 128 個の特徴に圧縮することで、最終的な SVM アルゴリズムのパフォーマンスを実際に向上させることができました。

ラベルが 100 個の場合、精度は 44% から 59% に上がります。ラベルが 1000 個の場合、オートエンコーダーは引き続き機能し、74% から 78% に改善されます。

つまり、私たちは目標に一歩近づいたことになります。あとは、活用できるデータの分布とパターンについてもう少し考える必要があります。

データについて深く考える

私たちのデータは画像であり、2012 年以降、画像処理に最適なツールは畳み込みニューラル ネットワーク (CNN) であることがわかっています。

CNN を使用するには、事前にトレーニングされたネットワークから、または画像を前処理する単純なモデルからなど、いくつかの方法があります。

この記事では、Kingma らによる論文を参考にして、畳み込み変分オートエンコーダを使用して目標を達成します。

それでは、畳み込み変分オートエンコーダ (CVAE) を構築してみましょう。ここでの技術は、以前と比べて 2 つの「飛躍」を遂げています。

まず、「変分」とは、オートエンコーダが情報を確率分布に圧縮することを意味します。 2 つ目は、エンコーダーとして畳み込みニューラル ネットワークを追加することです。

ここではディープラーニング技術が一部使用されていますが、私たちの焦点は最新かつ最も流行している技術を披露することではなく、問題を適切に解決する方法にあることを強調したいと思います。

CVAE をコーディングするために、RStudio の Keras ページにあるこの例のリストにあるサンプル CVAE を使用しました。

以前のオートエンコーダと同様に、潜在空間を設計してデータを 128 個の特徴に削減します。次に、この新しいデータを使用して SVM モデルをトレーニングします。

以下は、元のデータでトレーニングされた SVM とランダム フォレストを使用した CVAE_SVM のパフォーマンス比較チャートです。

おお!新しいモデルはより正確です。わずか 500 個のラベルで、80% を超える精度を達成できます。

これらの技術を使用することで、パフォーマンスが向上し、注釈付きの画像が少なくて済みます。ハイエンドでは、このアプローチはランダム フォレストや SVM モデルよりも優れたパフォーマンスを発揮します。

次のステップ

オートエンコーダーを使用した非常に単純な半教師あり手法を使用することで、データに迅速かつ正確にラベルを付けることが可能です。しかし、重要なのはディープラーニングエンコーダーを使用することではありません。

代わりに、ここでのアプローチを理解し、非常に単純なものから始めて、徐々により複雑なソリューションを試していただきたいと思います。

最新の技術の使用にこだわらないでください。真のデータ サイエンスは、arXiv の最新の方法を使用することではありません。

この半教師あり学習法は、間違いなくあなたにインスピレーションを与えるでしょう。この記事は半教師あり学習におけるロジスティック回帰アルゴリズムに相当します。

半教師あり学習とドメイン適応についてさらに詳しく知りたい場合は、変分オートエンコーダーの使用に関する Brian Keng の優れたチュートリアルを参照してください。

彼の仕事は、私たちがここで話しているものや、ディープラーニングを使って半教師あり学習を改善し、コードをオープンソース化したCurious AIの仕事を超えています。

最後に、少なくとも理解していただきたいのは、すべてのデータにラベルを付ける必要があるとは想定してはいけないということです。

[51CTO オリジナル記事、パートナーサイトに転載する場合は、元の著者とソースを 51CTO.com として明記してください]

<<:  ブックマークにおける不正行為の特定におけるグラフィカル モデルの応用

>>:  MITが世界の画期的な技術トップ10をランク付け、アリババはそのうち4つを研究中

ブログ    
ブログ    
ブログ    

推薦する

...

DGX-2 および SXM3 カードが GTC 2018 で発表されました

最近、GTC 2018 で、Vicor チームは NVIDIA DGX-2 の発表を目撃しました。 ...

5GとAI: 現在と未来の補完的なテクノロジー

人工知能と5G、そしてそれらがもたらす変革の可能性は、テクノロジーの世界で大きな注目を集めています。...

企業に利益をもたらす 5 つの AI トレンド

市場の状況がますます複雑化する今日の不安定なビジネス環境では、組織が分析に基づく意思決定を行うために...

Github が絶賛: モザイクテキスト = 無意味、AI があなたの思考をすべて見抜く、オープンソースに

「この写真をフォトショップで加工しましょう!」 「いいですよ、でもこの段落は検閲しないと面倒なことに...

...

AIエンジニアリングは組織がAIを最大限に活用するのに役立ちます

「人工知能」という言葉は、最近はどこにでも見られるようになり、産業界におけるその応用に混乱が生じてお...

...

Python を使ってシンプルな遺伝的アルゴリズムをゼロから実装する

遺伝的アルゴリズムはランダムなグローバル最適化アルゴリズムです。人工ニューラル ネットワークと並んで...

人工知能のこれら 5 つのトレンドは世界にどのような影響を与えるでしょうか?

人工知能はもはや未来の技術ではありません。私たちの日常の作業を自動化する機械はますます賢くなり、人工...

人工知能があなたの仕事を奪い、ビッグデータがあなたを「裸」にしてしまう。私たちの未来はどうなるのでしょうか?

失業率が急上昇、それはAIのせいか? !科学技術の発展に伴い、高コストで非効率的な手作業が人工知能に...

曹永寿:ビッグデータとAI技術がアーティストの商業的価値を測る基準を構築

[元記事は51CTO.comより]最近、エンターテインメントビッグデータアプリケーションサービスプロ...

エッジ AI は興味深い未来を提供し​​ます!

人工知能(AI)は、私たちの生活のほぼすべての側面において一般的な要素になりつつあります。これまで、...

国内チームが新たなRLTFフレームワークを提案し、SOTAをリフレッシュしました!大規模なモデルはバグが少なく、より高品質なコードを生成します

「プログラム合成」または「コード生成」タスクの目標は、与えられた記述に基づいて実行可能なコードを生成...