基本統計学(著:宮川公男)を読んだ・機械学習以前に必須な統計学基礎
今年から機械学習を学び始めて、最初の6ヶ月ぐらいはいわゆる機械学習の書籍を読んで学んでいた。回帰・分類といった基本的な教師あり学習、クラスタリングや時限削減といった教師なし学習、結果の見方や整ったデータがある場合の処理方法、ニューラルネットワークのパーセプトロン、全層結合、CNN、 RNNといった簡単なものを1からの実装したり、TensorFlow(Keras)を使ってのモデル作成など。いわゆる抽象化されたライブラリがある物は使いながら、何が問題を解くための最適なモデルなのかを考え適用していた。
しかしながら、実務では必要なモデルを作る以前に、まずデータを見て考えることが必要になる。探索的データ分析(EDA)の解説は、初心者には「データから何がわかるか」(そもそもの前提としてそのような知識がある)をすっ飛ばして、相関が〜とか分布が〜という所の説明になるので、なんとなくEDAっぽいことは出来るが、実際はよくわからず行っていた。
また、実際に何かのモデルを作って検証のためA/Bテストを行う場合、世の中の解説では「カイ二乗検定で統計優位になる」みたいな説明で、よくわからないままで検証することになる。解説で出てくる自由度って何?t統計量?インターネットのデータはサンプル数が多いから自由度を無視?というか分散の自由度ってなんで1なの?みたいな基本的なことも基礎を理解できないので解らない。また普通1回限りのA/Bテストの結果を見る、というよりは複数回に渡った結果が優位なのか(すると回数が少ないので自由度が重要になる)、なにを優位としたいのか、そもそもどのような結果を想定してA/Bテストを行いたいのか。
これらは一例だけど「そもそも何かの前提」を知らないため、理解が足りず最適な手段を取れない。ライブラリのドキュメントに出てくる、基本的な用語もわからないことが多い。この「そもそもの前提の知識」が統計学だ、と分かるまで半年ぐらいかかってしまった。機械学習に必要な基礎学習は、微分(解析学)・線形代数学・統計学で、そのうち微分や線形代数の初歩は高校数学でやったし、例えば3Dプログラミングには線形代数が必要でその時に一通りプログラミングしたりしたので、今までの知識でなんとか最低限の理解はできていた。
ただ、統計学は全くやっておらず(いや、大学で単位は取ったのかもしれないが全く忘れている)、例えばデータの平均と分散を見て標準変化量を出して、-1.96~1.96の範囲で正規分布なら95%に収まるよね、というような基本的な事すら解らなかった。
なら統計学の基礎をきちんと学ぼう、と思ったのだけど初め何から学習すれば良いのかが解らなかった。パラパラと本屋で本を見ると、SQLやらPythonやらと組み合わせた全部コミコミの本が多く、統計学が「ちゃんと学べる」本がわからなかった。オライリーのデータサイエンスのための統計学入門を読んでも、統計学のそもそもの基礎知識が解らなすぎてほとんど理解が進まず入門できなかった。
初心に帰ろうと教科書的な本をぱらぱら読むと、東大出版会の基本統計学は自分には正直難しく完読できる気がしなかった。そんなタイミングで、たまたま見た動画で推しとして紹介されていた、基本統計学 第四版(著:宮川公男)もダメ元で読んでみたのだけど、解りやすすぎる、かつ例題が良すぎて、楽しくほぼ毎日読み進めペンとノートと関数電卓片手に練習問題を解き、3ヶ月弱ぐらいかけて完読できた。このような教科書的な本は最後まで読めた試しがほとんどないので、自分にはとても相性が良かった本なのだろう。
簡潔かつわかりやすい説明で、ちょっと間を置いて昔このこと忘れているようなタイミングでは、補足説明としてちゃんとページへの参照や再度の説明が乗っていて置いてきぼりにならない。練習問題の内容も例えば「製品の不良率が2%のとき、製品200個中の不良品が2個含まれる確率はいくらか」や「ある実験を試みたところ、25%の過負荷で10本のヒューズが飛んでしまうまでの平均時間は9.2分で標準偏差は2.5分であった。25%の過負荷でこの種類のフューズが飛ぶまでの平均時間を、信頼係数99%で求めよ」といった、実社会とイメージがしやすい問題が多い。
学習できる内容も、目次を見ると分かるように、平均値と分散・度数分布・回帰と相関分析・確率・確率変数と確率分布・主な確率分布・標本分布・推定・検定・回帰の統計論理と、機械学習のアルゴリズム基礎である確率と回帰が学べ、データを見るのに重要な確率分布、はたして仮説が正しいのかを検証するための推定・検定など一通り大事な部分が学べる。これらを徐々に学ぶにつれ、実務でもデータの見方や仮説の立て方など以前に比べたらだいぶ良くなった(であろう)。
今振り返ると自分の場合、機械学習のソフトウェアツール群(scikit-learn, TensorFlow)などが一通り使えるようになった、学び始めて3ヶ月後ぐらいに基礎統計学を学ぶのが学習効率が良かったと思う。というわけで、機械学習の基礎の一つである統計学は早めにちゃんと最低限の基礎を知ったほうが良いだろうと話と、統計学基礎を分かり易く学べる基本統計学(宮川公男著)オススメです。良い本を書いてくれた宮川公男先生に感謝。