ラボの設定手順と要件
アカウントと進行状況を保護します。このラボを実行するには、常にシークレット ブラウジング ウィンドウとラボの認証情報を使用してください。

TensorFlow: Qwik Start

ラボ 20分 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

GSP637

Google Cloud セルフペース ラボのロゴ

概要

このラボでは、ML の基本的な「Hello World」を学びます。ここでは、Java や C++ などの言語で明示的なルールをプログラミングするのではなく、数値間の関係を特定するルールを推論するために、データを使ってトレーニングするシステムを構築します。

目標

このラボでは、次の方法について学びます。

  • Jupyter ノートブックでの開発環境の設定
  • ML モデルの設計
  • ニューラル ネットワークのトレーニング
  • モデルのテスト

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

はじめに

フィットネスをトラッキングするために、アクティビティを認識するシステムを構築する際の問題について考えてみましょう。人の移動速度を認識し、その速度に基づいて、以下の条件を使用してアクティビティを推論します。

if(speed<4){ status=WALKING; }
  • 以下の条件を使用して、対象をランニングに拡張します。
if(speed<4){ status=WALKING; } else { status=RUNNING; }
  • 同様に、以下の条件を使用してサイクリングも検出します。
if(speed<4){ status=WALKING; } else if(speed<12){ status=RUNNING; } else { status=BIKING; }
  • ここで、ゴルフのようなアクティビティを含めるとどうなるかを考えてみましょう。アクティビティを判別するルールの作成方法が複雑になります。
// 次のステップ

ゴルフのようなアクティビティを検出できるプログラム コードを作成するのは、非常に難しい作業です。

しかし、ML を使用することでこの問題を解決できます。

ML とは

前のセクションでは、ユーザーのフィットネス アクティビティを判別しようとしたときに問題が発生しました。ゴルフのようなアクティビティを検出するにはより複雑な条件が必要になりますが、多くのコードを書き込んでもできることには限りがあります。

次の図のように、従来の方法でアプリケーションを構築するとします。

従来型プログラミングの入力をルールとデータ、出力を回答とするフローを示す図

ルールはプログラミング言語で表現します。ルールがデータに適用されると、プログラムから回答が提供されます。アクティビティを検出する場合、回答を導き出すために、ルール(アクティビティの種類を定義するために書き込んだコード)がデータ(人の移動速度)に適用されます。回答とは、ユーザーのアクティビティ ステータス(ウォーキング中、ランニング中、サイクリング中など)を判別する関数の戻り値です。

ML でアクティビティを検出する場合も、軸が異なるだけで、プロセスは非常に似ています。

ML の入力を回答とデータ、出力をルールとするフローを示す図

ルールを定義し、それらをプログラミング言語で表現するのではなく、通常は「ラベル」と呼ばれる回答をデータとともに提供します。それを受け、機械が回答とデータの関係を特定するルールを推論します。たとえば、ML のコンテキストでは、アクティビティ検出のシナリオは次のようになります。

0 と 1 で表示された 4 つのラベル(ウォーキング、ランニング、サイクリング、ゴルフ)

大量のデータを収集し、ラベルを付けて、「このデータならウォーキング」、「このデータならランニング」というように分類します。コンピュータは、これによって特定のアクティビティを示す明確なパターンを特定するルールをデータから推論できるようになります。

ML は、このシナリオでプログラミングに代わる手法となるだけでなく、従来のルールベースのプログラミング アプローチでは実現できなかった可能性があるゴルフなどの新たなシナリオを切り開くことができます。

従来のプログラミングでは、通常、コードがプログラムと呼ばれるバイナリにコンパイルされます。ML では、データとラベルから作成するアイテムをモデルと呼びます。

再び下の図を見てみましょう。

ML の入力を回答とデータ、出力をルールとするフローを示す図

上の図の結果がモデルであり、実行時には下のように使用されます。

モデルの入力をデータ、出力を予測とするフローを示す図

モデルにデータを渡すと、モデルはトレーニングに基づいて推測したルールを使用して「このデータはウォーキングのようだ」「このデータはサイクリングのようだ」といった予測を行います。

