ML Community Day is November 9! Join us for updates from TensorFlow, JAX, and more Learn more

TensorFlow を用いた理論的かつ高度な機械学習

以下の学習教材を開始する前に、次のことを確認してください。

  1. TensorFlow を使用した機械学習の基礎のカリキュラムを完了するか、同等の知識を持っていること。

  2. ソフトウェア開発(特に Python)の経験があること。

これは、次のような目標を持つ方が学習を開始するのに最適なカリキュラムです

  1. ML に関する理解を深める。

  2. TensorFlow の文献を読み、実装に取り組む。

You should already have background knowledge of how ML works or completed the learning materials in the beginner curriculum Basics of machine learning with TensorFlow before continuing. The below content is intended to guide learners to more theoretical and advanced machine learning content. You will see that many of the resources use TensorFlow, however, the knowledge is transferable to other ML frameworks.

To further your understanding of ML, you should have Python programming experience as well as a background in calculus, linear algebra, probability, and statistics. To help you deepen your ML knowledge, we have listed a number of recommended resources and courses from universities, as well as a couple of textbooks.

ステップ 1: 数学の概念を復習する

ML では数学が大きな比重を占めます。そのため ML モデルを変更したり、新しいモデルをゼロから構築する場合は、基礎となる数学の概念に精通していることが非常に重要です。だからと言って、前もって数学を完璧にマスターする必要はありません。なじみのない概念に出くわしたら、調べれば良いのです。数学を学んだことがあるものの、それから時間が経っている場合は、3blue1brown の Essence of linear algebra および Essence of calculus の再生リストを視聴すると、知識を再確認できます。また、大学のコースを受講するか、MIT の Linear AlgebraSingle Variable Calculus のようなオープン アクセス講義をご覧になることをおすすめします。

Essence of Linear Algebra
by 3Blue1Brown

マトリックス、行列式、固有値などを、幾何学の観点から視覚的に学べる 3blue1brown の短い動画シリーズ。

Essence of Calculus
by 3Blue1Brown

3blue1brown の短い動画シリーズでは、微積分の基礎を視覚的に説明しています。方程式の仕組みだけでなく、基本となる定理をしっかりと理解できます。

MIT 18.06: Linear Algebra

MIT が提供するこの入門コースでは、行列理論と線形代数を学ぶことができます。連立方程式、ベクトル空間、行列式、固有値、相似、正定値行列など、他の分野でも役に立つトピックが重点的に取り上げられています。

MIT 18.01: Single Variable Calculus

MIT が提供するこの微積分学の入門コースでは、1 変数関数の微分と積分および応用を学びます。

ステップ 2: コースや書籍でディープ ラーニングに関する理解を深める

ディープ ラーニングについて理解する必要のある事柄を 1 つのコースだけですべて学ぶことはできません。そのため、複数のコースを同時に受講することをおすすめします。教材には重複する部分があるものの、複数のインストラクターがさまざまな方法で概念を説明してくれるので、特にトピックが複雑な場合に役立ちます。以下は、まずはじめに学習することをおすすめするコースです。複数のコースを並行して学習することも、自分に最も合ったコースを 1 つ選んで学習することもできます。

学習を重ね、実践を通じて理解を深めるにつれて、独自の ML モデルをより巧みに構築し、評価できるようになります。

以下のコースを受講してください。

MIT course 6.S191: Introduction to Deep Learning is an introductory course for Deep Learning with TensorFlow from MIT and also a wonderful resource.

Andrew Ng's Deep Learning Specialization at Coursera also teaches the foundations of deep learning, including convolutional networks, RNNS, LSTMs, and more. This specialization is designed to help you apply deep learning in your work, and to build a career in AI.

MIT 6.S191: Introduction to Deep Learning

MIT 提供のこのコースでは、ディープ ラーニングのアルゴリズムに関する基礎知識を習得して、TensorFlow でニューラル ネットワークを構築する実践演習を受けることができます。

Deep Learning Specialization

5 つのコースでは、ディープ ラーニングの基礎を学び、ニューラル ネットワークを構築する方法を理解できます。また、機械学習プロジェクトを成功に導き、AI の分野でキャリアを築く方法を学ぶことができます。理論の習得だけではなく、理論が実際のビジネスにどのように適用されているのかを知ることができます。

⬆ また ⬇ 下記の書籍を読む:

上記のコースの学習内容を補うために、以下に挙げた書籍で理解を深めることをおすすめします。それぞれの書籍には、練習に役立つ補足資料が掲載されており、オンラインで入手可能です。

まずは、Ian Goodfellow、Yoshua Bengio、Aaron Courville による著書『Deep Learning: An MIT Press Book』から読み始めることをおすすめします。『Deep Learning』は学生の理解を深めることを目的にした高度なリソースです。この書籍のウェブサイトでは、演習問題、講義スライド、訂正箇所、そのほか学んだ概念を実践的に練習できるリソースなど、さまざまな補足資料をオンラインで利用できます。

また、Michael Nielsen によるオンライン ブック Neural Networks and Deep Learning もご覧いただけます。この書籍では、ニューラル ネットワークの理論的背景を学ぶことができます。この書籍では TensorFlow は使用されていないものの、さらに知識を深めたい方向けのリファレンスとして最適です。

Deep Learning
by Ian Goodfellow, Yoshua Bengio, and Aaron Courville

このディープ ラーニングの教科書は、機械学習に携わる学生や技術者の方が、機械学習全般、特にディープ ラーニング分野の学習を一から始めるためのリソースです。

Neural Networks and Deep Learning
by Michael Nielsen

この書籍では、ニューラル ネットワークの理論的背景を学ぶことができます。TensorFlow は使用されていないものの、さらに知識を深めたい方向けのリファレンスとして最適です。

ステップ 3: TensorFlow の文献を読み、実装に取り組む

At this point, we recommend reading papers and trying the advanced tutorials on our website, which contain implementations of a few well known publications. The best way to learn an advanced application, machine translation, or image captioning, is to read the paper linked from the tutorial. As you work through it, find the relevant sections of the code, and use them to help solidify your understanding.