2年前、私は独学で機械学習をオンラインで学び始めました。 YouTubeやブログで自分の旅を紹介しました。 自分が何をしているのか全くわかりませんでした。
人々が私の仕事を見つけると、時々、質問をしてきます。 すべての答えを持っているわけではありませんが、できるだけ多くの質問に答えています。 最も多い質問は、”何から始めたらいいですか?”というものです。
今朝、これらの質問にいくつか返信しました。
ある人は、Pythonの学習を始め、機械学習に入りたいが、次に何をしたらいいかわからないと言っていました。
Pythonを学びましたが、次に何をすべきでしょうか?
返信の中でいくつかのステップをまとめましたので、ここにコピーします。
私の学習スタイルはコードファーストです。
私の学習スタイルは、まずコードを実行し、理論、数学、統計、確率の側面を学ぶのは、必要になってからにします。 たくさんありますからね。 時間をかけてください。
私はPythonを使うことに偏見を持っていますが、それは私が最初に使い始め、今も使い続けているからです。
メールでは、すでにPythonを使っているとのことでしたが、このステップはPythonを使っている人向けです。 しかし、このステップは、まったくの初心者のためのものでもあります。 数ヶ月かけて、Pythonのコードを学ぶと同時に、さまざまな機械学習のコンセプトも学んでください。
Pythonコードを学ぶ一方で、JupyterやAnacondaなどのデータサイエンスツールを使って練習しましょう。
学習のためのリソース
- Elements of AI – 主要な人工知能と機械学習の概念の概要
- A 6 Step Field Guide for Building Machine Learning Projects – さまざまなビジネス上の問題に機械学習を使い始めるための多くの実用的なステップの概要。
- Python for Everybody on Coursera – Pythonをゼロから学ぶ。
- Learn Python by freeCodeCamp – Pythonの主要なコンセプトを1つのビデオで学ぶ。
- Anaconda Tutorial by Corey Schafer – Anaconda(データサイエンスや機械学習のためにコンピュータをセットアップする際に使用するもの)を1つのビデオで学ぶ。
- Jupyter Notebook for Beginners Tutorial by Dataquest – 1つの記事でJupyter Notebookを使いこなせるようになります。
- Jupyter Notebook Tutorial by Corey Schafer – 1つのビデオでJupyter Notebookの使い方を学びます。
Learn data analysis, manipulation & visualization with Pandas, NumPy Matplotlib
Pythonのスキルをある程度身につけたら、データの扱い方や操作方法を学びたいと思うでしょう。
そのためには、pandas、NumPy、Matplotlibに慣れる必要があります。
pandasは、データフレームを扱うのに役立ちます。 行と列で構成されています。
NumPyは、データに数値演算を施すのに役立ちます。
Matplotlibを使うと、データをグラフ化して視覚化することができます。 表の中の数字の山を理解することは、人間にとって難しいことです。 人間は線で囲まれたグラフを見たいものです。
Resources for learning
- Applied Data Science with Python on Coursera – データサイエンスに向けてPythonのスキルを調整することができます。
- Python Pandas Tutorial by Codebasics – pandasの主要な機能をすべて説明するYouTubeシリーズ。
- NumPy Tutorial by freeCodeCamp – NumPyを1つのYouTubeビデオで学ぶことができます。
Learn machine learning with scikit-learn
データを操作して可視化するスキルを身につけたら、次はデータのパターンを見つけましょう。
scikit-learnはPythonのライブラリで、多くの有用な機械学習アルゴリズムが組み込まれており、すぐに使うことができます。
また、学習アルゴリズムの学習状況を把握するのに便利な機能も多数搭載しています。
分類や回帰など、機械学習にはどのような問題があり、それにはどのようなアルゴリズムが最適なのかを学ぶことに集中してください。
学習のためのリソース
- Machine Learning in Python with scikit-learn by Data School – scikit-learn の主要な機能をすべて教えてくれる YouTube プレイリストです。
- A Gentle Introduction to Exploratory Data Analysis by Daniel Bourk – 上記の 2 つのステップで学んだことをプロジェクトにまとめます。
- Daniel Formosso’s Exploratory Data Analysis notebook with scikit-learn – 上記のリソースのより詳細なバージョンで、上記を使用したエンドツーエンドのプロジェクトが付属しています。
Learn deep learning neural networks
ディープラーニングとニューラルネットワークは、あまり構造を持たないデータで最もよく機能します。
ほとんどの場合、構造化されたデータには決定木のアンサンブル (ランダム フォレストまたは XGBoost のようなアルゴリズム) を使用し、構造化されていないデータには深層学習または転移学習 (事前に学習されたニューラル ネットワークを使用して問題に対処する) を使用したいと思うでしょう。
このようなちょっとしたヒントを自分用にメモしておき、それを収集するとよいでしょう。
エクストラ・カリキュラム & 書籍
途中で、学習したことを自分の小さなプロジェクトで実践することができれば理想的です。 世界を変えるような手の込んだものでなくても、「私はこれを X でやりました」と言えるようなものであればいいのです。 そして、その成果をGithubやブログ記事で共有します。 Githubは自分のコードを紹介するために使い、ブログポストは自分の仕事をどう伝えるかを示すために使います。
仕事に応募するには、その仕事で必要とされることをすでに行っているのが一番です。
機械学習や深層学習のためのさまざまなフレームワークを使いこなせるようになったら、ゼロから構築することで知識を定着させていくことができます。
Resources for learning
- How to start your own machine learning projects by Daniel Bourke – 自分のプロジェクトを始めるのは大変ですが、この記事ではいくつかのポイントを紹介しています。
- fast.ai deep learning from the foundation by Jeremy Howard – トップダウンで学習を進めた後、このコースではボトムアップでギャップを埋めていきます。
- Grokking Deep Learning by Andrew Trask – この本は、ニューラルネットワークをゼロから構築する方法と、その方法を知っておくべき理由を教えてくれます。
- These books will you help learn machine learning by Daniel Bourke – YouTube video going over some of the best books on machine learning.
各ステップの所要時間
それぞれに6か月以上を費やすことも可能です。 急いではいけません。 新しいことを学ぶには時間がかかります。 データサイエンティストや機械学習エンジニアとして構築する主なスキルは、データに良い質問をして、ツールを使って答えを見つける方法です。 逆戻りしているようにさえ感じます。 そんなときは無視しましょう。 日ごとの進歩を比較するのではなく、年ごとの進歩を比較しましょう。
これらのスキルはどこで学べますか?
上記にいくつかのリソースを挙げましたが、これらはすべてオンラインで入手でき、ほとんどが無料です。
DataCampはこれらのほとんどを行うのに最適な場所です。また、私のMachine Learning and Artificial Intelligenceリソースデータベースには、無料および有料の学習教材の良いアーカイブが含まれています。
データサイエンティストや機械学習エンジニアであることの一部は、問題を解決することであることを忘れないでください。
機械学習のための自分主導のカリキュラムの例を知りたければ、私の「自分で作るAI修士号」をチェックしてみてください。 これは、私がコーディングゼロから9ヶ月で機械学習のエンジニアになるために使ったものです。
統計学はどうですか? 数学はどうですか?
これらのことは、途中で学ぶことになります。 まずはコードから始めましょう。 物事を動かすのです。 コードを実行する前に、すべての統計、すべての数学、すべての確率を学ぼうとするのは、海を沸騰させようとするようなものです。
コードが動かなければ、統計、数学、確率のどれも意味がありません。
資格について
資格は素晴らしいものですが、あなたが求めているのは資格ではありません。
私のように、資格が多ければ多いほどスキルが高いと勘違いしてはいけません。 そうではありません。