事前に何を知っているかによって、どこから始めればいいかは異なります。
ディープラーニングを理解し、応用する前に知っておく必要があるのは、線形代数、微積分、統計学、プログラミング、および一部の機械学習についての知識です。
以下はリソースの一覧です。セクションは必要となる順序にしたがって並べれられています。
機械学習、ディープラーニングの無料オンラインコース
- Andrew Ng教授によるYouTubeの機械学習コース
- Geoff Hinton教授によるYouTubeのニューラルネットワーク教室
- MIT大学Patrick Winston教授による人工知能入門コース (人工知能の調査に興味がある人向け)
- スタンフォード大学Andrej Karpathy氏による畳み込みニューラルネットワーク教室 (画像認識に興味のある人向け)
- ML@BのMachine Learning Crash Course(機械学習の短期集中コース)第1回
- ML@BのMachine Learning Crash Course(機械学習の短期集中コース)第2回
数学
- Seeing Theory:A Visual Introduction to Probability and Statistics(理論の視覚化:確立と統計の視覚化入門)
- Andrew Ng教授による線形代数のレビュー(6部構成)
- Khan Academy線形代数コース
- Linear Algebra for Machine Learning(機械学習用の線形代数)、Patrick van der Smagt教授による
- カーネギーメロン大学Linear Algebra Review(線形代数レビュー)
- Math for Machine Learning(機械学習の数学)
- Immersive Linear Algebra(線形代数の没入型学習)
- Probability Cheatsheet(確率計算の早見表)
- The best linear algebra books(線形代数のベスト書籍)
- Markov Chains, Explained Visually(マルコフ連鎖のアニメーション解説)
- An Introduction to MCMC for Machine Learning(機械学習向けMCMC入門)
プログラミング
プログラミングを知らない方は、Javaから始めるのもいいですが、それより簡単な言語もあります。PythonやRubyのリソースは、より迅速なフィードバック・ループで基本的なアイデアを伝えてくれます。
- Learn Java The Hard Way
- Learn Python the Hard Way
- Pyret:A Python Learning Environment(パイソンの学習環境)
- Scratch(MIT提供のビジュアルなプログラミング環境)
- Learn to Program (Ruby)(Ruby言語でのプログラミング学習)
- コマンドライン入門
- その他のコマンドラインのチュートリアル
- A Vim Tutorial and Primer (「Vim」とは、コマンドラインからアクセスできるエディター)
- Intro to Computer Science(コンピューターサイエンス入門) (CS50 @Harvard edX)
- A Gentle Introduction to Machine Fundamentals(簡単なマシンの基礎入門)
Javaでなくディープラーニングに直接進みたい方は、Theanoや、その上に構築されたKerasやLasagneなどの様々なパイソンのフレームワークがおすすめです。
Java
プログラミングの基礎を学んだ後は、世界で最も広く普及したプログラミング言語Java、そしてHadoopの言語を学習するのがいいでしょう。
- Learn Java The Hard Way
- Javaのリソース
- Java Ranch(Javaの初心者向けのコミュニティー)
- プリンストン大学Javaのプログラミング入門
- Head First Java ―頭とからだで覚えるJavaの基本
- Java in a Nutshell
その他のリソース
我々が知っているディープラーニングの情報のほとんどは学術論文に含まれています。それらのリンクはこちらをご覧ください。
個々のコースでは教えられることが限られていますが、インターネットではその限界がありません。ほとんどの数学やプログラミングの疑問はGoogle検索やStackoverflow、Math Stackexchangeのサイトを検索すると回答が得られます。
