ハンズオンで分かりやすく学べる Google Cloud実践活用術 AI・機械学習編




【2021最新 -Google Cloud Platformおすすめ本 – 独学での勉強にも!】も確認する

はじめに

何もインストールされていない素の仮想コンピューターや仮想ネットワークの上に自分で構築するといったクラウドの使い方は時代遅れになってきました。用意されているさまざまなサービスをいかに組み合わせて、短期間で目的のシステムを構築できるのかが重要視されています。
Google Cloud (旧名称Google Cloud Platform=GCP)にはさまざまなサービスがあり、これらを活用することで、開発・運用・保守の短縮化・低コスト化・安定化が可能です。

本書は、2巻構成でGoogle Cloudの「AI・機械学習」「ビッグデータ」「コンテナ」の機能と使い方を解説します。本巻ではこの中で「AI・機械学習」に焦点を当てます。AI・機械学習は自分で一から作るのが困難な分野です。モデルを構築するのに専門知識が必要なだけでなく、数多くのデータを用意したり、それを学習させたりと、大変な労力がかかります。しかしGoogle CloudのAI・機械学習サービスを使えば、こうした複雑さを解決できます。すでに学習済みのモデルを使うことはもちろん、推論によって、データから最適なモデルを自動で作ることもできます。

本巻では、Google Cloudが提供するさまざまなAI・機械学習のサービスを使うことで、ブラウザから操作したり、APIを呼び出したりするだけで、「音声認識」「将来予測」「顧客のグループ化」の3つの課題を実際に解決していく具体的な方法を示します。
すべての課題はハンズオン形式。AI・機械学習というと学習のためのデータを用意するところが大きな壁になりますが、本巻では、Google Cloudでビッグデータとして提供されているサンプルデータを利用することで、実際に試せる構成としました。
実際にやってみると、 複雑なAI・機械学習が、ほとんどコードを書くことなく実現できることに、きっと驚かれるでしょう。
必要なのは、Google Cloudアカウントを作成することだけ。90日間無料で試せます。 是非、皆さん体験して、Google Cloudの手軽さを味わってください。
なお、本書は日経クロステックに連載されたグーグルの技術者による記事を基に、最新のサービスに合わせてハンズオンを構成しています。「AI・機械学習編」のオリジナルの執筆陣はグーグル・クラウド・ジャパンの脇阪洋平氏、葛木美紀氏、吉川隼人氏でした。
筆者代表 大澤 文孝
2021年4月

ランキングも確認する
出典:出版社HP

目次

第1章 Google Cloudの基本
1.1 Google Cloudの利点
1.1.1 アンマネージドサービスとマネージドサービス
1.1.2 マネージドサービスの活用
1.2 Google Cloudの考え方
1.2.1 リソースとサービス
1.2.2 組み合わせて使われる基本的なサービス
1.2.3 プロジェクトとサービスとの関係
1.2.4 リージョンとゾーン
1.3 Google Cloudを使うには
1.3.1 事前準備
1.3.2 90日間300ドル分無料トライアルの登録
コラム 間違えて閉じてしまったときは
コラム 有料アカウントにアップグレードするには
1.4 プロジェクトの作成
1.4.1 プロジェクトを作成する
1.4.2 プロジェクトの切り替え
1.5 APIの有効化と認証情報
1.5.1 APIの有効化
1.5.2 認証情報
1.6 Cloud Shell
1.6.1 Cloud Shellとは
1.6.2 Cloud Shellを使うには
コラム エディタ機能とファイルのアップロード/ダウンロード機能
コラム Cloud Shellの初期化
1.7 プロジェクトの削除

第2章 AI・機械学習サービスの概要
2.1 3種類のAPI
2.2 機械学習API
2.2.1 画像に関する機械学習API
2.2.2 音声に関する機械学習API
2.2.3 自然言語に関する機械学習API
2.3 Cloud AutoML
2.3.1 Cloud AutoMLの動き
2.3.2 Cloud AutoMLで提供されるサービス
2.4 Al Platform
2.4.1 AI Hub
2.4.2 Al Platform Notebooks
2.4.3 Al Platform Training
2.4.4 Al Platform Prediction
2.4.5 Al Platform Pipelines
2.4.6 Cloud TPU
2.5 アイデアを気軽に試せるGooale Cloud

第3章 Cloud Speech-to-Text APIを体験する
3.1 音声認識の方法とデータソース
3.1.1 短い音声ファイルの音声認識
3.1.2 長い音声ファイルの音声認識
3.1.3 ストリーミング入力の音声認識
3.2 Cloud Speech-to-Text APIを利用するための準備
コラム Google Colaboratoryについて
3.3 プロジェクトの作成とAPI利用のための準備
3.3.1 利用するAPIを有効化する
3.3.2 サービスアカウントを作成する
3.3.3 サービスアカウントキーの作成とダウンロード
3.4 Google Colaboratoryの準備
3.4.1 Google Colaboratoryから接続するGoogleドライブの準備
3.4.2 Google Colaboratoryで新規ノートブックを作る
3.4.3 ライブラリのインストール
3.4.4 Googleドライブのマウント
コラム Google Colaboratoryの操作
3.4.5 サービスアカウントキーを環境変数に設定する
3.5 Googleドライブに置いたファイルを変換する例
3.5.1 音声ファイルの準備
コラム LINEAR16形式が正しいかどうかを試す
3.5.2 Gooaleドライブの音声ファイルをテキスト変換するプログラムの例
コラム よくあるエラーへの対処法
コラム Cloud Speech-to-Text APIのサンプル
コラム 開発PCやサーバーなどGoogle Colaboratory環境以外で実行するには
3.6 Cloud Storageに置いたファイルを変換する例
3.6.1 音声ファイルをCloud Storageに配置する
3.6.2 Cloud Storageに置いたファイルを変換するプログラム
コラム 後始末
3.7 Cloud Speech-to Text APIのまとめ

