はじめての機械学習

AI Labo.で、いよいよ「AIポイ」ことを始めてみようと思います。
ゴールとしては、異常予測システムを、機械学習を使って作ってみたいと思います。
とはいえ、まずは、機械学習のド素人な私が、作り方を学んでみたことを、忘備録的に書いてみようと思います。
単回帰分析/重回帰分析を経て、その先まで進めて行きたいのですが、今のところ、重回帰分析までを、「はじめての機械学習」として取り組んでみます。

シリーズのコンテンツ


機械学習ことはじめ…


私が機械学習に取り組むきっかけとなったのは、「機器の故障予測がしたい!」という相談を受けたからでした。 365日24時間稼働している機器を運用していると、故障の連絡が来ると、即時対応が必要となります。これは、仕事とはいえ、休みなく続く仕事です。 機器の状態は、毎分データセンターに収集されており、故障の連絡と同時に機器の情報を確認することで、問題を把握することができます。 この機器情報を常に監視できれば、故障発生前の予兆を認識し、事前に対応することも可能だと考えられます。しかしながら、監視対象の数が膨大になると、故障の検出はできても、故障の予兆を事前に察知するのは、難しいと思われます。

このような背景から、今注目を集めているAIにデータを学習させて予兆を検出できれば、休日や夜間の緊急対応を軽減し、働き方改革も進められると思い、この取り組みを始めました。

機械学習を学ぶためには、最低限必要な数学的知識、実際の機器からの情報の統計処理のための知識、そしてシステムを動かすためのプログラミング知識が必要です。これらを整理していく必要があります。

具体的なプログラミングについては、Pythonを使用します。Pythonにはスカラー、ベクトル、行列を扱うための多くのパッケージがあり、機械学習の基礎となる数学知識が少ない私でも、手順に沿って進めれば、単回帰分析や重回帰分析、ディープラーニングなどを取り扱いやすいと思います。

このブログでは、学んだことを順番に要点だけ記載していきますので、参考にしていただければ幸いです。

機械学習の3大トピック


  1. 教師あり学習(Supervised Learning):
    • 教師あり学習は、ラベル付きのトレーニングデータを使用してモデルを学習する手法です。
    • トレーニングデータには、入力(特徴量)と対応する出力(ラベル)が含まれます。
    • モデルは、入力と出力の関係を学習し、未知のデータに対して予測を行うことができます。
    • 教師あり学習の例としては、分類(Classification)や回帰(Regression)があります。
  2. 教師なし学習(Unsupervised Learning):
    • 教師なし学習は、ラベルのないデータからパターンや構造を抽出する手法です。
    • トレーニングデータには、入力(特徴量)のみが含まれ、出力ラベルはありません。
    • モデルは、データの特徴やクラスタを発見し、データを自己組織化することができます。
    • 教師なし学習の例としては、クラスタリング(Clustering)や次元削減(Dimensionality Reduction)があります。
  3. 強化学習(Reinforcement Learning):
    • 強化学習は、環境との相互作用を通じて行動を学習する手法です。
    • エージェントは、環境からのフィードバック(報酬または罰則)を受け取りながら、行動を選択していきます。
    • エージェントは、報酬を最大化するように学習し、最適な行動方策を獲得します。
    • 強化学習の例としては、ゲームAIやロボット制御などがあります。

これらの3つのトピックは、機械学習の主要なアプローチをカバーしており、さまざまな問題に対して応用されます。

注意点として、機械学習は内挿(学習データ範囲での予測)でのみ有効だということです。決して、外挿(学習範囲外)で予測を行ってはいけないということです。

「はじめての機械学習」では、単回帰分析や重回帰分析による予測を通じて、Pythonを使えるようになることを目標にします。
つまり、「教師あり学習」をターゲットとして学んでいきます。


次は、少し数学的な知識をおさらいしましょう。→「はじめての機械学習」-数学知識編