初めてのTensorFlow.js

―JavaScriptで学ぶ機械学習

[cover photo]
TOPICS
Web , JavaScript
発行年月日
PRINT LENGTH
368
ISBN
978-4-87311-993-9
原書
Learning TensorFlow.js
FORMAT
Print PDF EPUB
Ebook
3,960円
Ebookを購入する
Print
3,960円

TensorFlow.jsの待望の入門書。TensorFlow.jsはGoogleが開発したオープンソースのJavaScriptライブラリです。JavaScriptで機械学習したければ選択肢はTensorFlow.jsだけと言っても過言ではありません。本書では、JavaScriptエンジニアやAIエキスパートを対象に、サンプルを使った実践的なアプローチでTensorFlow.jsの基礎から応用までを解説します。読者はウェブ開発者という立ち位置を変えずにJavaScriptとブラウザで学べます。JavaScriptでAIを活用しようと真剣に考えているエンジニアにお勧めです。

関連ファイル

目次

賞賛の声
序文
訳者まえがき
まえがき

1章 AIは魔法
    1.1 JavaScriptを用いたAIへの道
    1.2 知能とは何か?
    1.3 AIの歴史
    1.4 ニューラルネットワーク
    1.5 今日のAI
    1.6 なぜTensorFlow.jsなのか?
        1.6.1 手厚いサポート
        1.6.2 オンラインで利用可能
        1.6.3 オフラインで利用可能
        1.6.4 プライバシー
        1.6.5 多様性
    1.7 機械学習の種類
        1.7.1 簡単な定義:教師あり学習
        1.7.2 簡単な定義:教師なし学習
        1.7.3 簡単な定義:半教師あり学習
        1.7.4 簡単な定義:強化学習
        1.7.5 情報の洪水
    1.8 AIは遍在する
    1.9 フレームワークによって提供されるもの
        1.9.1 モデルとは何か?
    1.10 本書について
        1.10.1 関連するコード
        1.10.2 章の構造
        1.10.3 一般的なAI/ML用語集
    1.11 まとめ
        1.11.1 復習問題

2章 TensorFlow.js
    2.1 ハロー、TensorFlow.js
    2.2 TensorFlow.jsの活用
    2.3 TensorFlow.jsを用意しよう
    2.4 ブラウザ版のTensorFlow.jsを準備する
        2.4.1 NPMを利用
        2.4.2 scriptタグを利用
    2.5 Node.js用のTensorFlow.jsをセットアップ
    2.6 TensorFlow.jsが動いていることを確認
        2.6.1 サンプルコードをダウンロードして実行
    2.7 実際のTensorFlow.jsをいくつか使用してみよう
        2.7.1 Toxicity分類器
        2.7.2 モデル読み込み
        2.7.3 分類
    2.8 やってみよう
    2.9 まとめ
        2.9.1 挑戦課題:トラックの警告!
        2.9.2 復習問題

3章 テンソル
    3.1 なぜテンソルか?
    3.2 ハロー、テンソル
        3.2.1 テンソルの作成
        3.2.2 データ演習のためのテンソル
    3.3 テンソルひと巡り
        3.3.1 テンソルにより高速処理が可能になる
        3.3.2 テンソルはデータに直接アクセスできる
        3.3.3 テンソルはデータをまとめられる
    3.4 メモリ内のテンソル
        3.4.1 テンソルの解放
        3.4.2 テンソルの自動クリーンアップ
    3.5 テンソルからの帰還
        3.5.1 テンソルデータの抽出
    3.6 テンソルの操作
        3.6.1 テンソルと数学
        3.6.2 テンソルを使用した推薦システム
    3.7 まとめ
        3.7.1 挑戦課題:なぜあなたはそれほど特別なのか?
        3.7.2 復習問題

4章 画像テンソル
    4.1 視覚的なテンソル
    4.2 お手軽画像テンソル
    4.3 JPGとPNGとGIF、あぁもう!
        4.3.1 ブラウザ上でテンソルを画像に変換
        4.3.2 ブラウザ上で画像をテンソルに変換
        4.3.3 Node.js上でテンソルを画像に変換
        4.3.4 Node.js上で画像をテンソルに変換
    4.4 一般的な画像編集
        4.4.1 画像テンソルの鏡像反転
        4.4.2 画像テンソルのリサイズ
        4.4.3 画像テンソルの切り取り
        4.4.4 新しい画像ツール
    4.5 まとめ
        4.5.1 挑戦課題:カオスをソート
        4.5.2 復習問題

5章 モデル
    5.1 モデルの読み込み
        5.1.1 公開URLでモデルを読み込む
        5.1.2 別の場所からのモデル読み込み
    5.2 初めてのモデルの利用
        5.2.1 モデルの読み込み、エンコード、推論
        5.2.2 結果の解釈
        5.2.3 使用後のボードのクリーニング
    5.3 初めてのTensorFlowHubモデル
        5.3.1 TFHubの探索
        5.3.2 Inceptionv3の準備
    5.4 最初のオーバーレイモデル
        5.4.1 位置特定モデル
        5.4.2 検出結果のラベル付け
    5.5 まとめ
        5.5.1 挑戦課題:かわいい顔
        5.5.2 復習問題

