見出し画像

【Microsoft Azure】第二回 AIソリューションのPoC〜4つのAIサービスのハンズオン〜

はじめに

今回の記事では、Microsoft Azureが提供するAI(人工知能)サービスについて、その概要や利用方法をわかりやすく解説します。AIは、私たちの生活やビジネスの中で急速に重要性を増しており、その活用範囲は日々広がっています。しかし、AIという言葉に対して「難しそう」「自分には関係ない」と感じてしまい、実際にAIを扱う機会を逃している人も多いでしょう。

そこで今回も、初心者の方が手を動かしながら着実に理解できるように、AzureのAIサービスのなかで無料で使用できるものから厳選した4つのサービスをハンズオン形式で紹介したいと思います。

具体的には、AzureのCustom Vision, Machine Learning, AI Search, Video Indexerといった4つのAIサービスを取り上げて、これらのサービスの具体的なハンズオンを通じて、その操作方法や実際の利用例を学んでいきます。これにより、AzureのAIサービスがどのように実務に応用できるのか、実践的な視点から理解していただけることでしょう。

この記事を通じて、AzureのAIサービスがより身近に感じられ、その可能性に興味を持っていただければ幸いです。それでは、AzureのAIサービスの世界へ一緒に踏み出してみましょう!



この記事は前回の記事の続きです。
まだ読んでいない人は↓以下の記事↓をチェック!


【実践編①】Custom Vision

Custom Visionとは何か?

Custom Visionは、Azureが提供する画像認識サービスで、ユーザーが独自の画像分類モデルを簡単に作成できるツールです。このサービスを使うと、自分が指定したラベルを画像に自動的に付けるカスタムモデルをトレーニングし、実際のアプリケーションで使用できます。

具体的には、Custom Visionは以下のことができます:

  1. 画像分類: 画像全体に対して、1つまたは複数のラベルを付ける機能です。例えば、「猫」や「犬」などのラベルを使って、画像が猫か犬かを判別することができます。

  2. 物体検出: 画像内の特定の物体を見つけ、その位置を座標として返す機能です。これにより、画像の中でどこに物体があるかを特定できます。

Custom Visionの使い方はシンプルです。まず、画像を集めて、それに対してラベルを付けます。次に、そのデータを使ってモデルをトレーニングします。トレーニングが終わると、モデルをテストして、その精度を確認できます。もしモデルが期待通りに動作しない場合は、再トレーニングして性能を向上させることもできます。

このサービスは、特定のユースケースに合わせたドメインが用意されており、例えば「食品」や「ランドマーク」など、特定のテーマに最適化されたモデルを作成することができます。

Custom Visionは、機械学習の専門知識がなくても使えるように設計されており、Webポータルを通じて直感的に操作できるため、初心者でも簡単に画像分類モデルを作成し、活用することができます。

Custom Vision ハンズオン: 画像分類モデルの構築と実践

※ハンズオンを始める前の準備

Custom Visionで画像分類をするために、分類モデルをトレーニングするための画像のセットを用意します。通常はGitHubなどからサンプル画像をダウンロードするか、自分で画像を用意します。今回は以下のGitHub上に公開されていた「Japanese_Cherry」の画像10枚と「Hemlock」の画像10枚、そしてテスト用の「Hemlock」の画像1枚を使用していきます。


Custom Vision リソースの作成

  1. Azureポータルにログインし、Custom Visionリソースを作成します。

  2. 「Create a resource」 > 「Custom Vision」 を選択します。

  3. TrainingリソースとPredictionリソースの両方を作成します。リージョン、名前、リソースグループなどの情報を入力します。

必要事項を入力して、Review + createボタンをクリック

新しいプロジェクトの作成

  1. Custom Vision Web ポータルにサインイン

  2. 新しいプロジェクトを作成

    • 「New Project」 ボタンをクリックします。

    • Name, Description, Domains(例: General, Food, Retailなど)などを設定します。今回のドメインはGeneral[A2]にします。

    • Project Typesで「classification」を選択し、Classification Typesとして「Multiclass」を選択します。

  3. 全て入力したら「Create Project」ボタンをクリック

