人工知能 (AI) アーキテクチャの設計

"人工知能" (AI) は、人間の知的行動を模倣するコンピューターの能力です。 AI によって、マシンは画像の分析、音声の理解、自然な方法での対話、データを使用した予測を行うことができます。

親概念としての人工知能の関係を示す図。AI の中に機械学習があります。機械学習の中にディープ ラーニングがあります。

AI の概念

アルゴリズム

"アルゴリズム" とは、問題の解決やデータ セットの分析に使用される一連の計算と規則です。 質問の手順を示すフローチャートに似ていますが、数学とプログラミング コードで記述されます。 あるアルゴリズムでは、ペットが猫、犬、魚、鳥、トカゲのどれであるかを判断する方法を記述できます。 はるかに複雑な別のアルゴリズムでは、書き言葉または話し言葉を識別し、その単語を分析して、それらを別の言語に翻訳し、翻訳が正確かどうかをチェックする方法を記述できます。

機械学習

機械学習 は、数学的アルゴリズムを使用して予測モデルを作成する AI 技術です。 アルゴリズムを使用して、データ フィールドを解析し、データ内で見つかったパターンを使ってそのデータから "学習" してモデルを生成します。 その後、これらのモデルを使用して、新しいデータについて情報に基づく予測や意思決定を行います。

予測モデルは既知のデータに照らして検証され、特定のビジネス シナリオ用に選択されたパフォーマンス メトリックによって測定された後、必要に応じて調整されます。 学習と検証のこのプロセスは、"トレーニング" と呼ばれます。 定期的な再トレーニングにより、ML モデルは徐々に改善されます。

ディープ ラーニング

"ディープ ラーニング" は ML の一種であり、予測が正確かどうかを自身で判断できます。 ディープ ラーニングでもアルゴリズムを使用してデータが分析されますが、ML よりも大規模に実行されます。

ディープ ラーニングでは、アルゴリズムの複数の層で構成された人工ニューラル ネットワークを使用します。 各層は受信データを調べ、独自の専門的な分析を実行して、他の層が理解できる出力を生成します。 その後、この出力が次の層に渡され、そこで別のアルゴリズムによって独自の分析が実行されます。

各ニューラル ネットワークには多くの層があり (場合によっては複数のニューラル ネットワークを使用)、マシンは独自のデータ処理から学習できます。 これには、ML よりもはるかに多くのデータと処理能力が必要となります。

ボット

"ボット" とは、特定のタスクを実行するように設計された自動ソフトウェア プログラムです。 本体のないロボットと考えてください。 初期のボットは、比較的単純なアルゴリズム ロジックを使用して大量の繰り返しタスクを処理するという比較的単純なものでした。 例として、検索エンジンが Web コンテンツを自動的に探索してカタログ化するために使用する Web クローラーがあります。

AI などのテクノロジを使用することによって、ボットは非常に高度化されました。人間の活動や意思決定を模倣し、多くの場合、テキストや音声によって人間と直接対話します。 例として、ディナーの予約ができるボット、カスタマー サービスのやり取りを支援するチャットボット (会話型 AI)、ニュース速報や科学的データをソーシャル メディア サイトに投稿するソーシャル ボットなどがあります。

Microsoft では、エンタープライズ レベルのボット開発専用のマネージド サービスである Azure Bot Service を提供しています。

自律システム

"自律システム" は、基本的な自動化の枠を越えて進化を続けている新しいクラスの一部です。 (ボットのように) ほとんどまたはまったく変化せずに特定のタスクを繰り返し実行するのではなく、自律システムは変化する環境に適応して目的を達成できるように、マシンにインテリジェンスをもたらします。

スマート ビルディングでは、自律システムを使用して、照明、換気、空調、セキュリティなどの操作を自動的に制御します。 さらに高度な例として、崩壊した坑道を探索する自律型ロボットがあります。このロボットは、坑道内部を徹底的に調査して、構造的に堅固な部分を特定し、空気を分析して通気性を確認し、閉じ込められた鉱山作業員が救助を必要としている兆候を検知します。このすべてが、リモート エンドで人間がリアルタイムで監視することなく行われます。

Microsoft AI に関する一般情報

Microsoft AI の詳細を確認し、関連ニュースで最新情報を常に把握してください。

アーキテクチャの種類の概要

事前構築済み AI

"事前構築済み AI" は、その名前のとおり、すぐに使用できる既製の AI モデル、サービス、API です。 これらを使用すると、データを収集して独自のモデルを構築、トレーニング、発行しなくても、アプリ、Web サイト、フローにインテリジェンスを追加できます。

事前構築済み AI の一例として、そのまま組み込んだり、さらにカスタマイズされたトレーニングのベースラインを提供するために使用したりできる事前トレーニング済みモデルが挙げられます。 別の例としては、望ましい方法で自然言語を処理するために自由に呼び出すことができるクラウドベースの API サービスがあります。

Azure AI サービス

