午後を費やしてラベルのない画像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つを研究中

ブログ    
ブログ    

推薦する

...

JD Cityが新しいブランドアイデンティティを発表、スマートシティがJDグループの主要戦略に

3月21日、北京でiCityスマートシティカンファレンスが開催され、JD CityがJDグループの第...

インタープリタパターンを使用して、要素のXPathパスを取得するためのアルゴリズムを実装します。

[[432233]]文章1. 通訳モード言語に対して、その文法表現(言語のルールを定義するために使...

大規模ウェブサイトのアルゴリズムとアーキテクチャについての簡単な説明(パート 2)

順序前回の記事「大規模 Web サイトのアルゴリズムとアーキテクチャに関する簡単な説明 (パート 1...

AIと機械学習が克服すべき3つのハードル

[[343495]] [51CTO.com クイック翻訳] 人工知能革命はまだ初期段階ですが、人工知...

CTO は、企業開発のさまざまな段階で知的財産権の対応する全体像をどのように確立できるでしょうか?

最近、新しい「特許法」の全文が公布され、新たに改正された「著作権法」が公布されたことにより、国は知的...

人工知能は何度も「危機的状況」に陥っているが、「成長痛」をどう解決するのか?

専門家や業界関係者は、人工知能がさまざまな業界や分野に広く浸透するにつれ、現場の応用に重点を置き基礎...

...

...

コードコーパス、大規模モデル、インテリジェントエージェントの魔法の杖を振ると、より強力なエネルギーが呼び出されます

熱帯雨林の杖が、ダンブルドアのようなあらゆる時代の並外れた魔法使いの伝説を生み出したのと同じように、...

...

機械学習を学ぶには? Alibaba のプログラマーが、わずか 7 つのステップで Python 機械学習を習得できるようお手伝いします。

概要: 現在、インターネット上の Python 機械学習リソースは非常に複雑で、初心者にとっては混乱...

Google AI はすべてを食べています!すべての公開コンテンツはAIトレーニングのためにクロールされ、プライバシーポリシーが更新されました

今後、インターネット上で公に話すすべての言葉が、Google によって AI のトレーニングに使用さ...

顔認証の過去と現在の徹底分析

​​ [[211140]]​​人工知能は、まず知覚段階、次に認知段階の 2 つの段階に分かれています...

会員数3億人、商品数4億点、大規模電子商取引の商品推奨にディープラーニングを応用!

電子商取引業界では、ユーザーに対する商品の推奨は常に非常にホットで重要なトピックです。比較的成熟した...