Skip to content

アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

Visual Artificial Intelligence (AI)リファレンス

このセクションでは、Visual Artificial Intelligence (AI)の技術コンポーネントの概要を簡単に説明します。

通常、イメージプロジェクトのニューラルネットワークは非常に大きく、サイズも非常に大きいため、操作が困難です。たとえば、色(赤、緑、青)の224x224ピクセル画像には、150,528の入力特徴量(224 x 224 x 3)があります。その場合、ネットワークは第1層だけで重みの数が1億5,000万を超える可能性があります。画像には「ノイズ」が多すぎるため、個々のピクセルを見て画像を理解するのは非常に困難です。しかし、ピクセルはその近傍のコンテキストで最も役立ちます。画像内のオブジェクトを表すピクセルの位置と回転は変化する可能性があるため、例えば画像内での猫の場所に関係なく、猫を検出するようにネットワークをトレーニングする必要があります。Visual Artificial Intelligence (AI)の自動化は、この「オーバーヘッド」にマスクを適用して、人が使い慣れたワークフローで視覚化、チューニング、および予測を行います。

事前トレーニング済みのネットワークアーキテクチャ

画像がモデルのブループリントのタスクとして数値(「特徴量化」)に変換されると、それをモデリングアルゴリズムに渡し、他の特徴量(数値、カテゴリー、テキストなど)と組み合わせることができます。フィーチャライザーは、画像ファイルのバイナリコンテンツを入力として受け取り、さまざまなレベルの複雑さでその画像の主要な特性を表す特徴量ベクトルを生成します。この特徴量ベクトルは、モデラーへの入力としてダウンストリームで使用されます。さらに、ファインチューニングされたフィーチャライザーは、事前にトレーニングされた情報で初期化した後、指定されたデータセットでニューラルネットワークをトレーニングし、出力特徴量をさらにカスタマイズします。

すべてのDataRobotフィーチャライザー、ファインチューニングされた分類子/リグレッサー、およびファインチューニングされたフィーチャライザーは、事前トレーニング済みのニューラルネットワークアーキテクチャに基づいています。アーキテクチャ は、フィーチャライザーの内部構造(ニューラルネットワーク)を定義し、実行時間と精度に影響を及ぼします。これらのフィーチャライザーおよびファインチューナーを手動でチューニングすることで、結果を最適化することができます。

さらに、「ニューラルネットワークを使用しない場合はどのような結果になるか」という質問に回答するベースラインブループリントもあります。このオプションを選択した場合、DataRobotはネットワークではないグレースケールダウンスケールのフィーチャライザーを含むブループリントを構築します。このようなモデルは高速ですが、精度は低くなります。これらはターゲットリーケージの調査に役立ちます(1つのクラスが他のクラスより明るいかどうか、各クラスに固有の透かしや視覚パッチがあるかどうか、精度は信用できるかどうか、など)。

さらに、DataRobotは、最先端のニューラルネットワーク最適化を実装して、一般的なアーキテクチャ上で実行し、同じ精度を維持しながら大幅に高速化します。DataRobotは、いくつかの上位フィーチャライザーの プルーニング されたバージョンを提供します。そのアーキテクチャバリアントが存在する場合は、こちらのバージョンを使用することを強くお勧めします(最大3倍の速度で同じ精度を提供します)。

DataRobot Visual Artificial Intelligence (AI)は、最高のイメージングアーキテクチャを提供するだけでなく、データセットと問題タイプにとって最善のニューラルネットワークアーキテクチャと featurizer_pooling タイプを自動的に選択します。Visual Artificial Intelligence (AI)ヒューリスティック として知られる自動選択は、精度と速度のバランスを最適化することに基づいています。さらに、オートパイロットが終了すると、ロジックは、精度を高める EfficientNet-B0-Pruned アーキテクチャを使用して、最適なリーダーボードモデルを自動的に再トレーニングします。DataRobotは最先端のアーキテクチャを統合するので、ニーズに最適なものを選択できます。DataRobotがサポートするアーキテクチャのリストを以下に示します。

