AI-900：Microsoft Azure AI Fundamentalsの勉強方法（2021年3月合格）

「AI-900：Microsoft Azure AI Fundamentals」に合格しましたので、その勉強方法を記載したいと思います。

#■[AI-900：Microsoft Azure AI Fundamentals](https://docs.microsoft.com/ja-jp/learn/certifications/exams/ai-900)とは
Azureの一番基礎的なAI関連の資格です。
公式には以下の証明となることが記載されています。
>次のことを説明できることを証明します。AI ワークロードと考慮事項、Azure での機械学習の基本原則、Azure のコンピュータ ビジョン ワークロードの機能、Azure の Natural Language Processing (NLP) ワークロードの機能、Azure の会話型 AI ワークロードの機能。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/0d03e31d-d244-3648-8027-00c5a1d3b162.png)

#■筆者情報（2021年3月時点）
・インフラエンジニア。
・AWS資格はプロフェッショナルを含め6資格取得済み（[体験記](https://qiita.com/gomasa/items/6ce860a2e11a620c92ae)）。
・上記に加えて「AWS認定　機械学習-専門知識-」合格済み（[体験記](https://qiita.com/gomasa/items/b6a6bd2ecc467581e4c7)）。
・Azure資格は「AZ-900：Azure Fundamentals」のみ取得済み（[体験記](https://qiita.com/gomasa/items/8279c389ee10f7226dc4)）。
・「E資格」合格済み（[体験記](https://qiita.com/gomasa/items/34d789832d23a2e9aaf3)）。

#■受験動機
今年度はAIの勉強を進めて「E資格」を取得し、元々目標にしていた「AWS認定 機械学習-専門知識-」の資格も取得しました。私はAzureも少しスキルがあり、Azure系のAI資格を次に取得する目標としました。

#■勉強方法と活用した教材
|教材名 |区分　|勉強方法|
|:------|:------|:-----------------------------------------------|
|[Microsoft Docs(公式)](https://docs.microsoft.com/ja-jp/?source=docs)|Web(無料)|まずはDocsという公式サイトにアカウントを作成する必要があります。トレーニングを実施したり、資格試験の申し込みや、資格情報の管理を実施するサイトです。私は別の試験の際に作成済みでした。|
|[試験 AI-900(公式)](https://docs.microsoft.com/ja-jp/learn/certifications/exams/ai-900)|Web(無料)|試験の説明が記載されています。親切なことにラーニングパスも掲載されています。|
|[Azureアカウントの作成](https://azure.microsoft.com/ja-jp/free/)|Web(無料)|Azureのアカウントを作成する必要があります。これは、下記の「ラーニングパス」の中に操作訓練があり、それを実施する前提として必要になります。私は別の試験の際に作成済みでした。|
|[ラーニングパス](https://docs.microsoft.com/ja-jp/learn/certifications/azure-ai-fundamentals/)|Web資料(無料)|AI-900を受験する人が学習するべきラーニングパスがHPに記載されています。ラーニングパスの中に操作訓練等もあるので、テスト前に実施しておくと効果的かと思います。全部実施しても1日で終了します。<br><br>指定されているラーニングパスは以下の通りです。<br><br>・[Azureで人工知能を使ってみる](https://docs.microsoft.com/ja-jp/learn/paths/get-started-with-artificial-intelligence-on-azure/)<br>・[Azure Machine Learning を使用したコードなしの予測モデルの作成](https://docs.microsoft.com/ja-jp/learn/paths/create-no-code-predictive-models-azure-machine-learning/)<br>・[Microsoft Azureでのコンピュータービジョンを調べる](https://docs.microsoft.com/ja-jp/learn/paths/explore-computer-vision-microsoft-azure/)<br>・[自然言語処理について調べる](https://docs.microsoft.com/ja-jp/learn/paths/explore-natural-language-processing/)<br>・[Conversational AIを調べる](https://docs.microsoft.com/ja-jp/learn/paths/explore-conversational-ai/)<br><br>あと、マイクロソフトのラーニングでは、特定のセクションが終了することにXPというポイントが蓄積されていきます。レベルが上がっていくので、ちょっと楽しくて、モチベーションの維持に繋がります。![Microsoft研修.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/fb174dfa-c46a-c9f6-7188-24728903e01d.jpeg)|

#■勉強の際に整理した情報
以下は勉強の際に整理した情報です。
私の場合、AIについての知識があったので、そこに関しては問題ありませんでした。その為、Azure側の機能を理解するのに力を注ぎました。
###機能の概要

|機能|内容 |
|:------|:------|
|[Machine Learning](https://azure.microsoft.com/ja-jp/services/machine-learning/#features)|機械学習モデルを作成、管理、公開するためのクラウドベースのプラットフォーム。<br><br>・自動機械学習<br>・Azure Machine Learningデザイナー<br>・データとコンピューティングの管理<br>・パイプライン|
|[Anomaly Detector](https://azure.microsoft.com/ja-jp/services/cognitive-services/anomaly-detector/)|開発者が異常検出ソリューションを作成するために使用できるアプリケーション プログラミング インターフェイス (API) を提供。<br>・Anomaly＝異常<br>・Detector=検出器|
|[Computer Vision](https://azure.microsoft.com/ja-jp/services/cognitive-services/computer-vision/)|画像や動画を分析し、説明、タグ、オブジェクト、テキストを抽出できます。|
|[Custom Vision](https://azure.microsoft.com/ja-jp/services/cognitive-services/custom-vision-service/)|独自の画像を使用してカスタム画像分類と物体検出モデルをトレーニングするために使用します。|
|[Video Indexer](https://azure.microsoft.com/ja-jp/services/media-services/video-indexer/)|ビデオ内の顔を検出して特定するために使用できます。|
|[Face](https://azure.microsoft.com/ja-jp/services/cognitive-services/face/)|顔検出および顔認識ソリューションをビルドできます。|
|[Form Recognizer](https://azure.microsoft.com/ja-jp/services/cognitive-services/form-recognizer/)|スキャンしたフォームや請求書から情報を抽出します。<br>※Recognizer=認識装置|
|[Text Analytics](https://azure.microsoft.com/ja-jp/services/cognitive-services/text-analytics/)|クラウドベースのサービスで、感情分析、キーフレーズ抽出、固有表現認識、言語検出のために、未加工テキストに対して高度な自然言語処理を提供します。|
|[Translator](https://azure.microsoft.com/ja-jp/services/cognitive-services/translator/)|複数言語のニーズを満たす、迅速で高品質な翻訳機能。<br>※Translator=翻訳者|
|[Speech](https://docs.microsoft.com/ja-jp/azure/cognitive-services/speech-service/overview)|音声の認識および合成と、音声言語の翻訳を行います。|
|[Language Understanding Intelligent Service (LUIS)](https://azure.microsoft.com/ja-jp/services/cognitive-services/language-understanding-intelligent-service/)|音声またはテキストベースのコマンドを理解できるように言語モデルをトレーニングします。|
|[QnA Maker](https://azure.microsoft.com/ja-jp/services/cognitive-services/qna-maker/)|人間とAIエージェント間の対話の基礎を形成できる質問と回答の "ナレッジベース" をすばやく構築できます。|
|[Azure Bot Service](https://azure.microsoft.com/ja-jp/services/bot-services/)|ボットを作成、公開、および管理するためのプラットフォームを提供します。 開発者は、Bot Framework を使用してボットを作成でき、それを Azure Bot Service で管理して、QnA Maker や LUIS などのバックエンド サービスを統合し、Web チャット、電子メール、Microsoft Teams などのチャネルに接続できます。|

###[Microsoftの6つの原則](https://docs.microsoft.com/ja-jp/learn/modules/responsible-ai-principles/4-guiding-principles)

|項|区分|内容 |
|:------|:------|:------|
|1|公平性|AI システムではすべての人を公平に扱う必要があります。|
|2|信頼性と安全性|AI システムは確実かつ安全に実行される必要があります。 |
|3|プライバシーとセキュリティ|AI システムは安全であり、プライバシーを尊重する必要があります。|
|4|包括性|AI システムはあらゆる人に力を与え、人々を結びつける必要があります。|
|5|透明性|AI システムは理解しやすい必要があります。|
|6|アカウンタビリティ|人々は AI システムに対して説明責任があります。<br>※アカウンタビリティ=説明責任|

###Azure Machine Learningの分類・回帰の処理方法

|項|区分|内容 |
|:------|:------|:------|
|1|ワークスペース作成|ワークスペースを作成します。機械学習ワークロードに関連するデータ、コンピューティング リソース、コード、モデル、その他のアーティファクトを管理できます。|
|2|コンピューティングリソースの作成|信頼性と安全性トレーニング プロセスを実行するコンピューティングが必要であり、またトレーニングされたモデルをテストしてデプロイする必要があります。|
|3|データセットの作成|モデルのトレーニングやその他の操作用のデータは通常、"データセット" と呼ばれるオブジェクトにカプセル化されます。|
|4|パイプラインの作成|Azure Machine Learning デザイナーの使用を開始するには、最初にパイプラインを作成し、使用するデータセットを追加する必要があります。|
|5|変換を追加する|モデルをトレーニングする前に、通常はいくつかの前処理変換をデータに適用する必要があります。パイプラインに追加します。|
|6|トレーニング モジュールを追加する|データのサブセットを使用してモデルをトレーニングする一方で、トレーニング済みモデルのテストに使用するためにデータの一部を確保しておくことが一般的です。 これにより、モデルによって予測されるラベルを元のデータセット内の実際の既知のラベルと比較できます。|
|7|Evaluate Mode(モデル評価) モジュールを追加する|確保しておいてモデルのスコア付けに使用した検証データには、ラベルの既知の値が含まれます。 したがって、モデルを検証するために、ラベルの真の値を、検証データセットのスコア付け時に予測されたラベル値と比較できます。 この比較に基づいて、モデルのパフォーマンスを説明するさまざまなメトリックを計算できます。|
|8|推論パイプラインを作成する|モデルをトレーニングするためのパイプラインを作成して実行した後、新しいデータに対して同じデータ変換を実行してから、トレーニング済みモデルを使用して、特徴に基づいてラベルの値を "推論" (つまり、予測) する、2 番目のパイプラインが必要です。 このパイプラインは、アプリケーションで使用するために発行できる予測サービスの基礎を形成します。|
|9|予測サービスをデプロイする|リアルタイム推論用の推論パイプラインを作成してテストした後、それをクライアント アプリケーションで使用するためにサービスとして発行できます。|

###Computer Vision
Computer Vision サービスは、構築済みのコンピューター ビジョン機能を提供する Microsoft Azure のコグニティブ サービスです。 このサービスでは、画像を分析し、画像とそれに含まれているオブジェクトについての詳細情報を返すことができます。Computer Visionリソース、Cognitive Services リソースのどちらかをプロビジョニングします。

|区分|内容 |
|:------|:------|
|画像の説明|画像を分析し、検出されたオブジェクトを評価し、画像から検出されたことを説明できる人間が判読できる語句や文を生成する機能があります。|
|視覚的な特徴のタグ付け|Computer Vision によって生成される画像の説明は、何千もの認識可能なオブジェクトのセットに基づいています。これらを使用して、画像の "タグ" を提案できます。|
|オブジェクトの検出|オブジェクト検出機能は、一般的なオブジェクトを識別できるという点でタグ付けに似ています。ただし、このサービスでは、タグ付け (認識されたオブジェクトのタグの提供) だけではなく、境界ボックス座標として知られているものも返すことができます。 |
|ブランドの検出|この機能では、商用ブランドを識別する機能が提供されます。 このサービスには、製品の商用ブランドの世界的に認められているロゴの既存のデータベースが含まれています。|
|顔の検出|画像内の人間の顔を検出して分析できます。|
|画像の分類|Computer Vision では、その内容に基づいて画像を分類できます。|
|ドメイン固有のコンテンツの検出|画像を分類する際、Computer Vision サービスでは、有名人及びランドマークの特殊なドメインモデルをサポートしています。|
|光学式文字認識|光学式文字認識 (OCR) 機能を使用して、画像内の印刷されたテキストや手書きのテキストを検出できます。|

###Custom Vision
Azure Cognitive Services オファリングの一部として利用できる Custom Vision サービスを使用して、画像分類を実行できます。Custom Visionリソース（トレーニング・予測・両方）、Cognitive Services リソース（トレーニング・予測・両方）のどちらかをプロビジョニングします。

|区分|内容 |
|:------|:------|
|モデルトレーニング|分類モデルをトレーニングするには、トレーニング リソースに画像をアップロードし、適切なクラス ラベルでラベル付けする必要があります。 次に、モデルをトレーニングし、トレーニング結果を評価する必要があります。|
|モデルの評価|モデルのトレーニング プロセスは反復的なプロセスです。|
|予測のためのモデルの使用|モデルをトレーニングし、その評価されたパフォーマンスに満足したら、モデルを予測リソースに公開できます。モデルを使用するために、クライアント アプリケーション開発者にはプロジェクト ID、モデル名、予測エンドポイント、予測キーが必要になります。|

Custom Vision コグニティブ サービスを使用すると、最小限のディープ ラーニングの専門知識と少ないトレーニング画像で、多くのコンピューター ビジョン シナリオのニーズを満たす物体検出モデルを作成できます。Custom Visionリソース（トレーニング・予測）、Cognitive Services リソース（トレーニング・予測・両方）のどちらかをプロビジョニングします。

|区分|内容 |
|:------|:------|
|画像のタグ付け|物体検出モデルをトレーニングするには、事前に一連のトレーニング画像でクラスと境界ボックスの座標をタグ付けする必要があります。 このプロセスには時間がかかる場合がありますが、"Custom Vision ポータル" には、それを簡単にするグラフィカル インターフェイスが用意されています。 |
|モデルのトレーニングと評価|モデルをトレーニングするには、"Custom Vision ポータル" を使用するか、必要なコーディング経験がある場合は、Custom Vision サービスのプログラミング言語固有のソフトウェア開発キット (SDK) を使用できます。 トレーニング画像、クラス、および各画像内の物体の数によっては、物体検出モデルのトレーニングに時間がかかることがあります。|
|予測のためのモデルの使用|モデルをトレーニングし、その評価されたパフォーマンスに満足したら、モデルを予測リソースに公開できます。モデルを使用するために、クライアント アプリケーション開発者にはプロジェクト ID、モデル名、予測エンドポイント、予測キーが必要になります。|

###Face
顔を検出、認識、および分析できる事前構築済みのアルゴリズムが備わっています。Faceリソース、Cognitive Services リソースのどちらかをプロビジョニングします。

|区分|内容 |
|:------|:------|
|サポート機能|顔検出、顔検証、類似した顔の検出、類似性に基づいた顔のグループ化、人の識別|
|画像形式|サポートされている画像は JPEG、PNG、GIF、および BMP です|
|ファイル サイズ|6 MB 以下|
|顔のサイズ範囲|36 x 36 から 4096 x 4096 まで。|

###Form Recognizer
フォーム、請求書、領収書などのドキュメント内のデータ処理を自動化するために使用できる、インテリジェントなフォーム処理機能を備えています。Form Recognizer サービスを使用するには、Azure サブスクリプションで Form Recognizer リソースを作成する必要があります。

|区分|内容 |
|:------|:------|
|画像形式|画像を JPEG、PNG、BMP、PDF、または TIFF 形式にする|
|ファイル サイズ|50 MB 未満|
|画像のサイズ| 50 x 50 から 10000 x 10000 ピクセル。PDF ドキュメントの場合、17 インチ x 17 インチ以下。|

###Text Analytics
Text Analytics サービスは、未加工テキストに対して高度な自然言語処理を実行できる Azure Cognitive Service の一部です。Text Analytics リソース、Cognitive Services リソースのどちらかをプロビジョニングします。

|区分|内容 |
|:------|:------|
|言語検出|Text Analytics サービスの言語検出機能を使用して、テキストが記述されている言語を識別できます。|
|感情分析|Text Analytics サービスでは、テキストを評価し、各文のセンチメントスコアとラベルを返すことができます。0 から 1 の範囲のセンチメント スコアを返します。1 に近い値ほど肯定的な感情です。 範囲の中間 (0.5) に近いスコアは、中立または不確定と見なされます。|
|キー フレーズ抽出|キーフレーズ抽出は、1 つまたは複数のドキュメントのテキストを評価し、その (それらの) ドキュメントの主な要点を特定するという概念です。|
|エンティティ認識|Text Analytics サービスに非構造化テキストを提供すると、テキスト内で認識される "エンティティ"(人物、場所、組織、または日常的な項目 (日付、時刻、数量など) ) の一覧が返されます。|

###Speech
音声の認識および合成と、音声言語の翻訳を行います。Speechリソース、Cognitive Services リソースのどちらかをプロビジョニングします。

|区分|内容 |
|:------|:------|
|Speech to Text API|Speech to Text API を使用すると、リアルタイムまたはバッチで音声をテキスト形式に文字起こしすることができます。|
|リアルタイムの文字起こし|リアルタイムの音声テキスト変換を使用すると、オーディオ ストリーム内のテキストを文字起こしすることができます。|
|バッチの文字起こし|Shared Access Signature (SAS) URI を持つオーディオ ファイルを示し、文字起こし結果を非同期的に受信できます。|
|Text to Speech API|テキスト入力を音声に変換し、コンピューターのスピーカーから直接再生するか、オーディオ ファイルに書き込むことができます。|
|音声翻訳|ある言語の音声を別の言語のテキストまたは音声に翻訳するために使用されます。音声のリアルタイム字幕や、音声会話の同時双方向翻訳などのシナリオが可能になります。|


###Translator Text
複数言語のニーズを満たす、迅速で高品質な翻訳機能。テキストのセマンティック コンテキストを解析し、結果としてより正確で完全な翻訳をレンダリングする、ニューラル機械翻訳 (NMT) モデルを使用します。Translator Textリソース、Cognitive Services リソースのどちらかをプロビジョニングします。

|区分|内容 |
|:------|:------|
|テキスト翻訳|アプリケーション、Web サイト、ツール、ソリューションに簡単に統合できます。 このサービスでは、テキストのセマンティック コンテキストを解析し、結果としてより正確で完全な翻訳をレンダリングする、ニューラル機械翻訳 (NMT) モデルを使用します。テキスト翻訳サービスを使用する場合、1 つの from 言語に複数の to 言語を指定して、ソース ドキュメントを複数の言語に同時に翻訳することができます。<br><br>不適切用語のフィルタリング、選択的翻訳が実施可能。|

###Language Understanding
音声またはテキストベースのコマンドを理解できるように言語モデルをトレーニングします。Language Understandingリソース（作成・予測）、Cognitive Services リソース（予測のみ）のどちらかをプロビジョニングします。

|区分|内容 |
|:------|:------|
|発話|発話は、ユーザーが言うことの例であり、アプリケーションで解釈する必要があります。|
|エンティティ|エンティティは、発話で参照される項目です。|
|意図|意図は、ユーザーの発話で表される目的または目標です。Language Understanding アプリケーションでは、意図とエンティティで構成されるモデルを定義します。 発話は、モデルをトレーニングし、特定の入力に基づいて、最も可能性の高い意図とそれを適用するエンティティを特定するために使用されます。 |
|モデルのトレーニング|モデル内の意図とエンティティを定義し、適切なサンプル発話のセットを含めたら、次の手順として、モデルをトレーニングします。 トレーニングとは、サンプル発話を使用して、ユーザーが意図やエンティティに応じて口にする可能性の高い自然言語表現に一致させるようにモデルに教えるプロセスです。|
|予測|トレーニングとテストの結果に問題がなければ、Language Understanding アプリケーションを予測リソースに発行して使用することができます。クライアントアプリケーションでは、予測リソースのエンドポイントに接続し、適切な認証キーを指定することで、モデルを使用できます。|

###QnA Maker
組み込みの自然言語処理機能を備えたナレッジ ベースを作成し、発行できます。ナレッジ ベースを作成するには、まず Azure サブスクリプションで QnA Maker リソースをプロビジョニングする必要があります。

|区分|内容 |
|:------|:------|
|質問と回答の定義|QnA Maker リソースをプロビジョニングした後、QnA Maker ポータルを使用して、質問と回答のペアで構成されるナレッジ ベースを作成できます。|
|ナレッジ ベースのトレーニングとテスト|質問と回答のペアのセットを作成したら、ナレッジ ベースをトレーニングする必要があります。 このプロセスでは、リテラルの質問と回答を分析し、組み込みの自然言語処理モデルを適用して、質問の定義で指定されたとおりに表現されていない場合でも、質問に対する適切な回答を照合します。トレーニング後に、QnA Maker ポータルの組み込みテスト インターフェイスを使用して、質問を送信し、返された回答を確認することで、ナレッジ ベースをテストできます。|
|ナレッジ ベースの公開|トレーニングしたナレッジ ベースが充分であると判断したら、クライアント アプリケーションから REST インターフェイス経由で使用できるように公開できます。|

###Azure Bot Service
ナレッジ ベースを作成して公開したら、ボットを通じてユーザーに提供できます。

|区分|内容 |
|:------|:------|
|ナレッジ ベース用のボットの作成|Microsoft Bot Framework SDK を使用して会話フローを制御し QnA Maker ナレッジ ベースと統合するコードを記述することで、カスタム ボットを作成できます。 一方、より簡単な方法として、QnA Maker の自動ボット作成機能を使用できます。これにより、公開したナレッジ ベースのボットを作成し、数回クリックするだけで Azure Bot Service アプリケーションとして公開できます。|
|ボットの拡張と構成|ボットを作成したら、Azure portal で管理できます。|
|チャネルへの接続|ボットをユーザーに配信する準備ができたら、それを複数の "チャネル" に接続できます。これにより、ユーザーは、Web チャット、電子メール、Microsoft Teams、およびその他の一般的な通信メディアを使用して対話できるようになります。|

#■受験（2021年3月：合格）
|ポイント|内容|
|:------|:------|
|試験会場|試験会場は「ピアソン VUE」の会場から選択できます。|
|所感|問題内容については記載できません。ただ、試験自体は試験時間の半分以下の30分くらいで解き終わりました。知っているか知らないか、という世界なので、あまり悩むことはありませんでした。|
|結果|成績は惜しくも900点に届きませんでしたが、余裕での合格でした。紙媒体のAzureはスコアレポートを提供してくれます。|

#■感想
結果的に勉強期間は1週間くらいでした。

会社への行き帰りの電車の中やAzureの機能に関する用語を覚え、土日にラーニングパスを実施しました。AIに関する知識がない場合、AIの基礎の勉強が必要になるかと思います。

#次回に向けて
今回は「AZ-900」を合格しましました。AI系で行くなら「AI-100」ですが、Azure上での機械学習のワークロードを学ぶ「DP-100」も面白そうです。AI学習を進める為、ここら辺の資格を狙っていきたいと思います。

|レベル |Azure資格　|
|:------------|:-----------------------|
|初級|**[AZ-900: Microsoft Azure Fundamentals](https://docs.microsoft.com/ja-jp/learn/certifications/exams/az-900)**|
|中級|[AI-100: Designing and Implementing an Azure AI Solution](https://docs.microsoft.com/ja-jp/learn/certifications/exams/ai-100)|
|中級|[DP-100: Designing and Implementing a Data Science Solution on Azure](https://docs.microsoft.com/ja-jp/learn/certifications/exams/dp-100)|

以　　上