トップページ > おもしろ科学実験室(工学のふしぎな世界) > Pythonを用いた強化学習の体験

おもしろ科学実験室(工学のふしぎな世界)

Pythonを用いた強化学習の体験

2025年9月19日
和歌山大学システム工学部
准教授 八谷 大岳

はじめに

 近年、AI(Artificial Intelligence、人工知能)はさまざまな分野で注目を集めています。今回は、そのAIの学習方法のひとつである「強化学習」を一緒に体験してみましょう。この体験を通して、AIがどのように学んでいくのか、その仕組みを楽しく理解できればと思います。

強化学習とは

 強化学習は、ゲームを繰り返し遊ぶうちに「こうすれば勝てる」というコツを見つけるように、「ある状態に対して、どの行動を選択すると報酬がもらえるのかを試行錯誤しながら学び、各状態で適切な行動を選べるようになる」学習方法です。

 図1の表には、車の形をしたロボットが試行錯誤しながら経験した点数が記憶されています。具体的には、行に「状態(例えば、谷の底)」、列に「選べる行動(例えば、右に移動)」が対応付けられていて、状態と行動の組み合わせごとに「報酬がもらえるゴールにたどり着くための点数(例えば、谷の底で左に移動すると10点)」が記録されています。

 この表は、最初はすべて0点から始まり、ロボットは行動をランダムに選びながら試行錯誤します。やがて偶然ゴールにたどり着くと報酬が与えられ、そのとき通った状態と行動の組み合わせが「良いもの」として点数に反映されます。次に同じ状態に来たときには、その点数を手がかりにして高い行動を選ぶようになります。こうした経験を積み重ねることで、ロボットは少しずつゴールに近づける行動を学んでいきます。

図1 車型ロボットがゴールにたどり着くまでの経験を、点数として表に記憶図1 車型ロボットがゴールにたどり着くまでの経験を、点数として表に記憶

強化学習を動かしてみよう

  1. パソコンとGoogleアカウントを準備してください。

  2. ブラウザで以下のURLをクリックします。

    Googleアカウントでログイン後、図2のようにGoogle Colab環境で「QLearning.ipynb」が表示されます。

    図2 Google Colab環境に表示された「QLearning.ipynb」図2 Google Colab環境に表示された「QLearning.ipynb」
  3. 図2の赤枠にある「ドライブにコピー」をクリックします。すると、図3のように新しい環境「QLearning.ipynb のコピー」が表示されます。

    図3 Google Colab環境に表示された「QLearning.ipynbのコピー」図3 Google Colab環境に表示された「QLearning.ipynbのコピー」
  4. 図3の赤丸の再生ボタンをクリックして、学習を開始しましょう。図4のように、学習の様子が動画として順番に表示されます。ページを下にスクロールしながら、動画が生成されていく様子を確認してみましょう。

    図4「QLearning.ipynb のコピー」を実行したときに表示される出力例(学習の様子)図4「QLearning.ipynb のコピー」を実行したときに表示される出力例
    (学習の様子)

Mountain Carタスク

 これは「Mountain Car」と呼ばれるタスクです。ロボットは状態(場所)に応じて、行動として「左向きのアクセル」「そのまま(0)」「右向きのアクセル」の3種類を選ぶことができます。しかし、谷底からいきなり右向きのアクセルを踏んでも、ゴールへ向かうだけの馬力がありません。そのため、まずは「左向き」のアクセルを踏んで左の山を登り、そこから「右向き」のアクセルを踏んで勢いをつけ、右側のゴールを目指す必要があります。

 実行してから数十秒後、谷底にいる車ロボットが右側の山の頂上にあるゴールの旗を目指す様子が動画として表示されます。ロボットは強化学習によって、右に進むか左に進むかを図1のような表に基づいて判断し、より点数の高い方を選んで行動します。その行動の結果として得られる報酬をもとに点数を更新し、さらに良い行動を選べるように学習を重ねていきます。学習は合計で2万回行われ、2000回ごとに動画が表示されるため、全部で10本の動画を見ることができます。

おわりに

 プログラムコードを実際に実行することで、強化学習の仕組みを体験することができました。今回扱ったのはシンプルな例でしたが、実際にはさまざまな場面で活用されています。たとえば、ゲームの将棋やチェスで対戦相手として登場するAI、さらに、ロボットが歩き方を覚えたりする場面でも使われています。

 このように、強化学習は私たちの身近な生活や社会を支える大切な仕組みになっているのです。

  • ※このページに含まれる情報は、掲載時点のものになります。

関連記事

2023-04-14

輝く工学女子!(Tech ☆ Style)

【vol.118】自分のやりたいこと

徳島大学理工学部

2021-03-19

工学ホットニュース

人工神経網~モビリティ社会の情報の流れを作りそして制御するハードとソフトの融合技術~

名古屋工業大学工学部

2023-02-17

輝く工学女子!(Tech ☆ Style)

【vol.115】工学女子の日常

名古屋工業大学工学部

2020-05-22

おもしろ科学実験室(工学のふしぎな世界)

深層学習を使った未来予測

長崎大学工学部

2024-09-13

工学ホットニュース

未知コンピュータウイルスの検出

岩手大学理工学部

2024-07-05

生レポート!卒業生の声

商品開発者として大学での学びを生かす日々 さまざまな知識や経験が自分の土台に

岐阜大学工学部

和歌山大学
システム工学部

  • 機械電子制御メジャー
  • 電気電子工学メジャー
  • 材料工学メジャー
  • 化学メジャー
  • 知能情報学メジャー
  • ネットワーク情報学メジャー
  • 環境科学メジャー
  • 環境デザインメジャー
  • メディアデザインメジャー
  • 社会情報学メジャー

学校記事一覧

おもしろ科学実験室(工学のふしぎな世界)
バックナンバー

このサイトは、国立大学56工学系学部長会議が運営しています。
(>>会員用ページ)
私たちが考える未来/地球を救う科学技術の定義 現在、環境問題や枯渇資源問題など、さまざまな問題に直面しています。
これまでもわたしたちの生活を身近に支えてきた”工学” が、これから直面する問題を解決するために重要な役割を担っていると考えます。