トップダウンの学習パス: ソフトウェア エンジニアのための機械学習
コーディング面接大学からインスピレーションを受けました。
翻訳: ブラジルポルトガル語 | 中文版 |フランセ | 臺灣華語版本
私 (Nam Vu) が機械学習エンジニアになる方法
それは何ですか?
これは、モバイル開発者 (独学、CS の学位なし) から機械学習エンジニアになるための私の複数か月にわたる学習計画です。
私の主な目標は、初心者向けに主に実践的で数学の大部分を抽象化した機械学習の学習アプローチを見つけることでした。このアプローチは、ソフトウェア エンジニア向けに設計されたトップダウンかつ結果第一のアプローチであるため、型破りなものです。
より良いものになると思われる場合は、お気軽に貢献してください。
目次
- それは何ですか?
- なぜそれを使うのでしょうか?
- 使い方
- 私に従ってください
- 自分が十分に賢くないとは思わないでください
- ビデオリソースについて
- 前提知識
- 毎日の計画
- モチベーション
- 機械学習の概要
- 機械学習の習得
- 機械学習は楽しい
- 真っ黒な機械学習
- 機械学習: 詳細ガイド
- 物語と経験
- 機械学習アルゴリズム
- 初心者向けの本
- 実用書
- Kaggle ナレッジ コンテスト
- ビデオシリーズ
- MOOC
- リソース
- オープンソースの貢献者になる
- ゲーム
- ポッドキャスト
- コミュニティ
- カンファレンス
- 面接の質問
- 私の憧れの会社
なぜそれを使うのでしょうか?
私は、機械学習エンジニアという近い将来の仕事に備えるために、この計画に従っています。私は 2011 年からネイティブ モバイル アプリケーション (Android/iOS/Blackberry) を構築してきました。私はコンピューター サイエンスの学位ではなく、ソフトウェア エンジニアリングの学位を取得しています。私は大学で学んだ微積分、線形代数、離散数学、確率と統計に関する基礎知識を少しだけ持っています。機械学習に対する私の興味について考えてみましょう。
- CS 修士号や博士号を学ばなくても、機械学習を学んで就職することはできますか?
- 「できますが、私が現場に入ったときよりもはるかに困難です。」ドラック・スミス
- 機械学習を独学で勉強しているものの、仕事で使用する機会がないソフトウェア プログラマーとして機械学習の仕事に就くにはどうすればよいでしょうか?
- 「私はチームに機械学習の専門家を雇っているのですが、あなたの MOOC では仕事は得られません(以下に良いニュースがあります)。実際、機械学習の修士号を取得した多くの人は、彼ら(そしてそのほとんど)がその仕事に就くことができません。 MOOC を受講したことがある)、問題を解決するのに役立つ深い理解を持っていません。」ロス・C・テイラー
- 機械学習の仕事にはどのようなスキルが必要ですか?
- 「まず、まともな CS/数学の背景が必要です。ML は高度なトピックであるため、ほとんどの教科書はその背景があることを前提としています。第 2 に、機械学習は非常に一般的なトピックであり、独自のスキルを必要とする下位専門分野が多数あります。機械学習の修士課程プログラムのカリキュラムを参照して、コース、カリキュラム、教科書を確認します。」ウリ
- 「確率、分散コンピューティング、統計」。あじさい
困ったときは私も困ります。
私の知る限り、機械学習には 2 つの側面があります。
- 実践的な機械学習: これは、データベースのクエリ、データのクリーニング、データを変換するスクリプトの作成、アルゴリズムとライブラリの結合、および難しく不明確な質問を満たすためにデータから信頼できる答えを絞り出すためのカスタム コードの作成に関するものです。それは現実の混乱です。
- 理論的機械学習: これは数学と抽象化、理想的なシナリオと限界と美しさ、そして何が可能なのかを伝えるものです。それはずっとすっきりしていて、現実の混乱から離れています。
実践に焦点を当てた方法論の最良の方法は、「実践 - 学習 - 実践」のようなものだと思います。これは、学生が最初に問題と解決策を備えた既存のプロジェクトに取り組み (演習)、その分野の伝統的な手法に慣れることを意味します。彼らの方法論で。いくつかの初歩的な経験を積んで練習した後、本を読んで基礎となる理論を学ぶことができます。これは将来の高度な実践の指針となり、実践的な問題を解決するためのツールボックスを強化することになります。また、理論を学ぶことで初歩的な経験に対する理解がさらに深まり、高度な経験をより早く習得できるようになります。
長い計画ですね。何年もかかりますよ。すでにこの内容の多くに精通している場合は、時間ははるかに短くなります。
使い方
以下はすべて概要であり、上から下の順に項目に取り組む必要があります。
私は、進行状況を確認するためのタスク リストを含む、Github の特別なマークダウン フレーバーを使用しています。
Github 風味のマークダウンについての詳細
私に従ってください
私はベトナムのソフトウェア エンジニアで、非常に情熱があり、米国で働きたいと考えています。
この計画中に私はどれくらい働きましたか?長くてハードな一日の仕事の後は、一晩あたり約 4 時間。
旅の途中です。
自分が十分に賢くないとは思わないでください
開いた瞬間に多変量微積分、推論統計、線形代数が前提条件であると書かれた本やコースにはがっかりします。まだどうやって始めればいいのかわかりません…
- 数学が苦手な場合はどうすればよいですか
- 数学の知識がなくても機械学習アルゴリズムを理解するための 5 つのテクニック
- 機械学習を学ぶにはどうすればよいですか?
ビデオリソースについて
一部のビデオは、Coursera または EdX クラスに登録することによってのみ視聴できます。これは無料ですが、クラスがもう開催されていない場合があり、数か月待たなければならないため、アクセスできません。公開ソースからさらに多くのビデオを追加し、オンライン コースのビデオを徐々に置き換える予定です。大学の講義を利用するのが好きです。
前提知識
この短いセクションは、毎日の計画を開始する前に知っておきたい前提条件/興味深い情報で構成されています。
毎日の計画
各科目を完全に理解するのに丸一日は必要なく、1 日に複数の科目を受講することもできます。
私は毎日、以下のリストからテーマを 1 つ選び、最初から最後まで読み、メモを取り、演習を行い、Python または R で実装を作成します。
モチベーション
機械学習の概要
機械学習の習得
機械学習は楽しい
真っ黒な機械学習
機械学習: 詳細ガイド
物語と経験
機械学習アルゴリズム
初心者向けの本
実用書
Kaggle ナレッジ コンテスト
ビデオシリーズ
MOOC
リソース
ゲーム
- Halite: AI コーディング ゲーム
- Vindinium: AI プログラミング チャレンジ
- ビデオゲームAI総合コンペティション
- アングリーバード AI コンテスト
- AI ゲーム
- 格闘ゲームAIコンペティション
- コードカップ
- 学生StarCraft AIトーナメント
- AIIDE StarCraft AI コンペティション
- CIG StarCraft AI コンペティション
- CodinGame - AI ボット ゲーム
オープンソースの貢献者になる
ポッドキャスト
コミュニティ
クオラ
レディット
- 機械学習
- コンピュータビジョン
- 自然言語
- データサイエンス
- ビッグデータ
- 統計
データタウ
ディープラーニングのニュース
ケイドナゲット
カンファレンス
- 神経情報処理システム (NIPS)
- 学習表現に関する国際会議 (ICLR)
- 人工知能推進協会 (AAAI)
- 計算知能とゲームに関する IEEE 会議 (CIG)
- 機械学習とアプリケーションに関する IEEE 国際会議 (ICMLA)
- 機械学習に関する国際会議 (ICML)
- 人工知能に関する国際合同会議 (IJCAI)
- 計算言語学協会 (ACL)
面接の質問
私の憧れの会社