P ython でしっかり学ぶ線形代数

Kaggle に挑む深層学習

J ul i a による数理最適化

行列の基礎から特異値分解まで

プログラミングの極意＂

小粘耕平，秋葉拓哉林 孝紀，石原祥太郎（著）．••Kaggleに挑む深層学習プ＂
ログラミングの極意 ，講談社(2023-01), B5変形判．定価（本体2.600円＋税）

小林和博．（著） ． ＂Juliaによる数理最適化 ， コロナ社(2023-05). A5判．定価（本体3.200円＋税）

神永正博（著），“Pythonでしつかり学ぷ線形代数 行列の基礎から特異値分解＂まで ，講談社(2023-01), 85変形判定価（本体2,600円＋税）

Juliaは科学技術計算向けプログラミング言語であり， 本書の対
Kaggleとはユ ザ数が1,000万人を超える世界最大級の機械学

本書は，Py由onの， 特に科学技術計算と数式処理のバッケ ー ジ

象である数理最適化だけでなく ， 機械学習や数値計算にも使える

習コンテストのプラットホ ー ムである． 企業や研究所が様々なタであるNumPyとSymPyを用いて， 線形代数を学ぶことを目的ことから注目されている． “Pythonのように書けてCのように速スクを用意し， 参加者がタスクに対するモデルの性能を競い合う．

としている． 線形代数の入門書では演習を手計算で行うことが多ぃタいが， 本書は手計算と並行してPytl1onプログラム計算でも確認ある ．

予測値に対する性能値とランキングすることにより， 手計算では困難な計算最の大きい計勾を実行でー

参加者は公開デー

タを基にモデルを構築・訓練し， テストデに対する予測値を提出する．

ーが公開されるので， 提出回数の制限の下でより上位を目指して試＂と表現されるように ， シンプルな記述で高速な計算が可能で本咎はJulia と そ の 数 理 最 適 化パッ ケ ー ジ で あ る JuMP のき， トリピアルでない事例を見せることができている，

チュ ー トリアルと数理最適化の初学者向け教科書を合わせたよう

例えば， 直交行列の固有値の絶対値は1であるという基本的なな本である． 序盤でJuliaについて説明があり，その後数理最適

Kaggleの取組みは学会発表と類似しているが大きな違いがあ定理について． 本書ではPythonプログラムでランダムに作成し化の代表的な問題をJuliaで例を提示しながら説明しており， 構

る． Kaggleは提出までの期間が決まっているため， 限られた期間た直交行列の固有値を複素平面上に可視化することで， 視覚的に成は数理最適化の教科書に近い ．

行錯誤を繰り返す．

般的に利用されて対象とする読者は数理最適化初学者と考えられる ． 本書では対で何度でも評価することができるが，Kaggleは提出回数が決まっ象とする問題について丁寧に説明されており， 数理最適化自体のているので， 参加者は予測値を数個に絞り込む必要がある． 学会

計鉢で可能となっており， その結果， 学習者にとっては， 単に定研究ではなく， これらの技術を活用したい人や数理最適化で使わ

発表では手法の新規性が問われるが， Kaggleは結果が良ければ既理の証明を理解するだけでは得られない納得感が得られると思われる数式の理解の前にイメ ー ジをつかみたい人に適している ．

存の手法の組合せでも問題ない． 論文を執筆する必要もなく，れる．

コ ー ディングさえできればよい ．

タ

そのため， 機械学習を勉強するための題材として非常に適している．
本習ではKaggleの過去のコンテストを題材に画像分類， 画像

確認している， このような他の理工系科目で一いる実験的な確認が本書では数学においてもPythonプログラム

内での開発が必要になる． 学会発表であれば手元のテストデー

1章ではJuliaの環境構築について，2 章ではJuliaに関する基また， 線形代数は学習者にとって学習時にその応用が見えにく

礎知識について述べられている ． 丁寧な説明とJuliaという言語

いためにしばしば動機付けが困難となる科目である， 本書は最後の持つ記述のシンプルさから， プログラミング初心者にも配慮さの章で， 特異値分解， 低ランク近似による画像圧縮を実例とともれている ．

