機械学習の勉強法【トップダウンとボトムアップ】

Uncategorized

機械学習を始めたいが

機械学習を勉強したい

と思っている人は多いのではないでしょうか。

  • 勉強するための書籍の種類が多い
  • Web上の教材が多い
  • 学習コースの種類が豊富

ということから、

どうやって始めれば良いのか分からない

という人は少なくないと思います。

今日は、

  • トップダウン型
  • ボトムアップ型

という2つの勉強法を紹介します

機械学習に取り組むきっかけになればと思います。

トップダウン型

まずは、トップダウン型で機械学習に取り組む方法です。

これは、簡単に言うと

ゴールから始めてみる

学習法です。

前提知識の習得

にあまり時間をかけずに、

とりあえずサンプルのプログラミングコードを動かしてみることから始めます。

順番としては、

  1. Pythonの代表的なライブラリで動かす機械学習のサンプルコードを使う
  2. いくつかサンプルコードを動かす中で、興味がある部分を見つける
  3. 興味が出たポイントを重点的に勉強する

という形です。

例えば、

  • Qiita
  • GitHub

などで、機械学習のサンプルコードを探します。

そして、そのコードを使って一度自分で機械学習を試すところから始めます。

最初に使うサンプルコードを探し出すのが手間だ、という場合は、

Amazonで「機械学習 プログラミング」といった形で検索すると、サンプルコードを紹介している入門書がたくさん出てきますので、書籍も参考にできます。

まずは、

自分で試してみる

というところがポイントです。

いくつかサンプルコードを自分で試していく中で、

おおまかにコードの中を見ていきます。

この段階で、機械学習の基本となるアルゴリズムやキーワードを目にすることが多くなります。

例えば、

  • 教師あり学習
  • 強化学習
  • 線形回帰
  • ロジスティック回帰
  • ディープニューラルネットワーク

などです。

その中で、

  • そもそもこれって何だ
  • このワードは何を意味しているのか

といった疑問が湧いた部分を、調べていくというのがここからのステップです。

今では、インターネットで、自分が疑問に思った概念興味が出た専門用語をキーワード検索すれば、

  • 解説記事
  • 講義動画
  • 対応するおすすめの書籍

が必ず出てきます。

この、

とりあえず機械学習をやってみる → 疑問に思った箇所を調べる → さらに疑問に思った箇所を…

ということを、プログラミングコードを自分で動かすことと合わせて繰り返していくのがトップダウン型の勉強法です。

メリット

機械学習にトップダウン型で取り組む時には、

  • 勉強を始める最初の段階で、機械学習のイメージができる
  • 自分の興味関心に合わせて勉強を続けて行きやすい

というメリットがあります。

最初に、とにかく自分で機械学習を動かしてみる。その時はプログラミングコードの中身を理解していなくても良い。という考え方で勉強を始めるので、機械学習のイメージがしやすいです。

ああ、詳細はまだわからないけど、だいたいこういう形で動かせるのか、と体験できることで、

これからの勉強の最終ゴールが俯瞰できるということです

さらに、一度サンプルコードで機械学習を体験した後も、基本的には自分が興味を持った箇所に焦点を当ててブレイクダウンしていくので、勉強が継続しやすいです。

デメリット

トップダウン型で機械学習の勉強をする場合、デメリットもあります。

それは、

体系立てて勉強できない

ということです。

  • とりあえず動かしてみる
  • 自分の興味関心に沿って、それぞれの詳細を深く勉強していく

という勉強法では、どうしても、勉強の範囲が、虫食い的なものになります。

網羅的に系統立てて勉強したい場合は、次に紹介するボトムアップ型の取り組みが有効です。

ボトムアップ型

次に、ボトムアップ型で機械学習に取り組む方法です。

この方法は、いわゆる

積み上げ型

の勉強法です。

従来の学校教育や学習コースのカリキュラムでも多く採用されている方法なので馴染みがある人も多いと思います。

前提知識を一つずつ勉強していき、最後に機械学習をプログラミングで実行できる

というイメージです。

順番としては、

  1. 前提知識の把握
  2. 前提知識を勉強
  3. それらの知識を統合して、機械学習のコードを書き、実行する

という形です。

前提知識の把握では、

例えば

  • 数学や統計 → 線形代数、微分積分、統計と確率
  • プログラミング言語 → Python、R
  • ライブラリやフレームワーク → scikit-learn、TensorFlow、PyTorch

などが挙げられます。

前提知識は自明のように感じますが、そう単純ではありません。

ボトムアップ型の勉強では、

今自分が理解できている部分まで一から積み上げる必要はありません。

今、自分に足りない部分を補うという意識で、

機械学習に必要な前提知識を把握する必要があります。

次に、それらを一つずつ勉強していきます。

ここでは、

  • 対応する書籍
  • 講義動画

などの教材で取り組んでいきます。

そして、最後にそれらの知識を総動員して、機械学習のコードを実装する、という流れがボトムアップ型での勉強です。

メリット

ボトムアップ型には、

  • 体系立てて勉強できる
  • 機械学習の基礎知識についてある程度網羅できる

というメリットがあります。

ボトムアップ型では、

必要な要素を、ピラミッドの下の段から積み上げるように、コツコツ進めていきます。

そのため、体系立てて勉強できます。

結果的に、虫食い的な知識の習得というよりは、網羅的に機械学習の領域をカバーできます。

デメリット

ボトムアップ型で、機械学習の勉強をするときの一番のデメリットは、

時間がかかる

ということです。

簡単な機械学習を実装する、ということをゴールに置いた場合でも、

積み上げていく要素は多いです。

これは、機械学習に様々な領域(数学、確率、プログラミングなど)が関係しているためです。

必然的に、一つずつ積み上げていくのに時間を要します。

コツコツ前進していくことに抵抗がある人は、途中で機械学習の勉強を止める可能性が高くなってしまいます。

どちらがお勧めか:第3の方法

今日は、機械学習の勉強法として対照的な

  • トップダウン型
  • ボトムアップ型

の方法を紹介しました。

ともに一長一短の方法なので、

全員にこちらがお勧めだ

とは言えないのですが、それぞれのメリットデメリットと自分の特性を見て判断すると良いと思います。

最後に、第3の方法として、

トップダウンとボトムアップを組み合わせる

という方法を紹介します。

両者は組み合わせて使うことができます。

例えば、

  • 最初に機械学習のサンプルコードを1回だけ動かしてみて、機械学習のイメージをつける → そこからは、ボトムアップ型で勉強
  • ボトムアップ型で勉強を始めて挫折しそうになったら、トップダウン型に切り替える

などです。

万人にとって正しい機械学習の勉強法はありません。

それぞれの勉強法の特徴を理解して、状況に合わせて取り組み方を見直していけば

きっと機械学習の勉強は続けていけると思います。

コメント

タイトルとURLをコピーしました