New Projectを選択
必要事項を入力し、Create Projectボタンをクリック
プロジェクトが作られると、この画面に遷移する

トレーニング画像のアップロードとタグ付け

  1. 画像のアップロード

    • 「Add images」 ボタンをクリックし、ローカルファイルから画像を選択します。

    • 各画像に適切なタグを付けます。タグは分類に必要なカテゴリを示します。

  2. 画像のタグ付け

    • タグを作成するには、「My Tags」 フィールドにテキストを入力し、Enter キーを押します。ここでは、「Hemlock」と「Japanese_Cherry」というタグをそれぞれの画像につけます。

  3. 画像の追加が完了したら、「Upload」ボタンをクリック

Hemlockの画像を10枚選択し、「Hemlock」というタグをつけた

分類器のトレーニング

  1. トレーニングの開始

    • 「Train」 ボタンをクリックして、分類器のトレーニングを開始します。トレーニングは数分かかることがあります。

  2. トレーニングタイプの選択

    • トレーニングタイプとして、「Quick Training」と「Advanced Training」がありますが、今回は「Quick Training」を選択します。

Quick Trainingを選択して、Trainボタンを押す
トレーニング中の画面

分類器の評価

  1. パフォーマンスの確認

    • トレーニングが完了すると、モデルの精度と再現率が表示されます。精度は正しく識別された画像の割合、再現率は実際に正しい分類の割合を示します。

パフォーマンスの一覧を見ることができる

Custom Vision モデルのテスト

  1. クイックテストを実行

    • 上部のメニューバーから 「Quick Test」 ボタンをクリックします。これにより、「Quick Test」 ウィンドウが表示されます。

  2. 画像をアップロードまたはURLを指定

    • 「Enter Image URL」の欄に画像のURLを入力するか、「Browse local files」 ボタンをクリックして、ローカルの画像ファイルを選択します。

  3. 予測結果の確認

    • 選択した画像がページの中央に表示され、モデルによる予測結果が画像の下に表示されます。結果はTagとProbabilityの2つの列で示されます。

  4. Quick Testウィンドウを閉じる

    • 結果を確認したら、「Quick Test」 ウィンドウを閉じます。

テスト用の画像を予測してもらった結果、99.9%の確率で「Hemlock」であることがわかった

このように、Custom Visionを利用すると誰でもノーコードで画像分類を行うことができます。今回は簡単のため、少量の画像データでモデルの学習や予測を行いましたが、自分で画像をたくさん用意してタグ付けを行えば、もっと複雑で面白い画像分類ができるかもしれません。ぜひ試してみてください。

↓Custom Visionで参考にした公式ドキュメント


【実践編②】Azure Machine Learning

Azure Machine Learningとは何か?
Azure Machine Learning(Azure ML)は、Microsoft Azureが提供するクラウドベースの機械学習サービスです。これにより、データサイエンティストや機械学習エンジニアは、モデルのトレーニングからデプロイまで、機械学習の全プロセスを効率的に管理できます。

Azure MLは、機械学習プロジェクトのライフサイクルを加速し、管理するためのツールを提供します。これには、モデルのトレーニング、評価、デプロイメントを含むすべての作業が含まれます。ユーザーは、Pythonのオープンソースライブラリ(例えば、TensorFlowやPyTorch)を使用してモデルを構築することができ、さらに、自動化された機械学習(AutoML)機能を使って、最適なモデルとハイパーパラメータを自動的に選択することもできます。

Azure MLでは、次のような機能があります:

  1. モデルのトレーニングとデプロイ: Azure MLは、クラウド上でのモデルのトレーニングと、リアルタイムまたはバッチ処理での推論をサポートします。

  2. MLOpsの管理: 機械学習の運用管理(MLOps)機能を提供し、モデルの監視や再トレーニングを効率的に行えます。

  3. セキュリティと統合: Azureクラウドのセキュリティ機能と統合され、データの保護やアクセス管理が可能です。また、Azureの他のサービスともシームレスに連携します。