フィーチャライザー 説明
Darknet このシンプルなニューラルネットワークは、Batch normalization、Leaky ReLu活性化、およびプーリングを備えた8つの3x3畳み込みブロックで構成されています。チャネルの深さは、ブロックごとに2倍になります。最終的な緻密層を始めとして、ネットワークには合計9つの層があります。
Efficientnet-b0、Efficientnet-b4 EfficientNetファミリーのネットワークで最速のネットワークであるb0モデルは、ImageNetのResNet-50のトップ1およびトップ5の精度を上回り、パラメーターの数は5分の1です。EfficientNetモデルの主な構築は、パラメーターの数を制限するMBConv(mobile inverted residual bottleneck)畳み込みブロックです。b4ニューラルネットワークは、特定のデータセットに対して最も精度が高くなる可能性があります。b4モデルの実装は、ネットワークの幅(各畳み込みのチャネル数)を1.4、そしてネットワークの深さ(畳み込みブロックの数)を1.8に拡大し、b0よりも低速ですが、ResNext-101またはPolyNetに匹敵するより精度の高いモデルを提供します。EfficientNet-b4は実行に時間がかかりますが、精度を大幅に向上させることができます。
Preresnet10 ResNetに基づいて、各残差ブロック内を除いて、バッチ正規化とReLuアクティベーションは畳み込み層の後ではなく、前に発生します。このPreResNetアーキテクチャの実装には、4つのPreResブロックがあり、それぞれに2つの畳み込みブロックがあり、入力畳み込み層と出力緻密層と合わせて合計10層になります。モデルの計算の複雑さはネットワークの深さに比例してスケーリングする必要があるため、このモデルはResNet50よりも約5倍高速です。ただし、生成される特徴量の豊富さは、Early Stopping搭載XGBなどのダウンストリームモデラーのフィッティング時間に影響を与える可能性があるため、ResNet50などのより深いフィーチャライザーを使用してモデルをトレーニングするのにかかる時間は5倍以上になる可能性があります。
Resnet50 この古典的なニューラルネットワークはスキップアヘッドレイヤーを含む残差ブロックに基づいており、実際に効果的にトレーニングを行う非常に深いネットワークを実現します。各残差ブロックでは、ブロックへの入力は、3x3の畳み込み、バッチ正規化、ReLuの活性化(2回)によって実行されます。その結果はブロックへの入力に追加され、結果を効果的に層の残差に変換します。このResNetの実装には、入力畳み込み層、48の残差ブロック、最終的な全結合層があり、合計50層になります。
Squeezenet DataRobotで最速のニューラルネットワークであるこのネットワークは、50分の1という少ないパラメーターでAlexNetの速度を実現するように設計されており、トレーニング、予測、ストレージサイズを高速化できます。これは、「スクイーズ」レイヤーとその後に続く「拡張」レイヤーの組み合わせで構成されるファイアモジュールの概念に基づいています。その目的は、精度を維持しながら、使用するパラメーターの数を大幅に削減することです。このSqueezNet v1.1の実装には、入力畳み込み層があり、その後にそれぞれ3つの畳み込みの8つのファイアモジュールがあり、合計25層になります。
Xception このニューラルネットワークは、一般的なInception V3ネットワークよりも精度が向上しています。これはResNet-50に匹敵する速度ですが、一部のデータセットでは精度が向上します。交差チャネル相関とは別に空間相関を学習することにより、パラメーターを節約します。コアビルディングブロックは、深さ方向の分離可能な畳み込み(深さ方向の畳み込み + 点ごとの畳み込み)で、残りの層が追加されます(PreResNet-10と同様)。このビルディングブロックは、空間次元(高さと幅)で発生する学習をチャネル次元(深さ)で発生する学習と「分離」することを目的としています。そのため、これらはネットワーク内の他のパラメーターダウンストリームから相互作用を学習できる個別のパラメーターで処理されます。Xceptionの「エントリフロー」には11の畳み込み層があり、幅と高さが減少し、深さが増加します。次に24の畳み込み層があり、サイズは一定のままで合計36の畳み込み層になります。
MobileNetV3-Small-Pruned MobileNet V3は、携帯電話のCPUやその他の低リソースデバイス用に特別に設計されたニューラルネットワークのMobileNetファミリーの最新バージョンです。2つのバリアントがあります:リソース使用量が多い場合はMobileNet3-Large、リソース使用量が少ない場合はMobileNet3-Small。MobileNetV3-Smallは、以前のMobileNetV2よりも6.6%精度が高く、レイテンシーは同じかそれ以上です。軽量のブロックと操作に加えて、プルーニングが適用され、特徴量の抽出が高速化されます。このプルーニングされたバージョンは同じアーキテクチャを維持しますが、レイヤー数が大幅に削減されます(〜50)。Conv2DまたはDepthwiseConv2Dとそれに続くBatchNormalizationは、単一のConv2Dレイヤーにマージされます。
DarkNet-Pruned DarkNetと同じアーキテクチャに基づいて、プルーニングされたバージョンでは推論速度が最適化されています。Conv2Dレイヤーとそれに続くBatchNormalizationレイヤーは、単一のConv2Dレイヤーにマージされます。
EfficientNet-b0-Pruned、EfficientNet-b4-Pruned EfficientNet-b0および-b4の修正バージョンを指定すると、プルーニングされたバリアントはConv2Dレイヤーの後のBatchNormalizationレイヤーを削除し、それらを前のConv2Dレイヤーにマージします。ネットワークのレイヤー数は少なくなりますが、精度は同じになり、CPUとGPUの両方でより高速な推論が可能になります。
ResNet50-Pruned ResNet50とResNet50-Prunedの唯一の違いは、Conv2Dレイヤーの後のBatchNormalizationレイヤーが削除され、それらが前のConv2Dレイヤーにマージされることです。ネットワークのレイヤー数は少なくなりますが、精度は同じになり、CPUとGPUの両方でより高速な推論が可能になります。

