動かして学ぶAI・機械学習の基礎

―TensorFlowによるコンピュータビジョン、自然言語処理、時系列データの予測とデプロイ

[cover photo]
TOPICS
Data Science
発行年月日
PRINT LENGTH
384
ISBN
978-4-87311-980-9
原書
AI and Machine Learning for Coders
FORMAT
Print PDF EPUB
Ebook
3,960円
Ebookを購入する
Print
3,960円

人工知能研究の第一人者であるAndrew Ngとともに、TensorFlowの開発と普及に尽力し、Coursera教材を共同で作成したり、人気の高い講座をいくつも担当するなど、機械学習の教育に長年携わってきた著者による、とてもわかりやすい実践的な入門書です。AIや機械学習の初学者がゼロから学んでいけるように、コードをステップバイステップで解説し、Google Colabで実際に動かしながら理解を深める実践的なアプローチを取っています。Web、モバイル、クラウド、組み込み向けの豊富な具体例を通して、TensorFlowの基本知識、モデル構築の勘所、画像からの特徴量検出、自然言語処理、公開データの活用、モデルを使用するAndroidやiOSアプリの作成、Webおよびクラウド上へのモデルのデプロイといった実践的な知識とテクニックを習得できます。

目次

序文
はじめに

第Ⅰ部 モデルの構築

1章 TensorFlowの概要
    1.1 機械学習とは
    1.2 従来のプログラムの限界
    1.3 プログラミングから学習へ
    1.4 TensorFlowとは
    1.5 TensorFlowの使用方法
        PythonへのTensorFlowインストール
        PyCharmへのTensorFlowインストール
        Google ColabへのTensorFlowインストール
    1.6 機械学習の始め方
        学習した内容の確認
    1.7 まとめ

2章 コンピュータビジョン入門
    2.1 衣類の認識
        Fashion MNISTデータ
    2.2 視覚のためのニューロン
    2.3 ニューラルネットワークの設計
        コード全体
    2.4 ニューラルネットワークの学習
    2.5 モデル出力の調査
    2.6 学習回数の増加―過剰適合の発見
    2.7 学習の停止
    2.8 まとめ

3章 基礎からの発展: 画像の特徴量検出
    3.1 畳み込み
    3.2 プーリング
    3.3 畳み込みニューラルネットワークの実装
    3.4 畳み込みネットワークの調査
    3.5 馬と人間を識別するCNNの構築
        馬と人間データセット
        Keras ImageDataGenerator馬と人間データセットに対するCNNアーキテクチャ
        馬と人間モデルを検証する
        馬と人間画像のテスト
    3.6 画像拡張
    3.7 転移学習
    3.8 多クラス分類
    3.9 ドロップアウト正則化
    3.10 まとめ

4章 TensorFlow Datasetsを使った公開データセットの利用
    4.1 TFDS入門
    4.2 TFDSによるKerasモデルの使用方法
        特定バージョンの読み込み
    4.3 データ拡張のためのマッピング関数の使用
        TensorFlowアドオンの使用
    4.4 カスタム分割の使用
    4.5 TFRecordを理解する
    4.6 TensorFlowでデータを管理するためのETLプロセス
        ロードの最適化
        ETL並列化による学習性能の向上
    4.7 まとめ

5章 自然言語処理入門
    5.1 言語の数値化
        トークン化入門
        文からシーケンスへの変換
    5.2 ストップワードの削除とテキストのクリーニング
    5.3 実データソースの操作
        TensorFlowデータセットからのテキストの取得
        CSVファイルからのテキスト取得
        JSONファイルからのテキスト取得
    5.4 まとめ

6章 埋め込みによる感情のプログラム化
    6.1 単語から意味を求める
        簡単な例:正か負か
        ベクトルについて深掘り
    6.2 TensorFlowの埋め込み
        埋め込みを使用した皮肉検出器の構築
        言語モデルにおける過剰適合の軽減
        モデルを使った文の分類
    6.3 埋め込みの可視化
    6.4 TensorFlow Hubの事前学習済み埋め込みの使用
    6.5 まとめ

7章 自然言語処理のための回帰型ニューラルネットワーク
    7.1 回帰の基礎
    7.2 回帰性の拡張による言語への適用
    7.3 RNNを使用したテキスト分類器の作成
        スタックLSTM
    7.4 RNNにおける事前学習された埋め込みの使用
    7.5 まとめ

8章 TensorFlowによるテキストの生成
    8.1 シーケンスから入力シーケンスへの変換
    8.2 モデルの作成
    8.3 テキストの生成
        次の単語の予測
        予測の組み合わせによるテキスト生成
    8.4 データセットの拡張
    8.5 モデルアーキテクチャの変更
    8.6 データの改善
    8.7 文字ベースエンコーディング
    8.8 まとめ

9章 シーケンスと時系列データの理解
    9.1 時系列の共通点
        トレンド(trend)
        季節性(seasonality)
        自己相関(autocorrelation)
        ノイズ(noise)
    9.2 時系列を予測する技術
        ベースラインを作成するための単純な予測
        予測正解率の測定
        多少複雑な手法:移動平均を使った予測
        移動平均分析の改善
    9.3 まとめ

