Lotus

A Lotus Grows in the Mud

Mathematical and Computational Method for Complex Systems @ Sussex【講義レビュー】

f:id:raye4483:20181126003255j:plain

英国University of Sussex、School of Engineering and Informaticsにて開講されている講義です。

この記事には本講義のまとめ・感想を記しています。

概要

MSc in Intelligent and Adaptive Systemsに所属する大学院生が必ず履修しなければならない数学のコースだ[シラバス]。

弊学科は学際的なので、必要な数学知識を持たずに入学してくる学生も多い。

そのため、この講義は後のモジュール*1の理解に必要な数学の知識を学ぶモジュールとなっている。

特にMachine Learningの講義の内容理解に必要な知識を中心に学んでいく。

カバーされる主な内容は以下の通り。

  • ベクトルと行列
  • 微分・偏微分・積分
  • 最急降下法(gradient descent)
  • 微分方程式
  • 力学系
  • 確率・統計・ベイズ統計
  • 情報理論
  • MATLAB/Pythonによる数値計算

厳密な数学を学ぶ講義ではなく、概念や方程式を直感的に理解しその利用法を学ぶ講義になっている。

上記の分野を深く掘り下げるのではなく、各分野で用いられる基礎的な数学・計算テクニックをピックアップし、定義と応用例を関連付けながら学習していく。

内容は初歩的で、理工系の学部1-2年生であれば十分に理解できるくらいのレベルだ。

「流石に初歩的すぎるなぁ...」とか思いながら講義を受けているが、何年も前に学んだ知識についてはやっぱり忘れているので、この講義は良い復習になっている。

この講義で出題される演習問題は良く洗練されており、定義や利用法について理解していなければ解けない構造になっている。

また、視覚的・直感的に理解できるようwell-organizedされている。

講師はDr. Luc Berthouze。

彼は脳のnetworkやcriticalityの研究者であるので、数学や力学系の知識の利用に長けているのだと思う。

モジュールの形式

LectureとSeminarという2種類の講義形式がある。

Lecture 

毎週月曜の14-16時に開講されており、全12回。

日本の講義に似たスタイルだ。

質問は随時受け付けており、頻繁に学生から質問が投げられている。

低レベルな質問をしてもバカにされるということはなく、安全に学べる環境だ。

Seminar

毎週水曜の14-16時に開講されており、こちらも全部で12回。

パソコンルームで問題演習を行う。

問題演習は筆記での演算の場合もあるが、基本的にMATLAB or Pythonを用いたプログラミング演習である。

各学生は自分のペースで問題を解き進め、疑問点があれば講師やTAに質問できる。

ちなみに、MATLABとPython両方のソースコードが与えられるが、講師はMATLABの方が得意なようだ。

(ほとんどの履修生はPythonを使っているが笑)

課題

前半と後半にそれぞれ出題される問題セットの出来によって最終評価が決まる。

得点配分は50点ずつだ。

ふたつともプログラミング + レポートという形式になっている。

課題1: Problem Set

  1. 微分と偏微分、その利用法に関する筆記問題 (50%)
  2. 最適化、特に最急上昇法(gradient ascent)および山登り法(hill climbing)の実装と比較 (50%)

コードと共に6ページリミットのレポートを提出する。

提出は学習支援システムCanvasを通してオンラインで行える。

前半の筆記問題は誰でも解けるレベルの問題なので簡単にこなすことができた。

後半のプログラミング課題はレポート形式であり問題も具体的に設定されていないので、実験と構成を自分でデザインして実装する必要があった。

探索空間(search space)やlearning rateを変更して変化を観察するなど、システマチックに実験をデザインし、その結果をレポートにまとめた。

なんとか最終の提出締め切りに間に合ったのでよかったが、課題に取り掛かる時期が遅かったため(というか、必要なworkloadを完全に見誤った)冷や汗が出る経験をしてしまった...。

課題2: Problem Set

まだ内容が公開されていないので後日更新します。

リーディングリスト

リーディングリストとして指定されている書籍を講師のコメント付きで以下に載せておきます。

自習がしたい方はぜひ参考にしてください。

Complex and adaptive dynamical systems: a primer, C. Gros

読むにはそれなりの数学知識が求められるものの、種々の領域への良い入門書である。

Nonlinear dynamics and chaos: with applications to physics, biology, chemistry and engineering, S. H. Strogatz

非線形力学とカオスに興味のある学生にとって優れた教科書。演習と回答もついている。古典的名著。

Engineering mathematics, K. A. Stroud

 数学の基礎を身につけたい人、復習したい人にとってのベストワン。ただ、重いので気をつけて。

Network science, A. Barabási

残念だが、時間の関係上この講義ではネットワーク科学を取り上げることができない。この本は、この分野の高明な研究者が書いた優れた教科書である。

Introduction to the modeling ans analysis of complex systems, H. Sayama

textbooks.opensuny.org

 素晴らしい教材だ。

次のトピックを網羅している:モデリング、力学系、離散時間モデル、連続時間ボデル、分岐、カオス、セル・オートマトン、静的ネットワーク、動的ネットワーク、エージェント・ベース・モデル

それぞれのトピックについて、計算モデリングと数学的分析という2つの側面から解説されている。

日本人研究者の方が書かれた書籍です。

ありがたいことに、無料で公開されています。

Mathematics for Machine Learning, Coursera

www.coursera.org

これは講義で紹介された教材ではなく、私自身がおすすめしたい教材です。

オンライン学習プラットフォームCourseraにて英University College Londonが提供しているコースになります。

機械学習の理解に最低限必要な線形代数、多変数の微積、主成分分析(PCA)について学べます。

課題に取り組み修了証明書を得るには月$50ほど支払う必要がありますが、financial aidsに申請すればタダになることもあります。

私もまだ全部こなしていませんが、おすすめ。

各回の感想

Lecture 1

Seminar 1

Lecture 2

Seminar 2

Lecture 3

Seminar 3

Lecture 4

Seminar 4

Lecture 5

Seminar 5

Lecture 6

Seminar 6

Lecture 7

Seminar 7

Lecture 8

Seminar 8

Lecture 9

まだ

Seminar 9

Lecture 10

まだ

Seminar 10

Lecture 11

Seminar 11

まだ

Lecture 12

まだ

Seminar 12

まだ

*1:イギリスの大学・大学院では、講義・コースのことを「モジュール(module)」と呼ぶ。