こんにちは、たくまろです。
今回は、統計学を専攻していた僕が、実際に読んで分かりやすいと感じた、統計学のための最適化を学べる本を紹介したいと思います。
機械学習の本を読んでいると、
「どうして、このアルゴリズムをすれば最適解を導けるのかな?」
「この最適化は誤差が0に収束するのかな?」
など、数学的にあやふやで気になることが沢山現れると思います。
大抵の本では、最適化の説明は割愛するか、関数やパッケージを使ってごまかすことが多いです。
しかしながら、深層学習の分野ではいかにして、最適化を行うか?というのも重要なトピックになっています。
そこで今回は、個人的におすすめの分かりやすい最適化の本を4つ選びました。
最適化の知識って必要?
「統計学と最適化って関係あるの?」と思う人も多いと思います。
簡単な最適化の例をあげると、最大・最小を求める操作も最適化の一つです。
数理統計学を勉強していると、尤度関数というものの最大値を求める問題を学びます。
1変数程度なら、微分をすれば、最大値を求めることが出来るかもしれません。
しかしながら、多変数関数になると、微分するだけでは、最大値を見つけることができません。
そもそも、微分が出来ないような関数を扱うこともあります。
そんな時に役立つのが、最適化の知識です。
正しい最適化の手法を学ばないと、誤った解を導くことが多々あります。
ここでは、理論的な本を2冊、機械学習で広く使われる手法を紹介した本を1冊、最後にPythonを使った最適化の本を1冊紹介したいと思います。
これなら分かる最適化数学
これなら分かる最適化数学 基礎原理から計算手法まで [ 金谷健一 ] 価格:3,190円 |
この本は、まさに統計学で使うことを想定してかかれた最適化の本とよべるでしょう。
この本では、証明よりも、幾何的な表現にこだわり直感的に分かるように作られています。
数学的な厳密性よりも、例題を使って、理解してもらうことを重要視しているように感じます。
最適化をはじめて学ぶ、大学1,2年生に最適ですね(笑)
本書の内容としては、勾配法、ニュートン法、共役勾配法といった基本的な関数の最適化から、最小2乗法や、EMアルゴリズムなどの統計的最適化問題、最後の3つの章では、線形・非線形・動的計画法について取り上げられています。
いずれも、統計学では避けては通れないような物が多く、読んでおいて損はないですね。
しっかり学ぶ数理最適化
しっかり学ぶ数理最適化 モデルからアルゴリズムまで【電子書籍】[ 梅谷俊治 ] 価格:3,300円 |
上記の本に比べると、より一般的な最適化の教科書に近づいたものになっています。
最適化をより詳しく学びたい人や、上記の本では補完出来ないような最適化の知識を身につけることが出来ます。
この本では、大学数学の記号や使い方が分かっている前提ではじまります。
ただ、大学1年生で習うような微積分の知識があれば十分です。
数学的な準備を省いている分、さまざまな手法の紹介にページを割いています。
日本語での説明がないような手法も扱っているため、英語が苦手な方におすすめ。
通常の計画問題や制約付きの最適化に加えて、組み合わせ最適化についても詳しく紹介されています。
機械学習のための連続最適化
機械学習のための連続最適化 (機械学習プロフェッショナルシリーズ) [ 金森 敬文 ] 価格:3,520円 |
上記の2冊に比べると、理論的な部分が省かれていますが、より実践的な手法を学ぶことができます。
理論的な部分をあまり気にしないで、速習したいならおすすめです。
第1~12章ぐらいまでの内容は、よくある最適化の手法を紹介しているという感じです。
第13章ではEMアルゴリズム、
第14章ではSVM(サポートベクターマシン)の主問題と双対問題の関係性、
第15章では座標降下法などを使ったスパースモデリング
第16章では多様体上の最適化
についてまとめられており、より機械学習っぽい最適化を学ぶことが出来ます。
より応用を考えた最適化を学ぶならおすすめしたい一冊。
scikit-learn活用レシピ80+
scikit-learn活用レシピ80+ Python機械学習ライブラリ (impress top gear) [ ジュリアン・アビラ ] 価格:4,290円 |
「理論とかどうでもいいから、どうやって最適化をすればいいの?」
と思っている方におすすめ!
Pythonのscikit-learnといわれるパッケージを使った最適化を紹介している本です。
プログラミングで最適化というとCのイメージが強いかもしれませんが、深層学習などをやるならPythonの方がパッケージが豊富なため、この本を選びました。
scikit-learnは最適化に特化したパッケージで、さまざま手法が関数としてまとめられています。
また、githubにコードが公開されているので、いちいちコーディングする必要もないです。
コーディングをすると、何を目的とした最適化手法なのかイメージしやすいです。
実際に手を動かしてみたい人におすすめの1冊です。
ほかにも
今回は、統計学のための最適化についてまとめました。
学びたい最適化の知識といっても、人それぞれなので、自分のレベルにあった本を見つめるのが大切です。
ほかにも、統計学に関するおすすめの本を紹介しています。
良かったらご覧ください!!
【初心者におすすめ】はじめての統計学におすすめの本【統計学入門書】
【数学専攻がおすすめ】数理統計学おすすめの本10選【数理統計学入門】
コメント