第4章 Cloud AutoMLで機械学習を体験する
4.1 AutoMLの特徴と活用できる場面
4.2 AutoML Tablesを使ってタクシーの乗車料金を予測する例
4.4.1 プロジェクトの作成とAPIの有効化
4.4.2 データセットにデータをインポートする
4.4.3 モデルを作成してトレーニングする
4.4.4 モデルの精度を評価する
4.4.5 決定係数を確認する
4.4.6 Feature Importanceを確認する
4.4.7 トレーニング状況を確認する
4.3 モデルをデプロイする
コラム オンライン予測とバッチ予測
4.4 予測を実行する
4.4.1 予測の実行
4.4.2 結果の考察
コラム後始末
4.5 Cloud AutoMLのまとめ

第5章 BiaQuery MLで機械学習を体験する
5.1 BigQuery MLが対応するモデルと機能
5.2 Googleアナリティクスの訪問データから顧客をグループ化する例
5.2.1 プロジェクトの作成
5.2.2 分析するWebサイト訪問データの準備
コラム 「標準SQL」と「レガシーSQL」
5.3 モデルを作成してトレーニングする
5.4 モデルの精度を評価する
5.4.1 学習状態の確認
5.4.2 評価の確認
5.5 モデルを使って予測する
コラムデータポータルで調べる
コラム後始末
5.6 AutoML TablesとBigQuery MLの使い分け

第6章 Cloud AIの導入・運用時に心得ておくべきこと
6.1 機械学習プロジェクトの流れ
6.2 製造業での活用事例
6.2.1 外観検査に機械学習を導入する
6.2.2 AutoML Visionを用いた外観検査のシステム構成例
6.2.3 学習に使うデータセットを管理する
6.2.4 出来上がったモデルをエッジ向けに保存する
6.3 まとめAppendix A Cloud Storageのバケットを作成する
コラム コマンドでバケットを作成する

本書は執筆時点の情報に基づいており、お読みになったときには変わっている可能性があります。また、本書を発行するにあたって、内容に誤りのないよう、できる限りの注意を払いましたが、本書の内容を適用した結果生じたこと、また、適用できなかった結果について、著者、監修者、出版社ともに一切の責任を負いませんのでご了承ください。

Chapter 1

第1章 Google Cloud の基本
Google Cloudは、Googleが提供するクラウドサービスです。この章では、Google Cloudの概要や特徴、そして、本書を読み進めるに当たって必要となるGoogle Cloudアカウントの作り方や基本操作について説明します。

1.1 Google Cloudの利点
Google Cloudとは、Googleが提供するクラウドサービスの総称です。仮想コンピュータやストレージ、ネットワークなど、さまざまなサービスをクラウド上に自在に構築して、時間や容量単位での「使っただけの支払い」で利用できます。
Google Cloudを利用するのに必要なのは、ChromeなどのWebブラウザだけです。仮想コンピュータの作成や起動、Google Cloud上での仮想的なネットワークの構築などは、すべて、ブラウザから行えます(図 1-1)。
[メモ] Google Cloudは、操作するためのAPIを公開しているため、ブラウザ以外に、純正のコマンドラインツール(gcloudコマンド)、サードパーティ製の各種ツールなどを使っても操作できます。

図1-1 Google Cloud はすべてブラウザから操作できる

 

1.1.1 アンマネージドサービスとマネージドサービス
Google Cloudには、「仮想サーバー」や「ディスク」、「ネットワーク」など、いわゆるインフラ環境で 用いる素のサービスと、「ストレージ」「データベース」「ビッグデータの分析」「機械学習」「ゲームサーバー」など、あらかじめ初期設定や構成が済んだものを貸し出すサービスとがあります。
前者を「アンマネージドサービス」、後者を「マネージドサービス」と言います。マネージド(managed) とは、「管理されている」という意味で、Google Cloudによって運用・管理されているもののことです(図 1-2)。

 


図1-2 アンマネージドサービスとマネージドサービス