このラボでは、あらゆる ML シナリオで使用できる要素で構成された、非常にシンプルな「Hello World」モデルを構築します。

タスク 1. Vertex AI Workbench でノートブックを開く

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[Vertex AI] > [ワークベンチ] の順にクリックします。

  2. インスタンスを見つけて、[JupyterLab を開く] ボタンをクリックします。

Workbench インスタンスの JupyterLab インターフェースが新しいブラウザタブで開きます。

注: JupyterLab にノートブックが表示されない場合は、次の追加手順でインスタンスを再設定してください。

1. JupyterLab のブラウザタブを閉じて、Workbench のホームページに戻ります。

2. インスタンス名の横にあるチェックボックスをオンにして、[リセット] をクリックします。

3. [JupyterLab を開く] ボタンが再度有効になったら、1 分待ってから [JupyterLab を開く] をクリックします。

TensorFlow と追加パッケージのインストール

  1. ランチャー メニューの [その他] から、[ターミナル] を選択します。

  2. ご利用の Python 環境が構成済みかどうかを確認します。次のコマンドをコピーしてターミナルに貼り付けます。

python --version

出力例:

Python 3.10.14
  1. 次のコマンドを実行して TensorFlow パッケージをインストールします。
pip3 install tensorflow
  1. pip3 をアップグレードするには、ターミナルで次のコマンドを実行します。
pip3 install --upgrade pip

Pylint は、Python コード内のエラーをチェックし、Python ソースコードの構文およびスタイル上の問題をハイライト表示するツールです。

  1. 次のコマンドを実行して pylint パッケージをインストールします。
pip install -U pylint --user
  1. requirements.txt ファイルを指定してラボに必要なパッケージをインストールします。
pip install -r requirements.txt

これで環境が設定されました。

タスク 2. 最初の ML モデルを作成する

以下の数値のセットについて考えてみましょう。数値間の関係にお気づきでしょうか?

X:

-1

0

1

2

3

4

Y:

-2

1

4

7

10

13

左から右に見ていくと、X 値は 1 ずつ増加し、対応する Y 値は 3 ずつ増加していることがわかります。つまり、関係は Y=3X に特定の値を足すか、引いた式になるはずです。

そこで、X が 0 であるときに、対応する Y の値が 1 であることに注目します。

これら 2 つの値から、関係は Y=3X+1 であることがわかります。

コードを使用してニューラル ネットワークと呼ばれるモデルをトレーニングし、データのパターンを見つけるプロセスは、上記とほぼ同じです。

データを使用して、ニューラル ネットワークをトレーニングしましょう。X と Y のセットを提供することで、それらの関係を特定できるようになります。

新しいノートブックの作成とライブラリのインポート

  1. ワークベンチの左側にある + アイコンをクリックして、新しいランチャーを開きます。

  2. ランチャー メニューの [ノートブック] から、[Python3] を選択します。

新しいノートブック ファイル

新しい Jupyter ノートブックが表示されます。Jupyter ノートブックの使用方法の詳細については、Jupyter Notebook Documentation をご覧ください。

  1. Cloud Logging の logginggoogle-cloud-logging をインポートして構成します。最初のセルに、以下のコードを追加します。
import logging import google.cloud.logging as cloud_logging from google.cloud.logging.handlers import CloudLoggingHandler from google.cloud.logging_v2.handlers import setup_logging cloud_logger = logging.getLogger('cloudLogger') cloud_logger.setLevel(logging.INFO) cloud_logger.addHandler(CloudLoggingHandler(cloud_logging.Client())) cloud_logger.addHandler(logging.StreamHandler())
  1. モデルのトレーニングと評価のために tensorflow をインポートします。使いやすさを考慮して、名前を tf にします。最初のセルに次のコードを追加します。
# TensorFlow をインポート import tensorflow as tf
  1. デバッグを目的としてデータを解析するため、numpy をインポートします。使いやすさを考慮して、名前を np にします。最初のセルに次のコードを追加します。
