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 14/9ガイダンス
Week 24/16共通講義
Week 34/23Julia言語入門現地講義開始
Week 44/30Julia言語入門
Week 55/14グループワーク1受験数学の内容をJuliaで検証する
Week 65/21グループワーク1受験数学の内容をJuliaで検証する
Week 75/28グループワーク1発表会
Week 86/4グループワーク2線形代数の講義の内容を調査・実装する
Week 96/11グループワーク2線形代数の講義の内容を調査・実装する
Week 106/18グループワーク2発表会
Week 116/25グループワーク3最適化・機械学習・数値計算を調査・実装する
Week 127/2グループワーク3最適化・機械学習・数値計算を調査・実装する
Week 137/9グループワーク3発表会

実行環境について

  • Google Colaboratory上でプログラミングを実行します。

  • Colaboratoryとは、ブラウザ上でプログラミングを実行できる仕組みです。東京大学アカウントを持っているものは誰でも使用できます。

  • Colaboratoryの使い方については東京大学数理・情報教育センターによる「Pythonプログラミング入門」の「Colaboratory (Colab) の使い方」を参考にしてください。このサイトはPython言語のためのものですが、Colaboratoryの使い方の部分は共通です。

参考書

実践Julia入門

  • 著者名: 後藤俊介

  • 出版社:技術評論社(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を用いたより発展的な内容に取り組みたければ、以下の講義を参考にしてください。

CC BY-SA 4.0 Yusuke Matsui. Last modified: March 17, 2026. Website built with Franklin.jl and the Julia programming language.