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