スポンサーリンク

群強化学習を実装してみる(PSO,ABCアルゴリズム) 前編

スポンサーリンク
スポンサーリンク

0. なぜ実装してみるのか

大学の講義の課題で実装課題があったのをちょっと久しぶりにレビューしてみようと思ったからです。昔書いたコードを引っ張りだすのも勉強になるかな、と。 あとは自分のためにちょっと纏めておくメモ代わりですね。前編はマルチエージェントシステムがそもそも何か、という話をして後編では実際の実装をしたいと思います。

1. PSO,ABCとは

1-1.強化学習とは

こちらのページがわかりやすいですが、強化学習は機械学習の一種で、環境を与えた「エージェント」に試行錯誤させる、という手法です。 いやそもそもエージェントって何なんだって話なんですが「環境」から情報を受け取って何かをする主体です。意味がわかりませんね。 上記のサイトでは株式の利益が例に挙げられていますのでその例でいうと株式取引をするとき我々は四季報等でファンダメンタルを確認したり、国際ニュースで世界景気を確認したり、チャートを見たりして株を買ったり売ったりしますよね。このとき「エージェント」は我々株式を扱う人間で、「四季報を確認したり~」という行為が「情報を得る」、「売り買いする」が「行為」に値するわけです。 もう一つ例を挙げると、高校の生物で「マウスを迷路に入れてうまく行ったら早く抜け出したら報酬を、ダメだったら罰を与える」みたいな実験があったと思いますがあれは「環境」が迷路、「エージェント」がマウス、「行為」が迷路を抜け出すに対応しています。 強化学習では行為の結果に賞罰(株だったら損益、マウスなら餌や罰)を与えて、いい行動は促進して悪い行動は抑制するようにプログラムを書きます。

1-2.マルチエージェントシステム

マルチエージェントシステムとは上記の「エージェント」が複数ある環境を用意して、単一のエージェントではできない課題を達成するものです。エージェント同士を競争させたり、協力させたりすることで学習を促します。 マルチエージェントシステムにはいくつか問題点があって、いくつか代表的なものを挙げると不完全知覚問題報酬分配問題同時学習問題が挙げられます。不完全知覚問題とはエージェントから見て全体が知覚できない問題です。↓のリンクがわかりやすいと思います。報酬分配問題は協力して課題を達成した際にどのエージェントにどれだけ報酬を与えるべきかが困難である問題です。同時学習問題は課題を達成した際にそれが単一のエージェントの成果なのか複数でなしえたものなのかの判断が難しく、適切な学習が行えない問題です。 アルゴリズムを考案する際はこのような問題を考慮する必要があります。今回実装するPSOやABCは課題に取り組むのは単一のエージェントなので(報酬を共有する)これらを考慮する必要はありません。

1-3.ABC,PSO

PSOはParticle Swarm Optimization の略で動物の群の動きを摸したアルゴリズムです。一つのエージェントが良い経路・解をみつけると他も追随するように動かします。ABCアルゴリズムは蜂群をモデルにしており、PSOより多様性を重視したものになっています。 次回実装に取り掛かりたいと思います。
エンジニア入門
スポンサーリンク
スポンサーリンク
adminをフォローする
スポンサーリンク
何もない部屋

コメント