現実世界の困難な課題を機械学習で解決しようとする人々を総合的にサポートするエコシステム
モデルの構築が簡単
TensorFlow では複数の抽象化レベルを提供しており、ニーズに合わせて最適なものを選択できます。高レベルの Keras API を使用してモデルの構築とトレーニングを行うと、TensorFlow や機械学習の経験がなくても簡単に始められます。
高い柔軟性を求める場合は、即座に反復が実行され、直感的なデバッグが可能な Eager Execution を利用できます。大規模な ML トレーニング タスクの場合は、モデル定義を変更せずにさまざまなハードウェア構成で分散トレーニングを行うことができる、Distribution Strategy API をご利用ください。
どこにでも構築できる強固な ML 本番環境
TensorFlow では、本番環境にすぐに移行できる手段をいつでも利用できます。TensorFlow を使用すれば、サーバーでもエッジデバイスでもウェブ上でも、モデルのトレーニングとデプロイを簡単に行うことができます。使用する言語もプラットフォームも関係ありません。
本番環境用の完全な ML パイプラインが必要な場合は TFX を、モバイル デバイスやエッジデバイスで推論を実行する場合は TensorFlow Lite をご利用ください。TensorFlow.js を使用すると、JavaScript 環境でモデルをトレーニングしデプロイすることができます。
研究を後押しする強力なテストツール
速さや性能を犠牲にすることなく、最先端のモデルを構築してトレーニングしましょう。TensorFlow は、複雑なモデルを作成するための Keras Functional API や Model Subclassing API などの機能と、高い柔軟性を備えています。プロトタイピングを簡素化し、デバッグを迅速に行いたい場合は、Eager Execution をご利用ください。
TensorFlow では、充実したアドオン ライブラリや実験に使用できるモデル(RaggedTensor、TensorFlow Probability、Tensor2Tensor、BERT など)が揃ったエコシステムもサポートしています。
企業による TensorFlow の活用例をご覧ください
機械学習の仕組み
ニューラル ネットワークの仕組みに興味があったり、ML の問題を解決するための手順を知りたいと思ったことがある方のために、疑問にお答えする学習コースをご用意しました。以下で、機械学習の基礎をごく簡単にご紹介します。詳しい内容については、TensorFlow の教育ページで、初心者および上級者向けコンテンツをご覧ください。
機械学習の概要
機械学習(ML)とは、明示的なプログラミングや規則がない状態でソフトウェアがタスクを実行できるようにするための手法です。従来のコンピュータ プログラミングでは、コンピュータが使用すべき規則をプログラマーが指定します。しかし、機械学習では別の考え方が必要です。実際の機械学習では、コーディングよりもデータ分析にかなりの重点を置きます。プログラマーは一連の例を提供し、コンピュータはそのデータからパターンを学習します。つまり、機械学習は「データを使ったプログラミング」と考えることができます。
ML の問題を解決するためのステップ
機械学習でデータから回答を得るプロセスには、複数のステップがあります。各ステップの概要については、こちらのガイドをご確認ください。ガイドでは、テキスト分類の完全なワークフローを示すとともに、データセットの収集や、TensorFlow によるモデルのトレーニングと評価などの重要な手順について説明しています。
ニューラル ネットワークの構造
ニューラル ネットワークは、パターン認識のトレーニングができるモデルの一種です。入力レイヤと出力レイヤを含む複数のレイヤと、少なくとも 1 つの隠しレイヤで構成されています。各レイヤのニューロンは、レベルの異なるデータの抽象表現を学習します。たとえばこの略図では、それぞれのニューロンが線、形、テクスチャを検出していることがわかります。これらの表現(つまり学習された特徴)によって、データを分類できるようになります。
ニューラル ネットワークのトレーニング
ニューラル ネットワークは、勾配降下法を使ってトレーニングします。各レイヤの重みはランダムな値で始まり、ネットワークの精度が向上するように、時間とともに繰り返し改善されていきます。ネットワークの不正確さを定量化するために損失関数が使用され、損失を減らすために各重みの増減を決定する目的で「誤差逆伝播法」と呼ばれる手法が用いられます。
コミュニティ
TensorFlow コミュニティは、デベロッパーや研究者のほか、明確なビジョンを持った人、新しいことにチャレンジしたい人、問題解決を目指す人などが参加する、アクティブなグループです。コミュニティでは、一員となって協力していただける方や、ご自分のアイデアを共有したいという方のご参加をいつでもお待ちしています。