Microsoft AzureAI Fundamentals②

Microsoft AzureAI Fundamentals(AI-901)対策講座

機械学習の基礎

機械学習とは

コンピュータが大量のデータを学習し
   ↓
ルールやパターンを発見。
   ↓
予測や分類をする

  • 人工知能
    • 機械学習
      • ディープランニング

トレーニングとは
データを学習させること。トレーニングすることで、データ間の関係性を見つける。規則性を発見する。大量の計算を繰り返した結果が「モデル」と言われる。

おすすめの本はこちら!

MCP教科書 Microsoft Azure AI Fundamentals(試験番号:AI-900) (EXAMPRESS) | 沖 要知, 西野 和昭, 横山 依子 |本 | 通販 | Amazon
Amazonで沖 要知, 西野 和昭, 横山 依子のMCP教科書 Microsoft Azure AI Fundamentals(試験番号:AI-900) (EXAMPRESS)。アマゾンならポイント還元本が多数。沖 要知, 西野 和昭, …

ディープランニング

人間の神経細胞を模倣するようなカテゴリのひとつ。

ニューラルネットワークとは
その人間の神経細胞をコンピュータで模倣したもののこと。

例)熱いものを触った時、ニューロンという電気信号で「熱い」と感じる人間の神経細胞を、コンピュータで模倣したもの

パーセプトロンとは・・・人間の神経細胞にあたる回路のこと。AIの最も基本的な判断の仕組みです。

例えば、人が採用面接で「学歴」「経験」「資格」などを見て総合的に合否を判断するように、パーセプトロンも複数の情報に重要度(重み)を付けて計算し、「YES」か「NO」を判断します。
最初は重みが適当なので間違えることもありますが、間違えるたびに重みを少しずつ調整し、何度も繰り返すことで正しい判断ができるようになります。これがAIの学習です。

そして、このパーセプトロンを何百・何千と組み合わせたものがニューラルネットワークで、さらに何層にも深く重ねたものがディープラーニングです

「特徴量」と「ラベル」と「ラベル付け」

「特徴量」

AIが判断するための「材料」となる情報です。例えば、メールなら「送信者」「本文の単語」「添付ファイルの有無」、画像なら「色」「形」「明るさ」などが特徴量。入力として使用されるデータ。

「ラベル」

正解のことです。例えば、犬の画像なら「犬」、猫の画像なら「猫」がラベルになります

「ラベル付け」

データに正解を付ける作業です。例えば、1万枚の画像それぞれに「犬」「猫」と人が付けていくことをラベル付けといいます。

予測を行いたい対象は3種類
  1. 回帰モデル
  2. 分類モデル
  3. クラスタリングモデル
1.回帰モデル

飲料の売り上げ予測や、株価がいくらになるか、フライトが何分遅れるかなど、数値を予測するモデルのこと郵便番号は分類モデル商品の評価も分類モデル。正解データつきのデータでモデルを作成する(教師あり学習)

2.分類モデル

カテゴリを予測するモデルのこと。株価の上下の判断や、年齢や血糖値などから病気になりやすいかなりにくいかの判断、種類の予測など。正解データつきのデータでモデルを作成する(教師あり学習)

3.クラスタリングモデル

似ているデータの識別、グループ分けをする。データに正解データは必要ない(教師なし学習)

※教師あり、教師なしの他に「強化学習」がある。
AIが試行錯誤を繰り返し、「良い行動には報酬」「悪い行動にはペナルティ」を受けながら、最適な行動を学ぶ方法。例えば、将棋や囲碁のAI、自動運転、ロボットの制御などで活用。

機械学習による予測や分類を行うために、何が必要か?

1.準備と前処理
2.モデルの作成(トレーニング)
3.完成したモデルで、実際に予測を行い、正解データと比較し、モデルの誤差を測定する
4.モデルのデプロイと予測(本番環境に統合)

「モデルのデプロイとは」
学習が終わったAIモデルを、実際に使える状態にすること

特徴量エンジニアリングとは

