Juliaで学ぶ最適化と機械学習(2024)
本HPは東京大学教養学部1年生向けの初年次ゼミナール理科「Juliaで学ぶ最適化と機械学習」の講義ウェブサイトです。
お知らせ
2024.7.12: Week12のページを更新しました。
2024.7.10: 次回Week12は、教室をK212に変更します。
2024.7.05: Week11のページを更新しました。
2024.6.21: Week9のページを更新しました。
2024.6.14: Week8のページを更新しました。
2024.5.17: Week6のページを更新しました。
2024.5.15: Week5のページを更新しました。
2024.5.03: スケジュールを更新しました。5/10は休講となり、7/16の一限に補講を行います。
2024.5.03: Week4のページを更新しました。
2024.4.26: Week3のページを更新しました。
2024.3.27: Week1のガイダンススライドをアップロードしました。
2024.3.20: HPを公開しました。
概要
工学上の問題を数学を用いてモデル化し、それをコンピュータで解く方法を学びます。皆さんが今後直面する「実世界の問題」は、多くの場合解決することが非常に難しいです。与えられた問題に対し、それをどう数学的に表現(モデル化)するか、そして表現された問題を実際にコンピュータでどう計算するか、その作法の最初の一歩を勉強します。この講義を通して、「数学的な問題というものは、ただの教科書の上の概念なのではなく、実際に計算して解を求めることが出来るんだ」ということを実感してもらえれば幸いです。
本講義では「最適化」および「機械学習」に焦点を当てます。アルゴリズムを実際に調べ、それをプログラミングしてもらいます。プログラミングの際は、数式を自然に記述できるJuliaという新しい言語を勉強します。
本講義では、学生の皆さんにグループを組んでもらい、グループにより調査・実装・発表を行ってもらいます。最初の「グループワーク1」では、大学の講義中に習った線形代数のトピックについて、実際に計算してもらいます。二つ目の「グループワーク2」では、最適化のアルゴリズムを調査し、それを実装してもらいます。最後の「グループワーク3」では、機械学習のアルゴリズムについて調査・実装してもらいます。
プログラミングの経験は問いません。講義には自分のノートPCを持ってきてもらい、そのPCを使ってプログラミングしてもらいます。
講義情報
時間:金曜日1限
講義:8:30 - 10:00
QA:10:00 - 10:15
教室:21KOMCEE West K401
キーワード:プログラミング、Julia、最適化、機械学習、線形代数
担当教員:松井勇佑(情報理工学系研究科 電子情報学専攻 講師)
参考書
著者名: 後藤俊介
出版社:技術評論社(2023)
Juliaの基本的な文法が全て網羅されています。辞書としても使えます。
著者名: ステファン・ボイド、リーヴェン・ヴァンデンベルグ
出版社:講談社(2021)
最小二乗法を基本とした初等的な最適化問題について、平易な言葉で説明されています。Juliaによるソースコードが配布されています。
スケジュール
週数 | 日程 | トピック | 内容 | 連絡事項 |
---|---|---|---|---|
Week 1 | 4/5 | ガイダンス | ||
Week 2 | 4/19 | 共通講義 | ||
Week 3 | 4/26 | Julia言語入門 | 現地講義開始 | |
Week 4 | 5/3 | Julia言語入門 | 休日だが講義がある日 | |
5/10 | 休講 | |||
Week 5 | 5/15 | グループワーク1 | 線形代数の講義の内容をJuliaで検証する | 水曜なので注意 |
Week 6 | 5/17 | グループワーク1 | 線形代数の講義の内容をJuliaで検証する | |
Week 7 | 6/7 | グループワーク1 | 発表会 | |
Week 8 | 6/14 | グループワーク2 | 最適化のアルゴリズムを調査・実装する | |
Week 9 | 6/21 | グループワーク2 | 最適化のアルゴリズムを調査・実装する | |
Week 10 | 6/28 | グループワーク2 | 発表会 | |
Week 11 | 7/5 | グループワーク3 | 機械学習のアルゴリズムを調査・実装する | |
Week 12 | 7/12 | グループワーク3 | 機械学習のアルゴリズムを調査・実装する | |
Week 13 | 7/16 | グループワーク3 | 発表会 | 補講日の講義です |
実行環境について
Amazon SageMaker Studio Labという仕組みを使う。
参考リンク
Juliaを扱っている他の講義の情報を以下に示します。Juliaを用いたより発展的な内容に取り組みたければ、以下の講義を参考にしてください。