機械学習とは
機械学習(Machine Learning、ML)とは、例となるデータから入力と出力の関係をモデルに学習させ、新しいデータの予測や分類に使う方法です。[1] 人がすべての規則を書けない問題でも、十分なデータと評価基準があれば、繰り返し改善できる可能性があります。
このページで学べること
- 従来のプログラミングと機械学習で、規則を作る主体がどう違うかを説明できる
- 教師あり学習、教師なし学習、強化学習を、学習に使うフィードバックで区別できる
- データ、評価基準、運用条件を見て、機械学習を使うべきか判断できる
機械学習ではデータから予測規則を学ぶ
機械学習の本質は、従来のプログラミングとのアプローチの違いにあります。
| 従来のプログラミング | 機械学習 | |
|---|---|---|
| 入力 | ルール(人間が記述)+ データ | データ+ 正解ラベル |
| 出力 | 答え | ルール(モデル) |
| 得意なこと | 明確なロジックのある処理 | 複雑なパターン認識 |
| 例 | 消費税の計算 | 画像が猫かどうかの判定 |
猫の判定で2つの方法を比べる
子どもに「猫」を教える場面を想像してください。
- 従来のプログラミング: 「耳が尖っていて、ひげがあり、4本足で…」とすべてのルールを言語化して教える
- 機械学習: 猫の写真を何千枚も見せて「これは猫、これは犬」と繰り返し教える。子どもはやがて自分で「猫らしさ」を判断できるようになる
この例で、写真が入力、「猫か犬か」が期待する出力、写真と正解の組が学習データに当たります。ただし、子どもの学び方と数値計算で最適化されるモデルは同じではありません。例えが示すのは、個別の規則ではなく多数の例から判定方法を作る点です。
3つの学習方法はフィードバックで区別する
1. 教師あり学習(Supervised Learning)
教師あり学習とは、正解ラベル付きのデータを使って学習する手法です。「正解(教師)」がある状態でモデルを訓練します。[1]
- 具体例: スパムフィルター(メールを「スパム」または「正常」に分類)、住宅価格予測(面積・築年数などから価格を予測)
- 代表アルゴリズム: 線形回帰(Linear Regression)、ロジスティック回帰(Logistic Regression)、決定木(Decision Tree)、ランダムフォレスト(Random Forest)、SVM(サポートベクターマシン)
graph LR
D["ラベル付き\nデータ"] --> M["学習\n(訓練)"]
M --> P["予測モデル"]
P --> R["新しいデータへの予測"]2. 教師なし学習(Unsupervised Learning)
教師なし学習とは、正解ラベルなしのデータからパターンや構造を自動的に発見する手法です。「答え」が与えられていないため、データの中から自律的にグループや特徴を見つけ出します。[2]
- 具体例: 顧客セグメンテーション(類似した購買傾向の顧客をグループ分け)、異常検知(通常パターンから逸脱した挙動の発見)
- 代表アルゴリズム: KMeans クラスタリング、PCA(主成分分析)、DBSCAN
3. 強化学習(Reinforcement Learning)
強化学習とは、エージェント(AI)が環境と相互作用しながら、報酬を最大化する行動を試行錯誤で学習する手法です。明示的な正解ラベルはなく、行動の結果として得られる報酬がシグナルになります。[1]
- 具体例: ゲームAI(囲碁・チェス・ビデオゲームで人間を超える強さを習得)、ロボット制御(歩行や物体把持の動作学習)
- 比喩: 子どもがゲームを覚える過程に似ています。最初はランダムに操作し、スコアが上がれば「良い行動」として記憶し、ゲームオーバーになれば「避けるべき行動」として学習します。
機械学習を選ぶ前にデータと評価方法を確認する
機械学習は、規則を書きにくいだけで自動的に有効になるわけではありません。次の条件を順に確認します。
- 学習に使えるデータがある: 件数だけでなく、目的に合う範囲と品質が必要です。
- 評価基準を決められる: 正解率、誤検知率、予測誤差など、成功を測る指標を先に決めます。
- 規則を書くより学習させる方が適している: 明確な計算式で解けるなら、通常のプログラムの方が説明・保守しやすい場合があります。
- 運用中の変化を監視できる: 入力データの傾向が変われば、再評価や再学習が必要です。
アルゴリズムは問題と運用条件から選ぶ
機械学習の実装には scikit-learn などのライブラリを利用できます。scikit-learn のユーザーガイドも、教師あり学習、教師なし学習、モデル選択、計算性能などを分けて整理しています。[2]
アルゴリズムを選ぶときは、単純な「有名さ」ではなく、次の観点で比較します。
- 問題の種類: 分類、回帰、クラスタリング、異常検知のどれか
- データの形: 表形式、テキスト、画像、時系列など
- 説明しやすさ: 予測理由を説明する必要があるか
- 計算コスト: 学習時間、推論時間、メモリ使用量が実務条件に合うか
- 保守性: データが増えたときに再学習や監視を続けやすいか
混同しやすい境界
Q: 機械学習とAIは同じものですか?
A: 異なります。AI(人工知能)は人間の知能をコンピュータで再現する技術全般を指します。機械学習はその実現手法の一つです。AIにはルールベースのシステムなど機械学習を使わないアプローチも含まれます。[1]
Q: 機械学習を使うのにプログラミングの経験は必要ですか?
A: 実装する場合はPythonの基礎知識が必要です。ただし、概念を理解するだけであればプログラミング経験は不要です。概念を理解してから実装に進む順序が学習効果を高めます。
教師あり学習と教師なし学習は、優劣ではなく利用できるフィードバックが異なります。予測したい正解を用意できるなら教師あり学習、正解を置かずデータのまとまりを探索するなら教師なし学習が候補です。
まとめ:機械学習はデータと評価基準をそろえて選ぶ
機械学習の中心は、人が規則を列挙する代わりに、データから予測に使う関係をモデルへ学習させることです。学習方法を選ぶときは、正解ラベル、報酬、または構造探索のどれを利用できるかを確認します。実務ではアルゴリズム名より先に、目的に合うデータ、評価基準、運用中の監視方法があるかを判断します。
参考文献
- Google, Machine Learning Crash Course
- scikit-learn, User Guide