これにより、機械学習の経験が浅い初心者でも、また高度な技術が求められる専門家でも、効率よく機械学習モデルを開発し、実運用に活用することができます。

Azure Machine Learning ハンズオン: NotebooksでIrisデータの分析

※データセットの準備

ここでは、Azure Machine Learningでのデータ処理とモデルのトレーニングを学ぶために、一般的なデータセットとして「Irisデータセット」を使用します。Irisデータセットは、さまざまな種類のアイリスの花の特徴を含むデータです。

Irisデータセットについて:

このリンクから Irisデータセットの中身を確認することができます。とても有名なデータセットなので、インターネットで検索すると簡単に探すことができます。見つけたらぜひダウンロードしてデータセットを眺めてみてください。

Azure Machine Learning Studioのセットアップ

  1. Azure Portalにログイン:

    • Azure Portalにアクセスし、ログインします。

  2. Azure Machine Learningリソースの作成:

    • 「Create a resource」をクリックし、「Azure Machine Learning」を検索して選択します。

    • 必要な情報を入力し、「Review + create」をクリックしてリソースを作成します。

  3. Azure Machine Learning Studioにアクセス:

    • 作成したリソースを開き、画面下部の「Launch studio」のボタンから「Azure Machine Learning Studio」にアクセスします。

必要事項を入力して、リソースを作成する

データセットのアップロード

  1. データストレージの設定:

    • Azure Machine Learning Studio内で「Data」を開きます。

    • 「+Create」を選択し、Name, Description, Typeを入力します。

  2. データセットのアップロード:

    • URl, Azure Storage, Local filesのなかから好きなアップロード方法を選びます。今回はURIからアップロードします。

    • 指定のURlを入力して、アップロードが完了します。

Name, Description, Typeを入力する
好きなアップロード方法を選択する(今回はFrom a URIを選択)
指定のURIを入力してアップロードする

ノートブックの作成

  1. ノートブックの作成:

    • 「Notebooks」セクションで「Add files」→「Create new file」をクリックします。

    • ファイルの名前を付け、File typeに「Notebook(.ipynb)」を指定して作成する。

ファイル名とファイル形式を選択して、新しいノートブックを作成する

Irisデータの分析

ここからは、作成したノートブックを使って実際にIrisデータを分析してみましょう!
以下のコードをノートブックに入力して実行してみてください。

ライブラリのインストールとデータの読み込み:

# 必要なライブラリをインストール
!pip install pandas matplotlib scikit-learn

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, confusion_matrix

# データセットの読み込み
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
columns = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class']
iris_data = pd.read_csv(url, names=columns)

# データの確認
print(iris_data.head())

出力結果:

   sepal_length  sepal_width  petal_length  petal_width        class
0           5.1          3.5           1.4          0.2  Iris-setosa
1           4.9          3.0           1.4          0.2  Iris-setosa
2           4.7          3.2           1.3          0.2  Iris-setosa
3           4.6          3.1           1.5          0.2  Iris-setosa
4           5.0          3.6           1.4          0.2  Iris-setosa


データの前処理:

# 特徴量とラベルの分割
X = iris_data.drop('class', axis=1)
y = iris_data['class']

# データの分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)


モデルのトレーニングと評価:

# モデルの作成とトレーニング
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

# 予測と評価
y_pred = model.predict(X_test)
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))
出力結果

結果の可視化:

# 混同行列の可視化
import seaborn as sns
cm = confusion_matrix(y_test, y_pred)
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', xticklabels=model.classes_, yticklabels=model.classes_)
plt.xlabel('Predicted')
plt.ylabel('Actual')
plt.show()
可視化の様子

