Juliaで学ぶ最適化と機械学習(2025)
本HPは東京大学教養学部1年生向けの初年次ゼミナール理科「Juliaで学ぶ最適化と機械学習」の講義ウェブサイトです。
お知らせ
2025.3.28: Week1のガイダンススライドをアップロードし、スケジュールを公開しました。
2025.3.06: HPを公開しました。
概要
工学上の問題を数学を用いてモデル化し、それをコンピュータで解く方法を学びます。皆さんが今後直面する「実世界の問題」は、多くの場合解決することが非常に難しいです。与えられた問題に対し、それをどう数学的に表現(モデル化)するか、そして表現された問題を実際にコンピュータでどう計算するか、その作法の最初の一歩を勉強します。この講義を通して、「数学的な問題というものは、ただの教科書の上の概念なのではなく、実際に計算して解を求めることが出来るんだ」ということを実感してもらえれば幸いです。
本講義では「最適化」および「機械学習」に焦点を当てます。アルゴリズムを実際に調べ、それをプログラミングしてもらいます。プログラミングの際は、数式を自然に記述できるJuliaという新しい言語を勉強します。
本講義では、学生の皆さんにグループを組んでもらい、グループにより調査・実装・発表を行ってもらいます。最初の「グループワーク1」では、大学の講義中に習った線形代数のトピックについて、実際に計算してもらいます。二つ目の「グループワーク2」では、最適化のアルゴリズムを調査し、それを実装してもらいます。最後の「グループワーク3」では、機械学習のアルゴリズムについて調査・実装してもらいます。
プログラミングの経験は問いません。講義には自分のノートPCを持ってきてもらい、そのPCを使ってプログラミングしてもらいます。
講義情報
時間:金曜日4限
講義:14:55 - 16:25
QA:16:25 - 16:40
教室:21KOMCEE West K302
キーワード:プログラミング、Julia、最適化、機械学習、線形代数
担当教員:松井勇佑(情報理工学系研究科 電子情報学専攻 講師)
スケジュール
週数 | 日程 | トピック | 内容 | 連絡事項 |
---|---|---|---|---|
Week 1 | 4/14 | ガイダンス | 月曜なので注意 | |
Week 2 | 4/18 | 共通講義 | ||
Week 3 | 4/25 | Julia言語入門 | 現地講義開始 | |
Week 4 | 5/2 | Julia言語入門 | ||
Week 5 | 5/9 | グループワーク1 | 線形代数の講義の内容をJuliaで検証する | |
Week 6 | 5/16 | グループワーク1 | 線形代数の講義の内容をJuliaで検証する | |
Week 7 | 5/30 | グループワーク1 | 発表会 | |
Week 8 | 6/6 | グループワーク2 | 最適化のアルゴリズムを調査・実装する | |
6/13 | 休講 | |||
Week 9 | 6/20 | グループワーク2 | 最適化のアルゴリズムを調査・実装する | |
Week 10 | 6/27 | グループワーク2 | 発表会 | |
Week 11 | 7/4 | グループワーク3 | 機械学習のアルゴリズムを調査・実装する | |
Week 12 | 7/11 | グループワーク3 | 機械学習のアルゴリズムを調査・実装する | |
Week 13 | 7/25 | グループワーク3 | 発表会 | 補講日の講義です |
実行環境について
Google Colaboratory上でプログラミングを実行します(2025/3より、Google Colaboratory上でJuliaが使えるようになりました。)
Colaboratoryとは、ブラウザ上でプログラミングを実行できる仕組みです。東京大学アカウントを持っているものは誰でも使用できます。
Colaboratoryの使い方については東京大学数理・情報教育センターによる「Pythonプログラミング入門」の「Colaboratory (Colab) の使い方」を参考にしてください。このサイトはPython言語のためのものですが、Colaboratoryの使い方の部分は共通です。
参考書
著者名: 後藤俊介
出版社:技術評論社(2023)
Juliaの基本的な文法が全て網羅されています。辞書としても使えます。
著者名: ステファン・ボイド、リーヴェン・ヴァンデンベルグ
出版社:講談社(2021)
最小二乗法を基本とした初等的な最適化問題について、平易な言葉で説明されています。Juliaによるソースコードが配布されています。
Fundamentals of Numerical Computation
著者名:Tobin A. Driscoll and Richard J. Braun
SIAM Booksotre (2022)
数値計算に関する教科書です。紙の本も出版されていますし、上記のリンクからはJulia/MATLAB/Pythonのコードが公開されています。これを翻訳しつつ実行してみるのもオススメです。
参考リンク
Juliaを扱っている他の講義の情報を以下に示します。Juliaを用いたより発展的な内容に取り組みたければ、以下の講義を参考にしてください。