この記事では機械学習に興味を持った方や、ディープラーニングを学びたい方のために個人的におすすめの勉強(独学)方法を解説します。
まずその前に、機械学習・ディープラーニング・強化学習などの単語について軽く説明します。
用語説明 (AI・機械学習・ディープラーニング・強化学習)
AI (Artificial Intelligence / 人工知能)
まず一番大きなくくりとして「AI」があります。
「AI」とは「人工知能」のことであり、人間の知能を機械で再現しようとする研究分野です。
機械学習
「機械学習」は「AI」の中の1分野です。
昔、AIの分野では知能を人間が直接プログラミングしようとしていましたが、その試みは失敗に終わり、コンピュータに大量のデータを与えてコンピュータ自身に学習させて知能を発現させようとする手法が編み出されました。
つまり人間が知能を直接プログラミングすることが現実的に不可能だったため、コンピュータに学習させるアルゴリズムだけをプログラミングして知能は学習の結果発現させようという試みです。
簡単に言えば、「機械」に「学習」させる方法を研究する分野です。
ディープラーニング
「ディープラーニング」とは「機械学習」の1手法です。
「機械学習」には後述する「強化学習」も含めて様々な手法がありますが、「ディープラーニング」はその中でも最も成功している手法です。
大量のデータを与えて、それぞれ特定の処理(計算)を行う層(レイヤー)を深く(ディープに)重ねて複雑な計算を行い学習させる手法です。
強化学習
「強化学習」も「機械学習」の1手法です。
エージェント(学習主体)とエージェントが相互作用する仮想的な環境を用意し、エージェントが行動をするたびに状況に応じた報酬を与えてエージェントを学習する手法です。
YouTubeの「こーじ」さんのチャンネルの動画を見ると雰囲気が分かると思います。
下に動画を貼っておきます。
おすすめのディープラーニングの勉強(独学)方法 / ロードマップ
ここまでの用語説明で説明した用語の中で、やはり流行りのディープラーニングを学びたいと思った方のために個人的におすすめの勉強(独学)方法を紹介します。
ディープラーニングを学ぶために早速ディープラーニングの本を買って読んでも良いのですが、大学レベルの微分積分の知識が不足していると苦労します。
僕は大学を実質半年ほどで中退していたので、ディープラーニングを理解するための数学の知識が不足しており、結局大学の微分積分を独学するところから始めました。
数学力の不足を放置して無理にディープラーニングの学習を進めても学習に行き詰まるばかりで効率が悪いと考えます。
なので必要な方は大学レベルの微分積分を勉強しましょう。
ディープラーニングを理解するための大学の微分積分の効率的勉強法については別記事を書こうと思います。
理論と実践をバランスよく学ぶ
ディープラーニングの本は「理論」の解説を重視した本と、「実践」重視の本があると思います。
具体的に説明すると「理論」の本は、ディープラーニングの仕組みを解説します。
その中で大学レベルの数学の知識が必要になることも多々あります。
「実践」の本はディープラーニングがなぜうまく機能するのか、その仕組みはざっとした解説で済ませ、TensorFlow、Keras、Pytorchなどのディープラーニングのライブラリの使い方を解説して、手軽にディープラーニングが実行できることを紹介しています。
そして「理論」と「実践」どちらを重視すべきかというと、僕の意見では両方バランスよく進めるのが良いと思います。
理論だけをいくら学んでも実際にディープラーニングのモデルをプログラミングで構築する経験がなければ一生ディープラーニングできませんし、反対に実践だけを学んでも背景の知識が欠如していれば、自分のケースでどのようにライブラリのピースを組み合わせたりカスタマイズすればよいのか直感が働きません。
下に理論と実践の本で良さそうな本を紹介します。
理論のおすすめの本
上の「ゼロから作るDeep Learning」はディープラーニングの理論を勉強するのにめちゃくちゃおすすめの本です。アマゾンの評価も非常に高いのでとてもおすすめです。
実践のおすすめの本
PyTorchとはディープラーニングを手軽にプログラミングできるライブラリです。
ディープラーニングを細かな視点ではなく、ライブラリで用意されたレイヤー(層)の組み合わせ方という高いレベルでより手軽に考えることができます。
この本はディープラーニングのライブラリとしてKerasを利用しています。
こちらもおすすめですが、内容が少し古くなっているかもしれません。ご注意を。
コメント