iPhone/Androidアプリ開発者のための機械学習・深層学習 実践入門
iPhone/Androidアプリ開発者のための機械学習・深層学習 実践入門
株式会社ボーンデジタル
著者:布留川英一
はじめに
本書の構成
サンプルプログラム一覧
目次
1章 機械学習とフレームワーク
1-1 機械学習の概要
1-1-1 機械学習とは
1-1-2 学習と推論
学習とは
推論とは
1-1-3 教師あり学習と教師なし学習と強化学習
教師あり学習
教師なし学習
強化学習
1-1-4 機械学習フレームワーク
1-2 Core ML
1-2-1 Core ML の概要
1-2-2 Core ML の「Vision」と「Natural Language」
1-2-3 実行環境と開発環境とプログラミング言語
1-3 Create ML
1-3-1 Create ML の概要
1-3-2 Playground とは
1-3-3 開発環境とプログラミング言語
1-4 Turi Create
1-4-1 Turi Create の概要
1-4-2 タスクベースとアルゴリズムベース
1-4-3 開発環境とプログラミング言語
1-5 ML Kit
1-5-1 ML Kit の概要
1-5-2 TensorFlow Lite とは
1-5-3 ML Kite の「Vision」
1-5-4 オンデバイス API とクラウド API の選択
1-5-5 実行環境と開発環境とプログラミング言語
1-6 Cloud AutoML
1-6-1 Cloud AutoML の概要
1-6-2 Cloud AutoML の「Vision」と「Natural Language」と「Translation」
1-7 TensorFlow041
1-7-1 TensorFlow の概要
1-7-2 開発環境とプログラミング言語
2章 Core MLー基本
2-1 画像分類(画像)
2-1-1 画像分類(画像)のサンプルプログラムの構成
2-1-2 モデルの準備
2-1-3 ソースコードの説明
2-2 画像分類(カメラ映像)
2-2-1 画像分類(カメラ映像)のサンプルプログラムの構成
2-2-2 ソースコードの説明
2-3 類似画像検索
2-3-1 類似画像検出のサンプルプログラムの構成
2-3-2 モデルの準備
2-3-3 ソースコードの説明
2-4 物体検出
2-4-1 物体検出のサンプルプログラムの構成
2-4-2 モデルの準備
2-4-3 ソースコードの説明
2-5 画風変換
2-5-1 画風変換のサンプルプログラムの構成
2-5-2 モデルの準備
2-5-3 ソースコードの説明
2-6 活動分類
2-6-1 活動分類のサンプルプログラムの構成
2-6-2 モデルの準備
2-6-3 ソースコードの説明
2-7 テキスト分類
2-7-1 テキスト分類のサンプルプログラムの構成
2-7-2 モデルの準備
2-7-3 ソースコードの説明
3章 Core MLーVision・Natural Language
3-1 顔検出
3-1-1 顔検出のサンプルプログラムの構成
3-1-2 ソースコードの説明
3-2 バーコード検出
3-2-1 バーコード検出のサンプルプログラムの構成
3-2-2 ソースコードの説明
3-3 テキスト検出
3-3-1 テキスト検出のサンプルプログラムの構成
3-3-2 ソースコードの説明
3-4 水平線検出
3-4-1 水平線検出のサンプルプログラムの構成
3-4-2 ソースコードの説明
3-5 物体移動トラッキング
3-5-1 物体移動トラッキングのサンプルプログラムの構成
3-5-2 ソースコードの説明
3-6 自然言語処理
3-6-1 自然言語処理のサンプルプログラムの構成
3-6-2 「言語判定」のサンプルプログラムの構成
3-6-3 「言語判定」のソースコードの解説
3-6-4 「トークン化」のサンプルプログラムの構成
3-6-5 「トークン化」のソースコードの解説
3-6-6 「品詞タグ付け」のサンプルプログラムの構成
3-6-7 「品詞タグ付け」のソースコードの解説
3-6-8 「レンマ化」のサンプルプログラムの構成
3-6-9 「レンマ化」のソースコードの解説
3-6-10 「固有表現抽出」のサンプルプログラムの構成
3-6-11 「固有表現抽出」のソースコードの解説
4章 Create ML
4-1 画像分類
4-1-1 画像分類のサンプルプログラムの構成
4-1-2 データセットの準備
4-1-3 学習
4-1-4 評価
4-1-5 モデルの保存
4-1-6 学習オプションの設定
4-2 テキスト分類
4-2-1 テキスト分類のサンプルプログラムの構成
4-2-2 データセットの準備
4-2-3 データセットの読み込み
4-2-4 データセットの作成
4-2-5 学習
4-2-6 評価
4-2-7 モデルの保存
4-3 分類
4-3-1 分類のサンプルプログラムの構成
4-3-2 データセットの準備
4-3-3 データセットの読み込み
4-3-4 学習
4-3-5 評価
4-3-6 モデルの保存
4-3-7 モデルの利用
4-4 回帰
4-4-1 回帰のサンプルプログラムの構成
4-4-2 データセットの準備
4-4-3 データセットの読み込み
4-4-4 学習
4-4-5 評価
4-4-6 モデルの保存
4-4-7 モデルの利用
5章 Turi Createータスクベース
5-1 Pythonの開発環境
5-1-1 Python の開発環境の概要
5-1-2 Anaconda のインストール
5-1-3 Jupyter Notebook のインストール
5-1-4 Turi Create のインストール
5-1-5 GPU のための環境設定
5-2 Jupyter Notebook
5-2-1 Jupyter Notebook の起動
5-2-2 Jupyter Notebook の終了
5-2-3 ノートブックの作成
5-2-4 セルのスクリプトの実行
5-2-5 実行中のスクリプトの停止
5-2-6 スクリプトの出力結果のクリア
5-2-7 文章の追加
5-3 画像分類
5-3-1 画像分類のサンプルモデルの構成
5-3-2 データセットの準備
5-3-3 データセットの読み込み
5-3-4 学習
5-3-5 評価
5-3-6 モデルの保存
5-3-7 モデルの利用
5-4 類似画像検索
5-4-1 類似画像検索のサンプルモデルの構成
5-4-2 データセットの準備
5-4-3 データセットの読み込み
5-4-4 学習
5-4-5 モデルの保存
5-4-6 モデルの利用
5-5 物体検出
5-5-1 物体検出のサンプルモデルの構成
5-5-2 データセットの準備
5-5-3 データセットの作成
5-5-4 学習
5-5-5 評価
5-5-6 モデルの保存
5-5-7 モデルの利用
5-6 画風変換
5-6-1 画風変換のサンプルモデルの構成
5-6-2 データセットの準備
5-6-3 データセットの読み込み
5-6-4 学習
5-6-5 モデルの保存
5-6-6 予測
5-7 活動分類
5-7-1 活動分類のサンプルモデルの構成
5-7-2 データセットの準備
5-7-3 データセットの作成
5-7-4 学習
5-7-5 評価
5-7-6 モデルの保存
5-8 テキスト分類
5-8-1 テキスト分類のサンプルモデルの構成
5-8-2 データセットの準備
5-8-3 わかち書きとMeCab
5-8-4 データセットの作成
5-8-5 学習
5-8-6 評価
5-8-7 モデルの保存
5-8-8 モデルの利用
5-9 レコメンド
5-9-1 レコメンドのサンプルモデルの構成
5-9-2 データセットの準備
5-9-3 評価のデータセットの読み込み
5-9-4 映画のデータセットの読み込み
5-9-5 学習
5-9-6 評価
5-9-7 モデルの保存
5-9-8 モデルの利用
6章 Turi Createーアルゴリズムベース
6-1 分類
6-1-1 分類のサンプルモデルの構成
6-1-2 データセットの準備
6-1-3 データセットの読み込み
6-1-4 学習
6-1-5 評価
6-1-6 モデルの保存
6-1-7 モデルの利用
6-2 回帰
6-2-1 回帰のサンプルモデルの構成
6-2-2 データセットの準備
6-2-3 データセットの読み込み
6-2-4 学習
6-2-5 評価
6-2-6 モデルの保存
6-2-7 モデルの利用
6-3 クラスタリング
6-3-1 クラスタリングのサンプルモデルの構成
6-3-2 「k 平均法」とは
6-3-3 データセットの準備(k平均法)
6-3-4 データセットの読み込み(k平均法)
6-3-5 学習(k平均法)
6-3-6 モデルの利用(k平均法)
6-3-7 「DBSCAN」とは
6-3-8 データセットの準備(DBSCAN)
6-3-9 データセットの読み込み(DBSCAN)
6-3-10 学習(DBSCAN)
6-3-11 モデルの利用(DBSCAN)
6-3-12 make_moonsをk平均法でクラスタリング
6-4 グラフ分析
6-4-1 グラフ分析のサンプルモデルの概要
6-4-2 グラフの概要
6-4-3 データセットの準備
6-4-4 データセットの読み込み(連結成分)
6-4-5 学習(連結成分)
6-4-6 データセットの読み込み(グラフ彩色)
6-4-7 学習(グラフ彩色)
6-4-8 学習(ページランク)
6-4-9 学習(K-Core 分解)
6-4-10 学習(最短経路)
6-4-11 学習(トライアングルカウント)
6-5 テキスト分析
6-5-1 テキスト分析のサンプルモデルの概要
6-5-2 データセットの準備
6-5-3 わかち書きとMeCab
6-5-4 トピックモデルとは
6-5-5 データセットの作成(トピックモデル)
6-5-6 Bag-of-wordsへの変換(トピックモデル)
6-5-7 ストップワードの削除(トピックモデル)
6-5-8 学習(トピックモデル)
6-5-9 文書からトピックを予測(トピックモデル)
7章 ML Kit
7-1 ML Kitの準備
7-1-1 ML Kitの準備手順
7-1-2 Firebaseプロジェクトの作成
7-1-3 iOSアプリの登録
7-1-4 Androidアプリの登録
7-1-5 料金プランの変更
7-1-6 クラウドAPIの有効化
7-2 画像分類(画像)
7-2-1 画像分類(画像)のサンプルプログラムの構成
7-2-2 前準備(iOS)
7-2-3 Firebaseとの連携を行うためのソースコードの解説(iOS)
7-2-4 前準備(Android)
7-2-5 Firebaseとの連携を行うためのソースコードの解説(Android)
7-3 画像分類(カメラ映像)
7-3-1 画像分類(カメラ映像)のサンプルプログラムの構成
7-3-2 前準備(iOS)
7-3-3 オンデバイスAPIのソースコードの解説(iOS)
7-3-4 前準備(Android)
7-3-5 オンデバイスAPIのソースコードの解説(Android)
7-4 顔検出
7-4-1 顔検出のサンプルプログラムの構成
7-4-2 前準備(iOS)
7-4-3 オンデバイスAPIのソースコードの解説(iOS)
7-4-4 前準備(Android)
7-4-5 オンデバイスAPIのソースコードの解説(Android)
7-5 バーコード検出
7-5-1 バーコード検出のサンプルプログラムの構成
7-5-2 前準備(iOS)
7-5-3 オンデバイスAPIのソースコードの解説(iOS)
7-5-4 前準備(Android)
7-5-5 オンデバイスAPIのソースコードの解説(Android)
7-6 ランドマーク認識
7-6-1 ランドマーク認識のサンプルプログラムの構成
7-6-2 前準備(iOS)
7-6-3 クラウドAPIのソースコードの解説(iOS)
7-6-4 前準備(Android)
7-6-5 クラウドAPIのソースコードの解説(Android)
7-7 テキスト認識
7-7-1 テキスト認識のサンプルプログラムの構成
7-7-2 前準備(iOS)
7-7-3 オンデバイスAPIのソースコードの解説(iOS)
7-7-4 クラウドAPIのソースコードの解説(iOS)
7-7-5 前準備(Android)
7-7-6 オンデバイスAPIのソースコードの解説(Android)
7-7-7 クラウドAPIのソースコードの解説(Android)
7-8 カスタムモデル
7-8-1 カスタムモデルのサンプルプログラムの構成
7-8-2 モデルの準備
7-8-3 モデルの確認
7-8-4 モデルをFirebaseにホスト
7-8-5 前準備(iOS)
7-8-6 ソースコードの解説(iOS)
7-8-7 前準備(Android)
7-8-8 ソースコードの解説(Android)
8章 Cloud AutoML
8-1 画像分類(Vision)
8-1-1 画像分類のサンプルモデルの作成
8-1-2 費用
8-1-3 データセットの準備
8-1-4 プロジェクトの準備
8-1-5 データセットの作成
8-1-6 学習と評価
8-1-7 予測
8-2 テキスト分類(Natural Language)
8-2-1 テキスト分類のサンプルモデルの作成
8-2-2 費用
8-2-3 データセットの準備
8-2-4 プロジェクトの準備
8-2-5 データセットの作成
8-2-6 学習と評価
8-2-7 予測
8-3 翻訳(Translation)
8-3-1 翻訳のサンプルモデルの作成
8-3-2 費用
8-3-3 データセットの準備
8-3-4 プロジェクトの準備
8-3-5 データセットの作成
8-3-6 学習
8-3-7 予測
8-4 AutoML API
8-4-1 AutoML APIを利用するサンプルプログラムの作成
8-4-2 gcloud のインストール
8-4-3 サービスアカウントの作成
8-4-4 REST API による画像分類
8-4-5 Python クライアントライブラリのインストール
8-4-6 Python クライアントライブラリによる画像分類
9章 TensorFlow
9-1 画像分類
9-1-1 画像分類のサンプルモデルの作成
9-1-2 Pythonの開発環境
9-1-3 パッケージのインポート
9-1-4 データセットの準備
9-1-5 データセットの確認
9-1-6 データの前処理
9-1-7 モデルの構成要素
9-1-8 ノード毎の各種計算
9-1-9 活性化関数の種類
9-1-10 モデルの作成
9-1-11 学習
9-1-12 評価
9-1-13 予測
9-1-14 モデルの保存
9-2 テキスト分類
9-2-1 テキスト分類のサンプルモデルの作成
9-2-2 パッケージのインポート
9-2-3 データセットの準備
9-2-4 データセットの確認
9-2-5 整数配列から文章に戻す
9-2-6 データの前処理
9-2-7 モデルの作成
9-2-8 訓練データから検証データを分割
9-2-9 学習
9-2-10 評価
9-2-11 予測
9-2-12 モデルの保存
9-3 過学習と未学習
9-3-1 過学習と未学習とは
9-3-2 パッケージのインポート
9-3-3 データセットの準備
9-3-4 データの前処理
9-3-5 モデルの容量の調整
9-3-6 正則化
9-3-7 ドロップアウト
9-4 FrozenGraphDefへの変換
9-4-1 モデルの保存ファイル形式
9-4-2 h5ファイルをFrozenGraphDefに変換
9-4-3 GraphDefとCheckPointをFrozenGraphDefに変換
9-5 mlmodelファイルへの変換
9-5-1 mlmodelファイルへの変換手順
9-5-2 サポートされているTensorFlowのオペレーション
9-5-3 アプリでの利用
9-6 tfliteファイルへの変換
9-6-1 tfliteファイルへの変換手順
9-6-2 サポートされているTensorFlowのオペレーション
9-6-3 アプリでの利用
9-6-4 iOSのソースコードの変更
9-6-5 Androidのソースコードの変更
索引
コラム一覧
Swift Playgrounds0
Windows Subsystem for Linux
TensorFlow Mobile
Google Cloud Platform
Android Neural Networks API
REST API
Create MLとTuri CreateとTensorFlow
Infoplistの設定
Appleが提供するCore MLモデル
Create MLで利用するクラス
CocoaPad のコマンド
バックスラッシュと円マーク
Knowledge GraphとエンティティID
モデルのセキュリティ
Google Cloud Storageのバケットの確認
HTTP リクエストにも使える「curl」コマンド
KerasとTensorFlow
Core MLモデルの変換ツール