オリジナルのデータを、トレーニングに適した形に変更し、前処理を行う工程のこと

欠損値の埋め合わせ

データの一部が空欄になっている状態のことです。例えば、年齢や年収が入力されていないデータがあります。AIは欠損値をそのまま扱えないことが多いため、平均値や中央値、最も多い値などで埋めたり、欠損値があるデータを削除したりして学習できるようにします

スケールの調整

スケールの調整とは、数値の大きさをそろえることです。例えば、「年齢」は20~60程度ですが、「年収」は300万~1,000万円と桁が大きく異なります。このままだと年収ばかりがAIに強く影響してしまう場合があります。そのため、数値を0~1の範囲に変換したり、平均0・標準偏差1になるように変換したりして、各特徴量を公平に扱えるようにします

トレーニング(データの学習)することにより、モデルができる。トレーニングにはGPUを搭載したコンピューターが用いられたりもする。一部のデータは、モデル評価用に残しておく。

GPU・・・並列計算を得意とする。
画像や動作を高速に処理できる

様々なモデルの評価方法

作成されたモデルをテストして、モデルの性能を測る。
トレーニング時に残しておいたデータの特徴量をモデルにインプット。その予測結果を、正解データと比較。

モデルのメトリックとは・・・「AIのテストの成績表」のようなもの。数字で「どれくらいうまく動いているか」を評価するための指標

回帰モデル分類モデルで使うメトリック(評価指標)が異なる。

回帰モデルのメトリック
■MAE(Mean Absolute Error)(平均絶対誤差) 小さいほど良い。
■RMSE(Root Mean Squared Error)(二乗平均平方根誤差) 小さいほど良い
■R2スコア(決定係数) 1に近いほど良い

MAE(平均絶対誤差)・・・実際の値と予測値のズレの平均

実際予測誤差
1009010
20021010
30029010

MAE = (10+10+10) / 3 = 10 平均して10だけズレている

RMSE(二乗平均平方根誤差)・・・大きなミスをより重く評価

実際予測誤差
1001011
2002022
30035050

50の影響を強く受ける。大きなミスを嫌う場合やAIモデル比較などに使われる

R² スコア(決定係数)・・・どれだけ予測できているかを表す指標。1に近いほど予測の精度は高い。

1.0 → 完璧
0.9 → とても良い
0 → 平均値を予測したのと同じ
マイナス → 平均値より悪い

分類モデルのメトリック
■混同行列/正解・不正解だけでなく、どのように間違えたか
■「実際はどうだったか」「AIがどう予測したか」を見る
実際AI:病気ありAI:病気なし
ありTP(True Positive)
本当に病気で、AIも病気と判定
FN(False Negative)
本当は病気なのに、AIは病気なしと判定(見逃し)
なしFP(False Positive)
本当は健康なのに、AIは病気ありと判定(誤検知)
TN(True Negative)
本当に健康で、AIも健康と判定
覚え方
  • T(True) = 正しい
  • F(False) = 間違い
  • P(Positive) = 陽性
  • N(Negative) = 陰性

つまり、

  • TP = 正しく陽性
  • FP = 間違って陽性
  • TN = 正しく陰性
  • FN = 間違って陰性

上記の混同行列」の値を使って、モデルの評価を行う。

Accuracy(正確度)・・・全体でどれだけ当たったか

例えば100件中95件正解なら、Accuracy =95%

Precision(適合率)・・・AIが陽性と判断した時、本当に陽性だった場合
  • AIが陽性と判断:100人
  • 本当に陽性:90人

Precision = 90%

誤検知(FP)を減らしたい場面で重要

Recall(再現率)・・・本当に陽性だった人をどれだけ見つけられたか
  • AIが陽性と判断:90人
  • 本当に陽性:100人

Recall = 90%

見逃し(FN)を減らしたい場面で重要

F-スコア(F値)・・・PrecisionとRecallのバランスを表す

一言でいうと、

Precision(適合率)Recall(再現率)の両方が高いかを評価する指標」

です。

例えば、「病気の検査AI」で考えてみましょう。