以上のハンズオンから、Azure Machine Learningでは機械学習のための環境を簡単に構築し、実践できることがわかったと思います。機械学習を実務レベルで行おうとすれば、機械学習用の莫大なデータベースの確保や堅牢なセキュリティ対策を講じるなどの必要がありますが、Azure Machine Learning はAzureの他のサービスとの連携がスムーズに取れるため、その心配はいりません。ぜひ一度、Azureでの機械学習を実践してみてください。


【実践編③】Azure AI Search

Azure AI Searchとは何か?

Azure AI Searchは、Microsoft Azureが提供する高度な検索サービスです。ユーザーが持つコンテンツを対象に、安全で大規模な情報検索が可能です。このサービスは、従来のキーワード検索に加え、AIを活用したベクトル検索やハイブリッド検索をサポートしています。これにより、ユーザーは求める情報により正確かつ迅速にアクセスできます。

Azure AI Searchは、商品カタログやデータ探索、会話型検索など、さまざまな用途に対応します。また、Azureの他のサービスと連携してデータのインデックス作成やクエリ処理を効率的に行えます。さらに、検索結果の関連性を調整したり、非構造化データを検索しやすい形に変換する機能も備えています。

このように、Azure AI Searchを活用することで、企業や開発者は自社のコンテンツを基にした強力な検索機能を簡単に構築し、ユーザー体験を向上させることができます。

Azure AI Search ハンズオン: 不動産屋のサンプルデータで検索機能を学ぶ

Azure AI Searchは、大量のデータから有用な情報を迅速に取得できる強力なツールです。このハンズオンでは、Azure AI Searchを使って、不動産情報のデータセット「realestate-us-sample」を検索し、実際にどのように動作するかを理解していきましょう。

Azure AI Search サービスのセットアップ

  1. Azureポータルにアクセスし、「AI Search」を検索し、サービスを作成します。

  2. サービス名、リソースグループ、リージョンを設定し、無料プラン(Free)を選択して作成を開始します。

必要事項を入力して、サービスを作成する

インデックスの作成

次に、realestate-us-sampleデータをインデックス化します。

  1. サービス作成後、画面下部のImportをクリックし、データソースとして「Samples」を選択します。

  2. 使用するサンプルデータとして「realestate-us-sample」を選択します。

  3. データスキーマを確認し、インデックスを作成します。

realestate-us-sampleを選択し、データソースとして利用できるように設定する

クエリの実行

インデックスが作成された後、実際に検索クエリを実行してみましょう。

  1. Search Explorerを開きます。これにより、作成したインデックスに対してクエリを実行できます。

  2. 例えば、「city eq 'Seattle'」と入力すると、シアトルにある物件が表示されます。また、「price gt 500000」と入力すると、価格が50万ドル以上の物件が表示されます。様々な条件でクエリを試し、データに対する検索結果がどのように変わるかを確認しましょう。

今回はCityがSeattleであるものを検索した結果が示されている

検索結果をもっと具体的に以下のように示します。これは検索結果のほんの一部にすぎませんが、よく見るとCityがSeattleであるものが抽出されていることがわかります。

