今回は、OMSCSのCS7637 KBAI Week3を終えた感想を書いていきます。
実は今期、授業料の支払期限を勘違いしていたせいで、正確にはこの授業を受講できてません笑。幸いKBAIは、過去のコース内容(2023夏より前の内容)が公開されているため、ある程度予習をするために、公開されている範囲でエア受講しています。つまり、この記事の内容と、今学期(2024秋)のカリキュラムが100%一致しているわけではないため、ご了承ください。
そもそもどんなコース?
ざっくりいうと、Knowledge-Based AIと呼ばれる類のAIについて学び、とある知能テスト1を解くAIエージェントを作ってみよう、というコースです。
コースの詳細はOMSCSの下記ページで読むことができます!
コース内容はどこで公開されている?
KBAIは、公式ページが作られており、下記から見に行くことができます。2024.9.1時点だと、2023夏までのカリキュラムが公開されているため、気になる方は覗いてみてください。
ちなみに、KBAIのカリキュラムは現在過渡期にあり、少しずつベータ版がリリースされているみたいです。つまり、例えば2025春学期に、下記のページと全く同じカリキュラムで受講できる保証はないため、そこだけ注意です。
OMS CS7637 | Knowledge-Based AI (gatech.edu)
Week3のToDo
Week3でやること
- Lesson05, 06の講義動画を視聴
- Mini Project 1を提出
講義動画の視聴
講義動画のLesson05とLesson06を視聴しました。
Lesson05
テーマは「Means-Ends Analysis(手段目標分析)」でした。
手段目標分析とは、物事において、ある状態から別の状態に遷移するために、どのような行動がいるかに主眼を置いて分析することだと思います。
例えば、テーブルの上にりんごが5個あるとします。この場合、どのようにしたら、リンゴが2個になるでしょうか。
正解は、リンゴを3個取り除けば良いですね。
この、「リンゴを3個取り除けば良い」を導き出すことが、手段目標分析における、リンゴを5個から2個にする解になります。
ちなみに、リンゴを3個取り除くための手段は、リンゴを3個食べる、リンゴを3個テーブルの下に置く、リンゴを3個テーブルの上に追加して6個食べる、でも、なんでもOKです。
リンゴが5個ある状態と、リンゴが2個ある状態の間には無数の状態がありますが、その状態のどれを選ぼうが、結果的にリンゴが2個になれば、それが解になります。
Lesson06
テーマは「Production Systems(生産システム)」でした。
動画のたとえに野球が使われていたため(笑)、ちゃんと理解できたとは言い難いですが、自分なりに説明してみます。
生産システムでは、ある状態からゴールの状態に持っていくために、どんな行動をすればよいかをあらかじめ規定しておきます。
各規定はif-thenで構成され、たくさんの規定文が束になっているイメージです。
あまりいい例が思いつかないのですが、例えば以下のような生産システムがあったとします。
1 もし寝ている状態だったら、目を覚まして顔を洗う
2 もし顔を洗ったら、鏡を見る
3 もし起きている状態だったら、手を洗う
4 もし手を洗ったら、うがいをする
この場合、寝ている状態の人が鏡を見るためには、1→2を辿れば良いですね。
ざっくり説明すると、生産システムとはこんな感じでした。
Mini Project 1を提出
※実際には提出してません!!!!
今回のMini Projectは、俗にいう川渡問題でした。
川渡問題にも色々ありますが、今回の川渡問題は以下のような感じです。
・左岸に羊が何匹か、狼が何匹かいる(数は問題によって異なる)
・左岸の羊と狼を、ボートで右岸に送らないといけない
・往復それぞれ、ボートにいっぺんに乗せられる数は1匹か2匹で、0匹・3匹以上乗せるのはダメ
・どちらかの岸で羊の数を狼の数が上回ったらダメ
↑を満たすアルゴリズムを書きました。
また、KBAIあるあるですが、今回もJournalを書きました。
質問が全部で4題あり、それぞれに回答する形で、4ページ以内に納めて書く必要がありました。
感想
プログラムを書くのが久々すぎて、だいぶ苦労しました。
アルゴリズムを考えるのって、いつもと違う頭の使い方をする気がします。