ケース1:Precisionは高いがRecallが低い

100人のうち、本当は20人が病気です。

AIは慎重に判定して、病気と判定したのは5人だけ

  • 5人とも本当に病気だった
  • 残り15人の病気を見逃した

すると、

  • Precision = 100%(病気と判定した5人は全員正解)
  • Recall = 25%(20人中5人しか見つけられなかった)

Precisionだけ見ると完璧ですが、15人も見逃しているので良いAIとは言えません。


ケース2:Recallは高いがPrecisionが低い

今度はAIが、

「怪しい人は全員病気!」

と判定したとします。

100人中80人を病気と判定しました。

そのうち

  • 本当に病気:20人
  • 健康なのに病気と判定:60人

すると、

  • Recall = 100%(病気の人は全員見つけた)
  • Precision = 25%(80人中20人しか本当に病気ではない)

今度は見逃しはありませんが、誤検知が多すぎます。


F1スコアはこの両方を評価する

F1スコアは、

  • Precisionだけ高くてもダメ
  • Recallだけ高くてもダメ

という考え方です。

両方が高いモデルほどF1スコアも高くなります。

例えば

PrecisionRecallF1スコアのイメージ
100%25%低い
25%100%低い
80%80%高い
95%95%とても高い

つまり、

F1スコアは「バランス点」です。


AI-900ではこう覚えればOK
  • Accuracy:全体でどれだけ当たった?
  • Precision:陽性と言ったものは本当に陽性?
  • Recall:本当の陽性をどれだけ見つけた?
  • F1 ScorePrecisionとRecallのバランスは良い?

試験では、

「PrecisionとRecallのバランスを評価する指標はどれですか?」

という問題がよく出ます。

答えは「F1 Score(F-スコア)」と覚えておけば大丈夫です。

モデルのデプロイ

用途わかりやすく言うと役割
モデルのデプロイお店を開店する学習済みモデルを外部から使えるように公開する
REST API注文を受ける窓口アプリがモデルとやりとりする仕組み
REST APIエンドポイントお店の電話番号APIのアクセス先(URL)
認証キー合言葉・会員証正しい利用者か確認するためのキー
アプリケーションサーバーお客さんAPIを呼び出して予測結果を受け取るプログラム

実際の流れ

  1. AIモデルを学習する
  2. モデルをデプロイして公開する
  3. 公開すると「REST APIエンドポイント」「認証キー」が発行される
  4. アプリケーションサーバーが、「エンドポイント」「認証キー」を使ってREST APIにリクエストを送る
  5. REST APIがAIモデルで予測し、結果を返す

Azure Machine Learningとは

Microsoft Azureが提供する、機械学習のためのサービス名。AI開発環境。

用語一言で言うといつ使う?その他
コンピューティングインスタンス自分専用のクラウド上(仮想マシンの)一台のPCコードを書く・実験する・開発するパソコンを作る時に性能(SKU)を選ぶ。
・Dシリーズ・・・標準的なパソコン
・Eシリーズ・・・大量のデータを扱う処理
・GPU搭載モデル・・・画像認識など
コンピューティングクラスター学習専用のPC集団AIモデルを高速に学習させるモデルのトレーニングに用いられる。処理数に応じてマシンの台数を増減できる。
最大ノード数を「4」、最小ノード数を「2」にしたら、学習が始まると4台、終わっても2台となる
Kubernetesクラスター公開専用のサーバー集団学習済みモデルを本番運用する
アタッチされたコンピューティングすでに持っているPC/サーバーを接続するAzure以外の計算環境を利用したい時「リソースID」と呼ばれる個別のIDを指定することで、Azureリソースにアクセスすることができる
データアセットの登録データに名前をつけて管理する学習データを何度も使いやすくするAzure Machine Learning Sudioで直接ファイルをアップロードできる。インポートすることも可能。

Azure Machine Learningでモデルを作成する3つの方法

  • 自動ML・・・AIが最適なモデルを自動で作ってくれる機能
  • デザイナー・・・部品をつなぐだけでAIを作るノーコード・ローコード機能
  • Notebooks・・・Pythonコードを書いてAIを開発する機能