ブラウザ操作やAPI呼び出しですぐに使える
アンマネージドサービスの場合、Google Cloudが用意するのはインフラとなる機器だけなので、それらを構成(仮想的に接続)したり、ソフトウエアをインストールしたりするのはユーザーの仕事です。対してマネージドサービスの場合は、必要な機能のインストールが終わった状態で、すぐに使えます。
マネージドサービスのほとんどは、Webブラウザからの操作やAPIからの呼び出しに対応しています。例えば、「ブラウザからストレージに対してファイルのアップロードやダウンロードをする」「翻訳したいテキストをAPIで送信すると、結果が戻ってくる」などです。
こうしたマネージドサービスを使うと、本来なら、自分でセットアップしたりバージョンアップしなければならないところを、Google Cloudに任せられるのです。

1.1.2 マネージドサービスの活用
Google Cloudを利用するとき、可能な限り運用・管理を任せられるマネージドサービスを活用するのが理想です。そうすれば、高度な機能を少しの開発で実現できるからです。
本書では、こうしたマネージドサービスを使って、さまざまな開発をしていく手法を解説します。

機械学習 機械学習を使うには、目的の予測結果が出るような「機械学習モデル」を作る必要があります。そしてモデルを作ったあとは、物事を覚え込ませる「学習」という作業が必要です。例えば、画像から「車」や「ネコ」 などの物体検出をしたい場合、物体検出できる機械学習モデルを作ったうえで、そのモデルに対して、あらかじめ、「車」や「ネコ」の大量の写真を学習させておかなければなりません。
Google Cloudの機械学習サービスでは、「すでに学習済みのモデル」が多数、提供されています。そのためユーザーが学習という操作をしなくても、分析したい画像データを送るだけで、結果がすぐにわかります。
画像ならともかく、「翻訳」や「音声認識」といった、もっと多くの学習が必要となる場合、自力で作るのは相当難しいのが実情です。しかしGoogle Cloudなら、「翻訳のAPI」「音声認識のAPI」が、マネージドサービスとして提供されているため、それらを呼び出すだけで、手軽に機械学習を活用できます。
もちろん、ときにはカスタムな学習をしなければならないこともあります。その場合でもクラウドなので、学習に必要な計算リソースを必要に応じて増減できます。短時間で学習させたいなら、(お金はかかりますが)高性能なコンピュータをたくさん使って解決することもできるのです。

ビッグデータ
例えばビッグデータを扱う場合、巨大なストレージを用意し、分析基盤を自ら用意するのは大変です。しかしGoogle Cloudなら、BigQueryというマネージドサービスを使うことで、簡単にビッグデータを操作できます。
データのバックアップやストレージが不足したときの増強などについて考える必要はありません。これらはGoogle Cloudが自動でスケールしてくれます。

コンテナ運用
また負荷分散のために、複数台のサーバーを運用するような場合、サーバー1台1台を管理するのはたいへんです。そこで近年は、コンテナ化してKubernetesのようなオーケストレーションツールで運用するのが主流です。
しかしKubernetes自体を管理するのがなかなか大変です。Google Cloudなら、Kubernetesをマネージドサービスとして提供してくれるGKE (Google Kubernetes Engine)というマネージドサービスがあり、それを使うことで運用・管理の手間を省き、かつ、安定した運用ができます。

1.2 Google Cloudの考え方
本書を読み進めるにあたって必要となる、Google Cloudに関する最低限の知識・考え方を、ここで説明します。

1.2.1 リソースとサービス
Google Cloud上には、数多くのコンピュータやディスク、そして、仮想化技術を用いた仮想コンピュータや仮想ネットワークなど、さまざまな各種リソースが存在し、データセンター上で運用されています。
こうした基本的なリソースを利用するソフトウエアを組み合わせ、「仮想マシン」「仮想ストレージ」「データベース」「ビッグデータ」「機械学習」など、特定の機能として利用できるようにしたものが「サービス」です。
Google Cloudプロダクトのページを見るとわかるように、Google Cloudには、さまざまなサービスが提供されています。開発者は、これらのサービスを組み合わせることで、自身で一つずつソフトウエアをインストールして構成して運用することなく、高度なシステムを実装できます(図1-3)。
【Google Cloudプロダクト】 https://cloud.google.com/products

図1-3 Google Cloud プロダクト

1.2.2 組み合わせて使われる基本的なサービス
Google Cloudには、システムを構築する際、よく使われる基本的なサービスが、いくつかあります。細かい部分はさておき、Google Cloudを始めるに当たっては、それぞれの意味や役割、そして、略語を知っておくと役立ちます。
1. Google Compute Engine (GCE)
仮想マシンです。LinuxやWindows ServerなどのOSをインストールし、さまざまなソフトウエアを稼働させるのに使います。「1.6 Cloud Shell」で説明するCloud Shellの機能は、この仮想マシンの一種です。
2. Google Virtual Private Cloud (VPC)
仮想ネットワークです。GCEなどのリソースを接続するネットワークです。
3. Google Cloud Storage (GCS)
汎用ストレージです。各種サービスのデータを保存するときに使います。たとえば、各種ログの出力先、機械学習の学習データの置き場、BigQueryとやりとりするデータの置き場などとして、よく使われます。
4. BigQuery
ビッグデータを保存したり分析したりするサービスです。いくつかのデモ用のデータも登録されていて、例えば機械学習で、デモ用のデータを読み込んで処理させたいときなどにも使います。

ランキングも確認する
出典:出版社HP