機械学習を理解する:理論からアルゴリズムまで [449ページ無料電子書籍]
(cs.huji.ac.il)- Shai Shalev-Shwartz と Shai Ben-David による著書「Understanding Machine Learning」は、2014年に Cambridge University Press から出版された書籍
- 機械学習の理論的背景とアルゴリズムを扱っている。
- Cambridge University Press の許可を受けて原稿の PDF が公開されており、個人利用の目的でのみダウンロード可能
- 再配布用ではない
1件のコメント
Hacker Newsの意見
機械学習をわかりやすく理解したいなら、Josh Starmerの The StatQuest Illustrated Guide to Machine Learning をおすすめする: https://www.goodreads.com/book/show/75622146-the-statquest-i...
これまでStarmerほど複雑な概念を明確かつ簡潔に説明する教師を見たことがなく、ほとんど児童書のような形式なので読みやすく理解しやすい。
ニューラルネットワークの本も最近出していて、同じく良い。すでに専門家であっても、機械学習の複雑な概念を教え、伝えるための良い方法が得られるので強くおすすめする。
大学で統計を学んでいたとき、補助教材として大いに活用した。
ただし、機械学習を 表面的なレベル以上 に学ぶ方法としてはすすめにくく、少し古く感じるところもある。
まだ読んではいないが、ニューラルネットワークの本がこの点を補っているかもしれない。
Web/開発系ソフトウェアエンジニアのバックグラウンドから、ここで推薦されている本を熱心に掘り下げれば、機械学習/AI系の職種に入れると考えるのは妥当なのかも気になる。
私の仕事は計量経済分析に機械学習を使うことだが、ほとんどの経済学者は機械学習を直感的に理解していない。
機械学習の基礎を理解したいなら、Stanfordの Probability for computer scientists は素晴らしい資料だった: https://www.youtube.com/watch?v=2MuDZIAzBMY&list=PLoROMvodv4...
確率論と機械学習の理論的基盤を扱う方法は、私が見たどの講義よりも良かった。ただし基本的には、機械学習の基礎を扱う確率の講義に近い。
Andrew Ngの講義も伝説的だが、線形代数まわりの数学にある程度慣れていることを要求する。
CS109の講義ノートPDFも入手できる: https://chrispiech.github.io/probabilityForComputerScientist...
機械学習トピックの理論的理解を求めるなら、CaltechのLearning From Dataも良かった: https://work.caltech.edu/telecourse
このCaltech講義の本もある: https://www.amazon.com/Learning-Data-Yaser-S-Abu-Mostafa/dp/...
ニューラルネットワークをゼロからどう作るのか理解したいなら、Neural Networks: Zero to Heroが良い: https://www.youtube.com/watch?v=VMj-3S1tku0&list=PLAqhIrjkxb...
https://bloomberg.github.io/foml/#home この講義が個人的には一番気に入っている。
最新の 生成AI を学ぶ目的なら、代わりに https://udlbook.github.io/udlbook/ をおすすめする。
数年前に一部を読んだが、記憶では非常に理論寄りで、統計的学習理論が多く、Vapnik の 構造的リスク最小化を扱った部分は個人的には間違っていると思う。
理論に強く偏っていて応用は事実上ほとんどなく、2014年の本なので AI 分野では悠久の昔にあたり、今では応用面の内容も完全に古びている可能性が高い。
今日この本を読みたいと思う人が多いとは思えない。
私の知る限り、統計的学習理論のような数学理論は Transformer の発明にほとんど役立たなかったし、ニューラルネットワークが大きな VC 次元を持っていても過学習しない理由を説明するうえでも有用ではなかった。
タイトルの「理論から機械学習へ」は、この 理論優先アプローチの問題をよく示している。
数学には関心があるがソフトウェアエンジニアリングには関心のない人たちが機械学習に入ってきて、統計的学習理論のような抽象的な学習理論を作ったが、実際にできることからはかけ離れていた。
一方でエンジニアたちはそうした理論を無視し、実際のニューラルネットワーク実装に手を汚しながら性能改善を試み、その結果として畳み込みニューラルネットワークや、後の Transformer のようなものが生まれた。
Vapnik は自著の序文で、美しい数学理論を無視して実務だけに集中する風潮を、まるで過激主義のように嘆いていたと記憶している。
しかし今では、それらの理論が実際にうまく機能するアプローチの複雑さを説明するにはあまりに弱かったことが明らかになっており、機械学習は数学や理論計算機科学ではなく 工学の一分野だと示されたと思う。
この本のタイトルには、人々がまず抽象的な学習理論を学び、そこから着想を得てすぐに新しいアルゴリズムを作るだろうという誤った期待が込められている。
統計的学習理論はせいぜい教師あり学習をモデル化できるだけで、強化学習や自己教師あり学習は言うまでもない。
ニューラルネットワークが過学習に強い理由すら説明できず、計算論的/アルゴリズム的学習理論や Solomonoff 帰納、Kolmogorov 複雑性のような幻想的な理論は、現実からさらに遠ざかっている。
特定の側面が驚くべきものであり、データセットのサイズと多様性が適切ならスケーリング則が成り立つことが多い、というのは理解している。
しかし事前学習済みモデルをファインチューニングするのではなく、実データセットで一から学習させた経験からすると、データが十分に多くなければニューラルネットワークは明らかに 過学習し得る。
私の直感では、既存の理論は特定の条件、たとえば特定のデータセット特性のもとで真であることが証明されていたわけではないように思うが、最近はデータセットが巨大であることを暗黙に仮定して、そうした但し書きが省略されているように見える。
非 FAANG 企業のニッチな問題や、公開はされているが商用では使えないデータセットを使わざるを得ない現実では、依然として実際の問題だ。
すべての問題が基盤モデルやフロンティアモデルで解決されるわけではない。
関連論文を教えてもらえるとありがたいし、まだ学んでいる最中だ。
物理学に似ていて、量子力学のようなものを理解するには数学理論が必要だ。そうでなければ意味をなさないことがある。
研究をしないソフトウェアエンジニアにとって、機械学習の概念を深く理解することに実用性があるのか気になっている。
研究方面に進む予定はないので、キャリアのためにどこへ学習を集中すべきか見極めているところだ。
おおむね企業には AI/ML 実装の需要があるように見えるが、デバッグの一部を除けば、モデルをゼロから開発する価値はあるのだろうか?
一般的なビジネスでは、特定のユースケースに合う 既製モデルを少し調整するだけで、ほとんど十分である可能性が高いのかも気になっている。
この本は、私が最も気に入っている機械学習理論、とくに 統計的学習理論の入門書で、他の本よりはるかに取っつきやすい。
2014年の本だが、まだ本当に関連性があるのか?
本が10年前のものだけど、古びているのでは?
バイアス/分散ジレンマについてのアップデートも、Geman 1992 の元論文を見ると大きくはない: https://www.dam.brown.edu/people/documents/bias-variance.pdf
当時は小さなデータセットや無限データセットを扱っており、二重降下はテストセットのパターンが学習セットのパターンと十分に似ている場合にだけうまく機能する。
古い見解の一部には注意が必要だが、基礎概念は同じだ。
ファインチューニングや強化学習でも、学習データの概念クラスが新しい場合の小規模データセット/無限データセット問題には 1992年の論文が今でも当てはまり、これを普遍的に無効だと仮定すると足をすくわれる。
基盤となる概念の多くは20世紀半ばに由来する。
大量データの利用可能性と新しい発見は、以前の研究を無効にしたというより、前提とツールをはるかに大きく変えた。
その論文をざっと見ると、今日私たちが持っている大量データと計算資源は、当時は非現実的だとして単純に除外されていたことが分かる。
自分に合った本を見つけて概念を学び、暗黙知を積み上げるのがよい。
多くの試みが、記号的手法と他の手法も統合しようとしている。
幅と深さをともに積み上げることは、時間を節約し機会を見つける助けになり、そのために基礎知識は決定的に重要だと思う。
機械学習における学習/検証、分散/バイアスのような基礎はそのままで、古典的アルゴリズムにも依然として居場所がある。
抜けている可能性のある最近の進展は、XGBoost 風のフォレストくらいだろう。
この3冊があれば、ごく基本から高度なトピックまで、文字どおり他には何も要らない。
単に機械学習に興味があるだけなら、情報が間違っている可能性はほとんどない。
しかし、たとえば11年前の化学の本とは違って、今エンジニアたちが取り組んでいる最も興味深い問題とはあまり接点がない。
だから面接準備や業界入りのためには、最も役立つものではなさそうだ。
最先端の ディープラーニングではなく、価値が疑わしい抽象的な数学理論に主に焦点を当てていたからだ。
ほかにおすすめの本はある?
著名な研究者たちが書いた無料でわかりやすい入門書で、古典的な内容を幅広く扱い、コード付きの「Lab」セクションも多い
ディープラーニングの章もあるが、最近の発展は扱っていないため、その部分は別の資料が必要
説明がしっかりしていて、AIMA ほど古びた感じもしない