はじめに
強化学習(Reinforcement Learning)は教師あり学習・教師なし学習とは異なる機械学習のパラダイムです。E資格では強化学習の基礎が出題範囲に含まれており、製造業のスケジューリング最適化や在庫管理への応用も研究されています。Q学習をPythonで実装して強化学習の基本を理解します。
強化学習の基本概念
強化学習では「エージェント」が「環境」に対して「行動」を取り、「報酬」を受け取りながら最適な行動方針(ポリシー)を学習します。エージェントは累積報酬を最大化するように行動を学習します。ゲームAI(AlphaGo・OpenAI Five)・ロボット制御・在庫管理・広告入札の最適化などに応用されています。教師あり学習との違いは「正解ラベル」がなく、環境との相互作用から学ぶ点です。
Q学習の実装
import numpy as np
import gym
# 環境の作成(FrozenLake:凍った湖を渡るシンプルなゲーム)
env = gym.make('FrozenLake-v1', is_slippery=False)
# Qテーブルの初期化
n_states = env.observation_space.n # 状態数: 16
n_actions = env.action_space.n # 行動数: 4(上下左右)
Q = np.zeros((n_states, n_actions))
# ハイパーパラメータ
alpha = 0.1 # 学習率
gamma = 0.99 # 割引率
epsilon = 0.1 # 探索率
n_episodes = 1000
for episode in range(n_episodes):
state, _ = env.reset()
done = False
while not done:
# ε-greedy方策で行動選択
if np.random.random() < epsilon:
action = env.action_space.sample() # 探索
else:
action = np.argmax(Q[state]) # 活用
# 行動を実行
next_state, reward, done, truncated, _ = env.step(action)
# Qテーブルの更新(Bellman方程式)
Q[state, action] += alpha * (
reward + gamma * np.max(Q[next_state]) - Q[state, action]
)
state = next_state
print("学習済みQテーブル:")
print(Q.reshape(4, 4, 4))
製造業での強化学習の応用
製造業では生産スケジューリング(どの機械でどの順序で製品を生産するか)の最適化に強化学習が研究されています。従来の整数計画法より大規模問題への対応が期待されています。在庫管理(いつどれだけ発注するか)にも強化学習が応用されており、需要変動への動的な対応が可能です。実務での導入はまだ研究フェーズが多いですが、今後の有望な応用領域です。
DQN(Deep Q-Network)への発展
Qテーブルは状態数が多いと計算できません(次元の呪い)。DQNはQテーブルの代わりにニューラルネットワークでQ値を近似します。PyTorchとOpenAI Gymを使ってAtariゲームをプレイするAIを作ることができます。強化学習の実装力はE資格の範囲であり、転職面接でも話題にできる差別化ポイントになります。
よくある質問
「強化学習は実務でどのくらい使われていますか」という質問をよく受けます。推薦システム・広告入札・ロボット制御では実用化が進んでいますが、製造業では研究フェーズが多いです。実務でのMLエンジニアの仕事としては教師あり学習が中心で、強化学習は専門チームが扱うことが多いです。「E資格で強化学習はどの程度出題されますか」という質問については、強化学習の基礎概念(エージェント・報酬・Q学習・DQN)は出題範囲に含まれています。概念理解レベルで十分です。
まとめ
Q学習は強化学習の入門として最適なアルゴリズムです。OpenAI GymのFrozenLake環境で実装することで、エージェント・環境・報酬・Qテーブル更新という強化学習の基本サイクルを体験できます。E資格の学習にも、製造業での将来的な応用にも、まずQ学習の実装から強化学習を理解しましょう。
強化学習はゲームAIから始まって製造業の最適化まで、幅広い応用が期待される分野です。E資格の学習としてだけでなく、将来の製造業DXへの活用という視点でも強化学習を理解しておくことに価値があります。まずOpenAI GymのFrozenLakeでQ学習を動かしてみることが最初の実践ステップです。コードを動かすことで強化学習の概念が一気に理解できます。
強化学習はAIの中でも特にロマンを感じる分野です。ゲームAIから始めて、製造業の実問題へ応用する日を夢見ながら学習を続けましょう。
Q学習の実装はコードを書いて動かすことで一気に理解が深まります。まずFrozenLakeで動かして、次にカスタム環境を作ってみましょう。
強化学習の実装経験は希少なスキルです。まず動かすことから始めて着実に力をつけましょう。
📌 プログラミング・AI学習のおすすめスクール
- 資格と仕事に強い個人レッスン → 【Winスクール】プログラミング・AI講座



コメント