Machine Learning (ML)
機械学習(ML)は、システムが手作業で記述されたルールではなく、データからパターンを学習するAIの分野です。仕組み、主な種類、用途を解説します。
機械学習 (ML) は人工知能 (AI)の一分野であり、コンピューターシステムがプログラマーの書いたルールに従うのではなく、データからパターンを学習します。MLで構築したスパムフィルターには、どの単語がスパムを示すかをあらかじめ教えません。スパムまたは非スパムとラベル付けされた数千件のメールを調べてパターンを自ら学習し、新しいメッセージに適用します。Arthur Samuelは、自分自身と対戦することで上達するチェッカープログラムを構築していた1959年にこの用語を作りました。その後、Tom Mitchellは広く引用される定義を示しました。すなわち、ある指標で測定したタスクの性能が経験によって向上するとき、そのプログラムは学習しているといえます。
機械学習の仕組み#
MLモデルは、調整可能なパラメーターを持つ関数です。線形回帰の少数の係数から、ニューラルネットワークに含まれる数百万個の重みまでさまざまです。トレーニングでは、通常損失関数を最小化して、トレーニングデータに対するモデルの予測精度ができるだけ高くなるパラメーター値を探索します。真の評価基準は汎化性能です。モデルは、トレーニング中に一度も見ていない検証データとテストデータでも評価されます。トレーニングデータでは高いスコアを得ても、新しいデータで低いスコアになるモデルは過学習しており、根本的なパターンを学ぶのではなく、サンプルを記憶しています。
このscikit-learnの例では、ランダムフォレストをトレーニングして手書き数字を読み取り、トレーニングから除外した数字で評価します。
from sklearn.datasets import load_digits
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
# 1,797 labeled 8x8 images of handwritten digits bundled with scikit-learn
X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# Fit learns decision rules from the labeled examples; no rules are hand-written
model = RandomForestClassifier(random_state=0)
model.fit(X_train, y_train)
# Score on digits the model never saw during training
print(f"Test accuracy: {model.score(X_test, y_test):.1%}")モデルは、残りの1,347件のラベル付きサンプルから学習したパターンだけを使い、450個のテスト数字で97.6%の精度を達成します。
機械学習の種類#
- 教師あり学習: 入力と正解出力を組み合わせたラベル付きサンプルから学習します。分類、回帰、物体検出は教師あり学習のタスクです。
- 教師なし学習: ラベルのないデータから構造を見つけます。たとえば、k-meansクラスタリングで顧客セグメントを抽出できます。
- 自己教師あり学習: データから独自のラベルを生成します。たとえば、文の次の単語や画像内の隠されたパッチを予測します。大規模言語モデル(LLM)などの基盤モデルは、この方法で事前学習されます。
- 強化学習: エージェントが環境内で行動し、報酬を最大化するように試行錯誤を通じて振る舞いを調整します。
機械学習とAI、ディープラーニング、データサイエンスの比較#
機械学習は、知能を持つ機械を構築するという広範な目標であるAIと、MLの一部であり、多層ニューラルネットワークを使って生データから独自の特徴を学習するディープラーニング (DL)の中間に位置します。
ランダムフォレストやXGBoostなどの従来型アルゴリズムは、価格や年齢などの各列がすでに意味のある特徴量となっている表形式データで高い性能を維持しています。データサイエンスは関連分野であり、統計、データ可視化、ドメイン分析とともに、数あるツールの1つとしてMLを活用し、データから問いへの答えを導きます。
機械学習のライフサイクル#
本番環境のモデルに完成はありません。チームはデータの収集とラベル付けを行い、モデルをトレーニング、検証、デプロイして、予測を監視します。精度が不十分な場合や現実世界が変化した場合は、データの見直しに戻ります。このサイクルを扱うのが機械学習運用 (MLOps)です。
コンピュータービジョンでは、Ultralytics Platformを使って、このサイクル全体を1か所で実行できます。チームはデータセットをアップロードしてアノテーションを付け、クラウドGPU上でUltralytics YOLO26モデルをトレーニングし、デプロイして、本番環境での性能を監視できます。
実際のアプリケーション#
- コンピュータービジョン: モデルは製造ラインの欠陥を検出し、医療画像を読み取り、自動運転車を誘導します。
- 自然言語処理 (NLP): 翻訳、検索、チャットボット、スパムフィルタリングはすべて、テキストでトレーニングされたモデルを利用します。
- レコメンデーションシステム: ストリーミングサービスやeコマースのプラットフォームは、ユーザーの過去の行動からコンテンツを順位付けします。
- 時系列予測: モデルは過去のデータから、製品需要、エネルギー負荷、設備故障を予測します。
- 異常検知: 銀行は過去の不正利用データでトレーニングしたモデルを使い、すべてのカード取引を数ミリ秒でスコアリングして、異常に見える取引にフラグを付けます。










