MIT公開講座:Introduction to Computational Thinking with Julia 受講記
僕はこのMITの公開講座「Introudction to computational thinking」をぜひおすすめしたい。すべての講義動画と課題がウェブサイト上で公開されている。当初は3B1B(Grant Sanderson)も講義を担当するということで見始めたのだが、内容は僕が想像していた以上に面白かった。
カリキュラムは一見すると内容が雑多で、データサイエンス、気候変動モデリング、Ray Tracing、偏微分方程式、統計、image processingなどをカバーしているが、それらはすべて「computation(計算)」というテーマを中心に展開されている。このアプローチこそが、コンピュータを使って問題を解決する能力を鍛えてくれると感じた。
例えば、第1回と第2回の講義ではimage convolution(画像畳み込み)を扱い、問題をさらに分解して行列の積へと落とし込み、課題としてシンプルなガウスぼかしを実装する。convolutionという概念はさらに応用が利き、エッジ検出やフーリエ変換にまで同じ概念を適用できる。このように、一見難しそうに見える問題を数学的に表現できる形へと段階的に分解し、さらには他の領域への応用方法まで教えてくれる点は、非常に素晴らしい学習スタイルだし、多くの人が不足しているスキルでもあると思う。
続いて取り上げられたseam carvingは、画像の比率(ratio)を変更しても「違和感」を感じさせないアルゴリズムだ。通常、画像の縦横比を変更すると、ある次元が引き伸ばされたり圧縮されたりして、見た目がとても不自然になる。このアルゴリズムは画像の中で重要でない部分を特定し、その部分を取り除くことで、画像全体として自然な見た目を保つことができる。
次にデータの処理方法について解説があり、ここではCOVID-19を例として取り上げていたのが非常にタイムリーで、実際のケーススタディを通じて学べたのが良かった。また、PCA(主成分分析)による次元削減や特異値分解(SVD)が持つ意味についても言及され、統計の基本概念も一通りおさらいされていた。
後半の講義はあまり興味が湧かなかったことと僕自身の怠惰もあってざっと目を通しただけだが、参考までにアウトラインをリストアップしておく:
- Random walks
- 離散数学
- 偏微分方程式
- 気候変動モデリング
個人的にはどれも非常に実用的な概念だと思うし、時間があればぜひコース全体を最後まで完走したいと思っている。
この講義ではJuliaが主要なプログラミング言語として使われているが、僕自身書いていて非常に快適だった。今後ちょっとした行列演算やデータ分析をやりたいときは、すべてJuliaを使うことになりそうだ。経験のあるエンジニアならすぐに習得できるだろうし、Plutoと組み合わせれば、Webブラウザ上で直接コードを書いて(Jupyter notebookのような感覚で)、リアルタイムに結果を確認できる。
追記: Grant Sandersonの語り口と動画の作り込みは本当に見事で、講師陣の中でもずば抜けて最高のクオリティだと感じた。
関連記事
- カーネギー 人を動かす How to win friends and influence people この本は名著中の名著であり、ずっと先延ばしにしていたが、ようやく読み終えた。本の中で伝えられている理念は、自分を利他主義者に変えていくようなものだと感じる。
- 『天才! 成功する人々の法則』(Outliers)Malcolm Gladwell 『天才! 成功する人々の法則(Outliers)』を読んだ感想
- 『So Good They Can't Ignore You(大事なことほど小声でささやかれる)』 by Cal Newport 「情熱」は過剰に美化されている。本書は冒頭、スティーブ・ジョブズのスピーチを切り口にして、ジョブズが実際に行ったことと言っていることは違うと直言する。情熱とは無理にひねり出すものではなく、何かを行っている過程で自然と生まれてくるものだと僕は思う。「僕には〇〇に対する情熱がある」と言っても、世間が求めているのは大抵あなたの情熱ではなく、あなたのアウトプットなのだ。
- 『独学大全』– 読書感想 いずれ中国語版も出版されそうな気がするが、今のところ日本語版しか出ていないうちに読書感想をシェアしておこうと思う。本書は700ページを超える分厚い本で、日本では「#鈍器本」とすら呼ばれ、ベストセラーランキングにもランクインしている。内容は非常に充実していて、ある分野の知識を体系的・網羅的に学びたいものの、どこから手をつければよいかわからない初学者にうってつけだ。