検索， テキスト分類のタスクの紹介がされている ． 近年の深層学に紹介することで， 固有ベクトルやランクの概念の有効性を見せ

3章では数理最適化の概要について述べられている ． 目的関数

習や大規模言語モデルの進化に伴って，Kaggleでもこれらを使っており， 学習者への動機付けにつながるのではないかと思われる．

や制約条件などの数理最適化に関するキ ー ワ ー ドと本書で扱う数一た手法が多く提出されており， 本書でもCNNやBERTなどの深層学習モデルが紹介され，Pythonのコードが掲載されている．

一

方， 本書は線形代数の代表的な教科書「線形代数学」の佐武

理最適化問題について説明されている． 本章は7ペ ー ジでコンパ郎氏を参考にしているとのことで， 数学的な解説， 特にベクトクトに説明されており ， 数理最適化初学者のペ ー ジをめくる手がKaggleの使い方も具体的に説明されている． 単なる深層学習の教ルの 一 次独立性， 行列のランクや行列式について， 証明とともに

科書ではなく，Kaggleで高得点を取るための様々な技が要所要所

しつかりと記述されている ．

止まらないための配慮を感じる．
4章では， 数理最適化問題の代表である線形最適化問題をJullaに散りばめられており， 検証デ ー タの作り方 ， モデルの汎化性能

あえてコメントするとすれば， 上記の実験的な内容や応用は本の使用例も併せて説明している． ソ ー スコ ー ドはもちろん， 画面向上のためのデ ー タ拡張やアンサンプルなどが紹介されている．

習の後半に多く現れるが， 前半からこれらの内容を提示していれ

上に表示される入出力も載せており， チュ ー トリアルのように 一

Kaggleでは開発期間が決まっているため， モデルの学習時間の調

ば， 動機付けが更に進むのではないかと思われる． 例えば本書はつ 一 つの出力を確詔しながら ， 問題を理解できるような作りに整が重要なポイントとなる． 本書では学習時間をコントロ ー ルす

行列式について前半で詳細に説明しているが， この段階では御利なっている ．

るための最適化アルゴリズムや学習率などの設計方法が紹介され益が読者にとっては理解しづらい恐れがある． 後半に出てくる，

5章以降では， 他の代表的な数理最適化問題であるグラフ最適ている ．

図形は線形変換によって面秘が行列式倍になるという定理をこの化問題， 整数最適化問題， 二次最適化問題， 二次錘最適化問題，

本書を読んでいるとKaggle に 挑 戦 してみたくなってくる．

段階で（証明抜きに） 実験的に確認することは可能と思われ， ま

半正定値最適化問題を順番に説明し， それぞれJuliaでの実行例

Kaggleへの挑戦は純粋な機械学習の研究だけでなく， デ ー タの分たそうすることにより行列式が0 の場合のランク落ちの概念も理を示しており， 読者は実際に問題を解き， 問題についての理解を析やモデルの調整など泥臭い開発も重要である． 本書を手にとっ解しやすくなる可能性がある．

深められるようになっている．

て是非Kaggleの世界へ足を踏み入れてほしい．
（紹介者

小林優佳

正員

（株）東芝研究開発センタ ー）

いずれにせよ， 理工学系に必須な線形代数をPytl1onプログラ

以上のように， 本書は数理最適化の教科書であり， その理解のム計算を通じて実験的に学ぶ新しい方法を示した書籍であり， 入補助にJuliaでの実行例を活用している． 前述のように数理最適門書として推薦できる．

化の教科習ではあるが，Juliaのチュー トリアルという面もあり，（紹介者

Juliaの恩恵を素早く理解したい読者にも適していると考える．

石橋圭介

正員：フェロ ー

国際基督教大学教養学部アー ツサイエンス学科）（紹介者

八幡晃 一 郎正員（株）日立製作所研究開発グル ー プ）

82©2024砲子情報通信学会

電子情報通信学会誌Vol. 107, No. 1, 2024

図書紹介

©2024誼子1,i'i報通信学会

83