Cognitive Services では、開発者は事前構築済み API や統合ツールキットを使用して、見る、聞く、話す、理解する、推論を開始することができるアプリケーションを作成できます。 Azure AI サービス内のサービス カタログは、視覚、音声、言語、Web 検索、決定/レコメンデーションの 5 つの主要な柱に分類できます。

AI Builder の事前構築済み AI モデル

AI Builder は、 Microsoft Power Platform の新しい機能です。コーディングやデータ サイエンスのスキルがなくても、ポイント アンド クリック インターフェイスを使用してアプリに AI を追加できます (AI Builder の一部の機能は、一般提供用にまだリリースされておらず、プレビュー状態のままです。詳細については、 リージョン別の機能の可用性 に関するページを参照してください。)

独自のモデルを構築してトレーニングできますが、AI Builder には、すぐに使用できる 事前構築済み AI モデル も用意されています。 たとえば、名刺から連絡先情報を認識する事前構築済みモデルに基づいて、Microsoft Power Apps にコンポーネントを追加できます。

カスタム AI

事前構築済み AI は便利であり、柔軟性も向上していますが、AI から必要なものを得る最良の方法は、システムを自分で構築することでしょう。 これは非常に深く複雑なテーマであることは明らかですが、ここで説明したもの以外の基本的な概念をいくつか見てみましょう。

コード言語

AI の中心概念は、アルゴリズムを使用してデータを分析し、有用な方法でそのデータを表す (または "スコア付けする") モデルを生成することです。 アルゴリズムは、プログラミング コードを使用して、開発者やデータ サイエンティスト (場合によっては他のアルゴリズム) によって記述されます。 現在、AI 開発の最も一般的な 2 つのプログラミング言語は Python と R です。

Python は、高度な汎用プログラミング言語です。 読みやすさを重視したシンプルで習得しやすい構文があります。 コンパイル手順はありません。 Python には大規模な標準ライブラリがありますが、モジュールやパッケージを追加する機能もサポートされています。 これにより、モジュール性が促進され、必要に応じて機能を拡張できます。 Python 用の AI および ML ライブラリ (Azure ですぐに利用できるものも多数あります) の拡大し続ける大規模なエコシステムがあります。

R は、統計的計算およびグラフィックス用の言語および環境です。 オンラインの広範なソーシャルおよびマーケティングの傾向のマッピングから、金融モデルや気候モデルの開発まで、あらゆる用途に使用できます。

Microsoft は R プログラミング言語を完全に採用しており、R 開発者が Azure でコードを実行するためのさまざまなオプションを提供しています。

トレーニング

トレーニングは機械学習の中核です。 これは、モデルを作成するためにアルゴリズムに "学習させる" 反復的なプロセスです。これらのモデルを使用して、データを分析し、そこから正確な予測を行います。 実際には、このプロセスには、トレーニング、検証、テストの 3 つの一般的なフェーズがあります。

トレーニング フェーズでは、個々のフィールドを識別できるように、質の高い既知のデータ セットのタグ付けが行われます。 タグ付けされたデータは、特定の予測を行うように構成されたアルゴリズムに入力されます。 完了すると、そのアルゴリズムによって、見つかったパターンを表すモデルが一連のパラメーターとして出力されます。 検証では、新しいデータがタグ付けされ、モデルのテストに使用されます。 必要に応じてアルゴリズムが調整され、場合によってはさらにトレーニングが行われます。 最後に、テスト フェーズでは、タグや事前に選択されたターゲットのない実際のデータが使用されます。 モデルの結果が正確であることを前提として、モデルはすぐに使用できるものと見なされ、モデルをデプロイできます。

ハイパーパラメーターの調整

"ハイパーパラメーター" は、トレーニング プロセス自体を管理するデータ変数です。 これらは、アルゴリズムの動作を制御する構成変数です。 そのため、通常、ハイパーパラメーターはモデル トレーニングが始まる前に設定され、パラメーターのようにトレーニング プロセス内で変更されることはありません。 ハイパーパラメーターの調整では、トレーニング タスク内で試行を実行して、ジョブがどの程度適切に実行されているかを評価し、必要に応じて調整を行います。 このプロセスで、ハイパーパラメーターの異なるファミリを使用してそれぞれトレーニングされた複数のモデルが生成されます。

モデル選択

トレーニングとハイパーパラメーター調整のプロセスにより、多数の候補モデルが生成されます。 これらには、データを準備するために必要な労力、モデルの柔軟性、処理時間、結果の精度など、さまざまな差異があります。 ニーズと制約に最適なトレーニング済みモデルを選択することを "モデル選択" と呼びますが、最適なモデルの選択と同じくらいトレーニング前の事前計画も重要です。

自動機械学習 (AutoML)

"自動機械学習" (AutoML とも呼ばれます) は、機械学習モデル開発の時間のかかる反復的なタスクを自動化するプロセスです。 すぐに運用できる ML モデルの取得に要する時間を大幅に短縮できます。 自動 ML は、プログラミングやドメインに関する広範な知識がなくても、モデル選択、ハイパーパラメーター調整、モデル トレーニング、その他のタスクを行えるよう支援します。

