ここからは「人工知能を支える技術」、とくに 機械学習 にフォーカスして学んでいきます。
人工知能がただのプログラムではなく、「データから学ぶ仕組み」を持っているということが、この章の一番のポイントです。
1. 機械学習とは?
機械学習(Machine Learning)とは、人間がルールをすべて書かなくても、データから自動的にパターンやルールを学ぶ仕組みです。
たとえば、たくさんの手書き文字の画像と「これはA」「これはB」といった正解をセットで与えると、AIはそれを元に「次に見た画像が何の文字か」を予測できるようになります。
このように、機械学習は人工知能の中でも特に中核を担う技術です。
2. 機械学習の分類
機械学習には、大きく分けて以下の4つの分類があります。
ちなみに、ChatGPTの元になっているGPT(Generative Pre-trained Transformer)は、主に教師なし学習(unsupervised learning)と強化学習(reinforcement learning)の組み合わせによって訓練されています。(ファインチューニングには教師あり学習も使っています)
具体的には、まずインターネット上の大量のテキストデータを使って「次に来る単語を予測する」という形で事前学習(pre-training)が行われます(これは教師なし学習に該当します)。
その後、人間のフィードバックを取り入れてモデルの出力を改善する「強化学習(特に人間のフィードバックによる強化学習:RLHF)」を行うことで、より自然で有用な応答ができるように調整されています。
教師あり学習(Supervised Learning)
正解ラベル付きのデータを使って学習します。目的は「予測」です。
- 分類(Classification):与えられたデータがどのクラス(カテゴリ)に属するかを予測
例:メールが「スパム」か「スパムでないか」を分類 - 回帰(Regression):連続的な値を予測する
例:来週の気温を予測する
代表的な手法:
単回帰、重回帰、ロジスティック回帰、決定木、ランダムフォレスト、SVM、KNN、ナイーブベイズ手法
教師なし学習(Unsupervised Learning)
正解ラベルがないデータを使って、「似たもの同士をまとめる」「データの構造を理解する」ことが目的です。
- クラスタリング(Clustering):似ているデータをグループに分ける
例:購買履歴から似た顧客を分類する - 次元削減(Dimensionality Reduction):データの特徴を圧縮して、重要なパターンを見つけやすくする
例:PCAやt-SNEによる可視化
代表的な手法:
k-means(非階層クラスタリング), 階層クラスタリング(デンドログラムで可視化), PCA(主成分分析), t-SNE
半教師あり学習(Semi-Supervised Learning)
一部だけラベル付きのデータを活用する学習方法。アノテーション(データにラベルをつける作業)がコスト高な場合に使われます。
強化学習(Reinforcement Learning)
強化学習は、「エージェント(AI)」が環境とインタラクションしながら、試行錯誤によって報酬を最大化する行動方針(ポリシー)を学ぶ手法です。ゲームのAI(囲碁・チェス・マリオなど)、自動運転車の経路選択、ロボットの歩行制御などに使われています。
3. 代表的な教師あり学習アルゴリズム
ここからは、G検定でもよく問われる代表的な教師あり学習のアルゴリズムを見ていきましょう。
単回帰・重回帰
- 単回帰(Simple Linear Regression)は、変数が1つの回帰モデル
- 重回帰(Multiple Linear Regression)は、複数の変数から予測するモデル
数式としては以下のように表されます。
(単回帰)
(重回帰)
ロジスティック回帰(Logistic Regression)
「これはAかBか?」という2値分類に使われるモデルです。
シグモイド関数というものを使って、出力値を0〜1の間に収めます。
決定木(Decision Tree)
「はい/いいえ」の質問を繰り返すようにして、分類や回帰を行うモデルです。
人間の意思決定に似ていて、可視化しやすいというメリットがあります。
アンサンブル学習(Ensemble Learning)
複数のモデルを組み合わせて、より精度の高い予測を行う方法です。
- バギング(Bagging):同じアルゴリズムを複数回学習(例:ランダムフォレスト)
- ブースティング(Boosting):間違えやすいデータを重点的に学習(例:XGBoost)
- ブートストラップ法(Bootstrap):データをランダムに抽出して多数の学習用データを作成する方法
サポートベクターマシン(SVM)