# numpy をインポート import numpy as np
  1. セルを実行するため、[実行] ボタンをクリックするか、Shift + Enter キーを押します。

  2. ノートブックを保存します。[ファイル] > [保存] をクリックします。ファイル名を model.ipynb にして、[OK] をクリックします。

注: 出力に含まれる警告は無視してかまいません。

データの準備

次に、モデルのトレーニングに使用されるデータを準備します。このラボでは、前に使用した 6 つの X と 6 つの Y を使用します。

X:

-1

0

1

2

3

4

Y:

-2

1

4

7

10

13

ご覧のように、X と Y の関係は Y=3x+1 であるため、たとえば X = 1 なら Y = 4 になります。

numpy という Python ライブラリでは配列型データ構造が多数提供されています。これは、事実上データ提供の標準の方式となっています。これらを使用するには、np.array([]) を使用し、numpy で値を配列として指定します。

  1. 2 つ目のセルに、以下のコードを追加します。
xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) ys = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float)

モデルの設計

このセクションでは、TensorFlow を使用してモデルを設計します。

ニューラル ネットワークと呼ばれる ML アルゴリズムを使用して、モデルをトレーニングします。できるだけシンプルなニューラル ネットワークを作成します。レイヤは 1 つで、そのレイヤに 1 つのニューロンがあります。ニューラル ネットワークの入力は、一度に 1 つの値のみです。そのため、入力の形状は [1] にする必要があります。

注: ニューラル ネットワークについては、このクエストの後のラボでより詳しく学習します。
  1. 2 つ目のセルに、以下のコードを追加します。
model = tf.keras.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])])

モデルのコンパイル

次に、ニューラル ネットワークをコンパイルするためのコードを書き込みます。ここでは、損失オプティマイザーの 2 つの関数を指定する必要があります。

ML で数学計算を数多く目にしてきた人なら、通常はここでそれを使用しますが、tf.keras を使用すれば数学計算を関数内にカプセル化できます。

  • 事前の検証により、数値の関係が y=3x+1 であることがわかっています。

  • この関係を学習しようとするコンピュータは、たとえば y=10x+10 と推測します。損失関数は、推測された回答を既知の正しい回答と比較し、推測の精度を測定します。

注: tf.keras で使用できるさまざまな種類の損失関数の詳細については、Module: tf.keras.losses ドキュメントをご覧ください。
  • 次に、モデルで、オプティマイザー関数を使用して推測が再実行されます。損失関数の結果に基づいて、損失の最小化が試行されます。この時点では、たとえば y=5x+5 と推測されます。この推測は依然として低い精度ですが、正しい結果に近づいています(損失が減少しています)。
注: tf.keras で使用できるさまざまな種類のオプティマイザーの詳細については、Module: tf.keras.optimizers ドキュメントをご覧ください。
  • モデルで、指定したエポックの数に達するまでこの処理が繰り返されます。
  1. 2 つ目のセルに次のコードを追加します。
model.compile(optimizer=tf.keras.optimizers.SGD(), loss=tf.keras.losses.MeanSquaredError())

上のコード スニペットでは、損失には mean_squared_error を、オプティマイザーには stochastic gradient descent (sgd) を使用するようモデルに指示しています。これらの数学計算を今すぐに理解する必要はありませんが、便利であることはお気づきになるでしょう。

注: さまざまなシナリオに適した損失関数とオプティマイザー関数については、今後学習していきます。

ニューラル ネットワークのトレーニング

ニューラル ネットワークをトレーニングして X と Y の関係を「学習」させるには、model.fit を使用します。

この関数により、推測、その精度(損失)の測定、オプティマイザーを使用した推論の再実行などのループでモデルをトレーニングします。指定したエポックの数(このラボでは 500)に達するまで、このプロセスが繰り返されます。

  1. 2 つ目のセルに次のコードを追加します。
model.fit(xs, ys, epochs=500)

上のコードでは、model.fit により、指定されたエポック数に達するまでモデルのトレーニングが繰り返されます。