ポイントの計算

"スコアリング" は "予測" とも呼ばれ、新しい入力データが与えられたトレーニング済み機械学習モデルに基づいて値を生成するプロセスです。 作成される値 (スコア) は将来の値の予測を表すことができますが、考えられるカテゴリや結果を表す場合もあります。 スコアリング プロセスでは、次のようなさまざまな種類の値を生成できます。

  • 推奨項目の一覧と類似性スコア

  • 数値 (時系列モデルおよび回帰モデルの場合)

  • 新しい入力が既存のカテゴリに属する可能性を示す確率値

  • 新しい項目と最も類似性の高いカテゴリまたはクラスターの名前

  • 予測されるクラスまたは結果 (分類モデルの場合)

"バッチ スコアリング" では、データが一定期間内に収集され、バッチで処理されます。 これには、ビジネス レポートの生成や顧客ロイヤルティの分析が含まれる場合があります。

"リアルタイム スコアリング" は、その名前のとおり、継続的で可能な限り迅速に実行されるスコアリングです。 代表的な例として、クレジット カードの不正使用の検出がありますが、リアルタイム スコアリングは、音声認識、医療診断、市場分析、その他の多くのアプリケーションでも使用できます。

Azure のカスタム AI に関する一般情報

Azure AI プラットフォーム オファリング

ニーズに合った AI ソリューションを開発するために使用できる Azure のテクノロジ、プラットフォーム、サービスを以下に示します。

Azure Machine Learning

これは、モデルをより迅速に構築およびデプロイするためのエンタープライズ レベルの機械学習サービスです。 Azure Machine Learning には、機械学習モデルとパイプラインの大規模なトレーニングとデプロイを迅速に行うことができるように、Web インターフェイスと SDK が用意されています。 PyTorch、TensorFlow、scikit-learn など、オープンソースの Python フレームワークと共にこれらの機能を使用します。

Azure の Machine Learning リファレンス アーキテクチャ

Azure 自動機械学習

Azure では、自動 ML が幅広くサポートされています。 開発者はコードなし UI を使用するか、コード ファーストのノートブック エクスペリエンスを使用して、モデルを構築できます。

Azure AI サービス

これは、インテリジェントなアプリの構築を支援する、AI サービスとコグニティブ API の包括的なファミリです。 これらのドメイン固有の事前トレーニング済み AI モデルは、実際のデータでカスタマイズできます。

これは、モバイルおよび Web アプリ開発のための AI を活用したクラウド検索サービスです。 このサービスでは、コンテンツが構造化されていない場合や未加工の形式で検索できない場合に、AI エンリッチメントのオプションを使用して、プライベートな異種コンテンツに対して検索を実行します。

Azure Bot Service

これは、速やかに作業を開始するためのすぐに使えるテンプレートを備えた専用のボット開発環境です。

Azure 上の Apache Spark

Apache Spark は、ビッグ データ分析アプリケーションのパフォーマンスを向上させるメモリ内処理をサポートする並列処理フレームワークです。 Spark には、クラスターの計算処理をインメモリで行うための基本的な要素が備わっています。 Spark ジョブは、データをメモリに読み込んでキャッシュし、繰り返しクエリを実行できるため、ディスクベースのアプリケーション (Hadoop など) よりもはるかに高速です。

Azure HDInsight の Apache Spark は、クラウドでの Apache Spark の Microsoft の実装です。 HDInsight の Spark クラスターは、Azure Storage および Azure Data Lake Storage と互換性があるため、HDInsight Spark クラスターを使用して、Azure に保存されているデータを処理できます。

Microsoft Machine Learning Library for Apache Spark は SynapseML (旧称 MMLSpark) です。 このオープンソース ライブラリは、多数のディープ ラーニングツールとデータ サイエンス ツール、ネットワーク機能、運用レベルのパフォーマンスを Spark エコシステムに追加します。 SynapseML の特徴と機能について詳細をご確認ください。

Azure Databricks Runtime for Machine Learning

Azure Databricks は、Apache Spark ベースの分析プラットフォームです。ワンクリックでのセットアップと効率的なワークフローを実現し、データ サイエンティスト、エンジニア、ビジネス アナリストが共同作業できる対話型ワークスペースを提供します。

Databricks Runtime for Machine Learning (Databricks Runtime ML) では、分散トレーニングに必要なライブラリをすべて備えた Databricks クラスターを開始できます。 機械学習とデータ サイエンスのためのすぐに利用できる環境が提供されます。 さらに、TensorFlow、PyTorch、Keras、XGBoost など、複数の一般的なライブラリが含まれています。 Horovod を使用した分散トレーニングもサポートします。

顧客事例

さまざまな業界が、革新的かつ刺激的な方法で AI を適用しています。 お客様の導入事例と成功事例を以下に示します。

AI のその他の顧客事例を参照する

次のステップ