データを分けるための最適な境界線(マージン)を見つける手法です。
データが直線で分けられない場合は、カーネル法(Kernel Method)を使って高次元に写像し、分けやすくします。
- カーネルトリック:高次元空間を直接計算せずに内積だけで処理する手法
- ソフトマージン:完全には分離できない場合に、ある程度の誤差を許容する方法
SVM(Support Vector Machine)は、データをうまく分類するための「境界線(決定境界)」を見つけるアルゴリズムです。これを例えるなら、牧場で牛と羊を分けるための柵作りにたとえるとわかりやすいです。
たとえば、草原に牛と羊がばらばらに歩いていたとします。そこで「できるだけ牛と羊の間に余裕のある柵(境界線)」を立てたいわけです。SVMは、その中でも「境界線に一番近い牛と羊」の位置を見て、柵をまっすぐ・最も広く立てようとするんです。
このとき活躍するのが「サポートベクター」と呼ばれる、境界線の近くにいる代表的なデータ点です。これらが、柵の位置を決めるカギになります。
さらにSVMは、「カーネルトリック」という技を使って、データが入り組んでいても、うまく次元を変えて分類することもできます。まるで空から全体を見渡して、複雑な地形にもぴったりの柵を引くような感覚です。
4. 代表的な強化学習アルゴリズム
Q学習(Q-Learning)
行動ごとの価値(Q値:Quality)をテーブルで管理し、「最も報酬が期待できる行動」を選ぶ方策を学習します。
常に最大の報酬が得られる行動を基準にQ値を更新するのが特徴です。
モデルフリーで、単純な環境に強いが状態数が多いと非効率です。
SARSA(State-Action-Reward-State-Action)
Q学習に似ていますが、実際に選んだ行動に基づいてQ値を更新します。
現実的な行動選択(探索も含む)を考慮するため、安全志向な学習になります。
「実際の軌跡に基づく更新」がQ学習との違いです。
Deep Q-Network(DQN)
Q学習のQテーブルをニューラルネットワークで近似して、大規模な状態空間にも対応できるようにした手法です。
経験再生(Experience Replay)やターゲットネットワークなどの工夫で安定化しています。
ゲームプレイAI(例:Atari)などで注目されました。
5. 過学習とその対策
過学習(Overfitting)とは?
AIが学習データに“合わせすぎて”しまい、未知のデータに対して正しく予測できなくなる現象です。
特に以下のような状況で起こりやすくなります。
- データが少ない
- 特徴量が多すぎる
- モデルが複雑すぎる
過学習とは、機械学習モデルが訓練データに対してあまりにも詳しくなりすぎて、新しいデータではうまく対応できなくなる状態です。例えるなら、テスト前に答えを丸暗記しただけのカンニング勉強のようなものです。
たとえば模試の答えだけを覚えてしまえば、その模試では高得点が取れます。でも、違う問題が出る本番の試験ではまったく通用しませんよね? モデルも同じで、「訓練データだけに強いけど、新しい入力には弱い」状態になると、実際の活用には不向きです。
このような過学習を防ぐには、正則化やドロップアウト、データの水増し(データ拡張)などの手法が使われます。要は、「丸暗記ではなく、本質的な理解を身につけよう」というアプローチなんです。
実力をつける学習と同じように、モデルにも“ほどよい学び方”が求められるわけですね。
バイアスとバリアンスの違い
機械学習モデルの性能を分析・改善する上で、「バイアス」と「バリアンス」は非常に重要な指標です。これらは、モデルの誤差の原因を理解する手がかりになります。
バイアス(Bias)とは?
定義:
- モデルの予測値と実際の値のずれのこと。
- 簡単に言えば、「どれくらい的外れな予測をしているか」。
特徴:
- 単純すぎるモデル(例:線形回帰)は高バイアスになりやすい。
- 学習データに対しても予測がうまくいかない。
- アンダーフィッティング(Underfitting)の原因となる。
例:
猫の画像を学習しても、「常に犬だと予測する」ようなモデルはバイアスが高い。
バリアンス(Variance)とは?
定義:
- モデルが学習データのノイズや細部に敏感に反応してしまう程度。
- 別のデータセットで大きく予測が変わる=「不安定さ」の指標。
特徴:
- 複雑すぎるモデル(例:深い決定木、過剰なニューラルネット)は高バリアンスになりやすい。
- 学習データでは高精度なのに、未知データには弱い。
- 過学習(Overfitting)の原因となる。
例:
訓練データの背景の色や光の当たり方まで覚えてしまい、本質的な「猫」かどうかを判断できないモデル。
まとめ表
指標 | 意味 | 原因 | 問題 |
---|---|---|---|
バイアス | 予測の平均的なずれ | モデルが単純すぎる | アンダーフィッティング |
バリアンス | データに対する予測のばらつき | モデルが複雑すぎる | オーバーフィッティング |
正則化(Regularization)の手法
過学習を防ぐための手段の一つが正則化です。
- L1正則化(Lasso):重みの絶対値にペナルティをかけ、いくつかの重みをゼロにする(特徴選択に有効)
- L2正則化(Ridge):重みの2乗にペナルティをかけ、小さい値に抑える(安定性に優れる)
- Elastic Net:L1とL2を組み合わせた手法。柔軟性が高い
正則化とは、モデルが複雑になりすぎないように、余分な動きをおさえるブレーキのようなものです。
例えるなら、お弁当箱の仕切りです。食材をギュウギュウに詰め込むと味が混ざってしまいますが、仕切りがあると中身がスッキリ整いますよね。
6. モデル評価のための基本
まず、機械学習モデルを育てて評価するには、データを2つに分ける必要があります。
- 訓練データ(Training Data):モデルに学習させるためのデータ
- テストデータ(Test Data):学習後のモデルがどれだけ汎用性を持っているかを確認するためのデータ
たとえば、1000件のデータがあるなら、8割を訓練、2割をテストに分けるというのがよくあるやり方です。
ホールドアウト法
訓練データとテストデータを一度だけに分けて評価するシンプルな方法。
ただし、データの分け方により結果が大きく変わるリスクがあります。
交差検証法(Cross Validation)
データを複数のグループ(fold)に分け、それぞれを順番にテストデータとして使う方法です。
もっとも一般的なのは「k分割交差検証(k-fold CV)」です。学習に使用できるデータが少ない場合に有効です。
7. 性能をどう測る?
モデルがうまく予測できているかどうかを確認するには、数値で評価する必要があります。
ここで登場するのが混同行列(Confusion Matrix)です。
図:混同行列の構造
予測:陽性(Positive) | 予測:陰性(Negative) | |
---|---|---|
実際:陽性 | TP | FN |
実際:陰性 | FP | TN |
- TP(True Positive):正しく陽性と予測した件数
- FN(False Negative):実は陽性なのに陰性と予測した件数
- FP(False Positive):実は陰性なのに陽性と予測した件数
- TN(True Negative):正しく陰性と予測した件数
これをもとに、以下のような指標が計算されます。
正確度(Accuracy)
全体のうち、どれだけ正しく予測できたか
適合率(Precision)
陽性と予測した中で、実際に陽性だった割合
再現率(Recall)
実際の陽性の中で、正しく陽性と予測できた割合
F値(F1-score)
適合率と再現率のバランスを示す調和平均
ROC曲線とAUC(モデルの予測性能を可視化する指標)
混同行列による評価(Accuracy, Precision, Recallなど)は、特定の閾値で予測を分類した結果に依存します。
しかし、実際のモデルは「確率(スコア)」を出力しており、閾値を変更すれば結果も変わります。
そのとき、さまざまな閾値で性能を評価できるのがROC曲線であり、その面積で表すのがAUCです。
ROC曲線とは?
ROC曲線は、真陽性率(True Positive Rate: TPR)と偽陽性率(False Positive Rate: FPR)の関係をプロットしたグラフです。
- TPR(再現率)
- FPR(False Positive Rate)
横軸がFPR、縦軸がTPRのグラフを描くと、分類器の性能が可視化されます。
曲線が左上に近いほど、分類性能が高いことを意味します。
AUC(Area Under the Curve)
AUCはROC曲線の下の面積を表す値で、分類性能を一つの指標として数値化します。
- 理想的な分類器:
- ランダムな分類器:
- 性能が悪い分類器:
(ランダム以下)
AUCは、任意の陽性・陰性のペアを取ったとき、陽性の方に高いスコアを与えている確率としても解釈できます。
ROC・AUCのメリット
特徴 | 内容 |
---|---|
閾値に依存しない | 様々な閾値で評価でき、単一の閾値による偏りがない。 |
不均衡データに強い | クラス数に偏りがあっても信頼できる評価が可能。 |
複数モデルの比較が容易 | AUCの数値比較により、複数モデルの優劣が明確になる。 |
8. 回帰問題の評価指標
回帰問題では、予測値と実測値の誤差を評価します。
- MSE(Mean Squared Error):誤差の二乗平均
- RMSE(Root Mean Squared Error):MSEの平方根(単位が元データと同じ)
- MAE(Mean Absolute Error):誤差の絶対値の平均
MSEは大きな誤差をより重く見る指標、MAEは外れ値の影響を受けにくい指標です。
9. ハイパーパラメータのチューニング
ハイパーパラメータとは「モデルの学習前に人が設定する調整可能なパラメータ」です。
モデルの性能は、「ハイパーパラメータ(Hyperparameter)」によって大きく変わります。
たとえば、決定木なら「木の深さ」、ニューラルネットワークなら「学習率や最適化アルゴリズム」(後述)などがそれにあたります。
チューニング方法としては以下の2つが主流です。
- グリッドサーチ(Grid Search):複数の値の組み合わせをすべて試す
- ランダムサーチ(Random Search):ランダムに組み合わせを選んで試す
計算コストとの兼ね合いで使い分けましょう!
10. 特徴量と前処理の重要性
モデルの精度は「どんな特徴量を使うか」で決まるといっても過言ではありません。
特徴量(Feature)とは、モデルに入力されるデータの「説明変数」のことです。
たとえば「年齢」「収入」「居住地」などがそれにあたります。
● 欠損値の補完
データに抜けがあると学習がうまくいきません。そこで使うのが回帰補完(Regression Imputation)です。
これは、他の変数を使って欠損値を予測する方法です。
カテゴリ変数の変換
文字データは数値に変換する必要があります。
- ラベルエンコーディング:カテゴリに番号を振る(例:A→0, B→1, C→2)
- One-hotエンコーディング:各カテゴリごとに0か1のフラグを作る(例:A→[1,0,0])
ラベルエンコーディングは、カテゴリ変数に整数ラベル(例:A→0, B→1, C→2)を割り当てる方法であり、順序のあるカテゴリ変数に適しています。たとえば、サイズ(S→0, M→1, L→2)のように、明確な大小関係がある場合には、ラベルエンコーディングを使っても問題ありません。
しかし、都道府県名や色など順序のないカテゴリ(名義尺度)に対してラベルエンコーディングを使うと、モデルが「0より1が大きい」といった意味のない数値的関係を誤って学習してしまうリスクがあります。このような場合は、One-hotエンコーディングを使い、各カテゴリを独立したフラグ(例:赤→[1,0,0], 青→[0,1,0])として扱うことが推奨されます。
モデルの性能や解釈性に影響を与えるため、カテゴリ変数の性質に応じて適切なエンコーディング方法を選ぶことが重要です。
11. 不均衡データへの対応
たとえば、99%が正常で1%だけ異常なデータがあるとします。
このとき、「すべて正常と予測するだけ」で99%の精度になりますが、それでは意味がありません。
これが不均衡データ(Imbalanced Data)の問題です。
対応策としては以下のような方法があります。
- オーバーサンプリング:少数クラスのデータを水増しする
- アンダーサンプリング:多数クラスのデータを減らす
- SMOTE(Synthetic Minority Over-sampling Technique):少数クラスのデータを人工的に生成して増やす手法
まとめ:信頼できるAIを目指そう
ここまでで、機械学習モデルの評価やチューニング、前処理といった「実務的な技術」を学びました。
G検定では「どの場面で、どの評価指標や手法を使うべきか」が問われます。暗記だけでなく、“なぜそうするのか”という理由を理解しておくことが大切です。
次章では、「数学・統計の基礎知識」を学びます。