6章 高度なモデルとUI
    6.1 MobileNet再び
        6.1.1 SSDMobileNet
    6.2 境界の出力
        6.2.1 モデルの出力を読む
        6.2.2 すべての出力を表示
    6.3 検出の整理
        6.3.1 品質チェック
        6.3.2 IoUとNMS
    6.4 テキストオーバーレイを追加
        6.4.1 低コントラストの対策
        6.4.2 描画順序の解決
    6.5 ウェブカメラと接続
        6.5.1 画像を動画に変更
        6.5.2 ウェブカメラの有効化
        6.5.3 検出結果の描画
    6.6 まとめ
        6.6.1 挑戦課題:最良の検出結果
        6.6.2 復習問題

7章 モデルの作成
    7.1 モデルのネットワークショッピングを超えて
        7.1.1 モデルzoo
        7.1.2 モデルの変換
    7.2 初めてのカスタムモデル
        7.2.1 TeachableMachineを試す
        7.2.2 TeachableMachineの利用
        7.2.3 データと訓練を収集
        7.2.4 モデルの検証
    7.3 機械学習のよくある問題
        7.3.1 データ不足
        7.3.2 質の悪いデータ
        7.3.3 データバイアス
        7.3.4 過剰適合
        7.3.5 過少適合
    7.4 データセットショッピング
        7.4.1 人気のあるデータセット
    7.5 まとめ
        7.5.1 挑戦課題:MNISTよ、安らかに。寂しくなるよ
        7.5.2 復習問題

8章 モデルの訓練
    8.1 訓練
        8.1.1 データの準備
        8.1.2 モデルの設計
        8.1.3 学習メトリクスを指定
        8.1.4 モデルを訓練するための設定
        8.1.5 すべてをまとめる
    8.2 非線形訓練
        8.2.1 データ収集
        8.2.2 活性化関数をニューロンに追加
        8.2.3 訓練の監視
        8.2.4 訓練の改善
    8.3 まとめ
        8.3.1 挑戦課題:モデルアーキテクト
        8.3.2 復習問題

9章 分類モデルとデータ解析
    9.1 分類モデル
    9.2 タイタニック
        9.2.1 タイタニックデータセット
    9.3 Danfo.js
        9.3.1タイタニックのための準備
        9.3.2 タイタニックデータを訓練
    9.4 特徴量エンジニアリング
        9.4.1 Dnotebook
        9.4.2 タイタニックデータの可視化
        9.4.3 特徴量の作成(別名、プリプロセッシング)
        9.4.4 特徴量エンジニアリング後の訓練の結果
        9.4.5 結果の確認
    9.5 まとめ
        9.5.1 挑戦課題:ShipHappens
        9.5.2 復習問題

10章 画像訓練
    10.1 畳み込みを理解
        10.1.1 畳み込みの簡単なまとめ
        10.1.2 畳み込み層の追加
    10.2 マックスプーリング
        10.2.1 マックスプーリングの簡単なまとめ
        10.2.2 マックスプーリング層の追加
    10.3 画像分類の訓練
        10.3.1 画像データの処理
    10.4 ホグワーツ組み分けモデル
        10.4.1 画像の準備
        10.4.2 画像のディレクトリをテンソルに変換
        10.4.3 CNNモデル
        10.4.4 訓練と保存
    10.5 モデルのテスト
        10.5.1 スケッチパッドの作成
        10.5.2 スケッチパッドの読み込み
    10.6 まとめ
        10.6.1 挑戦課題:魔法を保存
        10.6.2 復習問題

11章 転移学習
    11.1 転移学習はどのように動作するか?
        11.1.1 ニューラルネットワークの転移学習
    11.2 簡単なMobileNet転移学習
        11.2.1 TensorFlowHub、チェックメイト!
    11.3 レイヤーモデルを転移学習に利用
        11.3.1 MobileNetのレイヤーを刈り揃える
        11.3.2 レイヤー特徴モデル
        11.3.3 統合されたモデル
    11.4 訓練不要
        11.4.1 簡単なKNN:うさぎとスポーツカー
    11.5 まとめ
        11.5.1 挑戦課題:ワープスピード学習
        11.5.2 復習問題

12章 サイコロ化:最終課題
    12.1 サイコロ化チャレンジ
    12.2 計画
        12.2.1 データ
        12.2.2 訓練
        12.2.3 ウェブサイト
    12.3 訓練データの生成
    12.4 訓練
    12.5 入出力用のウェブサイト
        12.5.1 サイコロに切り分ける
        12.5.2 画像の再構築
    12.6 まとめ
        12.6.1 挑戦課題:01、10、11くらい簡単な
        12.6.2 復習問題

付録A 復習問題の解答

付録B 挑戦課題の解答

付録C クレジット

付録D TensorFlowLiteのモデルをウェブで利用する
    D.1 TensorFlowLiteとは
        D.1.1 TensorFlowLiteモデル
    D.2 TFLiteモデルの使い方
    D.3 TensorFlowLiteTaskライブラリ
    D.4 TFJSTaskAPI

あとがき
索引

コラム目次
    インストールのヒント
    TensorFlow.jsモデルのQ&A
    配列の次元について復習
    テンソルは永遠……かも
    関数型スタイルとオブジェクト指向スタイル
    内積って何?
    バッチ化で次元が増加する
    手動でParcelプラグインをインストールする手順
    スクリーン座標
    MobileNetNPMライブラリ