{
  "@odata.context": "https://aiservices-0001.search.windows.net/indexes('realestate-us-sample-index')/$metadata#docs(*)",
  "@search.nextPageParameters": {
    "search": "city eq 'Seattle'",
    "skip": 50
  },
  "value": [
    {
      "@search.score": 8.293751,
      "listingId": "OTM4MjQ2NQ2",
      "beds": 2,
      "baths": 2,
      "description": "This is a ranch style house and is a short sale.  This property has mountain views located in a cul-de-sac and features bosch appliances, a wall of windows and a huge bonus room.",
      "description_de": "Dies ist ein Ranch-Stil-Haus und ist ein Leerverkauf.  Diese Eigenschaft hat Aussicht auf die Berge gelegen in einer Sackgasse und verfügt über Bosch Geräte eine Wand von windows and ein riesiger Bonus-Zimmer.",
      "description_fr": "Il s’agit d’une maison de style ranch et une vente à découvert.  Cette propriété n’a vue sur la montagne situé dans une impasse et dispose d’appareils bosch, un mur de fenêtres and un énorme bonus de chambre.",
      "description_it": "Si tratta di una casa in stile ranch è una vendita a breve.  Questa proprietà ha la vista sulle montagne Situato in una strada senza uscita e dotato di elettrodomestici bosch, una parete di finestre and una stanza enorme bonus.",
      "description_es": "Esta es una casa de estilo rancho y es una venta corta.  Esta propiedad tiene vistas a la montaña situado en un callejón sin salida y cuenta con aparatos de bosch, una pared de ventanas and una sala adicional enorme.",
      "description_pl": "Jest to dom styl ranczo i krótkiej sprzedazy.  Ten obiekt oferuje widoki na góry polozony w zaulku i oferuje AGD bosch, ciana and sale ogromny bonus.",
      "description_nl": "Dit is een ranch stijl huis en is een korte verkoop.  Deze eigenschap heeft uitzicht op de bergen gelegen in een doodlopende straat en is voorzien van bosch toestellen, een muur van windows and een enorme bonus-kamer.",
      "sqft": 2592,
      "daysOnMarket": 276,
      "status": "pending",
      "source": "Allen Realty",
      "number": "3005",
      "street": "Southwest City View Street",
      "unit": null,
      "type": "House",
      "city": "Seattle",
      "region": "wa",
      "countryCode": "us",
      "postCode": "98126",
      "location": {
        "type": "Point",
        "coordinates": [
          -122.372,
          47.5736
        ],
        "crs": {
          "type": "name",
          "properties": {
            "name": "EPSG:4326"
          }
        }
      },
      "price": 730944,
      "thumbnail": "https://searchdatasets.blob.core.windows.net/images/bd2bt2home.jpg",
      "tags": [
        "ranch style house",
        "short sale",
        "mountain views",
        "cul-de-sac",
        "bosch appliances",
        "wall of windows",
        "huge bonus room"
      ]
    },

このハンズオンでは、Azure AI Searchを使ってrealestate-us-sampleデータのインデックス作成と検索を行いました。これにより、Azure AI Searchの基本的な操作方法や、どのようにしてデータから有用な情報を抽出するかを理解できたと思います。

次のステップとして、実際のプロジェクトに応用してみたり、さらなるカスタマイズやチューニングを試して、Azure AI Searchの可能性を探ってみてください。


【実践編④】Azure AI Video Indexer

Azure AI Video Indexerとは何か?

Azure AI Video Indexerは、ビデオおよびオーディオコンテンツから豊富な分析情報を抽出するためのクラウドアプリケーションです。これは、Face APIs、Translators、Speech servicesなど、Azure AIサービスの上に構築されています。Azure AI Video Indexerは、30以上のAIモデルを活用し、ビデオやオーディオコンテンツを分析し、詳細な情報を提供します。

Azure AI Video Indexerでできること

  • ディープ検索: ビデオライブラリ全体で検索エクスペリエンスを強化します。たとえば、特定の人物が特定の言葉を話したタイミングや、2人の人物がいつ会ったかを検索できます。

  • コンテンツ作成: トレーラー、ハイライトリール、ソーシャルメディアコンテンツの作成が容易になります。

  • アクセシビリティ: 障碍者向けのコンテンツや、複数言語での文字起こしや翻訳が可能です。

  • 収益化: 抽出された分析情報を広告サーバーへの追加シグナルとして使用できます。

  • コンテンツモデレーション: テキストやビジュアルコンテンツのモデレーションを行い、不適切なコンテンツをフィルタリングします。

  • 推奨事項: ユーザーに関連するビデオモーメントを強調表示し、エンゲージメントを向上させます。

ビデオおよびオーディオのAI機能

Azure AI Video Indexerは、以下のビデオおよびオーディオモデルを提供します。

  • 顔検出: ビデオに表示される顔を検出し、グループ化します。

  • 著名人の識別: 100万人以上の著名人を識別します。

  • 光学式文字認識 (OCR): 画像からテキストを抽出します。

  • 音声の文字起こし: 50以上の言語で音声をテキストに変換します。

  • 翻訳: 音声トランスクリプトの翻訳を作成します。

  • 感情検出: トランスクリプト分析で喜び、悲しみ、怒り、恐怖などの感情を検出します。

これらのモデルを活用することで、ビデオコンテンツの検索、アクセシビリティの向上、収益化、コンテンツモデレーション、推奨システムの強化など、さまざまな用途に役立てることができます。

Azure Video Indexer ハンズオン: ビデオデータの分析

Azure Video Indexerを使ったハンズオンの流れを、初心者向けにステップバイステップで説明します。Azure Video Indexerを使用すると、ビデオやオーディオファイルから簡単にインサイトを抽出できます。このハンズオンでは、Azure Video Indexerリソースを作成し、ビデオファイルをアップロードし、ビデオからビジネスインサイトを抽出する手順を学びます。

※ハンズオンを始める前の準備

Azure Video Indexerでのハンズオンに使用するビデオとして、以下の動画ファイルを使用しました。

Azure Video Indexerリソースを作成する

  1. Azureポータルにサインインします。

  2. 左側のメニューから「Create a resource」を選択し、「Azure Video Indexer」を検索し、選択します。

  3. リソースグループやリソースネームなどの必要な情報を入力し、「Review + create」をクリックしてリソースを作成します。

必要事項を入力して、リソースを作成する

ビデオファイルのアップロード

  1. Azureポータルの「リソース」ページから、作成したAzure Video Indexerリソースを選択します。

  2. 「Video Indexer portal」より、「Explore the portal」をクリックします。

  3. 「Upload」ボタンをクリックし、ビデオファイルをアップロードします。

  4. ビデオがアップロードされると、自動的に分析が開始されます。

「Upload」ボタンをクリックしてビデオをアップロードする
必要事項を入力して、「Review + upload」をクリックする

ビジネスインサイトの確認

  1. アップロードされたビデオが解析されると、InsightsTimelineにさまざまなインサイトが表示されます。

  2. インサイトには、人、感情、トピック、アクションなどが含まれます。これらはビデオの内容に基づいて自動的に抽出されます。

  3. 各インサイトをクリックすると、その部分に対応するビデオのタイムスタンプが表示され、詳細を確認できます。

インサイトの結果を見ることができる

インサイトのエクスポート

必要に応じて、解析結果をエクスポートできます。以下のZipファイルは、解析結果のJSONファイルをZip形式にしてダウンロードしたものです。どのような結果だったのかを自分の目で確認してみてください。

高度なAI機能の利用 (オプション)

  • Azure OpenAIとの接続:更に強力なインサイトを得たい場合は、Azure Video IndexerをAzure OpenAIリソースに接続して、生成AI機能を利用することも可能です。

このハンズオンでは、Azure Video Indexerを使って、ビデオから簡単にインサイトを抽出し、それを利用する方法を学びました。初めてAzureを使う方でも、これでビデオデータの分析が簡単に行えるようになります。


まとめ

Azureの提供するさまざまなAIサービスを活用することで、複雑な機械学習やデータ処理タスクを、初心者から専門家まで幅広いユーザーが簡単に実行できるようになります。

Custom Visionを使えば、画像分類や物体検出といった高度な画像認識モデルを、直感的な操作で作成可能です。また、Azure Machine Learningは、モデルのトレーニングからデプロイまでを効率的に管理し、自動化された機能によって最適なモデルを容易に構築できます。さらに、Azure AI SearchやAzure AI Video Indexerを利用することで、膨大なデータセットから迅速に有益な情報を抽出し、検索やコンテンツ作成のプロセスを大幅に効率化できます。

これらのサービスは、Azureプラットフォームの強力なセキュリティと統合性を備えており、企業や開発者が自社のニーズに応じたソリューションを迅速に開発・運用するための強力なツールとなります。今後は、実際のプロジェクトでこれらのツールを応用し、さらに深いレベルでAzureの可能性を探ることが求められるでしょう。

いいなと思ったら応援しよう!