注: model.fit の詳細については、tf.keras.Model ドキュメントの fit セクションをご覧ください。

この時点で、ファイルは次のようになります(コードは 2 つの異なるセルに含まれます)。

import logging import google.cloud.logging as cloud_logging from google.cloud.logging.handlers import CloudLoggingHandler from google.cloud.logging_v2.handlers import setup_logging cloud_logger = logging.getLogger('cloudLogger') cloud_logger.setLevel(logging.INFO) cloud_logger.addHandler(CloudLoggingHandler(cloud_logging.Client())) cloud_logger.addHandler(logging.StreamHandler()) import tensorflow as tf import numpy as np xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) ys = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float) model = tf.keras.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])]) model.compile(optimizer=tf.keras.optimizers.SGD(), loss=tf.keras.losses.MeanSquaredError()) model.fit(xs, ys, epochs=500)

コードの実行

スクリプトの準備ができました。実行してどうなるか見てみましょう。

  1. [実行] ボタンをクリックするか、Shift + Enter キーを押して、ノートブックの 2 つ目のセルを実行します。

  2. 出力を確認します。スクリプトで、各エポックの損失が出力されることを確認します。出力は、ここに示されているものと若干異なる可能性があります。

注: 値に e- が付いた数は、科学的記数法における負の指数を表しています。

エポックをスクロールすると、最初の数エポックでは損失値が非常に大きいものの、ステップごとに小さくなっていることがわかります。たとえば、次のようになります。

損失が徐々に減少するエポックの行。2 行目のエポックの損失は 52.1992、9 行目では 9.7403

トレーニングが進むと、損失が非常に小さくなります。

45 行目のエポックの損失は 0.0023、54 行目では 7.1057e-04

トレーニングが完了するまでに損失は極めて小さくなり、モデルによる数値間の関係の推論精度が非常に向上したことが示されています。

495 行目のエポックの損失は 5.4194e-08、500 行目では 4.8896e-08

おそらく 500 のエポックすべてを確認する必要はないので、別の値を試してみましょう。この例を見ると、損失は 50 エポックのみでも非常に小さくなるため、値は 50 で十分かもしれません。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 ML モデルを作成する

モデルの使用

これまで、X と Y の関係を学習するようモデルをトレーニングしました。

model.predict メソッドを使用すると、モデルのトレーニング中には出現しなかった X に対する Y を割り出すことができます。たとえば、X = 10 である場合の Y はどうなるでしょうか。

  1. 3 つ目のセルに次のコードを追加して、予測を行います。
cloud_logger.info(str(model.predict(np.array([10.0])))) 注: クラウドログを生成して進行状況を確認できるよう、予測結果を cloud_logger に渡します。
  1. Ctrl+S キーを押すか、[ファイル] -> [保存] をクリックして、ノートブックを保存します。

  2. 3 つ目のセルを実行するため、[実行] ボタンをクリックするか、Shift + Enter キーを押します。

Y 値がトレーニング ログ(エポック)の後に表示されます。

出力例:

Y 値は 31.005917

Y=31 になると予想していたかもしれません。しかし、実際はそれをわずかに上回る値(31.005917)でした。なぜでしょうか。

答え: ニューラル ネットワークは確率を扱います。X と Y の関係が Y=3X+1 である可能性が非常に高いと計算されました。しかし、6 つのデータポイントだけではその確証がありません。そのため、10 に対する結果は 31 に非常に近くなりますが、必ずしも 31 にはなりません。

ニューラル ネットワークでは、このパターンが繰り返されます。ほとんどの場合は確実性ではなく確率を扱うため、特に分類を行う場合は、確率に基づいて結果を割り出せるよう少しだけコーディングを行います。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。モデルの使用

お疲れさまでした

これで完了です。このラボでは、TensorFlow を使用して独自の ML モデルを作成、トレーニング、テストしました。

次のステップと詳細情報

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2025 年 10 月 7 日

ラボの最終テスト日: 2025 年 10 月 6 日

Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

Using an Incognito or private browser window is the best way to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.