イメージとニューラルネットワーク

フィーチャライザーは、シーケンシャルレイヤーで構成される深い畳み込みニューラルネットワークであり、各レイヤーは前のレイヤーからの情報を集約します。最初のレイヤーは、ポイント、エッジ、コーナーなど、数ピクセルで構成される低レベルのパターンをキャプチャします。次のレイヤーは形状とテクスチャーをキャプチャし、最終レイヤーがオブジェクトをキャプチャします。ニューラルネットワークモデルから抽出する特徴量のレベルは、ニューラルネットワーク、チューニング、および結果の最適化から選択できます(レイヤーが多いほど実行時間が長くなります)。

Kerasモデル

リーダーボードからアクセスできるニューラルネットワーク視覚化ツールは、モデルのニューラルネットワークの各レイヤーのレイヤー接続を示します。これは、前処理のステップがニューラルネットワーク(Visual Artificial Intelligence (AI)ブループリントの場合など)であるか、予測を行うアルゴリズムがKerasモデル(画像のない表形式のKerasブループリントの場合など)であるモデルに適用されます。

Baseline Image Classifier/Regressorを除くすべてのVisual Artificial Intelligence (AI)ブループリントは、画像の前処理にKerasを使用します。一部のVisual Artificial Intelligence (AI)ブループリントは前処理にKerasを使用し、予測を行うために別のKerasモデルを使用します。これらのブループリントの名前には「Keras」が含まれます。Kerasを使用して予測を行う非Visual Artificial Intelligence (AI)ブループリントもあります。これらのブループリントの名前にも「Keras」が含まれています。

畳み込みニューラルネットワーク(CNN)