(自動MLの流れ)・・・Azureがモデル選択を自動で行う
①自動MLジョブを作成
AIに「このデータで最適なモデルを作って」と依頼すること
②タスクを選ぶ
AIに何をさせたいかを選ぶ。
・分類(犬・猫)
・回帰(売り上げ予測)
・時系列予測(来月の売り上げ予測)
③データを選ぶ
AIに学習させるデータを選ぶ
例)・顧客データ、売り上げデータ
④ターゲット列を選ぶ
AIが予測したい列。
年齢 年収 購入したか
20 300万  はい
30 500万  いいえ

※この場合「購入したか」がターゲット列
⑤プライマリメトリックを選ぶ
モデルを評価する基準
分類なら「Accuracy / F1Score」。回帰なら「MAE / RMSE」
⑥AIが最適なモデルを探す
ここからが「Azureが自動で行う部分」。どのアルゴリズムを使うか、パラメータ設定や複数モデルの比較、一番性能が良いモデルの選択などはAzureが行う
⑦最適なモデルを説明
自動MLが「このモデルが一番良かったです」と結果を教えてくれる
⑧モデルをデプロイ
外部アプリから利用できるようになる
⑨モデルをテスト
実際にデータを送って、予測結果が返ってくるか、確認する

デザイナー(手動でモデルを作る場合の流れ)・・・パイプラインの各コンポーネントと流れ

パイプラインとは・・・AI開発の処理手順を繋いだもの

コンポーネント名役割
bicycle-rental学習に使うデータ。データをセットする。条件によって貸出台数を予測するAI
Normalize Dataデータの正規化。データを整える数値の大きさを揃える。例えば、年齢が30、年収が5,000,000のように桁が違う場合AIが扱いやすいようにスケールを揃える
Split Dataデータを分割する学習用とテスト用に分ける
Liner Regression回帰モデル。使用するアルゴリズムを選ぶ。数値を予測するモデル。線形回帰。気温が1度上がると、貸出台数が20台増えるのような関係を探す
Train Modelモデルを学習させる。トレーニングする。パターンを覚えさせる。「この条件なら、このくらいの台数になる」というルールを覚えさせる。AIにルールを覚えさせる。
Score Model予測する新しいデータで結果を返す。気温28度、土曜日、湿度45%の時、AIの予測では貸し出し台数450台。覚えたルールを使って予測する
⑦Evalute Model性能を評価する

資格対策

「機械学習モデルは、自動機械学習ユーザーインターフェイスを使用して構築」ってどういう意味?→「Azure Machine Learningの自動MLでモデルを作った」という意味

「責任あるAIに関するMicrosoftの透明性原則を満たす」とは?
AIが「この人はローン審査NG」「この商品を買う可能性は80%」と判断しても、人間からしたら「なぜその判断になったのか?」がわからないと困る。そこで、Microsoftは、「AIの判断理由を人間が理解できるようにすること(透明性)」を重視している。

・検証タイプを自動に設定
モデルの評価方法の設定のこと。トレーニングデータ検証データをどう分けて評価するかを決める。

・プライマリメトリックを精度に設定
どの基準で一番良いモデルを選ぶかの設定。性能の良いモデルを選ぶことが目的。プライマリメトリックとは、自動MLがどのモデルを最も良いモデルとして選ぶかを判断するための評価基準のこと。

・最大同時反復数を0に設定
自動MLで試すモデル数や処理数に関係する設定のこと。最大同時反復数とは、自動MLが同時に試すモデルの数のこと。Azureに何個のモデルを並行して試せるかの設定。

問題文に出やすいキーワード答え
なぜ・どの特徴量が結果に影響したか知りたい・透明性モデルの説明
偏り・差別公平性
個人情報・データ保護・顧客データプライバシー
壊れず動かしたい・異常な入力への対応信頼性・安全性
データを安全に守りたいセキュリティ