10章 シーケンスを予測するモデルの作成
    10.1 ウィンドウデータセットの作成
        ウィンドウ版の時系列データセット作成
    10.2 シーケンスデータに適合するDNNの作成と学習
    10.3 DNNの結果評価
    10.4 全体的な予測結果の検討
    10.5 学習率の調整
    10.6 KerasTunerを使用したハイパーパラメータの調整
    10.7 まとめ

11章 畳み込みと回帰によるシーケンスモデルの構築
    11.1 シーケンスデータの畳み込み
        畳み込みのコード化
        Conv1Dハイパーパラメータに対する実験
    11.2 NASA気象データ
        PythonへのGISSデータの読み込み
    11.3 シーケンスモデルにRNNを使用する
        より大きなデータセットの調査
    11.4 その他の回帰型層
    11.5 ドロップアウトの使用
    11.6 双方向RNNの使用
    11.7 まとめ

第Ⅱ部 モデルの使用

12章 TensorFlow Liteの紹介
    12.1 TensorFlow Liteとは
    12.2 ウォークスルー:モデル作成とTensorFlow Liteモデルへの変換
        ステップ1:モデルの保存
        ステップ2:変換
        ステップ3:TFLiteモデルの読み込みと、テンソルの割り当て
        ステップ4:予測の実行
    12.3 ウォークスルー:画像分類器の転移学習とTensorFlow Liteへの変換
        ステップ1:モデルの構築と保存
        ステップ2:モデルをTensorFlowLiteに変換
        ステップ3:モデルの最適化
    12.4 まとめ

13章 AndroidアプリでTensorFlow Lite
    13.1 Android Studioの紹介
    13.2 初めてのTensorFlow Lite Androidアプリ
        ステップ1:新しいAndroidプロジェクトの作成
        ステップ2:レイアウトファイルの修正
        ステップ3:TensorFlow Liteの依存関係を追加
        ステップ4:TensorFlow Liteモデルの追加
        ステップ5:TensorFlow Liteで推論を行うためのactivityコードの記述
    13.3 Hello Worldからの脱却―画像処理
    13.4 TensorFlow Liteサンプルアプリ
    13.5 まとめ

14章 iOSアプリでTensorFlow Lite
    14.1 Xcodeによる初めてのTensorFlow Liteアプリ
        ステップ1:簡単なiOSアプリの作成
        ステップ2:プロジェクトにTensorFlow Liteを追加
        ステップ3:ユーザインターフェイスの作成
        ステップ4:推論モデルクラスの追加と初期化
        ステップ5:推論の実行
        ステップ6:アプリへモデルを追加
        ステップ7:UIロジックの追加
    14.2 Hello Worldからの脱却―画像処理
    14.3 TensorFLow Liteサンプルアプリ
    14.4 まとめ

15章 TensorFlow.jsの紹介
    15.1 TensorFlow.jsとは
    15.2 Brackets IDEのインストールと起動
    15.3 初めてのTensorFlow.jsモデル作成
    15.4 アイリス分類器
    15.5 まとめ

16章 TensorFlow.jsによるコンピュータビジョンのためのコーディング技法
    16.1 TensorFlow開発者のためのJavaScript考慮点
    16.2 JavaScriptによるCNNの構築
    16.3 可視化のためのコールバック
    16.4 MNISTデータセットの学習
    16.5 画像の推論をTensorFlow.jsで実行
    16.6 まとめ

17章 Pythonモデルの再利用とJavaScriptへの変換
    17.1 PythonモデルのJavaScriptへの変換
        変換済みモデルの使用
    17.2 事前変換済みJavaScriptモデルの使用
        攻撃的テキスト(Toxicity Text)分類器
        MobileNetを使用したブラウザの画像分類
        PoseNetの使用
    17.3 まとめ

18章 JavaScriptでの転移学習
    18.1 MobileNetの転移学習
        ステップ1:MobileNetのダウンロードと、使用する層の特定
        ステップ2:独自のモデルアーキテクチャを作成し、MobileNetの出力を入力とする
        ステップ3:データの収集とフォーマット
        ステップ4:モデルの学習
        ステップ5:モデルを使用した推論の実行
    18.2 TensorFlow Hubからの転移学習
    18.3 TensorFlow.orgモデルの使用
    18.4 まとめ

19章 TensorFlow Servingへのデプロイ
    19.1 TensorFlow Servingとは
    19.2 TensorFlow Servingのインストール
        Dockerを使用したインストール
        Linuxへ直接インストール
    19.3 モデルの構築と提供
        サーバ構成の確認
    19.4 まとめ

20章 AI倫理、公平性、プライバシー
    20.1 プログラミングにおける公平性
    20.2 機械学習の公平性
    20.3 公平性のためのツール
        What-Ifツール
        ファセット
    20.4 連合学習
        ステップ1:学習に利用できるデバイスの特定
        ステップ2:学習に適したデバイスの特定
        ステップ3:学習セットに学習可能なモデルをデプロイ
        ステップ4:学習結果をサーバに返却
        ステップ5:新しいマスターモデルをクライアントにデプロイ
        連合学習とセキュアアグリゲーション
        TensorFlow Federatedによる連合学習
    20.5 GoogleのAI基本理念
    20.6 まとめ

索引