CNNディープラーニングネットワークのクラスで、イメージ入力を機械学習出力に変換する目的でイメージ処理に適用されます。(CNNのKDnuggetsの説明も参照してください。)CNNでは、すべてのピクセルを他のすべてのピクセルに接続する代わりに、ネットワークは領域内のピクセルのみを接続し、次に領域を他の領域に接続します。「正規化線形関数」またはReLUネットワーク層として知られるこのトレーニングプロセスは、パラメーターの数を大幅に減らし、次のように説明できます。

または

CNNの欠点は、正確なモデルをトレーニングするために数百万行のラベル付きデータが必要になることです。さらに、大きな画像の場合、特徴量の抽出が非常に遅くなることがあります。トレーニングデータの量とデータの解像度が増加すると、トレーニングに必要な計算リソースも劇的に増加します。

これらの問題に対処するために、Visual Artificial Intelligence (AI)は事前トレーニング済みネットワークを使用して画像を特徴量化します。ディープラーニングフィーチャライザーを最初からトレーニングする必要がないため、処理が高速になります。また、Visual Artificial Intelligence (AI)に必要なトレーニングデータははるかに少なく、数千枚の画像ではなく数百枚の画像で済みます。さまざまなレイヤーの特徴量を組み合わせることで、Visual Artificial Intelligence (AI)は事前トレーニング済みのフィーチャライザーの出力のみを使用することに限定されず、後続のモデリングアルゴリズム(XGBoost、線形モデルなど)がトレーニング画像の真陰性率を学習できるようになります。これはDataRobotの交換学習の応用で、あらゆる種類の問題にVisual Artificial Intelligence (AI)を適用できます。転移学習のロジックにより、単一のプロジェクトで画像データと画像以外のデータを組み合わせることが可能になります。

ビジュアライゼーション

モデル固有の2つの可視化を使用すれば、Visual Artificial Intelligence (AI)がイメージをどのようにグループ化し、イメージのどの側面が最も重要であると見なされたかを理解できます。

アクティベーションマップ

[アクティベーションマップは、モデルで注目されているイメージ領域を示します。これらは、数値変数とカテゴリー型特徴量の特徴量のインパクトと同様に計算され、データが変更されたときに予測がどのように変化するかを取得するための置換方法やSHAP技術に依存します。実装自体はクラスアクティベーションマップの変更済みバージョンを活用し、関心領域を強調表示します。

これらのマップは、モデルがユースケースに適した情報を学習していること、望ましくないバイアスが含まれていないこと、および誤った詳細に適合しすぎていないことを確認できるので重要です。さらに、畳み込み層は、完全に接続された層では失われる空間情報を自然に保持します。その結果、最後の畳み込み層には、高レベルのオブジェクト認識と詳細な空間情報との間の最良の妥協点があります。これらの層は、画像内のクラス固有の情報を探します。各クラスの活性化の有用性を知ることは、深いモデルの焦点をよりよく理解するのに役立ちます。

イメージ埋め込み

入力層では、クラスは非常に複雑で分離度は高くありません。Visual Artificial Intelligence (AI)は、事前トレーニング済みのニューラルネットワークの最後の層を使用します(ネットワークの最後の層には、複雑なオブジェクトの形成についてネットワークで把握されていることの概要が示されるためです)。この層では、クラスがさらに分離された新しい表示を生成するため、類似性によって定義された2次元空間にクラスを投影したり、[イメージ埋め込みタブで検査することができます。DataRobotでは、イメージ埋め込み実装のための次元削減アプローチとなる、最先端の教師なし学習であるTrimapを使用しています。

画像埋め込みは投影に関する機能です。DataRobotは、画像が存在する超高次元空間(224x224x3または528次元)を使用して、それらを2D空間に投影します。それらの近接性はデータに依存しますが、外れ値の検出に役立つことがあります。


更新しました May 12, 2022
Back to top