人工知能
担当教官
伊庭 斉志(いば ひとし) 教授
講義のやり方
本講義は、対面・オンラインの併用である(原則対面)。241教室で対面の講義を行う。同時にオンラインで講義内容を中継する。 オンラインのzoom情報はUTASに掲載してある。
- https://u-tokyo-ac-jp.zoom.us/j/88909518485?pwd=WWRyRVBDdFRMOHArL3AwWDYzZmd4Zz09
- ミーティングID: 889 0951 8485
- パスコード: 066757
講義内容
「人工知能」では、電気電子情報系3年生を対象に、
- 人工知能の基礎
- 複雑系
- 人工生命
などについて、 勉強してもらう。これらはいずれも、知的システムを設計しよう と思っている学生はもちろん、他の応用分野の勉強をするつもりの学生にとっても 必要不可欠となる基礎事項である。
教科書として 伊庭斉志:"人工知能の方法~ゲームからWWWまで~",コロナ社,2014 を、
また参考書として 伊庭斉志:"人工知能と人工生命の基礎",オーム社, 2013
伊庭斉志:"進化計算と深層学習",オーム社, 2015 を指定する。 講義に関する補足説明や講義レポートの作成に必要な情報は すべてこれの教科書に書かれている。
講義スライド・ビデオは当該講義終了後一週間程度公開する予定である。 これらの閲覧には東大ECCSクラウドメールアカウントが必要である。
評価は講義の出席調査(講義当日に出題する小課題・アンケート回答)とレポート(合計2回の予定)によって行う。 レポート課題は講義の際に出題する。 課題には、問題解決や考察、および こちらから提供するプログラムや システムを使って実験を行い考察してもらうものも ある。
とくにプログラムを作成する場合には、レポートの作成に注意すること。 自分の書いたプログラムや実験への考察を他人に理解してもらうためにドキュメンテーション することは極めて重要なことである。レポートはこのドキュメンテーションの 練習でもある。 単にプログラムリストや実験データを載せるのではなく、 実験中で用いた 計算法の説明や、各変数・関数の意味などを必要十分な詳しさで記述すること。 また、実験を遂行する上で工夫した点があればそれを述べること。
もっとも大切なのは自分で考えて、自分で人工知能・人工生命の シミュレーション環境 を作り上げることである。いかに自分で創意工夫したかがひしひしと伝わってくるような レポートであることが望ましい。
講義概要
第1回(10月8日)人工知能とは?:出席確認のためのアンケート回答
- 知能とは何か?
- 停止問題
- ゲーデル・エッシャー・バッハ
- チューリングテスト: ChatGPTはパスするか?
- 中国人の部屋
- 不完全定理と量子脳
- 講義のスライド(抜粋)
第2回(10月15日) AIに論理は必要か? AIと学習:出席確認のためのアンケート回答
- フレーム問題
- クオリア・自意識とはなにか?
- 学習とは何か?
- 強化学習
- Q学習のデモMazeExplorer
- 講義のスライド no.1(再掲)
- 講義のスライド no.2
- 講義のスライド(強化学習)
第3回(10月17日) 学習から進化へ:出席確認のためのアンケート回答
- 準備された学習
- 遺伝的アルゴリズム
- 遺伝的プログラミング
- 対話型進化型手法
- 講義のスライド(進化計算)
第4回(11月5日) ニューラルネットワーク:出席確認のためのアンケート回答
- ニューロ進化:NeuroEvolution
- ニューラルネットワークの基礎
- パーセプトロン
- 階層型ネットワーク
- 加算器用のニューラルネット
- 時系列予測のニューラルネット
- gcc **.c -lm としてコンパイルする。
- ホップフィールド型ネットワーク
- 文字認識用のニューラルネット
- N queen問題を解くニューラルネット
- gcc **.c -lm としてコンパイルする。
- 焼きなまし法とボルツマンマシン
- 巡回セールスマン問題を解くボ ルツマンマシン
- gcc **.c -lm としてコンパイルする。
- ディープ・ラーニング
- 講義のスライド(パーセプトロン)
- 講義のスライド (ニューラル・ネットワーク)
第5回(11月12日) ゲームとパズルの探索:出席確認のためのアンケート回答
- 木構造とグラフ表現
- パズルの探索
- 深さ優先探索
- 8パズル(深さ優先探索)
- 広さ優先探索
- 8パズル(広さ優先探索)
- A*サーチ
- 8パズル(A*探索)
- ゲームの木の探索
- alpha-betaカットのプログラム(Tit-tac-toe)
- gcc common.c ab.c -lm としてコンパイルする。
- min-maxのプログラム(Tit-tac-toe)
- gcc common.c minmax.c -lm としてコンパイルする。
- チェスのプログラム
- cygwin用の実行コードがある。Windowsを大きくするとよい。
- gcc chessnew.c -lm -lcurses としてコンパイルする。
- オセロのプログラム
- 講義のスライド (パズルAIとゲームAI)
第6回(11月19日) ゲームとパズルの探索(その2):出席確認のためのアンケート回答
- ゲームの木の探索(復習)
- モンテカルロ木(UCT)探索
- 3次元Tit-for-tat(4x4x4)のプログラム(その1)
- プログラムはJavascript で実装されており、 適当なWebブラウザでai.html を開くと実行できる。
- 使用方法と実験例はここにある。
- UTC法との対戦を行う。
- コマンドライン引数によってオプションが指定できる。
- ./main [先手:0, 後手:その他(default:0)] [UCTの総playout回数(default:10000)]
- 例) ./main 0 10000
- 3次元Tit-for-tat(4x4x4)のプログラム(その2)
- UTC法 v.s. min-max(α・βカット)の対戦を行う。
- 実行には引数にplayout数を入れる。
- 評価関数は 単純に隅や真ん中が強くなるようにするだけである。
- 講義のスライド (パズルAIとゲームAI)
- レポート課題の説明:レポート課題はここにある。