【2023最新】「画像認識」のおすすめ本!人気ランキング
この記事では、「画像認識」のおすすめ本をランキング形式で紹介していきます。インターネット上の口コミや評判をベースに集計し独自のスコアでランク付けしています。
Amazonで詳しく見る
紹介文
私たちの日常生活で、人工知能が普通に使われる時代になりました。スマートフォンの顔認証、自動運転技術、SiriやAlexaのようなAI音声アシスタントなど身近な技術ばかりです。これからは機械学習や深層学習はエンジニアの基本教養となるかもしれません。本書は、機械学習や深層学習の分野から画像認識に重点をおいて、難しい数式をつかわず、図や写真を多用して解説する入門書です。必要な概念、用語、キーワードも網羅的に説明します。
第1部 人工知能・機械学習・深層学習の基礎知識
第1章 人工知能・機械学習・深層学習の基本
01-01 人工知能概要
人工知能の歴史
人工知能とは
機械学習
人工ニューラルネットワーク
深層学習(ディープラーニング)
今注目される理由
01-02 機械学習とは
機械学習とは
機械学習のタイプ(分類)
教師あり学習
教師あり学習の用途
教師あり学習の重要アルゴリズム
教師なし学習
教師なし学習の用途
教師なし学習の重要アルゴリズム
強化学習
機械学習のためのデータ
データの重要性
学習用データと検証データ
過学習(over fitting)
次元の呪い(the curse of dimensionality)
データの入手
機械学習(教師あり)の流れ
課題の定義
データの準備
学習フェーズ
検証・評価フェーズ
応用フェーズ
01-03 深層学習とは
視覚情報の重要性
生物学ニューロンから人工ニューロンへ
生物学ニューロンとは
生物学ニューロンのモデル化
パーセプトロン(perceptron)
パーセプトロンの限界
ニューラルネットワーク
活性化関数
ニューラルネットワークの学習
深層学習(ディープラーニング)とは
深層学習の応用
3つの代表的な深層学習アルゴリズム
畳み込みニューラルネットワーク詳説
入力層(input layer)
畳み込み層(convolutional layer)
プーリング層(pooling layer)
全結合層(fully connected layer)
深層学習のフレームワーク
機械学習、深層学習に必要な数学
第2章 Pythonと重要なツール・ライブラリ
02-01 本書の実行環境の概要について
Pythonの開発環境
Pythonの環境を用意する
PCにPythonをインストールする場合
Anacondaのダウンロード
Anacondaのインストール
Anaconda Navigatorの起動
Anacondaで環境の管理
まずはChannelを追加しよう
仮想環境にパッケージをインストールしよう
Raspberry Piの場合
pip3のインストール
共通の必要なパッケージ等をインストールする
Kerasが利用するパッケージのインストール
本書のサンプルコードをダウンロードする
02-02 Jupyter Notebookを使おう
Jupyter Notebookの起動
Jupyter Notebookの基本操作
Notebookを作る
新しいNotebookを作る
メモを追加する
Raspberry PiでJupyter Notebookを使う場合
02-03 Colaboratoryノートブックを使おう
動かそう!
GoogleアカウントにログインしてGoogleドライブを起動
Colaboratoryノートブックを作成する
Pythonのバージョンの設定
Colaboratoryでの操作
ハードディスクの容量の確認
メモリ使用量の確認
OS情報の出力
CPU情報の出力
ファイルのアップロード
パッケージのインストール
使用中のパッケージのバージョンの確認
本書のNotebookをインポートする
02-04 Pythonの基礎と文法
Pythonの基本
Pythonのバージョンを確認しよう
インストールされているパッケージを確認しよう
Hello Worldと表示してみよう
日本語の出力
コメントの書き方
演算
変数
変数とは
文字列の変数
文字列の連結
Pythonの型
型の出力
型の変換
リストの作り方
二次元配列
三次元配列
文字の多次元配列
リストからの値の出し方
リストのスライス
リスト要素の更新
リスト要素の追加
リスト要素の削除
リストの代入
条件分岐
if文と条件式
else
elif
条件式の and、not、or
for文
range()による数値シーケンスの生成
while文
関数
import
ファイルをimportする
第3章 NumPyとMatplotlibの使い方
03-01 NumPyの使い方
NumPyの基本操作
配列の作成
掛け算
足し算
配列の要素同士の四則演算
ベクトルの内積
二次元ベクトルの内積
ndarrayの形状変換
要素がゼロの配列生成
要素が1の配列を生成する
未初期化の配列を生成する
matrixで二次元配列の作成
shapeで次元ごとの要素数を取得する
ndimで次元構造を取得する
配列要素のデータ型dtype
1要素のバイト数itemsize
配列の要素数size
arangeで配列を生成する
配列要素データ型の変換astype
03-02 Matplotlibの使い方
簡単なグラフを作ってみよう
グラフの要素に名前を設定する
グラフのグリッドを非表示にする
グラフの目盛を設定する
グラフのサイズ
散布図
複数グラフのグリッド表示
三次元散布図
色とマーカーを変える
第2部 今すぐ試してみたい16のレシピ!
第4章 機械学習・深層学習のレシピ(初級・中級)
04-01 OpenCVでの画像処理の基本
OpenCVとは
OpenCVのバージョン
OpenCVのインストール
バージョンの確認
サンプル画像のダウンロード
調理手順
画像の取込み
画像の保存
トリミング
リサイズ
画像の回転
色調変換
2値化
ぼかし
ノイズの除去
膨張・収縮
輪郭抽出
画像データの水増し
まとめ
04-02 Raspberry PiでOpenCVを利用した顔認識
Raspberry PiでOpenCVを使えるようにする
OpenCVのコンパイルとインストール
Raspbianの用意
Expand Filesystem
システムを更新する
swapfileサイズを大きくする
必要なパッケージのインストール
OpenCVのソースコードを用意する
コンパイルの準備
いざコンパイル
インストール
OpenCVのsoファイルを参照できるようにする
最後にswapfileサイズを戻す
インストール後の確認
調理手順
Raspberry Piカメラモジュールの用意
PiCameraパッケージのインストール
PiCameraを使えるようにRaspberry Piを設定する
カメラの動作確認
OpenCVのサンプルコードを実行しよう
分類器のダウンロード
実行と結果
検出方法
まとめ
04-03 アヤメ分類チャレンジレシピ
scikit-learnとは
scikit-learnとはPython向けの機械学習フレームワーク
scikit-learnの特徴
scikit-learnの datasetsの種類
scikit-learnのインストール
scikit-learnのバージョンの確認
課題を理解する
データに慣れる
表形式でデータを見る
データ全件を見る
1つの特徴量を見てみる
1列目、2列目のデータを使う場合
3列目、4列目のデータを使う場合
調理手順
必要なパッケージのインポート
分類と回帰
サポートベクターマシン(SVM : Support Vector Machine)
回帰係数と誤差
超平面(hyper-plane)とは?
交差検証
最後に一番シンプルな学習と検証
分類(predict)してもらう
まとめ
04-04 scikit-learnで機械学習手書き数字認識レシピ
手書き数字の画像データの特徴量を調べる
データセットモジュールのインポート
データを表示する
データを画像として描画する
複数データを描画してみよう
手書き数字データセットを三次元の空間で見る
調理手順
分類器をインポートする
データを再構成
分類器(SVC)の作成
検証とグラフ
一回整理しよう
まとめ
04-05 Chainer+MNIST手書き数字分類レシピ
Colaboratoryで学習、Raspberry Piで
手書き認識ウェブアプリケーションを作成
Chainerとは
MNISTとは
Chainer のインストール
Chainerのバージョンの確認
Chainer の基本部品のインポート
MNISTのデータをロードする
数字の画像を見る
学習用データセットと検証用データセットの数
調理手順
必要なパッケージをインポートする
ニューラルネットワークの定義
iteratorsとは
Optimizerの設定
検証の処理ブロック
学習と検証
学習済モデルの保存
学習済モデルのダウンロード
学習済のモデルを使う
Raspberry Pi側の作業
手書き数字の認識
画像データの送信
画像データの受け取り
まとめ
04-06 Chainerで作る犬と猫認識ウェブアプリ
データの準備
ChainerとCuPyの用意
データセットのダウンロード
ダウンロードしたファイルを確認する
データセットを解凍する
調理手順
学習データを確認する(任意画像)
検証データを確認する(任意画像)
学習データと検証データを分ける
関数get_image_teacher_label_list()の定義
学習データと検証データをリストにする
画像データ形式の整備
データ形状変換の結果確認
画像の前処理関数 adapt_data_to_convolution2d_format()
データセットの作成
学習データと検証データを分ける
CNNを設定する
反復子
Optimizerの設定
updaterの設定
trainerの設定
extensionsの設定
学習の実行
学習結果の確認
検証する(学習済モデルを使う)
モデルを書き出す
関数の定義 convert_test_data()
検証用の写真を選ぶ
画像サイズの設定
Google Driveにドキュメントとして保存する
ファイルの作成
保存(Google Driveへのアップロード)
手書き犬と猫の判別
写真をアップロードして認識させる
写真を判定する処理
まとめ
04-07 PyTorchでMNIST手書き数字学習レシピ
PyTorchとは
PyTorchのインストール
調理手順
必要なパッケージのインストール
データセットのダウンロード
データの中身を見てみる
データを可視化してみる
学習データと検証データを用意する
ニューラルネットワークの定義
モデル
コスト関数と最適化手法を定義する
学習
検証
個別データで検証
まとめ
04-08 PyTorchでCIFAR-10の画像学習レシピ
CIFAR-10とは
PyTorchのインストール
必要なパッケージのインポート
transformを定義する
学習データと検証データの用意
クラスの中身を設定する
調理手順
必要なパッケージのインポート
画像を表示する関数
CIFAR-10の中身を見る
学習のニューラルネットワークの定義
optimizerの設定
学習
個別データで検証
テスト
検証
クラス毎の検証結果
まとめ
第5章 機械学習・深層学習のレシピ(中級・上級)
05-01 TensorFlow+Keras+MNIST
手書き数字認識ウェブアプリ
Kerasとは
Kerasのバックエンドとは?
なぜKerasを使うのか
TensorFlowとは
Kerasを用いた処理フロー
調理手順
TensorFlowのインストール
TensorFlowのバージョンの確認
Kerasのインストール
設定
MNISTデータセットのローディング
学習モデルに合わせたデータ配列の形状変換
学習モデルに合わせてデータ調整
教師ラベルデータの変換
シーケンシャルモデル指定
学習モデルの構築
ニューラルネットワークの構築
モデルのコンパイル
学習
学習プロセスのグラフ
検証
予測
学習済モデルの保存
保存後ファイルの確認
学習済モデルのダウンロード
Raspberry Piで手書き数字の認識、文字認識
まとめ
05-02 TensorFlow+FashionMNISTでFashion認識
Fashion MNISTとは
TensorFlowのバージョン
Fashion MNISTデータの取得
データセットを見る
検証データの確認
データセットの一部を描画する
調理手順
設定
学習モデルに合わせてデータ調整
学習モデルの構築
モデルのコンパイル
学習
学習プロセスのグラフ
検証
予測
学習済モデルの保存
まとめ
05-03 TensorFlowで花認識ウェブアプリ
retrain(転移学習)とは
花のデータセットをダウンロードする
花のデータセットを解凍する
学習(retrain)プログラムを入手する
フォルダの内容を確認する
調理手順
転移学習開始
学習の結果を確認する
予測用のプログラムをダウンロードする
テストを実施する
アップロードした花の写真でテストする
学習済のファイルをダウンロードする
Raspberry Piで手書き入力の部分を用意する
まとめ
05-04 TensorFlowでペットボトルと空き缶分別
データの収集をする
ペットボトルの画像を用意する
空き缶の画像を用意する
ペットボトル写真の処理
ペットボトル画像を確認するために表示する
意図しない写真ファイルを削除する(クレンジング処理)
ペットボトル画像の水増し
水増ししたペットボトルの画像を確認する
調理手順
学習プログラムをダウンロードする
用意したデータをtarget_folderにコピーする
ペットボトルのデータをコピーする
空き缶のデータをコピーする
転移学習開始
予測するプログラムをダウンロードする
学習済モデルを使う
学習済のモデルファイルをダウンロードする
まとめ
05-05 YOLOで物体検出
物体検出とは
YOLOとは
調理手順
daskのインストール
CPythonのインストール
darknetのclone
作業の場所を移動する
YOLOをコンパイルする
YOLO3のモデルをダウンロードする
物体検出を試してみよう
もう1枚テストする
まとめ
05-06 ハードウェアの拡張による人物検出
Movidius NCSとは
調理手順
システムを最新の状態にする
swapfileサイズを大きくする
ncsdkのインストール
TensorFlowのインストール
OpenCVのインストール
サンプルコードの実行
まとめ
05-07 Google AIY Vision Kitで笑顔認識
Google AIY Vision Kitの組み立て
まずGoogle AIY Vision Kitの中身を見てみよう
Google AIY Vision Kitを組み立てる
調理手順
Google AIT Vision Kitの最初の起動
まとめ
05-08 人工知能Cloud APIを利用してキャプション作成
クラウド上のAPIを利用して分類、検出
Azureアカウントの取得
Computer Visionプロジェクトの作成
調理手順
必要なパッケージをインポートする
初期設定
画像のキャプションを取得する関数
写真の指定
結果の表示
画像を表示する
まとめ
第3部 Pythonとオブジェクト指向・Pythonでできるウェブサーバ
第6章 Pythonとオブジェクト指向
06-01 オブジェクト指向プログラミングとは
なぜオブジェクト指向プログラミングなのか
オブジェクトとは
クラスとは
06-02 クラスを実際に作ってみよう
ロボットのクラスを作ってみよう
クラスの定義
コンストラクタ(constructor)
メソッド(method)
属性(property)
インスタンス(instance)
メソッドの呼び出し
クラスの継承
親クラス(parent class)
拡張(メソッドの追加)
メソッドのオーバーライド(method override)
まとめ
第7章 Pythonでできるウェブサーバ
07-01 Flaskアプリケーション開発の準備
Flaskウェブアプリケーションフレームワーク
Flaskのインストール
07-02 アプリケーションの設置
フォルダの作成とapp.pyの設置
ウェブアプリケーションを立ち上げる
まとめ
Amazonで詳しく見る
紹介文
OpenCVの開発者によるベストセラー書の改訂版。最新のC++インタフェースに対応。
OpenCVライブラリ開発者によるベストセラー書の改訂版!
OpenCVの開発者によるベストセラー書の改訂版。最新のC++インタフェースに対応。OpenCVは現在、ロボットの視覚システムだけでなくスマホやパソコンの顔認証、画像アプリやセキュリティ監視の人物検出、製造、医療、自動運転車、ゲームやARアプリ、さらには機械学習に代表される人工知能の研究など、さまざまな分野で利用されています。本書では、カメラ入力やファイル出力といった簡単な使い方から、画像の変換やセグメンテーション、テンプレートマッチング、パターン認識、特徴量、物体や動きのトラッキング、ステレオビジョンからの3Dの再構成、機械学習まで、基礎から丁寧かつ詳細に解説します。関数のリファレンスとしても利用可能です。
Amazonで詳しく見る
紹介文
ディープラーニング実装入門書の決定版!
ニューラルネットワークの理論とディープラーニングの実装について丁寧に解説。実装には、Python(3.x)とディープラーニング向けライブラリKeras(2.x)、TensorFlow(2.x)、PyTorch(1.x)を用います。
本書では、自然言語処理をはじめとした時系列データ処理のためのディープラーニング・アルゴリズムに焦点を当てているのも大きな特徴の1つです。本書の[第1版](2017年)以降に次々と登場している新しい手法やモデルを丁寧に説明、記事も大幅にボリュームアップしました。
[本書の構成]
1章 数学の準備:ニューラルネットワークのアルゴリズムを理解するための数学の知識、偏微分と線形代数の基本を学びます。アルゴリズムが複雑になってもこの2つを押さえておけばきちんと理解できます。
2章 Pythonの準備:ディープラーニングのアルゴリズムを実装するため、Python環境の構築およびPythonの基本から代表的なライブラリの使い方までを解説します。
3章 ニューラルネットワーク:ニューラルネットワークとは何か、どういった手法かを解説します。単純パーセプトロン、ロジスティック回帰、多クラスロジスティック回帰、多層パーセプトロンを扱います。
4章 ディープニューラルネットワーク:ディープラーニングはニューラルネットワークのモデルの発展形です。ニューラルネットワークから「ディープ」ニューラルネットワークになるうえで発生する課題とそれを解決するテクニックについて解説します。
5章 リカレントニューラルネットワーク:ニューラルネットワークに「時間」という概念を取り込むとどのようなモデルになるのか。通常のディープラーニングのモデルではうまく扱うことができない時系列データの扱いに特化したモデルであるリカレントニューラルネットワーク(RNN)とその手法LSTM、GRUについて取り上げます。
6章 リカレントニューラルネットワークの応用:時系列データの扱いに関しては、自然言語処理で新しいモデルが考えられてきました。本章では、Encoder-Decoder、Attention、Transformerについて学んでいきます。
付録 ライブラリ内部の処理を理解するためのグラフの知識と、Pythonのデコレータ @tf.function の実装例、Keras、TensorFlow、PyTorchによるモデルの保存・読み込みについて解説します。
はじめに
1章 数学の準備
1.1 偏微分
1.2 線形代数
1.3 まとめ
1章の参考文献
2章 Python の準備
2.1 Python 2とPython 3
2.2 Anaconda ディストリビューション
2.3 Python の基本
2.4 NumPy
2.5 ディープラーニング向けライブラリ
2.6 まとめ
3章 ニューラルネットワーク
3.1 ニューラルネットワークとは
3.2 回路としてのニューラルネットワーク
3.3 単純パーセプトロン
3.4 ロジスティック回帰
3.5 多クラスロジスティック回帰
3.6 多層パーセプトロン
3.7 モデルの評価
3.8 まとめ
4章 ディープニューラルネットワーク
4.1 ディープラーニング向けライブラリの導入(Keras/TensorFlow/PyTorch)
4.2 ディープラーニングへの準備
4.3 活性化関数の工夫
4.4 ドロップアウトの導入
4.5 学習の効率化に向けて
4.6 学習率の設定
4.7 重みの初期値の設定
4.8 バッチ正規化
4.9 まとめ
4章の参考文献
5章 リカレントニューラルネットワーク
5.1 基本のアプローチ
5.2 LSTM
5.3 GRU
5.4 双方向リカレントニューラルネットワーク
5.5 埋め込み層における計算
5.6 まとめ
5章の参考文献
6章 リカレントニューラルネットワークの応用
6.1 Encoder-Decoder
6.2 Attention
6.3 Transformer
6.4 まとめ
6章の参考文献
付録
A.1 計算グラフ
A.2 @tf.function
A.3 モデルの保存と読み込み(Keras、TensorFlow、PyTorch)
索引
Amazonで詳しく見る
紹介文
3言語対応で、画像処理の基本が身につくテキストの改訂版。OpenCV3.2に対応。「距離画像処理」を新たに解説。初学者に最適
3言語(C言語、C++、Python)対応で、「画像処理の基本」が身につくと、大好評のテキストの改訂版!
・OpenCV3.2に対応し、さらにパワーアップ!
・基本アルゴリズムとサンプルプログラムが豊富で、いますぐできる!
・理論と実践のバランスがよく、初学者に最適!
・「距離画像処理」を新たに解説!
【「まえがき」より】
本書は、基本的かつ汎用性の高い画像処理アルゴリズムを選定して解説した。また初学者が独学でも学べるように、開発環境の構築方法やカメラのセットアップ、トラブルシューティングなどの詳細な手順を載せている。本書ではまず、画像処理アルゴリズムについて解説し、内部で行われる処理が十分に理解されることに重点を置いている。その後、各種プログラミング言語(擬似言語、C言語)での実装例を並べて表記し、各アルゴリズムがどのようにコーディングされるのかを解説する。さらに、OpenCV の関数を用いたプログラム(Python、C++言語)も併記し、OpenCV の利用方法を説明する。
今回、第2版に改訂するにあたり、画像処理技術に関連する最新動向への対応を目指した。11章に距離画像処理を新たに追加して、近年、重要度が増している距離カメラの構造や計測原理、距離画像の処理方法についてまとめた。また、OpenCV も第1版出版後の 2015 年 6 月に Ver.3.0 が公開され、現在も多数の改良がなされている。現時点で最新の Ver.3.2 は十分に安定して利用できる状況と判断し、第2版ではインストールやプログラムを Ver.3.2 対応の表記に変更した。
【おもな内容】
Chapter1 画像処理とOpenCV
Chapter2 OpenCVの導入
Chapter3 画像入力
Chapter4 デジタル画像と配列
Chapter5 画像形式と色空間
Chapter6 濃淡変換
Chapter7 フィルタ処理
Chapter8 2値画像処理
Chapter9 複数画像の利用
Chapter10 幾何学変換
Chapter11 距離画像処理
姉妹書『OpenCVによるコンピュータビジョン・機械学習入門』は2017年8月刊行予定。
Chapter1 画像処理とOpenCV
Chapter2 OpenCVの導入
Chapter3 画像入力
Chapter4 デジタル画像と配列
Chapter5 画像形式と色空間
Chapter6 濃淡変換
Chapter7 フィルタ処理
Chapter8 2値画像処理
Chapter9 複数画像の利用
Chapter10 幾何学変換
Chapter11 距離画像処理
付録A OpenCVをソースからビルドする
付録B カメラ画像取り込み時の解像度設定
付録C Kinectのセットアップ
付録D Intel RealSenseのセットアップ
付録E OpenCVモジュール概説
付録F 擬似言語
Amazonで詳しく見る
紹介文
ベストセラーの改訂版。最高最強のバイブルが大幅にパワーアップ! 深層学習のさまざまな課題とその対策についても詳しく解説。
◆ベストセラーの改訂版。最高最強のバイブルが大幅にパワーアップ!!◆
・トランスフォーマー、グラフニューラルネットワーク、生成モデルなどをはじめ、各手法を大幅に加筆。
・深層学習のさまざまな課題と、その対策についても詳しく解説。
[本書まえがきより抜粋]
ないもの(=理論)ねだりをしても仕方がありません.それでも皆が研究を進めるのは,そうすることに意義があるからです.なぜうまく働くのか,なぜそうすべきか,数学的な証明はなくても,正しい説明は必ずあるはずです.それを手にできれば,目の前の課題を解決するのに,また次に進むべき道を知るうえで役に立つでしょう.
そこで本書では,それぞれの方法について,今の時点で最も納得できる説明をきちんと与えることにこだわりました.名前の通った方法であっても,理屈が成り立たない,あるいは役に立たない方法や考え方については,はっきりそう書きました.著者の主観といわれても仕方がない場合もあるかもしれませんが,そのほうが有益であると信じています.
また,現在の深層学習の広がりを把握できるように,定番となった問題・方法に加えて,重要だと思われる問題については,必ずしもそれほど有名でない方法も含めてなるべく網羅するようにしました.その取捨選択には,深層学習が実践的技術であることを踏まえ,実用性を最も重視しました.そこには,この間に著者が企業の実務家たちと行ってきた共同研究での経験が反映されています.
[主な内容]
第1章 はじめに
第2章 ネットワークの基本構造
第3章 確率的勾配降下法
第4章 誤差逆伝播法
第5章 畳み込みニューラルネットワーク
第6章 系列データのためのネットワーク
第7章 集合・グラフのためのネットワークと注意機構
第8章 推論の信頼性
第9章 説明と可視化
第10章 いろいろな学習方法
第11章 データが少ない場合の学習
第12章 生成モデル
1章 はじめに
1.1 研究の歴史
1.2 本書の構成
2章 ネットワークの基本構造
2.1 ユニットと活性化関数
2.2 順伝播型ネットワーク
2.3 学習の概要
2.4 問題の定式化:出力層と損失関数の設計
3章 確率的勾配降下法
3.1 確率的勾配降下法
3.2 汎化性能と過剰適合
3.3 正則化
3.4 学習率の選定と制御
3.5 SGDの改良
3.6 層出力の正規化
3.7 重みの初期化
3.8 その他
4章 誤差逆伝播法
4.1 勾配計算の煩わしさ
4.2 誤差逆伝播法
4.3 自動微分
4.4 勾配消失問題
4.5 残差接続
5章 畳み込みニューラルネットワーク
5.1 単純型細胞と複雑型細胞
5.2 畳み込み
5.3 畳み込み層
5.4 プーリング層
5.5 畳み込み層の出力の正規化
5.6 推論のためのCNNの構造
5.7 入出力間の幾何学的関係
5.8 畳み込み層の一般化
5.9 アップサンプリングと畳み込み
5.10 物体カテゴリ認識への適用例
6章 系列データのためのネットワーク
6.1 系列データ
6.2 リカレントニューラルネットワーク
6.3 ゲート機構
6.4 自己回帰モデル
6.5 1次元畳み込みネットワーク
6.6 逆伝播の計算
7章 集合・グラフのためのネットワークと注意機構
7.1 集合データを扱うネットワーク
7.2 注意機構
7.3 トランスフォーマー
7.4 グラフニューラルネットワーク
8章 推論の信頼性
8.1 推論の不確かさ
8.2 不確かさの数理モデル
8.3 不確かさの予測
8.4 分布外入力の検出
8.5 敵対的事例
8.6 品質保証の試み
9章 説明と可視化
9.1 はじめに
9.2 入力による出力の微分
9.3 入力の遮蔽・挿入
9.4 中間層出力の表示
9.5 寄与度の分解
9.6 寄与度の逆伝播
9.7 可視化手法の評価
9.8 影響関数
9.9 学習内容の可視化
10章 いろいろな学習方法
10.1 距離計量学習
10.2 事例集合(マルチインスタンス)学習
10.3 クラスラベルの誤り
10.4 クラス間不均衡
10.5 継続・追加学習
10.6 知識蒸留
10.7 枝刈り
10.8 計算の量子化
10.9 ネットワーク構造探索
11章 データが少ない場合の学習
11.1 はじめに
11.2 データ拡張
11.3 転移学習
11.4 半教師あり学習
11.5 自己教師学習
11.6 マルチタスク学習
11.7 ドメイン適応・汎化
11.8 少数事例学習
11.9 能動学習
12章 生成モデル
12.1 データの生成モデル
12.2 自己符号化器
12.3 変分自己符号化器
12.4 敵対的生成ネットワーク
12.5 正規化フロー
12.6 ボルツマンマシン
Amazonで詳しく見る
紹介文
Pythonのライブラリの1つであるTensorFlowは、ディープラーニングを支える数学的な各種理論を学ぶのに最適なライブラリです。しかし、TensorFlowは学習に必要な計算式を開発者が自ら組み立てねばならないという少し高めのハードルがあります。本書は、TensorFlow2のライブラリを取り上げ、ディープラーニングの基礎理論から2次元フィルター、転移学習、時系列データ、自然言語処理などを楽しく学べる入門書です。
機械学習を学ぶ人や開発に利用してい人が、PythonをとTensorFlowのライブラリを使ってディープラーニングの基礎理論から2次元フィルター、転移学習、時系列データ、自然言語処理などを楽しく学ぶ入門書です。
1章 ディープラーニングとは
1.1 深層学習(ディープラーニング)とは
1.1.1 機械学習の活用例
1.1.2 機械学習とディープラーニングの関係
■機械学習の主な手法
1.2 ディープラーニングって具体的に何をするの?
1.2.1 ニューラルネットワークのニューロン
■人工ニューロン
■学習するということは重み・バイアスを適切な値に更新すること
■ニューロンの発火をつかさどる「ステップ関数」
■ニューロンの発火をつかさどる「シグモイド関数」
■人工ニューロンをネットワーク状に連結する
1.2.2 ディープニューラルネットがディープラーニングを実現する
■畳み込みニューラルネットワーク(CNN)
■リカレントニューラルネットワーク(RNN)
■ドロップアウト、正則化
1.2.3 ディープラーニングのためのライブラリ
1.2.4 ディープラーニングの仕組み
1.2.5 この本で使用するディープラーニング用データセット
2章 開発環境のセットアップとPythonの基礎
2.1 Anacondaの導入
2.1.1 Anacondaのダウンロードとインストール
2.2 仮想環境の構築とライブラリのインストール
2.2.1 専用の仮想環境を構築する
2.2.2 ライブラリのインストール
2.2.3 ライブラリのアップデート
2.3 Jupyter Notebookの使い方
2.3.1 Jupyter Notebookを仮想環境にインストールする
2.3.2 ノートブックを作成する
■ノートブックを保存するためのフォルダーを作成する
■ノートブックの作成
2.3.3 ソースコードを入力して実行する
■Jupyter Notebookのコマンド
2.3.4 ノートブックを閉じて改めて開く
■ノートブックを閉じる
■ノートブックを開く
2.3.5 Jupyter Notebookのメニューを攻略する
■[File]メニュー
■[Edit]メニュー
■[View]メニュー
■[Insert]メニュー
■[Cell]メニュー
■[Kernel]メニュー
2.4 Google Colabを便利に使おう!
2.4.1 Googleドライブ上のColab専用のフォルダーにノートブックを作成する
■ノートブックの作成
2.4.2 セルにコードを入力して実行する
2.4.3 Colabノートブックの機能
■[ファイル]メニュー
■[編集]メニュー
■[表示]メニュー
■[挿入]メニュー
■[ランタイム]メニュー
■[ツール]メニュー
■GPUを有効にする
2.5 Pythonの演算処理
2.5.1 変数を使って演算する
2.5.2 Pythonが扱うデータの種類
■ソースコードに説明文を書く
COLUMN リストの中に要素製造装置を入れる(内包表記)①
2.6 Pythonのリスト
2.6.1 リストを作る
2.7 if文とfor文
2.7.1 if文
2.7.2 条件式を作るための「比較演算子」
2.7.3 if...elseで処理を分ける
2.7.4 for文
2.8 関数
2.8.1 処理だけを行う関数
2.8.2 引数を受け取る関数
2.8.3 処理結果を返す関数
2.9 クラス
2.9.1 メソッド
2.9.2 オリジナルのクラスを作る
■オブジェクトを作成する(クラスのインスタンス化)
2.9.3 オブジェクトの初期化を行う__init__()
2.9.4 インスタンスごとの情報を保持するインスタンス変数
COLUMN リストの中に要素製造装置を入れる(内包表記)②
3章 ディープラーニングの数学的要素
3.1 ニューラルネットワークのデータ表現:テンソル
3.1.1 NumPyのスカラー(0階テンソル)
3.1.2 NumPyのベクトル(1階テンソル)
3.1.3 NumPyの行列(2階テンソル)
3.1.4 3階テンソルとより高階数のテンソル
3.2 ニューラルネットワークを回す(ベクトルの演算)
3.2.1 ベクトルの算術演算
3.2.2 ベクトルのスカラー演算
3.2.3 ベクトル同士の四則演算
■ベクトル同士の加算と減算
3.2.4 ベクトルのアダマール積を求める
3.2.5 ベクトルの内積を求める
3.3 ニューラルネットワークを回す(行列の演算)
3.3.1 行列の構造
3.3.2 多次元配列で行列を表現する
3.3.3 行列のスカラー演算
3.3.4 行列の定数倍
3.3.5 行列の成分にアクセスする
3.3.6 行列の成分同士の加算・減算をする
3.3.7 行列のアダマール積
3.3.8 行列の内積を求める
■行列同士の内積を求めてみる
3.3.9 行と列を入れ替えて「転置行列」を作る
3.4 微分
3.4.1 極限(lim)
3.4.2 微分の基礎
3.4.3 微分をPythonで実装してみる
■数値微分で関数を微分してみる
■プログラムの実行結果
3.4.4 微分の公式
3.4.5 変数が2つ以上の場合の微分(偏微分)
3.4.6 合成関数の微分
■合成関数のチェーンルールの拡張
■積の微分法
4章 ニューラルネットワークの可動部(勾配ベースの最適化)
4.1 ロジスティック回帰を実装した単純パーセプトロンで二値分類を行う
4.1.1 活性化関数による「発火」の仕組み
4.1.2 シグモイド関数
■シグモイド関数(ロジスティック関数)
■シグモイド関数の実装
4.1.3 シグモイド関数を活性化関数にしてパラメーターを最適化する
■最尤推定法と尤度関数
■対数尤度関数を微分しやすいように、両端に対数をとる
■対数尤度関数を変形してクロスエントロピー誤差関数にする
■対数尤度関数の微分
COLUMN シグモイド関数の微分
■パラメーターの更新式の導出
4.1.4 勾配降下法の考え方
■学習率の設定
■勾配降下法の更新式
4.1.5 単純パーセプトロンで論理ゲートを実現する
■Pythonの標準仕様でAND、NAND、ORゲートを実装する
4.2 XORゲートを多層パーセプトロンで実現する
4.2.1 多層パーセプトロンによるXORゲートの実現
■XORゲートの実現には、線形分離不可能な二値分類が必要
■多層パーセプトロンの構造
4.2.2 TensorFlowスタイルによるXORゲートの実装
■隠れ層(第1層)の作成
■バイアス、重みの初期化方法
■出力層(第2層)の作成(データフローグラフ)
■順伝播処理を行うcall()メソッド
■BinaryCrossentropyオブジェクトとSGDオブジェクトの生成
■バックプロパゲーションを実施するtrain_step()関数の定義
■学習を行う
4.2.3 KerasスタイルによるXORゲートの実装
■モデルの作成
■モデルの学習
■学習結果の確認
4.2.4 PyTorchによるXORゲートの実装
■モデルの定義
■モデルの生成
■損失関数とオプティマイザーの生成
■勾配降下アルゴリズムによるパラメーターの更新処理
■学習を行う
■学習結果の確認
5章 ニューラルネットワーク(多層パーセプトロン)
5.1 フィードフォワードニューラルネットワーク(FFNN)
5.1.1 ニューラルネットワークにおける順方向への伝播
■FFNNに必要な関数群を実装する
■入力層→第1層
■第1層→第2層
■第2層→出力層
■第3層
5.2 バックプロパゲーションを利用した重みの更新
5.2.1 誤差が逆方向に伝播される流れを見る
5.2.2 行列の掛け算で誤差逆伝播を一発で計算する
■一種の正規化因子である行列式の分母を消してしまう
5.2.3 バックプロパゲーション(誤差逆伝播法)
■出力層の重みを更新する(2乗和誤差の場合)
■出力層の重みの更新(シグモイド関数を用いるときのクロスエントロピー誤差関数の場合)
■出力層の重みの更新(ソフトマックス関数を用いるときのクロスエントロピー誤差関数の場合)
■出力層から1つ手前の層の重みを更新する
■重みの更新式を一般化する
5.3 ニューラルネットワークの作成
5.3.1 作成するニューラルネットワークの構造
5.3.2 初期化メソッド__init__()、weight_initializer()、sigmoid()、softmax()の作成
■重みの初期値について考える
5.3.3 入力層の処理
5.3.4 隠れ層の処理
5.3.5 出力層の処理
■ソフトマックス関数
5.3.6 ニューラルネットワークの順伝播部を完成させる
5.3.7 バックプロパゲーションによる重みの更新
■出力層の重みの更新
■隠れ層の重みの更新
5.3.8 テストデータを評価するevaluate()メソッドの定義
5.3.9 Python版ニューラルネットワークの完成
5.4 ファッションアイテムの画像認識
5.4.1 Fashion?MNISTデータセットのダウンロード
5.4.2 Fashion?MNISTデータの前処理
■画像データの前処理
■正解ラベルの前処理
COLUMN MNISTデータとFashion-MNISTデータ
5.4.3 ニューラルネットワークでファッションアイテムの学習を行う
5.4.4 ニューラルネットワークの学習精度を検証する
5.5 TensorFlowスタイルによるニューラルネットワークの構築
5.5.1 Fashion-MNISTデータセットの用意
5.5.2 2層ニューラルネットワークでファッションアイテムの画像を認識する
■確率的勾配降下法
■ReLU関数
■隠れ層(第1層)
■出力層(第2層)
■モデルの定義を完成させる
■損失関数とオプティマイザーの生成
■パラメーターの更新処理
■モデルを検証する
■学習の早期終了判定を行うEarlyStoppingクラス
■訓練データから検証用のデータを抽出する
■学習の実行
■損失と精度の推移をグラフにする
5.5.3 ドロップアウトでオーバーフィッティングを回避する
■隠れ層の出力にドロップアウトを適用する
■ドロップアウトを適用した結果を確認する
5.6 Kerasによるニューラルネットワークの構築
5.6.1 Kerasを用いたニューラルネットワークの構築
■Fashion-MNISTデータセットの読み込みと加工
■Kerasスタイルによるニューラルネットワークの実装
■学習を実行し、テストデータで検証する
■損失、正解率をグラフにする
5.7 PyTorchを使ってニューラルネットワークを構築する
5.7.1 データの読み込みと前処理、DataLoaderオブジェクトの生成まで
■データの加工処理を担うTransformオブジェクトの生成
■データセットの読み込み
■DataLoaderオブジェクトの生成
5.7.2 2層ニューラルネットワークでファッションアイテムの画像を認識する
■モデルの作成
■損失関数とオプティマイザーの生成
■パラメーターの更新を行うtrain_step()関数の定義
■テストデータでモデルの評価を行うtest_step()関数の定義
■早期終了判定を行うEarlyStoppingクラス
■学習を行う
6章 画像認識のためのディープラーニング
6.1 ニューラルネットワークに「特徴検出器」を導入する(畳み込みニューラルネットワーク)
6.1.1 2次元フィルターで画像の特徴を検出する
■2次元フィルター
■2次元フィルターで手書き数字のエッジを抽出してみる
6.1.2 サイズ減した画像をゼロパディングで元のサイズに戻す
6.1.3 Kerasスタイルによる畳み込みニューラルネットワーク(CNN)の構築
■入力層
■畳み込み層
■Flatten層
■出力層
■畳み込みニューラルネットワークのプログラミング
■畳み込みニューラルネットワーク(CNN)で画像認識を行う
6.2 TensorFlowスタイルによるCNNの構築
■ライブラリのインポートとデータセットの読み込み
■畳み込みニューラルネットワーク(CNN)の作成
■損失関数とオプティマイザーの生成からEarlyStoppingクラスの定義まで
■学習の実行
6.3 PyTorchによるCNNの構築
■データの準備からデータローダーの作成まで
■モデルの定義
■モデルの生成
■損失関数とオプティマイザーの生成
■train_step()関数の定義から早期終了判定を行うクラスの定義まで
■学習を行う
6.4 プーリングで歪みやズレによる影響を回避する
6.4.1 プーリングの仕組み
6.4.2 プーリング層とドロップアウトを備えた畳み込みネットワークの構築
6.4.3 TensorFlowスタイルによるプログラミング
■データの読み込みと前処理
■モデルの定義
■損失関数とオプティマイザーの生成からEarlyStoppingクラスの定義まで
■学習を行う
6.5 Kerasスタイルでプーリングを実装したCNNを構築する
6.6 PyTorchによるプーリングを実装したCNNの構築
■データの読み込み、前処理からデータローダーの作成まで
■モデルを定義してモデルオブジェクトを生成する
■損失関数とオプティマイザーの生成
■train_step()関数の定義から早期終了判定を行うクラスの定義まで
■学習を行う
COLUMN sparse_categorical_crossentropy
7章 一般物体認識のためのディープラーニング
7.1 カラー画像を10のカテゴリに分類したCIFAR-10データセット
7.1.1 一般物体認識のデータセット「CIFAR-10」を題材にする
7.1.2 KerasでダウンロードしたCIFAR-10のカラー画像を見る
7.1.3 一般物体認識のためのCNNの構造
7.1.4 TensorFlowスタイルでプログラミングしたCNNに飛行機、自動車、イヌ、ネコなどの10種類の画像を認識させてみる
■畳み込みネットワークの構築
■損失関数とオプティマイザーの生成
■学習を実行する関数の定義
■モデルの検証を行うvalid_step()関数の定義
■学習の早期終了判定を行うクラスの定義
■CIFAR-10の画像を学習させる
■誤差と精度をグラフにする
7.1.5 KerasスタイルでプログラミングしたCNNで飛行機、自動車、イヌ、ネコ…を認識させる
■CIFAR-10データセットのダウンロードと前処理
■CNNを構築する関数の定義
■KerasスタイルのCNNを用いてCIFAR-10を学習する
7.1.6 PyTorchでCIFAR-10の画像認識を行う
■CIFAR-10をダウンロードして前処理を行う
■モデルを定義する
■損失関数とオプティマイザーの生成、学習と評価を行う関数の定義
■学習を行う
7.2 カラー画像に移動、回転などの処理を加えてデータの水増しを行い、
認識精度を90%に引き上げる
7.2.1 データのスケールを小さくして処理時間をできるだけ短縮させる
7.2.2 訓練データに過剰に適合してしまうのを避ける
■出力層の場合の正則化項を適用した重みの更新式
7.2.3 KerasスタイルによるCNNの作成
■訓練用の画像データを水増しして認識精度を引き上げる
■画像をランダムに回転させる
■画像を平行に移動する
■画像を垂直方向に移動する
■画像をランダムに拡大
■画像を左右反転
■画像を上下反転
■画像の色相をランダムに変化させる
7.2.4 画像を拡張処理して精度90%を達成する(Keras)
■学習を行うtrain()関数の定義
■学習を実行する
■損失と精度、学習率の推移をグラフにする
■学習結果を保存する
■画像を入力して認識させてみる
7.2.5 画像を拡張処理して精度90%を達成する(TensorFlow)
■データの読み込みと前処理
■モデルの生成を行う
■損失関数、オプティマイザー、学習/評価を行う関数の用意
■学習を実行する関数と検証を行う関数の定義
■データに拡張処理を行い学習する
7.2.6 画像を拡張処理して精度90%を達成する(PyTorch)
■CIFAR-10をダウンロードして前処理を行う
■モデルを定義する
■損失関数とオプティマイザーの生成、学習と評価を行う関数の定義
■学習を行う
8章 人間と機械のセマンティックギャップをなくす試み
8.1 CNNで「特徴認識」に近い二値分類、「Dogs vs. Cats」データセットを学習する
8.1.1 Dogs vs. Cats
■データセットのダウンロード
■データを前処理して一部の画像を出力してみる
■画像を可視化してみる
8.1.2 ネコとイヌを認識させてみる
■データのダウンロード
■データジェネレーターを生成する関数の定義
■モデルの生成から学習までを実行する関数の定義
■学習を行う
8.2 「転移学習」でイヌとネコを高精度で分類する
8.2.1 自前のFC層に大規模なデータ学習済みのVGG16モデルを結合する
8.2.2 ファインチューニングを行って、さらに認識精度を引き上げる
■データのダウンロードとデータジェネレーターの生成
■ファインチューニングで認識精度を95%まで上げる
■VGG16をファインチューニングして学習を実行する関数の定義
■学習の実行
COLUMN Googleドライブにアップロードしたデータを使う
8.3 アリとハチの画像をVGG16で学習する
■データセットをダウンロードして解凍する
■データの前処理を行うクラス
■オリジナルの画像と前処理後の画像を確認する
■画像のファイルパスをリストにする
■アリとハチの画像のデータセットを作成するクラス
■データローダーの生成
■VGG16の読み込み
■学習を可能にする層の設定
■損失関数とオプティマイザーの生成
■学習を行う関数を定義する
■学習と検証を行う
9章 ジェネレーティブディープラーニング
9.1 現在の学習に過去の情報を取り込む(リカレントニューラルネットワーク)
9.1.1 RNN(リカレントニューラルネットワーク)を理解する
■BPTT(Backpropagation Through Time)
9.1.2 LSTM(Long Short Term Memory:長・短期記憶)
■LSTMのファーストステップ
■LSTMのセカンドステップ
■LSTMのサードステップ
9.2 LSTMを配置したRNNで対話が正しいかどうかを識別する
9.2.1 「雑談対話コーパス」、Janomeライブラリのダウンロード
■Janomeのインストール
■「雑談対話コーパス」のダウンロード
9.2.2 対話データの抽出と加工
■JSONファイルを読み込んで正解ラベルと発話をリストにする
■発話テキストを形態素に分解する
■単語を出現回数順の数値に置き換える
■RNN(LSTM)を構築して発話が破綻しているかを学習する
■RNNモデルを構築する
■学習する
9.3 「雑談会話コーパス」の予測精度を上げる
■アンサンブルって何?
■アンサンブルに使用するモデル
■アンサンブルをプログラミングする
■多数決のアンサンブルを実行する
10章 OpenCVによる「物体検出」
10.1 OpenCV
10.1.1 OpenCVで何ができる?
■OpenCVのインストール
10.2 OpenCVによる物体検出
10.2.1 人の顔の検出
■画像の中から顔の部分を検出する
10.2.2 瞳の検出
■画像の中から瞳の部分を検出する
10.3 検出した部分を切り取って保存する
10.3.1 画像から検出した顔の部分を切り出してファイルに保存する
Amazonで詳しく見る
紹介文
OpenCVはコンピュータビジョン分野でもっとも利用されているオープンソースフレームワークです。近年の人工知能ブームに呼応する形で機械学習やディープラーニングAPIが強化され、物体の名称と位置を認識するオブジェクト検出(Object Detection)といったタスクも容易に扱えるようになりました。
とはいえ、画像認識タスクがすべてディープラーニングによる手法に置き換わるわけではありません。これまでに培った手法を選択した方が堅実な場面もあるため、本書では現時点で重要とされる画像処理手法を整理します。OpenCVの基礎的な解説からはじめ、dnnモジュールを用いたディープラーニングによる画像認識についても解説していきます。
1章 OpenCVとは
2章 OpenCVインストール
3章 coreモジュール
4章 imgprocモジュール
5章 imgcodecs、videoioモジュール
6章 ディープラーニング
7章 dnnモジュール基礎
8章 dnnモジュール応用
サンプルコードにはPythonを利用し、OpenCV 4.5.Xに対応しています。
目次
はじめに
本書の構成
本書で扱わないこと、参考文献
API の解説
サンプルコードとサポート
開発環境
第1章 OpenCVとは
1.1 OpenCVの概要
1.2 主要モジュール
1.3 OSSライセンス
1.3.1 OpenCVのOSSライセンス
1.3.2 opencv-pythonのOSSライセンス
1.4 サポート言語
1.4.1 公式サポート言語
1.4.2 非公式サポート言語
1.5 サポートプラットフォーム
1.6 高速化
1.6.1 スレッド並列化
1.6.2 SIMD命令対応
1.6.3 アクセラレータ対応
1.7 開発の歴史
1.8 ブランチ管理
1.8.1 2.4ブランチ
1.8.2 3.4ブランチ
1.8.3 4.xブランチ
1.8.4 5.xブランチ
1.8.5 masterブランチ
1.8.6 nextブランチ
1.9 各種サイト
1.9.1 公式サイト
1.9.2 公式リポジトリ
1.9.3 有志サイト
第2章 OpenCVインストール
2.1 OpenCVのインストール
2.2 pip
2.2.1 依存パッケージインストール
2.2.2 opencv-pythonインストール
2.2.3 opencv-contrib-pythonインストール
2.2.4 動作確認
2.2.5 opencv-pythonパッケージのバージョン番号
2.2.6 Windows環境固有の注意点
2.3 Miniconda
2.3.1 Minicondaインストール
2.3.2 依存パッケージインストール
2.3.3 opencvパッケージインストール
2.3.4 動作確認
2.4 Docker
2.4.1 Dockerインストール
2.4.2 Dockerイメージのビルド
2.4.3 Dockerコンテナの起動
2.4.4 動作確認
2.5 ソースコード
2.5.1 依存パッケージインストール
2.5.2 ビルド、インストール
2.5.3 動作確認
2.5.4 CMakeオプション
第3章 coreモジュール
3.1 基本処理
3.1.1 画像データの扱い
3.1.2 ブランク画像生成
3.1.3 画素値の参照、代入
3.1.4 width、height、チャンネル情報の取得
3.1.5 ROI操作
3.2 ピクセルごとの操作
3.2.1 add、subtract
3.2.2 bitwise_and、bitwise_or
3.2.3 addWeighted
3.2.4 absdiff
3.2.5 copyTo
3.2.6 flip
3.2.7 rotate
3.2.8 clip
3.3 統計情報の取得
3.3.1 min、max
3.3.2 minMaxLoc
3.3.3 mean
3.3.4 sum
3.3.5 countNonZero
3.4 画像の分割、結合
3.4.1 split、merge
3.4.2 hconcat、vconcat
3.5 ユーティリティ
3.5.1 getBuildInformation
3.5.2 TickMeter
3.5.3 FileStorage
3.5.4 useOptimized
3.5.5 setUseOptimized
第4章 imgprocモジュール
4.1 画像の前処理と後処理
4.1.1 OpenCVで利用できる手法
4.1.2 画像の出力方法
4.2 色の変換
4.2.1 色空間の変換(cvtColor
4.2.2 チャンネルで分割(split)
4.2.3 HSV色空間の活用
4.2.4 その他の色変換
4.3 適応的しきい値による2値化(adaptiveThreshold)
4.3.1 しきい値(threshold)
4.3.2 adaptiveThresholdによる2値化
4.3.3 輪郭の抽出(findContours)
4.4 画像の幾何変換
4.4.1 アフィン変換(warpAffine)
4.4.2 射影変換(ホモグラフィ変換)
第5章 imgcodecs、videoioモジュール
5.1 画像の読み込み
5.1.1 静止画を読み込む(imread)
5.1.2 動画の読み込み(VideoCapture)
5.1.3 ネットワークカメラからの読み込み
5.1.4 Webカメラからの読み込み
5.1.5 連番画像の読み込み
5.2 画像の書き込み
5.2.1 静止画の書き込み(imwrite)
5.2.2 動画の書き込み(VideoWriter)
第6章 ディープラーニング
6.1 ディープラーニングの概要
6.1.1 モデル、パラメータ、オプティマイザ
6.1.2 過小適合と過剰適合
6.1.3 ディープラーニングでの考え方
6.2 精度評価
6.2.1 回帰の精度評価
6.2.2 分類の精度評価
6.3 画像処理におけるディープラーニング
6.3.1 CNN
6.3.2 CNNの優位性
第7章 dnnモジュール基礎
7.1 dnnモジュールの概要
7.1.1 dnnモジュールとは?
7.1.2 サポートしているモデルフォーマット
7.1.3 推論エンジンと実行デバイス
7.1.4 High Level APIとLow Level API
7.2 顔検出
7.2.1 顔検出とは?
7.2.2 顔検出(OpenCV Face Detector)
7.2.3 NMS(Non-Maximum Suppression)
7.2.4 パフォーマンス比較
7.2.5 APIの仕様
7.3 オブジェクト検出
7.3.1 オブジェクト検出とは?
7.3.2 精度重視のオブジェクト検出(YOLOv4)
7.3.3 さらに精度の高いオブジェクト検出(Scaled-YOLOv4)
7.3.4 処理速度重視のオブジェクト検出(YOLOv4-tiny)
7.3.5 パフォーマンス比較
7.3.6 APIの仕様
7.4 クラス分類
7.4.1 クラス分類とは?
7.4.2 精度重視のクラス分類(EfficientNet)
7.4.3 信頼度上位5個のクラスを取得する
7.4.4 処理速度重視のクラス分類(MobileNet v3)
7.4.5 パフォーマンス比較
7.4.6 APIの仕様
7.5 セグメンテーション
7.5.1 セグメンテーションとは?
7.5.2 セグメンテーション(DeepLab v3)
7.5.3 APIの仕様
7.6 テキスト検出とテキスト認識
7.6.1 テキスト検出、テキスト認識とは?
7.6.2 テキスト検出(DB)
7.6.3 テキスト認識(CRNN-CTC、DenseNet-CTC)
7.6.4 パフォーマンス比較
7.6.5 APIの仕様
7.7 キーポイント検出
7.7.1 キーポイント検出とは?
7.7.2 キーポイント検出(Lightweight OpenPose)
7.7.3 キーポイントのもとになるヒートマップを取得する
7.7.4 APIの仕様
第8章 dnnモジュール応用
8.1 dnnモジュールの対応レイヤ
8.2 カスタムレイヤ対応
8.2.1 カスタムレイヤのクラスを実装する
8.2.2 カスタムレイヤを登録する
8.2.3 動作確認
8.3 学習済みモデルの診断ツール(model-diagnostics)
8.3.1 概要
8.3.2 環境構築
8.3.3 使い方
8.3.4 実行例
8.4 外部DNNフレームワーク連携
8.4.1 CUDA backend
8.4.2 Intel Inference Engine backend
8.4.3 Tengine backend
8.5 学習済みモデルの利用
8.5.1 OpenCV Zoo
8.5.2 Open Model Zoo
索引
著者プロフィール
Amazonで詳しく見る
紹介文
『scikit-learnとTensorFlowによる実践機械学習』の改訂。教師なし学習、言語、強化学習などを追加。
『scikit-learnとTensorFlowによる実践機械学習』待望の改訂版!
初版でカバーできなかった教師なし学習、ディープラーニングに関する画像、言語、強化学習などについて詳述。またTensorFlow上で動くニューラルネットワークライブラリのKerasの解説が加わり、各章でKerasを使った解説がなされています。TensorFlowのコンポーネントに関する記述が追加されています。Githubにjupyter notebookで試せるコードを掲載しており、試しながら学べます。
Amazonで詳しく見る
紹介文
ディープラーニングの本格的な入門書。外部のライブラリに頼らずPython 3によってゼロからディープラーニングを作成できる。
実際にシステムを作りながらディープラーニングを学ぶ!
ディープラーニングの本格的な入門書。外部のライブラリに頼らずに、Python 3によってゼロからディープラーニングを作ることで、ディープラーニングの原理を楽しく学びます。ディープラーニングやニューラルネットワークの基礎だけでなく、誤差逆伝播法や畳み込みニューラルネットワークなども実装レベルで理解できます。ハイパーパラメータの決め方や重みの初期値といった実践的なテクニック、Batch NormalizationやDropout、Adamといった最近のトレンド、自動運転や画像生成、強化学習などの応用例、さらには、なぜディープラーニングは優れているのか? なぜ層を深くすると認識精度がよくなるのか? といった“Why”に関する問題も取り上げます。
Amazonで詳しく見る
紹介文
Python初心者でも安心して学べる超入門書の登場!
【本書の概要】
Web開発やデータ分析などの分野で近年、ユーザー数が増えてきているPython。
最近では、Pythonに触れる方も多くなってきています。
本書はそうしたPython初心者の方に向けて、
簡単なサンプルを作りながら、対話形式でプログラミングのしくみを学ぶ書籍です。
【対象読者】
Pythonのついて、何も知らない超初心者
【1年生シリーズ・3つのポイント】
・対話形式で解説し、イラストを交えながら、基礎知識を解説します。
・初めての方でも安心して学習できるよう基本文法もしっかり解説します。
・平易でサンプルを用意していますので、安心してプログラムを体験できます。
【本書のポイント】
ヤギ博士とフタバちゃんと一緒に
基本的なプログラムから、面白い人工知能アプリの作成まで
体験して、プログラミングのしくみを学ぶことができます。
【著者】
森 巧尚(もり よしなお)
iPhoneアプリやWebコンテンツの制作、執筆活動、関西学院大学非常勤講師など、
プログラミングにまつわる幅広い活動を行っている。
近著に『やさしくはじめるiPhoneアプリ作りの教科書』(マイナビ出版)、
『楽しく学ぶ アルゴリズムとプログラミングの図鑑』(マイナビ出版) 、
『なるほど!プログラミング』(SBクリエイティブ)などがある。
第1章 Python で何ができるの?
第2章 Python を触ってみよう
第3章 プログラムの基本を知ろう
第4章 アプリを作ってみよう
第5章 人工知能(チノ)くんと遊んでみよう
Amazonで詳しく見る
紹介文
デジタルカメラの顔認識などを可能にする画像認識。その精度は機械学習の利用で格段に向上した。基礎から機械学習による応用まで解説
デジタルカメラの顔認識機能など、身近で利用されている画像認識の技術。機械学習の応用により、その精度は格段に向上した。最前線で活躍する研究者が、基礎から深層学習を取り入れた応用的手法までをくわしく解説する。画像認識の現状と今後の展望を知るのに最適な一冊!
■おもな内容
第1章 画像認識の概要
第2章 局所特徴
第3章 統計的特徴抽出
第4章 コーディングとプーリング
第5章 分類
第6章 畳み込みニューラルネットワーク
第7章 物体検出
第8章 インスタンス認識と画像検索
第9章 さらなる話題(セマンティックセグメンテーション/画像からのキャプション生成/画像生成と敵対的生成ネットワーク)
■機械学習プロフェッショナルシリーズ
本シリーズでは、発展著しい機械学習技術の数学的な基礎理論、実用的なアルゴリズム、それらの活用法を、全29巻にわたって刊行する。
ビッグデータ時代を牽引している若手・中堅の現役研究者が、入門的な内容から最先端の研究成果までをわかりやすく解説。
これからデータサイエンス分野で研究を始めようとしている大学生・大学院生、および、機械学習技術を基礎科学や産業に応用しようとしている研究者・技術者に向けた注目のシリーズである。
第7期として、以下の3点を刊行!
統計的因果探索 清水 昌平・著
画像認識 原田 達也・著
深層学習による自然言語処理 坪井 祐太/海野 裕也/鈴木 潤・著
■シリーズ編者
杉山 将 理化学研究所 革新知能統合研究センター センター長/東京大学大学院新領域創成科学研究科 教授
第1章 画像認識の概要
画像認識とは/画像認識の分類/クラス認識の手順/深い構造と浅い構造/物体検出/インスタンス認識/画像認識の認識性能を向上させるための原則/数学表記について
第2章 局所特徴
局所特徴とは/検出器/空間フィルタリング/基本的な検出器/ 回転やアフィン変換に頑健な検出器/記述子/検出器と記述子の組み合わせ
第3章 統計的特徴抽出
統計的特徴抽出とは/主成分分析/白色化/フィッシャー線形判別分析/正準相関分析/偏最小2乗法
第4章 コーディングとプーリング
コーディングとプーリングの概要/確率分布を利用したコーディング/局所特徴のコードワードによる再構築/多様体学習/特徴写像の線形内積によるカーネル関数近似/空間情報の活用
第5章 分類
分類とは/ベイズ決定則/識別関数/一般的な教師付き学習の枠組み/最適化/線形識別関数/確率的識別関数/局所学習/集団学習/分類結果の評価
第6章 畳み込みニューラルネットワーク
画像認識における深層学習/フィードフォワードニューラルネットワーク/畳み込みニューラルネットワーク/実装上の工夫/パラメータの最適化/畳み込みニューラルネットワークの例
第7章 物体検出
物体検出とは/物体領域候補の提案/線形分類器を用いた物体検出/集団学習を用いた物体検出/非最大値の抑制/畳み込みニューラルネットワークを利用した物体検出/物体検出の評価
第8章 インスタンス認識と画像検索
インスタンス認識/画像検索/画像検索の評価
第9章 さらなる話題
セマンティックセグメンテーション/画像からのキャプション生成/画像生成と敵対的生成ネットワーク
Amazonで詳しく見る
紹介文
本書は「Pythonだけ」を学ぶ本ではありません。Pythonを使ってプログラミングを紹介していますが、伝えたい内容はPythonに限らない「プログラミング全般」の知識です。
本書の著者、コーリー・アルソフ(Cory Althoff)は、「独学プログラマー」です。本書は、彼が独学で、ゼロからプログラミングを学んだ体験に基づいて書かれました。
プログラミングを独学で身に付けるために、著者がPythonを通して学んだエッセンスが書かれています。彼の独学プログラマーとしての学び方は、Amazon.comでの本書の評価を見るとわかるように、多くの人に支持されています。
――訳者あとがきより
第1部(Part1)
第1章 イントロダクション
第2章 さあ、はじめよう!
第3章 プログラミング入門
第4章 関数
第5章 コンテナ
第6章 文字列操作
第7章 ループ
第8章 モジュール
第9章 ファイル
第10章 知識を1つにまとめる
第11章 ハマったときの助け
第2部(Part2)
第12章 プログラミングパラダイム
第13章 オブジェクト指向プログラミングの4大要素
第14章 もっとオブジェクト指向プログラミング
第15章 知識を1つにまとめる
第3部(Part3)
第16章 Bash
第17章 正規表現
第18章 パッケージ管理
第19章 バージョン管理
第20章 知識を1つにまとめる
第4部(Part4)
第21章 データ構造
第22章 アルゴリズム
第5部(Part5)
第23章 プログラミングのベストプラクティス
第24章 プログラマーとしての最初の仕事
第25章 チームで働く
第26章 さらに学ぼう
第27章 次のステップ
第6部(Part6)
補章 より良いコードにするために
補章 継続して学ぶために
謝辞
訳者あとがき
索引
第1部(Part1)
第1章 イントロダクション
第2章 さあ、はじめよう!
第3章 プログラミング入門
第4章 関数
第5章 コンテナ
第6章 文字列操作
第7章 ループ
第8章 モジュール
第9章 ファイル
第10章 知識を1つにまとめる
第11章 ハマったときの助け
第2部(Part2)
第12章 プログラミングパラダイム
第13章 オブジェクト指向プログラミングの4大要素
第14章 もっとオブジェクト指向プログラミング
第15章 知識を1つにまとめる
第3部(Part3)
第16章 Bash
第17章 正規表現
第18章 パッケージ管理
第19章 バージョン管理
第20章 知識を1つにまとめる
第4部(Part4)
第21章 データ構造
第22章 アルゴリズム
第5部(Part5)
第23章 プログラミングのベストプラクティス
第24章 プログラマーとしての最初の仕事
第25章 チームで働く
第26章 さらに学ぼう
第27章 次のステップ
第6部(Part6)
補章 より良いコードにするために
補章 継続して学ぶために
謝辞
訳者あとがき
索引
Amazonで詳しく見る
紹介文
データ分析の現場にあって入門書にない「汚いデータ」(ダーティデータ)に対応する、プロのノウハウを解説します。
これがリアルなデータ分析だ!
君は「汚いデータ」を処理できるか?
データ分析の現場にあって入門書にないもの――それは、「汚いデータ」(ダーティデータ)です。本書は、データ分析の現場では①どんなデータに出会い、②どのような問題が生じ、③どう対応すればよいのかというノウハウを解説。
事前の加工(視覚化)から機械学習、最適化問題まで、100本ノックをこなして、ビジネス現場で即戦力になれる「応用力」を身につけよう!
練習するライブラリ
・Pandas
・Numpy
・Matplotlib
・scikit-learn
・Networkxs
・pulp
・ortoolpy
・opencv
・dlib
・MeCab
第1部 基礎編:データ加工
第1章 ウェブからの注文数を分析する10本ノック
第2章 小売店のデータでデータ加工を行う10本ノック
第2部 実践編①:機械学習
第3章 顧客の全体像を把握する10本ノック
第4章 顧客の行動を予測する10本ノック
第5章 顧客の退会を予測する10本ノック
第3部 実践編②:最適化問題
第6章 物流の最適ルートをコンサルティングする10本ノック
第7章 ロジスティクスネットワークの最適設計を行う10本ノック
第8章 数値シミュレーションで消費者行動を予測する10本ノック
第4部 発展編:画像処理/言語処理
第9章 潜在顧客を把握するための画像認識10本ノック
第10章 アンケート分析を行うための自然言語処理10本ノック
Amazonで詳しく見る
紹介文
プログラミング初学者に向けた独習シリーズに『独習Python』が新登場。山田祥寛氏によるPython入門書の決定版。
手を動かしておぼえるPythonプログラミング
――独学に最適な“標準教科書”
プログラミングの初学者に向けた独習シリーズに『独習Python』が新登場。
プログラミング言語入門書の執筆で定評のある山田祥寛氏による、
Python入門書の決定版です。
独習シリーズの強みである、手を動かしておぼえる(書いて実行して結果を確認する)
特長を生かし、Pythonの基本的な言語仕様から、標準ライブラリ、ユーザー定義関数、
オブジェクト指向構文、モジュールまで、サンプルプログラムを例示しながら
詳細かつ丁寧に解説します。
プログラミングの基礎知識がない方でも、解説→例題(サンプル)→理解度チェック
という3つのステップで、Pythonでプログラミングを行う際に必要な知識・概念・機能を
体系的に習得できます。
プログラミングの入門者、これからPythonで開発を始めたい初学者から、再入門者、
学生・ホビープログラマまで、「一からPython言語を学びたい」「Pythonプログラミング
の基本をしっかり身につけたい」という方におすすめの一冊です。
第1章 イントロダクション
1.1 Pythonとは?
1.2 Pythonの歴史と現状
1.3 Pythonアプリを開発/実行するための基本環境
1.4 Pythonプログラミングの基本
1.5 Pythonの基本ルール
1.6 開発/学習の前に押さえておきたいテーマ
第2章 Pythonの基本
2.1 変数
2.2 データ型
第3章 演算子
3.1 算術演算子
3.2 代入演算子
3.3 比較演算子
3.4 論理演算子
3.5 ビット演算子
3.6 演算子の優先順位と結合則
第4章 制御構文
4.1 条件分岐
4.2 繰り返し処理
4.3 ループの制御
4.4 例外処理
第5章 標準ライブラリ[基本]
5.1 ライブラリの分類
5.2 文字列の操作
5.3 日付/時刻の操作
第6章 標準ライブラリ[コレクション]
6.1 シーケンス型
6.2 セット(集合)型
6.3 辞書(dict)型
第7章 標準ライブラリ[その他]
7.1 正規表現
7.2 ファイル操作
7.3 ファイルシステムの操作
7.4 HTTP経由でコンテンツを取得する
7.5 その他の機能
第8章 ユーザー定義関数
8.1 ユーザー定義関数の基本
8.2 変数の有効範囲(スコープ)
8.3 引数のさまざまな記法
8.4 関数呼び出しと戻り値
第9章 ユーザー定義関数[応用]
9.1 デコレーター
9.2 ジェネレーター
9.3 関数のモジュール化
9.4 非同期処理
9.5 ドキュメンテーション
第10章 オブジェクト指向構文
10.1 クラスの定義
10.2 カプセル化
10.3 継承
10.4 ポリモーフィズム
第11章 オブジェクト指向構文[応用]
11.1 例外処理
11.2 特殊メソッド
11.3 データクラス
11.4 イテレーター
11.5 メタクラス
付録A 「練習問題」「このの理解度チェック」解答
Amazonで詳しく見る
紹介文
Pythonプログラミングを全力で学ぶならこの1冊!Pythonをこれから学ぶビギナーから、基礎力を得て現場で実践したい方まで、確実なスキルアップをはかれます。
1 準備:Python3をはじめよう(Python3の準備
プログラムを試してみよう)
2 基礎:Pythonの基本構文を学ぶ(値と変数
標準ライブラリ
条件分岐、繰り返し、例外処理
リスト
タプル
セット(集合)
辞書
ユーザ定義関数
関数の高度な利用
クラス定義)
3 応用:科学から機械学習まで(テキストファイルの読み込みと書き出し
グラフを描く
NumPyの配列
機械学習を試そう)
Amazonで詳しく見る
紹介文
機械学習ライブラリKerasの解説書。画像識別、画像生成、自然言語処理、感情識別、自動ゲームプレイなどの幅広いサンプルを例示
人気フレームワークKerasの解説書!
直感的かつ短いコードでアイデアを形にできるKerasはTensorFlowのラッパーとして大人気のライブラリです。本書でもTensorFlowをバックエンドとして使用し、自然言語処理、画像識別、画像生成、音声合成、テキスト生成、強化学習、AIゲームプレイなどさまざまなモデルをPythonとKerasで実装します。対象読者は、各種のディープラーニングを素早く実装したいプログラマー、データサイエンティスト。ディープラーニングを支える技術の速習にも好適です。数式はなるべく使わずにコードと図で説明します。ニューラルネットワークおよびPython 3の基本を理解している人であれば誰でも始めることができます。
Amazonで詳しく見る
紹介文
個人の地域密着型アウトドアショップがデジタルマーケティングで業績を飛躍的にアップさせていくストーリーに乗せて、DMの基礎を…
個人の地域密着型アウトドアショップがデジタルマーケティングで業績を飛躍的にアップさせていくストーリーに乗せて、DMの基礎を学ぶ
Amazonで詳しく見る
紹介文
大好評!デジタル時代の必携リテラシー、G検定の「公式テキスト」の改訂版!
【本書の特徴】
・大ベストセラー、ディープラーニング G検定 公式テキストの改訂版。
・改訂された新シラバスに完全準拠。
・試験運営団体である「日本ディープラーニング協会」が監修。
・章末問題を大増量。分かりやすい解説付き。
・ディープラーニングに関する入門書としても最適。
【対象読者】
・ G検定を受験しようと思っている人
・ディープラーニングについて概要を学びたい人
・ディープラーニングを事業活用しようと思っている人・DX推進を検討している人
【G検定とは】
・内容:ディープラーニングを事業に活かすための知識を有しているかを検定する
・試験方式:知識問題(多肢選択式)、オンライン実施(自宅受験)
・日程:年3回(詳細は公式サイトにて公表)
【目次】
試験の概要
第1章 人工知能(AI)とは
第2章 人工知能をめぐる動向
第3章 人工知能分野の問題
第4章 機械学習の具体的手法
第5章 ディープラーニングの概要
第6章 ディープラーニングの手法
第7章 ディープラーニングの社会実装に向けて
Appendix 事例集 産業への応用
第1章 人工知能(AI)とは
1-1.人工知能(AI)とは
1-2.人工知能研究の歴史
第2章 人工知能をめぐる動向
2-1.探索・推論
2-2.知識表現
2-3.機械学習・深層学習
第3章 人工知能分野の問題
3-1.人工知能分野の問題
第4章 機械学習の具体的手法
4-1.代表的な手法
4-2.モデルの評価
第5章 ディープラーニングの概要
5-1.ニューラルネットワークとディープラーニング
5-2.ディープラーニングのアプローチ
5-3.ディープラーニングを実現するには
5-4.活性化関数
第6章 ディープラーニングの手法
6-1.畳み込みニューラルネットワーク
6-2.深層生成モデル
6-3.画像認識分野での応用
6-4.音声処理と自然言語処理分野
6-5.深層強化学習
6-6.モデルの解釈性の問題とその対応
第7章 ディープラーニングの社会実装に向けて
7-1.AIと社会
7-2.AIプロジェクトを計画する
7-3.データを集める
7-4.データを加工・分析・学習させる
7-5.実装・運用・評価する
7-6.クライシス・マネジメントをする
Appendix 事例集 産業への応用
A-1.製造業領域における応用事例
A-2.モビリティ領域における応用事例
A-3.医療領域における応用事例
A-4.介護領域における応用事例
A-5.インフラ領域における応用事例
A-6.サービス・小売・物流領域における応用事例
A-7.農林水産業領域における応用事例
A-8.その他領域における応用事例
Amazonで詳しく見る
紹介文
データ収集の基本!スクレイピングを体験してみよう!
Pythonでスクレイピングを体験してみよう!
【スクレイピングとは】
機械学習やデータ分析になくてはならない「データ」。
このようなデータは、インターネット上に膨大にありますが、Pythonを使えば効率よくデータ収集できます。
こうした手法を「スクレイピング」といいます。
サイト自体もオープンデータ化が進んでおり、データを集めやすい環境が整ってきています。
【Python2年生について】
「Python2年生」シリーズは、「Python1年生」を読み終えた方を対象とした入門書です。
ある程度、技術的なことを盛り込み、本書で扱う技術について身に着けてもらいます。
【ターゲット】
・ネット上からデータ収集を行う初心者
・データ分析の手前の初心者
【本書の売り】
ヤギ博士&フタバちゃんと一緒に、インターネットからのファイルのダウンロード方法、
HTML解析の方法、いろいろなデータの読み書き、
APIの使い方といったデータ収集と便利なライブラリを利用した簡単な可視化手法を解説する書籍です。
また最終的にデータ収集を自動化する方法も簡単に解説します。
第1章 Pythonでデータをダウンロード
LESSON 01 スクレイピングってなに?
LESSON 02 Pythonをインストールしてみよう
LESSON 03 requestsでアクセスしてみよう
第2章 HTMLを解析しよう
LESSON 04 HTMLを解析してみよう
LESSON 05 ニュースの最新記事一覧を取得してみよう
LESSON 06 リンク一覧をファイルに書き出そう
LESSON 07 画像を一括ダウンロードしよう
第3章 表データを読み書きしよう
LESSON 08 pandasを使ってみよう
LESSON 09 さまざまなデータの加工
LESSON 10 グラフで表示してみよう
LESSON 11 Excelファイルを読み書きしてみよう
第4章 オープンデータを分析してみよう
LESSON 12 オープンデータってなに?
LESSON 13 郵便局:郵便番号データ
LESSON 14 e-Stat:政府統計の相互窓口
LESSON 15 キッズすたっと:探そう統計データ
LESSON 16 自治体のデータ:データシティ鯖江
第5章 Web APIでデータを収集しよう
LESSON 17 Web APIってなに?
LESSON 18 OpenWeatherMapってなに?
LESSON 19 現在の天気を調べよう
LESSON 20 現在から5日間(3時間ごと)の天気を調べよう
Amazonで詳しく見る
紹介文
急速に広がるディープラーニング活用の今と未来がわかる!国内の事例を体系的に取り上げ先駆者が解説
AIは研究から実用フェーズへ――
急速に広がるディープラーニング活用の今と未来がわかる!
国内35社の事例を体系的に取り上げ、先駆者が苦労したポイントを解説
<日本ディープラーニング協会監修>
活用を検討する企業でよく生じる疑問にも答えます。
次世代の新規事業や業務改善の企画に欠かせない1冊!
インターネットに遅れること20年、ディープラーニングは、
「汎用目的技術」の1つとして、あらゆる産業を変えていくとみられています。
汎用目的技術とは、古くは動物の家畜化、車輪、印刷の発明から、鉄道、電気、
自動車、インターネットまで「原理は単純で汎用的でさまざまなことに利用できる」
技術のことをいいます。
本書は、ディープラーニングが与えるインパクトを事例を基に解説します。
第1章では、東京大学大学院工学系研究科 特任准教授の松尾豊氏が描く「ディープラーニングをベースにしたAIの技術的発展」(ロードマップ)を解説。
第2~5章ではこのロードマップを基に国内の先進事例を分類して紹介していきます。
カツ丼の盛り付けを判定、泳ぐマグロの数を数える、クリーニング衣類を判別、文章の校閲、河川の護岸の傷判定、送電線の異常検知、道路下の空洞を探る、タクシーの乗客数予測、テレビCMの効果を予測、お弁当の盛り付け、重機で自動掘削、白黒映像の色付け、仮想アイドル画像の生成、プロ並みアナウンサー、人の話し方をまねる……続々登場する、こうしたディープラーニングの驚異の活用法が分かります。
第1章 ディープラーニングの発展予測
第2章 [Step1] 人の「眼」となり単純作業から解放する
第3章 [Step2] 「五感」を担い行動予測や異常検知を実現
第4章 [Step3] 現実社会に柔軟に対応 「ロボット」「自動運転」の時代
第5章 「創作」業務へも広がる活用範囲
第6章 ビジネス活用Q&A
──向く分野/向かない分野、データ、人材、投資などの悩みに回答
Amazonで詳しく見る
紹介文
Pythonはオブジェクト指向型の言語で、初学者向けでも文法解説だけでは物足りないと感じることが多いでしょう。本書では「チャットボットの開発を軸に文法的なものを学ぶ」スタイルをメインに、巻末ではディープラーニングについても学ぶことができます。
Anaconda、Jupyter Notebook、Spyderを使用し、Qt Designerでの解説をしていますので、それらの使い方も身に付きます。
第3版となる本書では、Web API、ライブラリを最新のものに対応するとともに、画像認識についてより高度な手法を追加しています。
Chapter 0 いま、なぜPythonなのか
0.1 そもそもPythonって何のためのものなの?
0.1.1 まずは「Pythonって何?」
0.1.2 Pythonって他のプログラミング言語と何が違うの?
Pythonは書いたらすぐに実行できる「インタープリター型言語」
Memo プログラミング言語
0.2 PHP、Ruby、Perlがあるのに、なぜPythonなの?
0.2.1 日本語対応もしっかり!
0.3 どうしてPythonはプログラミングの学習に向いてるの?
0.3.1 Pythonが褒められる2つの理由
Pythonには面倒な手続きが少ない
「プログラマーの頭」になるための近道
0.4 Pythonのコードが読みやすいって、どんなふうに?
0.4.1 階乗を求めるプログラムで比べてみよう
0.5 結局のところPythonで何が作れるの?
0.5.1 具体的にソフトウェアとしてはどんなものが作られているの?
統合開発環境
Memo Pythonは書いたらすぐに実行できるインタープリター型言語
Webフレームワーク
科学/数学用のライブラリ
ディープラーニング用のライブラリ
0.6 Pythonが使えると、この先どんなメリットがあるのかな?
0.6.1 Pythonのイイところ 1「ビッグな実績があるんです」
0.6.2 Pythonのイイところ 2「強力なフレームワークがいっぱいあるんです」
0.6.3 Pythonのイイところ 3「やっぱ需要はJavaの方が上でしょ?」
Onepoint 実は「儲かる」Pythonプログラマー
0.7 ところでPythonでアプリを作って何がウレシイの?
Pythonにはイイことがいっぱい
0.8 Pythonプログラミングをゼロからスタート!
なるべく順番に読んでほしいけど、好きなところから始めてもかまいません!
Chapter 1 Pythonを使えるようにしてプログラミングを始めよう(環境構築とソースコードの入力)
1.1 PythonをダウンロードしてPCにインストールしよう
1.1.1 PythonをダウンロードしてWindowsマシンにインストールしよう
Python3.x.xのダウンロードとインストール
1.2 IDLE (Python GUI)を起動してPythonを動かしてみよう
1.2.1 Pythonの開発ツール「IDLE」でプログラムを実行してみよう
IDLEを起動して「Hello world!」プログラムを実行する
Memo Pythonのバージョン
Memo Macへのインストール
1.2.2 もっとプログラムらしいことをやってみよう
Pythonのプログラム用ファイルを作る
Memo 外部ライブラリ
保存したプログラムを実行する
1.2.3 さらにプログラムらしいことをやってみよう(アプリの画面を作る)
専用の画面を持つプログラムを作ってみる
Hint 本書で使う標準ライブラリ以外のライブラリ
Memo Pythonのロゴ
1.3 Anacondaをインストールして開発環境を用意する
1.3.1 Anacondaのダウンロードとインストール
macOSの場合
1.3.2 アプリを開発するための仮想環境を構築しよう
好きな名前を付けて仮想環境を構築しよう
1.3.3 Jupyter Notebookことはじめ
Jupyter Notebookを仮想環境にインストールする
Notebookを作成してソースコードを入力してみよう
Notebookを保存して改めて読み込んでみよう
Memo Jupyter Notebookのコマンド
Jupyter Notebookを便利に使う
1.3.4 Spyderことはじめ
Spyderを仮想環境にインストールする
Chapter 2 Pythonプログラムの材料(オブジェクトとデータ型)
2.1 データのかたち(データ型)
2.1.1 プログラムとデータは別のもの(リテラル)
値(リテラル)の姿
Memo プログラムを書くときにハマりやすいこと
2.1.2 整数も小数も正も負も(数値型)
数値型
2.1.3 文字も文字列も(文字列型)
文字列リテラル
Hint 「'」と「"」のどっちがいい?
2.1.4 データではない文字列(コメント)
ソースコードのメモ書き「コメント」
2.1.5 YesかNoだけ(ブール〈bool〉型)
真偽リテラル
2.1.6 「値そのものが存在しない」は「None」
何もないことを示す特殊なリテラル「None」
2.2 オブジェクトと変数
2.2.1 オブジェクトを捕まえろ!
プログラムのデータはすべてオブジェクトになる
オブジェクトには関数(メソッド)が結び付けられている
2.2.2 3回続けてあいさつしてみよう??変数への代入
代入した値のデータ型は変更できないけれど値そのものを書き換えることはできる
Memo 変数名を付けるときのルール
Hint 変数名の命名規則
2.3 変数を使っていろんな計算をする
2.3.1 「入力した値を2倍にしてあげるよ」(算術演算子)
計算をさせるための記号、算術演算子
変数を使って演算する
単項プラス演算子(+)、単項マイナス演算子(?)
2.3.2 「x='僕の名前はPythonです'」(代入演算子)
代入演算子による値の代入
複合代入演算子による式の簡略化
多重代入
2.3.3 どこから手を付ける?(演算子の優先順位)
演算子には優先順位があるけれど()でコントロールできる
Memo 演算子の優先順位
2.4 文字列や数値をPythonの道具で自在に操ろう(関数、メソッド)
2.4.1 Pythonの道具(関数、メソッド)
print()関数ってどこから呼んできたの?
2.4.2 整数型への変換と浮動小数点数型への変換
整数以外の値をint型に変換する
浮動小数点数型(float型)への変換
Hint リテラルも変数もみんなオブジェクト
Hint 小数を含むstr型の「数字」をfloat型にする
2.4.3 え! 文字が逃げる?(エスケープシーケンス)
自動エコーとprint()関数による出力結果の違い
「\」で文字をエスケープすれば改行やタブを入れられる
2.4.4 「"こん" + "にちは"」「ようこそ *4」(文字列の連結と繰り返し)
文字列を連結したり繰り返したりする
2.4.5 会話文の中から必要な文字だけ取り出そう
[ ]で1文字抽出する
[:]や[: :]で文字列を切り出す
2.4.6 関数やメソッドを使えば文字列の分割、結合、置換、いろいろできる
len()関数で文字列の長さを調べる
split()メソッドで文字列を規則的に切り分ける
join()メソッドで文字列をジョイント!
replace()メソッドで文字列の一部を置き換える
format()メソッドで文字列を自動作成
Tips 逆さ言葉を答えてみよう
2.4.7 初恋したのはいつ?(input()関数)
コンソール上で入力された文字列はinput()関数で取得
2.4.8 あなたの標準体重は?
BMI(体格指数)を使って標準体重を計算してあげよう
Memo そのほかの便利な文字列操作関数
Chapter 3 条件分岐と繰り返し、関数を使う
3.1 テニスの攻撃パターンをシミュレートする
3.1.1 同じ技を10回繰り出す(forによる繰り返し)
スマッシュを連続10回繰り出す
3.1.2 2つの技を交互に繰り出す(ifによる条件分岐)
スマッシュとストロークを交互に繰り出す
Memo rangeオブジェクト(1)
Memo True/Falseと真/偽
3.1.3 3つの技を織り交ぜる(if...elif...else)
ifにelifを加えて条件を2つに増やす
ifの条件式を書く順番に気を付けよう
3.1.4 攻撃のパターンをランダムにしよう
randomモジュールを使って疑似乱数を発生させる
3.2 もう1つの繰り返し技(whileによる繰り返し)
3.2.1 条件がTrueの間は繰り返すよ
スマッシュを連続10回繰り出す
3.2.2 ピティナ、入力された言葉を再生する
相手の言葉をそのまま再生、'さよなら'で終了
3.3 リスト
3.3.1 4種類のストロークを順に繰り出す(リスト)
リストで複数のオブジェクトをまとめて管理
インデックシング
スライス
イテレーション
リストの更新
Memo rangeオブジェクト(2)
2つのリストをforで処理してみる
リストのリスト
Memo リストの操作
リストの中に要素製造装置を入れる(内包表記)
3.3.2 いわゆる「定数リスト」(タプル)
タプルの使い方
3.4 辞書と集合
Memo リスト要素をランダムに抽出する
3.4.1 ボールを打ったら音を出す(名前と値のペア)
辞書(dict)型
イテレーションアクセス
Memo 辞書に使えるメソッド
複数のシーケンスのイテレート
3.4.2 要素の重複を許さない集合
まずは集合を作ってみる
集合を使って重複した要素を削除する
3.5 装置を作る(関数)
3.5.1 呼び出すと擬音を付けてくれる関数
パラメーターの指定
デフォルトパラメーター
Memo デフォルトパラメーターの使いどころ
Hint リストをデフォルトパラメーターにするときの注意
伸縮自在のパラメーター
キーと値がセットになったパラメーター
関数オブジェクトと高階関数
関数内関数とクロージャー
小さな関数は処理部だけの「式」にしてしまう(ラムダ式)
Onepoint ラムダ式はいろんなプログラミング言語で使われている
ジェネレーター
Onepoint ジェネレーターの内部的な処理
デコレーター
Chapter 4 オブジェクト、そして人工知能へ向けての第一歩
4.1 オリジナルのオブジェクト
4.1.1 「鬼コーチオブジェクト」登場!(クラスの作成)
オリジナルのクラス = オブジェクト
Memo 「オブジェクト」と「インスタンス」
4.1.2 「鬼コーチ」を呼んでこよう(オブジェクトの生成)
MyCoachクラスからMyCoachオブジェクトを作る
Memo メソッドと関数って何が違うの?
4.1.3 打ち返した回数を覚えておいてもらおう(クラス変数)
オブジェクト同士で共有するクラス変数
クラス変数を外部で初期化する
teach()をクラスメソッドに変更する
Memo メソッドやクラス変数を動的に追加する
4.1.4 大事な変数は隠しておこう(カプセル化)
インスタンス変数へのアクセスはすべてプロパティ経由にする
プロパティを使うことに意味はあるの?
4.2 ほんとに知能?
4.2.1 人工知能って何? えっ知能? 無脳?
絶妙トークは続く
ピティナ、君は人工ピーポー?
Pitynaオブジェクトの動作原理
Pitynaクラスと応答クラス
Memo ソースコードのドキュメント化
4.2.2 最初のピティナ
Spyderを起動して開発の準備をしよう
ピティナ、オウム返しボットバージョン
4.2.3 「オウム返し」+「ランダム応答」の2本立てで反応する(継承とオーバーライド)
ピティナ・バージョン2の実行モジュール「prototype.py」
Memo モジュール(Pythonファイル)の取り込み
Pitynaクラスのモジュール「pityna.py」
応答オブジェクトのモジュール「responder.py」
Memo RepeatResponderへの切り替え
Memo 自然言語処理って何をするの?
Chapter 5 ピティナのGUI化と[人工感情]の移植
5.1 GUI版ピティナ
5.1.1 ピティナをGUIモジュールに移植するよ
まずはQt Designerを呼んでこよう
5.1.2 メインウィンドウを作成してウィジェット(widget)を配置しよう
メインウィンドウを作成する
Hint UI画面の開発は手打ち派? それともUIデザイナー派?
ログを表示するためのリストを配置する
応答クラス名の表示/非表示切り替え用のラジオボタンを配置する
会話入力用のテキストボックスを配置する
メッセージの送信ボタンを配置する
ピティナの応答領域、ラベルを配置する
ピティナのイメージを表示する
メニューを使う
5.1.3 イベント駆動の仕組みを実装しよう
ボタンクリックで駆動する仕組みを作ろう
ラジオボタンのオン/オフで駆動する仕組みを作ろう
メニューの[閉じる]選択で駆動する仕組みを作ろう
5.1.4 XML?Pythonモジュールへのコンバート
コマンドラインツール「pyuic5」でコンバートする
コンバート専用のプログラムを作る
リソースファイル(.qrs)をPythonにコンバートする
Memo コマンドをAnacondaのターミナルから実行する
Attention リソースファイルの名前に注意!
5.1.5 GUI版ピティナプログラムの開発
プログラムの起点、「main.py」モジュールを用意する
UI画面を構築する「mainWindow.py」モジュールを用意する
ピティナの本体「pityna.py」を用意する
応答クラスの「responder.py」モジュールを用意する
すべてのモジュールを確認してピティナを起動してみよう
5.1.6 Responderをランダムに切り替える
応答時にRandomResponderとRepeatResponderをランダムに実行する
5.2 辞書を小脇に
5.2.1 ファイルのオープンと読み込み
ファイルの中身を読み込んで画面に出力してみよう
ピティナ、辞書を読み込む
Memo ユニバーサル改行コード
5.3 ピティナ、パターンに反応する
5.3.1 正規表現ことはじめ
正規表現のパターン
パターン辞書ファイルを作ろう
5.3.2 「パターン辞書」「ランダム辞書」「オウム返し」の三つどもえの反応だ!
match()とsearch
Dictionaryクラス
Responderクラス
Pitynaクラス
5.4 感情の創出
5.4.1 ピティナに「感情」を与えるためのアルゴリズム
感情の「揺れ」はパラメーター値を変化させる仕組みで実現
Onepoint 感情の揺れをパラメーター値で表す
感情の表現はイメージを取り換えることで伝える
5.4.2 パターン辞書の変更
パターン辞書のフォーマットを変更
Memo プログラムをダブルクリックで起動する方法
5.4.3 感情モデルの移植(Emotionクラス)
機嫌値を管理するEmotionクラス
5.4.4 感情モデルの移植(Dictionaryクラス)
パターン辞書の各行をPatternItemオブジェクトとして保持する
Memo 応答メッセージをテキストエディットに出力する
5.4.5 感情モデルの移植(Patternltemクラス)
パターンや応答例から機嫌変動値を取り出す
PatternItemクラスの__init__()によるオブジェクトの初期化
match()、choice()、suitable()の追加
5.4.6 感情モデルの移植(Responderクラス、PatternResponderクラス、Pitynaクラス)
ResponderクラスとRepeatResponder、RandomResponderの修正
パターン辞書を扱うPatternResponderクラスの修正
Memo ピティナプログラムのモジュール
5.4.7 感情モデルの移植(ピティナの本体クラス)
5.4.8 ピティナ、笑ったり落ち込んだり
プログラム開発前の準備
Qt Designerを起動してリソースファイルを作ろう
UI形式ファイルとQRC形式ファイルのコンバート
感情の揺らぎを表情で表す
Chapter 6 「記憶」のメカニズムを実装する(機械学習)
6.1 機械学習のススメ
6.1.1 まるごと覚える
辞書の学習を実現するためにクリアすべき課題
「学習メソッド」と「記憶メソッド」の追加
ピティナの本体クラスの修正
プログラム終了時の処理
6.2 形態素解析入門
6.2.1 形態素解析モジュール「Janome」の導入
「PyPI」はPythonライブラリの宝庫
pipコマンドで「Janome」をインストールする
Attention pipコマンドでのインストール
「Janome」で形態素解析いってみよう
Memo datetimeモジュール
6.2.2 キーワードで覚える
形態素解析を行うanalyzerモジュールを作ろう
ピティナの本体クラスを改造する
Dictionaryクラスを改造する
Memo Dictionaryクラスのメソッド
パターン辞書ファイルへの保存
Onepoint with文
PatternItemクラスのadd_phrase()とmake_line()
形態素解析版ピティナと対話してみる
6.3 テンプレートとして覚える
6.3.1 テンプレート学習用の辞書を作ろう
ピティナプログラムに必要なファイル一式
テンプレート辞書の構造
Attention ピティナの応答エリアをテキストエディットに変更する
6.3.2 Dictionaryクラスの改造
テンプレート辞書ファイルへの保存
Responderクラス群の新入り、TemplateResponderクラス
Pitynaクラスの変更
テンプレート学習を実装したピティナと対話してみる
Chapter 7 マルコフ連鎖で文章を作り出す
7.1 無限のサル定理をマルコフ連鎖で実証する
7.1.1 マルコフ連鎖を使って文章を生成する
単語がつながっていくときの法則
マルコフ連鎖、マルコフモデルとは
7.1.2 3単語プレフィックスのマルコフ辞書
「わたしが好きなプログラムの女の子です。」って?
7.1.3 マルコフ辞書の実装
形態素解析とファイルの読み込み
マルコフ辞書の作成
マルコフ辞書から文章を作り出す
Memo マルコフ連鎖
Memo もとになる文章量が少ないと文章が作れないことがある
重複した文章を取り除く
プログラムを実行して文章を作ってみる
Hint 著作権の切れた作品を公開する青空文庫
7.2 マルコフ連鎖を利用した会話ボットの作成
7.2.1 小説を題材にマルコフ連鎖で生成した文章で応答する
Markovクラス
7.2.2 入力した文字列に反応するようにしてみる
markov_botモジュールの改造
入力した内容にマルコフ辞書が反応するか確かめる
Memo マルコフ連鎖の活用例
7.3 ピティナ、マルコフ辞書を使う
7.3.1 マルコフ連鎖文を生成するMarkovクラス
Markovクラス
7.3.2 Pitynaクラスの改造
Pitynaクラス
7.3.3 Responderに新たに加わったサブクラスMarkovResponder
MarkovResponderクラス
7.3.4 DictionaryクラスにmakeMarkovDictionary()メソッドを追加
Dictionaryクラス
7.3.5 マルコフ辞書を手にしたピティナ、その反応は?
最後に処理の流れを確認しておこう
Chapter 8 インターネットアクセス
8.1 外部モジュール「Requests」を利用してネットに接続する
8.1.1 外部モジュール「Requests」
Requestsのインストール
8.1.2 Yahoo! JAPANにアクセスしてみよう
Requestsを利用してWebサイトにアクセスする
レスポンスメッセージからデータを取り出すメソッド
8.1.3 Web APIで役立つデータを入手
Webサービスを利用するためのWeb API
NTTドコモが提供しているWeb APIがオモシロイ
8.2 Requestsでネット上の情報を収集しよう
8.2.1 天気予報のWebサービス「OpenWeatherMap」を利用する
「OpenWeatherMap」の無料アカウントを取得する
5日間/3時間ごとの天気予報を取得するためのURLを作ろう
requestsのget()で天気予報をゲット!
Memo Weather APIの呼び出し回数の制限
8.2.2 ウィキ(Wiki)るプログラム
MediaWikiのAPI
Wikipediaから情報を収集しよう
8.2.3 「Yahoo!ニュース」のヘッドラインを取得してみよう
スクレイピング専用のBeautifulSoup4モジュール
Memo Twitterの開発者向けサイト
BeautifulSoup4で「Yahoo!ニュース」のRSSをスクレイピング
8.2.4 ピティナ、ネットにつながる
ピティナが今日から5日後までの天気を教えてくれる
mainWindowモジュールの改造
Webにつながるピティナを実行してみる
Memo 「OpenWeatherMap」で無料で利用できるWebサービス
Memo WebサービスのGoogle Colabを便利に使おう!
Chapter 9 ピティナ、ディープラーニングで画像認識に挑戦!
9.1 ディープラーニングと言えばPythonなのです
9.1.1 ディープラーニングっていったい何?
ニューラルネットワークのニューロン
9.2 認識率98%の高精度のニューラルネットワークを作る
9.2.1 Kerasライブラリをインストールして「手書き数字」の画像データを用意しよう
Kerasを仮想環境にインストールしよう
Memo TensorFlowのインストールができないときの対処法
Memo matplotlib.pyplot.imshow()
Memo Matplotlibのインストール方法
9.2.2 ニューラルネットワークをプログラミングする
入力層をプログラミングしよう
第1層(隠れ層)をプログラミングしよう
ドロップアウトを実装しよう
第2層(出力層)をプログラミングしよう
バックプロパゲーションを実装しよう
ディープラーニングを実行して結果を評価しよう
Memo ディープラーニングの結果が保存されたファイル
9.3 ディープラーニング版ピティナ
9.3.1 ディープラーニング版ピティナ開発の概要です
ディープラーニング版ピティナの開発手順
9.3.2 ピティナAIの画面の開発
フォーム(メインウィンドウ)のプロパティを設定する
3個のラベルを配置してプロパティを設定する
[閉じる]メニューの設定
Onepoint pixmapプロパティでリソースファイルからイメージを取り込む手順
UI画面をPythonモジュールにコンバートする
9.3.3 ピティナAIをプログラミングしよう
ピティナAIを起動するモジュール
UI画面を生成するモジュールを作成しよう
ほんとにAI? ピティナ本体をプログラミングする
ピティナAI、手書きの数字を認識する
9.4 ピティナ、ファッションアイテムを92%の高確率で識別する
9.4.1 ファッションアイテムのデータセットとは何ぞや?
9.4.2 畳み込みニューラルネットワークの仕組みをさらっと紹介
2次元フィルター
ゼロパディング
プーリング
訓練データにばかり適合するのを避けるための「正則化」
プーリング層とドロップアウトを備えた畳み込みネットワークの構築
9.4.3 Fashion-MNISTデータを読み込んで学習する
「LearnMNIST.py」を畳み込みネットワーク版に改造してファッションアイテムを学習する
9.4.4 ピティナの本体モジュール「pityna.py」を改造する
pityna.pyの一部を書き換える
ピティナAI、ファッションアイテムを判別する
Appendix 1 Pythonの標準ライブラリ
shutil(高水準のファイル操作)
timeit(小さなコード断片の実行時間計測)
collections(コンテナデータ型)
datetime(基本的な日付型と時間型)
Appendix 2 Pythonの外部ライブラリ
データベース
ゲーム開発
GIS(位置情報システム)
GUI
画像処理
Web開発
Amazonで詳しく見る
紹介文
ディープラーニング活用なくしてビジネスの飛躍的成長なし
◆日本ディープラーニング協会推薦図書◆
日本ディープラーニング協会 監修
ディープラーニングをビジネスに生かす知識を問われる
同協会のG検定(ジェネラリスト) 推薦図書
松尾豊・同協会理事長による「ディープラーニング技術年表」収録
ディープラーニングは確かに実際のビジネスに溶け込み、商品やサービスでの活用が始まっています。
それによって業績を向上させた企業もあれば、社会課題の解決に結びつけている会社も実在します。
その最先端の実践的な事例を紹介しました。本書に「実践編」と付したのはこうした理由からです。
本書の最大の特徴の1つが、「ディープラーニングビジネス活用アワード」の受賞6プロジェクト全てを子細なケーススタディで紹介していることです。
日本ディープラーニング協会と一緒に、2019年春から準備を進めてきたものです。
エントリーはやや大手企業に偏重したきらいはありましたが、まさに腕自慢の実力派ぞろいでした。
大賞のキユーピーの食品加工で原料を検査する「AI食品原料検査装置」に始まって、楽天の自動翻訳プロジェクトである「Rakuten Translate」、
荏原環境プラントが進める「ごみ焼却プラント運転自動化プロジェクト」、水処理など流体向けAI分析のAnyTechの「水質判定AI『DeepLiquid』」、
保育園向けITサービスのユニファの「写真自動判定システムによる保育士の業務負荷軽減」、パッケージデザインのプラグの「パッケージデザインの好意度スコアを予測するAIサービス」の6事例を本書にまとめました。
できるだけ載せないようにしたケースもあります。
ディープラーニングといえば画像認識とばかりに、熟練工の目の代替として活用する事例は少なくない。
ただその点だけを極めても、効果の最大値は当該人件費の削減分にしかなりません。
結果として幼稚園児の笑顔が増える、あるいは静脈産業の支えになる、
といった大きな社会的意義をディープラーニングには持たせたい。そんな思いで作りました。
受賞6事例を含めた計26事例を、本書ではディープラーニング活用の効果で4つに分けました。
まず「商品開発・業界構造を変える」。
次が「消費者のデマンドに応える」。
そして「働き方を改革する」。
最後が「不正・異常を検知、社会課題を解決する」。
また資料的価値が高い、日本ディープラーニング協会理事長の松尾豊氏がまとめた「ディープラーニング技術年表」そして「インターネットでいうと1998年」も収録。
全編にわたって同協会の理事が一文字ずつ、とりわけ技術的な側面からアドバイスしてくれた貴重な書である。ぜひご覧になっていただきたい。
ディープラーニング活用なくしてビジネスの飛躍的成長なし
◆日本ディープラーニング協会推薦図書◆
はじめに
【第1章】 ディープラーニングで付加価値高め こうして稼ぐ
―日本ディープラーニング協会 松尾豊理事長に聞く―
【第2章】 商品開発・業界構造を変える
●キューピー
食品原料の異物を画像認識で検査 食の安全守るため装置は同業に外販も
●プラグ
パッケージデザインの消費者調査をAIで代替 商品開発のやり方 ガラリ変わる可能性
●AnyTech
水処理施設からチョコレートまで 「流体」の品質・状態を簡単チェック
●NTTドコモ
店頭の商品を自動で認識 来店客の属性把握しPOSデータと連動で棚割り提案へ
●フジクラ
半導体部品をディープラーニングで検査 AIプラットフォーム構築し全社のIoT基盤に
●日本たばこ産業
コンビニのたばこ陳列を精度99%で認識 1013人超参加のコンテストで実現
●トレタ
飲食店で売れ筋メニューが分析可能に ディープラーニングによるラベリング技術とは
●Sports Technology Lab
スポーツ選手の動きをディープラーニングで分析 チーム強化から選手移籍まで
●ソフトバンク
5G×ディープラーニング 高品質画像でもリアルタイムぼかし加工
【第3章】 消費者のデマンドに応える
●楽天
ストレスなく外国語を話したい 海外動画配信サービスで培った翻訳技術を活用
●ヤフー
安いガソリン、空いてる駐車場を近くで探したい ディープラーニングとドラレコで
●SMBC日興証券
株式ポートフォリオの組み替え方を知りたい 資産総額13倍になるカラクリ
【第4章】 働き方を改革する
●荏原環境プラント
ごみ焼却施設で「熟練運転員の目」を代替 5倍の効率化を実現 静脈産業を途絶えさせない
●ユニファ
子供の「NG写真」をディープラーニングで自動排除 保育園の課題解決を支援
●NTTデータジェトロニクス
社食食堂のレジで自動精算 人件費の削減、そして社員の満足度を高めて社内活性化へ
●モノフル
トラックの人手不足問題に一石 ナンバーをAIで読み取り効率化
●三菱総合研究所
財務諸表の数字を読み取り自動でリポート作成 シンクタンクの“夢”に一歩近づく
●ディー・エヌ・エー(DeNA)
交通事故の削減支援をサービス化 AIとデータサイエンスのタッグで
●イシダ
ディープラーニングでパスタをつかむ AIと機械の“せめぎ合い”から生まれた新技術
●AVILEN
鉄加工の図面を自動で読み解く 各種フォーマットの図面に対応
【第5章】 不正・異常を検知、社会課題を解決する
●リコー
カメラ+AIで路面の老朽化診断 事務機器からの多角化で数千万円の受注
●日本気象協会
降雨予測のメッシュと時間を詳細化 スパコンを使わず実現、ダム管理などに活用
●日本取引所自主規制法人
株の不正取引“見せ玉”に待った 証券取引所の不正検知にAI導入世界初
●misosil
SNS広告でインフルエンサーの不正を暴く フォロワー水増しをAIで発見
●トプコン
眼底画像から健康状態を読み解く デバイスのデータを加工する「センシングAI」とは?
●Ollo
月額3万円で顔認証システムが導入可能 エッジデバイスでの高速・高精度化を実現
【第6章】 先端技術の動向を知る
おわりに
Amazonで詳しく見る
紹介文
OpenCV概要
はじめてのOpenCVプログラム
マトリックスクラスについて
アフィン変換
グラフィックス
色の処理
フィルタ処理
画像合成
動画処理
オブジェクト検出・除去
MatとUMatの性能
OpenCL
halモジュール
独自カーネルコード
画像比較
画像検索
Amazonで詳しく見る
紹介文
TensorFlowは、Google社が公開しているPython向け機械学習用ライブラリです。本書はPythonの基礎を学習した方に向けて、JupyterNotebookを使ったTensorFlowの活用法を解説する入門書です。シンプルな二値分類から画像認識、自然言語処理における時系列データの分析までを理論をまじえて体系的に解説します。
TensorFlowがバージョン2.0となったことにともない、Kerasがライブラリとして取り込まれ、計算グラフのコーディングが不要となるなど、大幅な改善がされています。
それに伴い、以前のバージョンで作成したソースコードが動作しなくなっています。そこで「TensorFlow&Kerasプログラミング実装ハンドブック」の内容を一新してバージョン2に完全対応しました。
第1章 機械学習ライブラリTensorFlow
第2章 開発環境の容易とPythonの基礎
第3章 TensorFlowの基本
第4章 例題で学ぶTensorFlowの基本
第5章 TensorFlowによるディープラーニング
Amazonで詳しく見る
紹介文
初学者を対象として典型的かつ重要な画像処理方式に絞り,しっかりと学べるよう構成.
初学者向けに典型的かつ重要な画像処理に絞って解説.[内容]階調補正/2値化/空間フィルタリング/周波数フィルタリング/圧縮符号化/電子透かし/2値画像/立体・3次元環境/動画像/文字・図形・画像/カラー画像/他
Amazonで詳しく見る
紹介文
さまざまな業界で導入が進められているAIについて、どのような分野で活用されているのかが鳥瞰図で一目でわかる
AIの導入事例が一目でわかる!
金融、流通、製造、インフラなど全8業界36業種のAIの導入について、どのような分野で活用されているのか、
どのような事項との親和性が高いかといったことについて鳥瞰図で解説。豊富な実例も掲載しており、ビジネスのアイデア創出にも応用できます。
また、「こんな応用可能性があります」にとどめず、実際に実装したりトライアルをするときのノウハウも掲載しています。
本書掲載の鳥瞰図はご購入者特典としてDLして活用できます。
【本書に掲載されている業種】
〈流通〉
コンビニ・スーパーマーケット
百貨店業
郵便・運送業
〈製造〉
自動車製造業
食品・飲料製造業
化粧品・日用品製造業
金属製造業・化学工業
重工業
建設業
繊維工業(アパレル)
電機製造業
〈金融〉
銀行業
保険業
証券業
〈サービス〉
ホテル業
旅行代理業
外食業
テーマパーク
放送局
〈インフラ〉
通信業
鉄道業
航空業
空港
道路・交通インフラ管理業
エネルギー業(ガス・電気)
石油および天然ガス生産・販売業
〈公共〉
学校・学習塾
警察・警備
消防・防災
〈ヘルスケア〉
病院
介護サービス業
製薬業
〈その他〉
農業
水産業
スタジアム・(プロ/アマ)スポーツ
ゲーム業
Chapter 1 流通
コンビニ・スーパーマーケット
百貨店業
郵便・運送業
詳細解説:商品需要予測に基づく在庫管理
Chapter 2 製造
自動車製造業
食品・飲料製造業
化粧品・日用品製造業
金属製造業・化学工業
重工業
建設業
繊維工業(アパレル)
電機製造業
詳細解説:査定自動化・見積り自動化
Chapter 3 金融
銀行業
保険業
証券業
詳細解説:不正検知
Chapter 4 サービス
ホテル業
旅行代理業
外食業
テーマパーク
放送局
詳細解説:キャンペーン企画・価格設定
Chapter 5 インフラ
通信業
鉄道業
航空業
空港
道路・交通インフラ管理業
エネルギー業(ガス・電気)
石油および天然ガス生産・販売業
詳細解説:劣化予測・メンテナンス計画作成
Chapter 6 公共
学校・学習塾
警察・警備
消防・防災
詳細解説:画像データによる異常検知・品質評価
Chapter 7 ヘルスケア
病院
介護サービス業
製薬業
詳細解説:センサーデータによる異常検知
Chapter 8 その他
農業
水産業
スタジアム・(プロ/アマ)スポーツ
ゲーム業
詳細解説:見込み顧客分析・離反分析
Amazonで詳しく見る
紹介文
プログラミング初心者向けPython入門書。5年ぶりの改訂版でPython3.9.0に対応。新機能追加でボリュームアップ。
実践を見据えた本格的な入門書の改訂版!
プログラミング初心者を対象としたPythonの総括的な入門書で、前提知識がなくても取り組むことができます。プログラミングとPythonの基礎から、データベース処理、Webプログラミング、ネットワークプログラミング、初歩の並列処理といった応用までわかりやすく丁寧に解説します。「入門Python 3」の5年ぶりの改訂版でPython3.9.0に対応、f文字列などの新機能が追加され大幅にボリュームアップしています。
プログラミング初心者向けPython入門書。5年ぶりの改訂版でPython3.9.0に対応。新機能追加でボリュームアップ。
Amazonで詳しく見る
紹介文
本書は、画像処理に興味をもつ高専、専門学校、短大、大学などに通う学生、あるいはこれから画像処理の勉強を始めようとする人達を対象にした、C言語による画像処理のプログラミングに関する入門書である。
1 画像入力・補正・出力
2 画像のフィルタリング
3 2値画像処理
4 画像の圧縮符号化
5 パターン認識
6 立体認識
7 動画像処理
8 神経回路網による画像認識
9 遺伝的アルゴリズムによる画像処理
付録(Cプログラミング入門
mypgm.h)
Amazonで詳しく見る
紹介文
これからAIを学ぶ人に向けた入門書。ビジネスへの活用法から最新技術までをカバーした、「最初に手にすべきAI本」
本書は、これから人工知能(AI)を学びたいと考える人に向けたAIの入門書です。エンジニアではない人、すなわち中高生や文系学部の大学生、文系出身のビジネスパーソンや経営者などでも理解できるように、分かりやすくAIの本質や基礎知識を解説しました。AIのビジネスへの活用法からAIの最新技術までをカバーした、「最初に手にすべきAI本」です。
著者は、日本経済新聞社や日経BPのセミナーでAIやIoTの講座を教える人気講師。フジテレビの「ホンマでっか!?TV」に評論家として出演もしています。語り口が初心者にも分かりやすいと定評のある著者が、必要最低限のポイントに絞り、できる限り専門用語を使わないように配慮しながら書き上げました。
初心者でも人工知能の本質を短時間で理解できるようにするために、それぞれの状況や理解度に応じて学習できるように3部に分けて構成しています。
第1部(第1章)は「基礎編」です。ここでは、今後、人工知能が中心となる社会で生きていくために必要最低限の知識についてまとめました。人工知能は何が得意で、何が不得意なのか、そして社会をどう変えていくのかについて解説しています。
第2部(第2~4章)は「ビジネス編」です。ここでは、ビジネスに人工知能を活用するに当たり、各業界の活用事例や今後どのような使われ方をするのかについて書いています。 また、人工知能を活用する際の注意事項を中心に、プロジェクト推進方法や国などの支援状況についても解説しています。
第3部は「技術編」です。ここでは、人工知能の仕組みについて解説しています。今後、データサイエンスや人工知能に関する知識は、エンジニアや人工知能のプロジェクトに関わる人にとっては必須の知識です。
本書を読めば、AIに関する一般向けの本にありがちな曖昧すぎてよく分からない、なぜそこにAIを使う必要があるのか理解できないといった疑問を解消できると思います。
第1章【基礎編】人工知能(AI)の世界
第2章【ビジネス編】産業別に見た人工知能事例と未来予想図
第3章【ビジネス編】人工知能活用に関する国の施策
第4章【ビジネス編】人工知能プロジェクトの進め方と注意点
第5章【技術編】機械学習 ~これまでの人工知能と歴史~
第6章【技術編】ディープラーニング ~現在の人工知能~
第7章【技術編】人工知能開発と運用管理
第8章【技術編】人工知能の最新技術 ~これからの人工知能~
第9章 人工知能開発に関するいろいろなFAQ
Amazonで詳しく見る
紹介文
汎用性の高いアルゴリズムのプログラム例を多数掲載した。OpenCV3系に対応。多彩な内容で、欲張りな一冊!
大好評『OpenCVによる画像処理入門』の続編がついに誕生!
運動復元、物体追跡、画像レジストレーション、三次元再構成、機械学習をOpenCVで学ぼう!汎用性の高いアルゴリズムのプログラム例を多数掲載した。OpenCV3系に対応。多彩な内容で、欲張りな一冊!
【「まえがき」より】
本書は『OpenCVによる画像処理入門』の続編である.本書は,工業高等専門学校生,大学学部生,大学院生などを主な対象として構成し,基本的かつ汎用性の高いコンピュータビジョン・機械学習アルゴリズムを選定して掲載した.
前著と同様に,各章では,まず各技術の理論について解説し,その後,その技術をOpenCVを用いて実装する方法について紹介している.実装については,各技術について1つ 1つ実行できるようなプログラム例を掲載しているので,実行することで理論の理解を深めることができる.
学生だけでなく,CVの新しいアプリケーションを開発しようとしている技術者が,自身の課題に簡単に応用できるように配慮している.CVの各種の実装方法については,そのエッセンスのみから構成されるようなコーディング法で実装することを心がけている.
【おもな内容】
Chapter0 コンピュータビジョンとは?
Chapter1 特徴検出
Chapter2 特徴量記述
Chapter3 運動復元
Chapter4 物体追跡
Chapter5 画像レジストレーション
Chapter6 カメラモデル
Chapter7 エピポーラ幾何
Chapter8 カメラキャリブレーション
Chapter9 3次元再構成
Chapter10 機械学習とは?
Chapter11 人工的なデータの生成
Chapter12 主成分分析
Chapter13 クラスタリング
Chapter14 k最近傍法
Chapter15 ベイズ識別
Chapter16 サポートベクトルマシン
Chapter17 決定木
Chapter18 ニューラルネットワーク
Chapter19 ブースティング
Chapter20 識別器の性能評価
Chapter0 コンピュータビジョンとは?
Chapter1 特徴検出
Chapter2 特徴量記述
Chapter3 運動復元
Chapter4 物体追跡
Chapter5 画像レジストレーション
Chapter6 カメラモデル
Chapter7 エピポーラ幾何
Chapter8 カメラキャリブレーション
Chapter9 3次元再構成
Chapter10 機械学習とは?
Chapter11 人工的なデータの生成
Chapter12 主成分分析
Chapter13 クラスタリング
Chapter14 k最近傍法
Chapter15 ベイズ識別
Chapter16 サポートベクトルマシン
Chapter17 決定木
Chapter18 ニューラルネットワーク
Chapter19 ブースティング
Chapter20 識別器の性能評価
付録A OpenCVの導入
Amazonで詳しく見る
紹介文
生成型ディープラーニングの解説。人間にしかできないと思われていた創造的な作業を機械に行わせる技術の基礎から応用までを学ぶ。
生成型ディープラーニングの基礎から応用までを網羅!
生成型ディープラーニングの解説書。「絵を描く」「曲を作る」といった、これまで人間にしかできないと思われていた創造的な作業を機械に行わせるという、いま最もホットな技術の基礎から応用までをJupyterノートブック環境で実際に試しながら学びます。第I部は基礎編です。機械学習プログラミング、変分オートエンコーダ、GANやVAEなど、生成モデルの作成において重要な基礎技術を学びます。第II部は応用編です。CycleGAN、エンコーダ―デコーダモデル、MuseGANなどのモデルを作成し、作画、作文、作曲といった創造的なタスクに取り組みます。さらには、実環境を用いずにゲームプレイAIの学習を可能にする、世界モデルを使った強化学習にも取り組みます。最後に生成モデリングの未来として、StyleGAN、BigGAN、BERT、GPT-2、MuseNetなどのアーキテクチャを紹介します。
Amazonで詳しく見る
紹介文
本書を手に取っていただきありがとうございます。本書は、ディープラーニングについて、その基礎となるパーセプトロンやニューラルネットワークの基礎的なことから解説した本です。
本書では、まずTensorFlowによる実装を行い、続いてKeras、TFLearnによる実装を解説の基本として、KerasやTFLearn で簡単にプログラミングしたことが、実際はどうなっているのかをTensorFlowで知ることができるようになっています。本書が、Pythonでディープラーニングを実践するための一助となれば幸いです。
1章 ディープラーニングとは
2章 開発環境のセットアップとPython/TensorFlowの基礎
3章 ディープラーニングの数学的要素
4章 ニューラルネットワークの可動部(勾配ベースの最適化)
5章 ニューラルネットワーク
6章 画像認識のためのディープラーニング
7章 一般物体認識のためのディープラーニング
8章 人間と機械のセマンティックギャップをなくす試み
9章 ジェネレーティブディープラーニング
Amazonで詳しく見る
紹介文
広がるAI化格差と5年先を見据えた企業戦略
▼技術から利用動向、制度政策に至るまで、国内と海外の人工知能の最新動向がすべてわかるAI白書の2020年版
DX(デジタルトランスフォーメーション)のための重要な技術であるAIの社会実装が進む一方、そのAI化で格差が広がっています。また、5Gのサービス開始、EU一般データ保護規則、米中間の対立など、AIを取り巻く環境は目まぐるしく変化しています。
第1章では、石角友愛氏(パロアルトインサイトCEO)と中島秀之 AI白書編集委員長(札幌市立大学理事長・学長)の対談、北野宏明 AI白書編集委員(ソニーコンピュータサイエンス研究所代表取締役社長・所長)と片岡 晃 IPA社会基盤センター長の対談を通じて、AIをめぐる日本の課題とビジネス戦略について解説。第2章「技術動向」では、AIに関する技術の概要と最新動向を整理し、第3章「利用動向」では国内外でのAI活用事例を紹介。さらに、AIの社会実装を支える環境として、第4章で「制度政策」、第5章で社会実装に係る課題解決の方向性(AI人材育成及びスタートアップエコシステム)について記載しています。
『AI白書2019』に最新情報を加え、大幅にアップデートしています。AIの基礎的な技術解説から、国内外の多様な導入事例、制度・政策面での取り組み、中国のAI動向データ、企業経営者の意識調査結果まで、AIにまつわる幅広い話題を網羅して収録。AIを実装し、DXを推進するにあたってのひとつの指針として、本書をご活用いただけます。
DX(デジタルトランスフォーメーション)のための重要な技術であるAIの社会実装。そのAI化で格差が広がっている。AIの技術や利用動向、制度政策、スタートアップエコシステムに至るまで、AIのすべてを解説
□第1章「2020年のAIとビジネス」 生産性やDXといった日本の課題、AI時代のビジネス戦略をテーマにした対談、など
□第2章「技術動向」 AIを支える技術と最新動向、ディープラーニング、開発基盤、標準化・オープンプラットフォーム・信頼性、各国の研究開発の現状、など
□第3章「利用動向」 日本と世界の分野別の利用動向、AI利用動向アンケート調査、AI導入予算・AI市場規模、中国のAI最新動向、など
□第4章「制度政策動向」 AIに関する原則・ガイドライン、制度改革(モビリティ、データ流通、知的財産)、各国の政策動向、など
□第5章「AI実装を推進するAI人材育成と地域スタートアップエコシステム」 スタートアップエコシステム、AI人材の育成、社会実装の課題と現状、など
Amazonで詳しく見る
紹介文
既存の学習済みAIに自分が必要な認識対象を転移学習で加えることで、AIの知識ゼロでも画像認識装置を作れるマニュアルです。
AIやIoTという言葉が毎日のようにメディアで紹介されています。しかし、興味を持っても、本を読むだけでは技術は身につきません。やはり実際に手を動かして、自分で体験するのが一番です。本書は、画像認識装置を製作して、AIやIoTなどの最先端技術を体験しながら学ぶ初心者のための入門書です。猫を認識し、画像を保存し、メールで知らせる、さらにIoTらしく「いつでもどこでも使える」装置を自分の手で、低予算で作りましょう。
CHAPTER 1 本書で製作する画像認識装置の構成
イントロダクション
装置の概略
ワンボードマイコン「Raspberry Pi」とは
コンピュータビジョン向けライブラリ「 OpenCV」とは
ディープラーニングフレームワーク「Caffe」とは
CHAPTER 2 人工知能による猫の認識
イントロダクション
クラウドサーバの準備
ディープラーニングを体験してみる
入力用画像を用意する
学習済みモデルをダウンロードする
画像認識のためのスクリプトを書いて実行する
学習用データの準備
ファインチューニングとは
どのような画像が必要か検討する
学習用の画像をダウンロードする
オリジナルAI のための画像収集
既存の学習済みモデルのファインチューニング
学習用データベースおよび平均画像の作成
ニューラルネットワーク定義ファイルおよび学習用パラメータのエディット
学習の実行と結果確認
オリジナルAI のためのファインチューニング
CHAPTER 3 ハードウェアの準備
イントロダクション
ハードウェアの組み立て
Raspberry PiのOSのインストール
Raspberry PiのOSの設定
カメラの動作チェック
CHAPTER 4 ソフトウェアの準備
イントロダクション
ソフトウェア群のインストール
OpenCVのインストール
Caffeのインストール
クラウド環境の設定
メール通知の設定
オンラインストレージの設定
画像認識装置の仕上げ
猫検出スクリプトの作成
USBモデムのインストール
電源ケーブルの抜き差しでON/OFFできるようにする
動作確認とTips
オリジナルAI のための判別処理
CHAPTER 5 猫除け装置への応用例
イントロダクション
ハードウェア紹介
ソフトウェア紹介
実施例紹介
Amazonで詳しく見る
紹介文
AI時代の「画像処理」ってどんなしくみなの?画像処理技術を基礎から体系的に学べる。
0 デジタル画像処理って何?
1 画像の基礎
2 カラー画像のしくみ
3 デジタル画像のフィルタ処理
4 画像の明るさを変えよう
5 印刷のための画像処理
6 画像とフーリエ変換
7 静止画と圧縮のしくみ
8 動画像と圧縮のしくみ
9 テレビ放送と画像処理
10 AI(人工知能)と画像認識
11 様々な分野で活躍する画像処理
Amazonで詳しく見る
紹介文
人工知能は人間を超えるのか、その日は、いつやってくるのか?
グーグルやフェイスブックが開発にしのぎを削る人工知能。日本トップクラスの研究者の一人である著者が、最新技術「ディープラーニング」とこれまでの知的格闘を解きほぐし、知能とは何か、人間とは何かを問い直す。
グーグルやフェイスブックが開発にしのぎを削る人工知能。日本トップクラスの研究者の一人である著者が、最新技術「ディープラーニング」とこれまでの知的格闘を解きほぐし、知能とは何か、人間とは何かを問い直す。
Amazonで詳しく見る
紹介文
3言語(C言語、C++、Python)対応で基本が身につく、大好評テキストの改訂版。OpenCV4.5に対応、フルカラー化。
◆◆3言語(C言語、C++、Python)対応で、「画像処理の基本」が身につくと、大好評のテキストの改訂版!◆◆
・OpenCV4.5に対応し、さらにパワーアップ!
・基本アルゴリズムとサンプルプログラムが豊富で、いますぐできる!
・理論と実践のバランスがよく、初学者に最適!
・全編をフルカラー化し、デザインも一新!
・練習問題を解いて理解度アップ!
・Windowsだけでなく、Macでのインストールにも対応!
【「まえがき」より】
本書は,理数科高校生,工業高等専門学校生,大学学部生などを対象とした講義用教科書としての利用を想定し,基本的かつ汎用性の高い画像処理アルゴリズムを選定して解説した.また初学者が独学でも学べるように,開発環境の構築方法,トラブルシューティングなどの詳細な手順を載せている.本書ではまず,画像処理アルゴリズムについて解説し,内部で行われる処理が十分に理解されることに重点を置いている.その後,C言語での実装例を並べて表記し,各アルゴリズムがどのようにコーディングされるのかを解説する.さらに,OpenCVの関数を用いたプログラム(Python,C++言語)も併記し,OpenCVの利用方法を説明する.
今回,第3版に改訂するにあたり,読者からのさまざまなコメントや,我々が本書を用いて講義してきた経験をもとに,内容の理解がより促進されるように章立てを整理し,読者がより興味を惹くような内容に変更した.執筆時点における最新の開発環境に対応するため,OpenCV4系を採用し,Windows11とmacOS上での開発環境の構築について詳細な解説を加筆した.さらに,OSに依存しないGoogle Colaboratoryを用いたプログラム作成方法も加筆した.一方,情報処理技術者試験の試験要綱が2022年4月から更新され,擬似言語の記述形式が大幅に変更され,プログラムの記述方法がC言語と同等になった.そのため,第2版まで記載していた古い記述形式の擬似言語を用いたプログラムは削除することにした.
【おもな内容】
1章 画像処理とOpenCV
2章 OpenCV の導入
3章 画像入力装置と静止画・動画フォーマット
4章 デジタル画像と配列
5章 色空間
6章 濃淡変換
7章 フィルタ処理
8章 2値画像処理
9章 複数画像の利用
10章 幾何学変換
11章 距離画像処理
付録A OpenCVの描画系関数
付録B OpenCVをソースからビルドする
付録C OpenCVメインモジュール概説
姉妹書『OpenCVによるコンピュータビジョン・機械学習入門』も好評発売中!
1章 画像処理とOpenCV
1.1 身近にあるカメラと画像処理
1.2 ヒトの感覚器官
1.3 ヒトの視覚
1.4 画像処理とコンピュータビジョン
1.5 OpenCV
2章 OpenCV の導入
2.1 WindowsでOpenCVを使う
2.2 Mac(macOS)で OpenCVを使う
2.3 Google ColaboratoryでOpenCVを使う
3章 画像入力装置と静止画・動画フォーマット
3.1 画像入力装置
3.2 画像入力のための前処理
3.3 画像ファイルの生成
3.4 動画ファイルの生成
3.5 さまざまな動画撮影機器と映像インターフェース
4章 デジタル画像と配列
4.1 画像のデジタル化
4.2 さまざまなbit深度の画像
4.3 デジタル画像の座標系
4.4 画像ファイルフォーマット:PGMファイルフォーマット,PPMファイルフォーマット
4.5 デジタル画像と配列
4.6 OpenCVでの画像の扱い
4.7 C++ 言語における OpenCV ひな形プログラム
4.8 Pythonにおける OpenCV ひな形プログラム
5章 色空間
5.1 さまざまな色空間
5.2 色空間の変換
5.3 RGBからグレースケールへの変換
6章 濃淡変換
6.1 濃淡画像
6.2 ヒストグラムを用いた濃淡変換
6.3 トーンカーブによる濃淡変換
6.4 擬似濃淡変換
7章 フィルタ処理
7.1 空間フィルタ処理
7.2 平滑化フィルタ処理
7.3 エッジ検出フィルタ処理
7.4 鮮鋭化フィルタ処理
8章 2値画像処理
8.1 2値化処理
8.2 マスク処理
8.3 膨張・収縮処理
8.4 オープニング・クロージングによるノイズ除去
8.5 形状特徴パラメータ
8.6 ラベリング処理
9章 複数画像の利用
9.1 画像間演算
9.2 マスク合成
9.3 背景差分
9.4 フレーム間差分
10章 幾何学変換
10.1 線形変換
10.2 画像の再標本化と補間
10.3 同次座標の導入
10.4 アフィン変換と射影変換
11章 距離画像処理
11.1 TOF型カメラ
11.2 パターン投影型カメラ
11.3 さまざまな距離画像処理
付録A OpenCVの描画系関数
付録B OpenCVをソースからビルドする
付録C OpenCVメインモジュール概説
Amazonで詳しく見る
紹介文
AIに仕事を奪われる前に、AIを使って自分の仕事をつくるための一冊。文系ビジネスマンに生き抜く自信をつけさせる一冊。
AI社会になって、ボクは職を失わないだろうか?
文系のワタシが、AIでキャリアアップするには?
そんな不安や疑問を解消するのが本書です。
英数国理社×AI時代に対応した、AI活用の現場から生まれた実践トレーニング本。
・専門用語は必要最低限に
・豊富な業種別事例は「自社での活用」を考えるヒントに。
・AIとの「共働きスキル」を身につける。
AIを活用したビジネスプランを豊富に紹介。本書は、AIを、機能別に4分類、役割別に2分類し、合計4×2=8分類にわけている。その分類を用いて、事例を解説しているので、非常に理解しやすく、自分の仕事への適用・応用を検討しやすい。AIとお共働きスキルを身につけよう。
はじめに 文系AI人材になろう!
第1章 AI社会で職を失わないために
「AI失職」を恐れず「AI職」に就く準備を
「AIとの共働き」スキルを身につけよう
5つの「共働きスタイル」
第2章 文系のための AIキャリア
AIは「作る」から「使う」へ
上手に活用する「文系 AI人材」が重要に
「文系AI人材」の仕事内容とは?
「文系AI人材」になるための4つのステップ
第3章 AIのキホンは丸暗記で済ます
AI/機械学習/ディープラーニングの違い
学習方式の3分類--教師あり/教師なし/強化学習
活用タイプ別AIは4×2=8分類
「識別系AI」はこう使う
「予測系AI」はこう使う
「会話系AI」はこう使う
「実行系AI」はこう使う
出る順でAI基礎用語を丸暗記する
第4章 AIの作り方をザックリ理解する
AIは特徴づかみの名人
「予測系AI」の作り方を理解する
「識別系AI」の作り方を理解する
「会話系AI」の作り方を理解する
「実行系AI」の作り方を理解する
第5章 AI企画力を磨く
AI企画の「100本ノック」
「変化量と実現性」を担保する
AI企画の「解像度を上げる5W1H」
第6章 AI事例をトコトン知る――業種別×活用タイプ別の45事例集
第7章 文系AI人材が社会を変える
AIによる「消費者、会社、働き手」への変化
AI社会を牽引するアマゾン
AI×各業界で変革を作るソフトバンク
日本の銀行で起きているAIによる変化
文系AI人材が社会をリードする
おわりに
Amazonで詳しく見る
紹介文
ミニゲームを作りながら、人工知能で話題のPythonを楽しく覚えよう!Windows 7/8/8.1/10対応。
1 Pythonをはじめよう
2 まずは簡単なことからやってみよう
3 ウィンドウを作ってみよう
4 条件分岐でプログラムに判断させよう
5 たくさんのデータをパパッと料理しよう
6 ロールプレイング風迷路を作ってみよう
7 モンスターと戦闘しよう
8 アドベンチャーゲームを作ろう
Amazonで詳しく見る
紹介文
機械学習・ディープラーニングについて学ぶための、図解形式の解説書です。エンジニア1年生、機械学習関連企業への就職・転職を考えている人が、機械学習・ディープラーニングの基本と関連する技術、しくみ、開発の基礎知識などを一通り学ぶことができます。
1章 人工知能の基礎知識
人工知能とは
機械学習(ML)とは
ディープラーニング(DL)とは
人工知能と機械学習が普及するまで
2章 機械学習の基礎知識
教師あり学習のしくみ
教師なし学習のしくみ
強化学習のしくみ
統計と機械学習の違い
機械学習と特徴量
得意な分野、苦手な分野
機械学習の活用事例
3章 機械学習のプロセスとコア技術
機械学習の基本ワークフロー
データの収集
データの整形
モデルの作成と学習
バッチ学習とオンライン学習
テストデータによる予測結果の検証
学習結果に対する評価基準
ハイパーパラメータとモデルのチューニング
能動学習
相関と因果
フィードバックループ
4章 機械学習のアルゴリズム
回帰分析
サポートベクターマシン
決定木
アンサンブル学習
アンサンブル学習の応用
ロジスティック回帰
ベイジアンモデル
時系列分析と状態空間モデル
k近傍(k-NN) 法とk平均(k-means)法
次元削減と主成分分析
最適化と遺伝的アルゴリズム
5章 ディープラーニングの基礎知識
ニューラルネットワークとその歴史
ディープラーニングと画像認識
ディープラーニングと自然言語処理
6章 ディープラーニングのプロセスとコア技術
誤差逆伝播法によるニューラルネットワークの学習
ニューラルネットワークの最適化
勾配消失問題
転移学習
7章 ディープラーニングのアルゴリズム
畳み込みニューラルネットワーク(CNN)
再帰型ニューラルネットワーク(RNN)
強化学習とディープラーニング
オートエンコーダ
GAN(敵対的生成ネットワーク)
物体検出
8章 システム開発と開発環境
人工知能プログラミングにおける主要言語
機械学習用ライブラリとフレームワーク
ディープラーニングのフレームワーク
GPUプログラミングと高速化
機械学習サービス
Amazonで詳しく見る
紹介文
◎読者が選ぶビジネス書グランプリ2021 総合グランプリ受賞!!
◎ビジネス書大賞2020 特別賞(ソーシャルデザイン部門)受賞!!
◎ITエンジニア本大賞2021 ビジネス書部門 ベスト10!
◎累計17万5千部突破!
30万部超の名著『イシューからはじめよ』から9年――。
渾身の力で投げ込む、ファクトベースの現状分析と新たなる時代の展望!
AI×データの発展により、時代は多面的に「確変モード」に突入した。
目まぐるしく動く社会の中、本書は以下の問いをひとつなぎにして答える。
・現在の世の中の変化をどう見たらいいのか
・日本の現状をどう考えるべきか
・企業はどうしたらいいのか
・すでに大人の人はこれからどうサバイバルしていけばいいのか
・この変化の時代、子どもにはどんな経験を与え、育てればいいのか
・若者は、このAIネイティブ時代をどう捉え、生きのびていけばいいのか
・国としてのAI戦略、知財戦略はどうあるべきか?
・AI時代の人材育成は何が課題で、どう考えたらいいのか
・日本の大学など高等教育機関、研究機関の現状をどう考えたらいいのか
ビジネス・教育・政策…全領域にファクトベースで斬り込む、著者渾身の書き下ろし!
意志なき悲観論でも、現実を直視しない楽観論でもない、建設的(Constructive)な、「残すに値する未来のつくり方」。
読者コメント
「久々にすっごい面白い本に出会った。これからの時代の生き方の教養書として面白い」
「これからの日本が進むべき道を豊富なデータと精緻なロジックで導き出している」
「新人教育やマネジメント教育に必須の本だと思う。これから日本で生きる全てのビジネスパーソンが何を目指し、何をすべきかが詳細に書かれている」
「安宅さんの『日本を何とかしたい』という熱い思いが伝わってきて、ビジネス書なのに感動しました。個人的に今年のベスト本になる予感」
「一気に読んだ。『未来をつくる人』をどう育てるか、についても多くのページが割かれている。子育て中の方にもおすすめ」
●目次
1章 データ×AIが人類を再び解き放つ -- 時代の全体観と変化の本質
2章 「第二の黒船」にどう挑むか -- 日本の現状と勝ち筋
3章 求められる人材とスキル
4章 「未来を創る人」をどう育てるか
5章 未来に賭けられる国に -- リソース配分を変える
6章 残すに値する未来
Amazonで詳しく見る
紹介文
豊富なカラー図解とイラストで超わかる!プログラムの「読み方」「書き方」「しくみ」「動かし方」を根本から理解し、作りながらしっかり学べる、すべてのビギナーに最良の入門書!
1 プログラムってなんだろう
2 Pythonを始めよう
3 Pythonでプログラムを書くときのルール
4 プログラムを構成する基本的な機能
5 数当てゲームを作ってみよう
6 数当てゲームをグラフィカルにしよう
7 クラスとオブジェクト
8 拡張モジュールを使ってみよう
Amazonで詳しく見る
紹介文
Excelは全ビジネスマン必須のアプリケーションですが、操作がめんどうだと感じたことはありませんか?
本書は、「Python」というプログラミング言語を使って、そんなめんどうな業務を自動化・効率化する方法を紹介します。プログラミングがはじめての人にもわかるように、コードの書き方からしっかり解説。ExcelやGoogleスプレッドシートでのグラフ作成やデータ収集、表計算、データ分析など、ひととおりの業務をプログラムで動かす方法がわかります。
プログラミングのはじめの一歩としてもオススメです。
■■はじめに
■■■第1章 Pythonをはじめよう
■■1-1 Pythonの特徴
■Column オープンソースソフトウェア(OSS)はどうして無料なの?
■■1-2 Pythonのインストール
■1-2-1 Anacondaのダウンロード
■Column Python 2? Python 3?
■1-2-2 Anacondaのインストール
■■1-3 Pythonをさわってみよう
■1-3-1 CUIの起動
■1-3-2 Pythonの対話モードの起動
■■1-4 PyCharmを使おう
■1-4-1 PyCharmのダウンロード
■1-4-2 PyCharmのインストール
■1-4-3 PyCharmを日本語で利用する
■1-4-4 インタープリターの設定
■1-4-5 「hello world」と表示するプログラムの作成
■Column PyCharmをすぐ呼び出せるようにしておこう
■■■第2章 Pythonを動かしてみよう
■■2-1 Pythonのきほん
■2-1-1 データの性質
■2-1-2 オブジェクトと関数
■2-1-3 計算してみよう
■2-1-4 異なるデータ型同士の計算
■2-1-5 オブジェクトを操作する
■2-1-6 同じオブジェクトを使いまわす
■■2-2 ある条件で処理を分ける
■2-2-1 条件を判定する
■2-2-2 条件に応じて処理をする
■■2-3 オブジェクトをひとまとまりで扱う
■2-3-1 中身をあとから変更できるリスト型
■2-3-2 中身をあとから変更できないタプル型
■Column ミュータブルとイミュータブル
■2-3-3 キーと値をセットで扱う辞書型
■■2-4 同じ処理を繰り返し行う
■2-4-1 要素の数だけ処理を繰り返す
■2-4-2 条件が続く限り処理を繰り返す
■2-4-3 処理の途中でループを抜け出す
■■2-5 定義した処理を実行する
■Column インデントは半角スペース4つ?
■2-5-1 関数にわたす情報・関数から戻ってくる情報
■2-5-2 変数が使える範囲
■Column エラーメッセージが表示されたら
■2-5-3 あらかじめ用意されている関数
■■2-6 ファイルを機能ごとに分けて再利用する
■2-6-1 使いたいファイルを読み込ませる
■2-6-2 あらかじめ用意されているライブラリを使う
■Column サードパーティライブラリ
■■2-7 例外処理
■■■第3章 Excel作業を自動化しよう
■■3-1 Excelファイルを操作するための準備
■3-1-1 OpenPyXLをインストールする
■3-1-2 新しいフォルダの作成
■3-1-3 Excelファイルをフォルダに配置する
■Column PyCharm上でのファイル移動
■■3-2 Excelの値を表示する
■3-2-1 指定したセルの値を取得する
■Column 取得するセル位置を指定するほかの方法
■3-2-2 複数のセルをまとめて取得する
■■3-3 Excelファイルを編集する
■3-3-1 Excelファイルを新規作成する
■3-3-2 Excelシートを追加/削除する
■3-3-3 セルの値を編集する
■3-3-4 フォントを設定する
■■3-4 Excelのレイアウトを編集する
■3-4-1 Excelの行と列の幅を設定する
■3-4-2 行と列を固定表示する
■Column #からはじまる行はなに?
■■3-5 Excelのグラフを作成する
■3-5-1 グラフが読み込むデータを決める
■3-5-2 グラフの種類を決める
■3-5-3 グラフにデータをわたす
■3-5-4 グラフをつくる
■3-5-5 データから系列をつくる
■Column PyCharmのコーディングアシスタンスについて
■Column GitやGitHubでプログラムを管理しよう
■■■第4章 Googleスプレッドシート操作も自動化しよう
■■4-1 Googleスプレッドシートを操作するための初期設定
■4-1-1 Googleアカウントの作成
■4-1-2 Google Cloud Platformプロジェクトの作成
■4-1-3 スプレッドシートを操作するためのAPIを有効化する
■4-1-4 サービスアカウントを作成し、認証情報をダウンロードする
■4-1-5 利用ライブラリをインストールする
■■4-2 新しいスプレッドシートを作成する
■4-2-1 プログラムがAPIにアクセスできるよう設定する
■4-2-2 スプレッドシートを作成する
■4-2-3 スプレッドシートの共有権限を変更する
■4-2-4 スプレッドシートのURLを表示する
■Column 新しいシートを追加する
■■4-3 セルの値を取得する
■4-3-1 事前準備
■4-3-2 スプレッドシートを開く
■4-3-3 セルの値を取得する
■■4-4 セルの値を編集する
■■■第5章 Excel作業の前工程・後工程を自動化しよう
■■5-1 フォルダ・ファイル操作
■5-1-1 絶対パスと相対パス
■5-1-2 フォルダにあるファイルを一覧表示する
■5-1-3 フォルダを作成する
■5-1-4 ファイルの書き込みと読み込み
■Column モードオプションw、x、a の選び方
■5-1-5 ファイルを移動する
■■5-2 文字列操作
■5-2-1 文字列を検索する
■Column encoding オプションの指定について
■5-2-2 正規表現を使って文字列を検索する
■5-2-3 検索一致した文字列の位置を調べる
■5-2-4 文字列を置換する
■Column よりシンプルな文字列置換
■Column format()メソッドで文字列に変数を埋め込む
■■5-3 CSVデータの処理
■5-3-1 CSVの出力
■Column newlineオプションの指定について
■5-3-2 CSVの読み込み
■5-3-3 CSVの加工
■■5-4 Webからデータを取得しよう
■Column Webから情報を取得する際の注意点
■■■第6章 表計算やデータ分析をやってみよう
■■6-1 データ分析を始める前に
■6-1-1 ExcelとPythonの使い分け
■6-1-2 データ分析の流れ
■■6-2 JupyterLabを使ってみよう
■6-2-1 JupyterLabとは
■Column Jupyter Notebookとの違いは?
■6-2-2 JupyterLabを起動する
■6-2-3 実行してみよう
■Column 新しいファイルの追加
■6-2-4 pandasの基本的な使い方
■■6-3 データを分析する
■6-3-1 データの準備
■6-3-2 データを読み込む
■Column データセットの書き込み方法
■6-3-3 データを結合する
■Column 手動でのデータ追加方法
■Column 欠損値を補うには
■6-3-4 データを集計する
■■6-4 データを可視化する
■6-4-1 日本語フォントの使用について
■6-4-2 棒グラフを作成する
■6-4-3 折れ線グラフを作成する
■Column プログラムの書き進め方
■■■第7章 いろんな業務を自動化してみよう
■■7-1 複数のExcelファイルに分散した売上データを分析する
■例題の説明
■7-1-1 フォルダの中のExcelファイルを読み込む
■7-1-2 各月ごとに分かれている売上データを連結する
■Column インポートの順序とグループ化
■7-1-3 売上データと顧客流入元データを結合する
■7-1-4 顧客流入元ごとの売上合計を集計する
■7-1-5 Excelファイルに集計データを出力する
■さらなる応用
■■7-2 特定のルールに従って、フォルダ構成を整理する
■例題の説明
■7-2-1 作業用フォルダにすべてのファイルをコピーする
■7-2-2 すべてのファイルを取得する
■7-2-3 取得したファイルが請求書ファイルかどうかを判別する
■Column 処理を関数にする基準は?
■7-2-4 新しいファイル名とフォルダ名を取得する
■7-2-5 新しいフォルダを作成する
■7-2-6 ファイル名変更とフォルダ移動を行う
■さらなる応用
■■7-3 Webスクレイピングでデータを取得する
■例題の説明
■7-3-1 対象のWebページを確認する
■Column クエリパラメータ
■7-3-2 Webページから情報を取得する
■7-3-3 CSSセレクタを確認する
■7-3-4 取得したHTMLを解析する
■7-3-5 書籍のURLを取り出す
■さらなる応用
■Column Webページから画像を取得する
■■おわりに
■■参考文献
■■索引
■■読者特典
Amazonで詳しく見る
紹介文
人工知能と人間が共存する社会において、知性をどう認識し、人間はどのように生きればよいのか。3名の著者がこの問題を論じる。
人工知能と人間が共存する社会において、知性をどう認識し、人間はどのように生きればよいのか。3名の著者がこの問題を論じる。
第1部 人工知能とは
1章 人工知能のこれまで
2章 ディープラーニングとは何か
3章 ディープラーニングによる今後の技術進化
4章 消費インテリジェンス
5章 人間を超える人工知能
第2部 人工知能と世界の見方
1章 人工知能が「世界の見方」を変える
2章 認知構造はどう変わろうとしているのか
3章 強い同型論
4章 強い同型論で知能を説明する
5章 我々の「世界の見方」はどこからきてどこに向かうのか
第3部 人工知能と人間社会
1章 人工知能と人間社会
2章 自由主義の政治哲学が直面する課題
3章 人工知能とイノベーションの正義論
4章 世代間資産としての正義システム
5章 自由の根拠としての可謬性
Amazonで詳しく見る
紹介文
人工知能とは何か? 機械学習・ディープラーニングとは何かを、高クオリティなマンガとともに、くわしく・やさしく解説していきます。
人工知能がどのように発展してきたのか、私たちの未来をどのように変えていくのか、そして人工知能とどのように向き合っていくのかをテーマにストーリーを構成。人工知能という難しそうなテーマを、より身近に感じられるようになる一冊です。
Chapter1 人工知能の正体
・「人間の脳」と「人工知能」
・人工知能の定義
Chapter2 人工知能の歴史
・人工知能の誕生-第1次AIブーム-
・コンピュータとの対話-第2次AIブーム-
Chapter3 人工知能の新時代①
・第3次AIブームの始まり
・機械学習の広がりと課題
Chapter4 人工知能の新時代②
・ディープラーニングとは何か
・ディープラーニングによるブレイクするー
Chapter5 人工知能と心
・心と身体性
・人工知能と創造性
Chapter6 人工知能が変えていく未来
・AIを牽引する企業たち
・「眼を持つ機械」の活用
Chapter7 人工知能が人類にもたらすもの
・人工知能と倫理的課題
・「シンギュラリティ」とその先の未来
Amazonで詳しく見る
紹介文
Python3に完全対応!!
お待たせしました! 大好評「みんなのRaspberry Pi入門」シリーズの第4版です。
「Raspberry Pi3」はもちろん、「Python3」にも対応させました!! 進化のとどまるところを知らないRaspberry Piは、最新OSのコードネームも「jessie」から「Stretch」へ、開発環境「IDLE」も「Thonny」に移行! すべてに対応した最新刊です。
本書の大きな特徴は、次の2つです。
1.写真と図で、本当に必要なもの、メンテナンスの方法などを丁寧に解説しました。
2.Raspberry Piの公式言語である「Python3」をしっかり、分かりやすく解説しました。
プログラミング未経験の方でもチャレンジいただけるよう、Pythonに限定しない形でのプログラミングの基礎と基本的な作法について、多くの紙面を割いております。
まさに入門者にピッタリの一冊です。
Amazonで詳しく見る
紹介文
機械学習とコンピュータビジョンの知識を深め スキルを強化したい方に
機械学習の知識を深めスキルを強化したい方に
・OpenCV+scikit-learnで機械学習プログラミングを実践マスター
・統計的学習の本質的概念、決定木、サポートベクタマシン、ベイジアンネットワークなど様々なアルゴリズムとOpenCVを組み合わせて使う方法をわかりやすく解説!
はしがき
まえがき
訳者より・謝辞
1章 機械学習を味見してみよう
1.1 機械学習ことはじめ
1.2 機械学習で解くことのできる問題
1.3 Pythonをはじめよう
1.4 OpenCVをはじめよう
1.5 インストール
1.6 まとめ
2章 OpenCVとPythonによるデータ操作
2.1 機械学習の流れを理解する
2.2 OpenCVとPythonを使ってデータを扱う
2.3 まとめ
3章 教師あり学習の初歩
3.1 教師あり学習を理解する
3.2 クラスラベルを予測するために分類モデルを使用する
3.3 回帰モデルを使用して連続的な数値を予測する
3.4 ロジスティック回帰を用いたアヤメの分類
3.5 まとめ
4章 データ表現と特徴量エンジニアリング
4.1 特徴量エンジニアリングを理解する
4.2 データの前処理を行う
4.3 次元削減を理解する
4.4 テキスト特徴を表現する
4.5 画像を表現する
4.5 まとめ
5章 医療診断をするための決定木の使用
5.1 決定木を理解する
5.2 乳癌診断へ決定木を用いる
5.3 回帰のために決定木を使用する
5.4 まとめ
6章 サポートベクタマシン(SVM)による歩行者の検出
6.1 サポートベクタマシンを実装してみよう
6.2 非線形決定境界の導入
6.3 風景画像から歩行者を検出する
6.4 まとめ
7章 ベイズ学習による迷惑メールフィルタの実装
7.1 ベイズ推論を理解する
7.2 初めてベイズ分類器を実装する
7.3 Eメールを単純ベイズ分類器で分類する
7.4 まとめ
8章 教師なし学習で隠れた構造を発見する
8.1 教師なし学習を理解する
8.2 k-meansクラスタリングを理解する
8.3 期待値最大化を理解する
8.4 k-means法を用いた色空間の圧縮
8.5 k-meansを使用して手書き数字を分類する
8.6 クラスターを階層木として構造化する
8.7 まとめ
9章 深層学習による手書き数字分類
9.1 深層学習による手書き数字分類
9.2 パーセプトロンを理解する
9.3 最初のパーセプトロンを実装する
9.4 多層パーセプトロンを理解する
9.5 深層学習に慣れる
9.6 手書き数字を分類する
9.6 まとめ
10章 深層学習による手書き数字分類
10.1 アンサンブル法を理解する
10.2 決定木を組み合わせてランダムフォレストを作成する
10.3 顔認識のためにランダムフォレストを利用する
10.4 AdaBoostを実装する
10.5 複数のモデルを投票による分類器として統合する
10.6 まとめ
11章 ハイパーパラメータチューニングと適切なモデルの選択
11.1 モデルの評価
11.2 交差検証法を理解する
11.3 ブートストラップ法による頑健性の推定
11.4 評価結果の有意性の検証
11.5 グリッドサーチによるハイパーパラメータのチューニング
11.6 いろいろな評価指標によるモデルの評価
11.7 各種アルゴリズムの連結によるパイプラインの形成
11.8 まとめ
12章 仕上げ
12.1 機械学習問題へのアプローチ
12.2 独自の推定器の構築
12.3 これから
12.4 まとめ
索引
Amazonで詳しく見る
紹介文
手作業だと膨大に時間がかかる処理を一瞬でこなすPython 3プログラムの作り方について学べる入門書。
Pythonによる自動処理入門。とにかく、わかりやすい!
ファイル名の変更や表計算のデータ更新といった作業は、日々の仕事の中で頻繁に発生します。ひとつふたつ修正するだけであれば問題はありません。しかし、それが数十、数百となってくると手に負えません。そのような単純な繰り返し作業はコンピュータに肩代わりしてもらうとすごくラクになります。本書では、手作業だと膨大に時間がかかる処理を一瞬でこなすPython 3プログラムの作り方について学びます。対象読者はノンプログラマー。本書で基本をマスターすれば、プログラミング未経験者でも面倒な単純作業を苦もなくこなす便利なプログラムを作れるようになります。さらに、章末の練習問題を解くことで、類似のタスクを自動処理するスキルをもっと高めることができます。
Amazonで詳しく見る
紹介文
現在のAI技術では何ができて何ができないのか、その実態を技術者が平易に語る。実際にAIをビジネスで活用している事例も紹介。
“AI、そこが知りたかった!
これだけ読めばモヤモヤが消える。しかも面白い。
もっとも早くからAIに携わってきた「稼げる研究者集団」が
これまでになかった「4つの力」という分かりやすいアプローチで解説。
「稼げるAI」を操る人間になりたいビジネスパーソン必読の書だ。”
幸田真音(作家) 『人工知能』著者
---------------------------------------------------------
○ AIの本質を捉えて、AIにできること、できないことの違いがつかめる!
○ AIの実態を踏まえて、ビジネスへと活かすための要点が分かる!
○ AIに仕事を奪われないために、人は何を身につけるべきかが分かる!
AIを活かすために、AIにできること、できないことを知ろう!
古くからAI研究に携わり、数多くの有名大企業でのAI導入実績を持つ
テンソル・コンサルティング株式会社の社員が
現在のAIに何ができて何ができないのかを、分かりやすく、かつ面白く解説している。
仕事でAIに直接関わっているビジネスパーソンはもちろん、
AIの今後がなんとなく気になっている社会人から、
子供の将来に不安を感じている保護者の方にいたるまで、
幅広い層に読みやすくてすっきり分かる、目からウロコの指南書である。
1章 そもそもAIとはなにか
世間で言われるAIとは?
AIの歴史
活躍するAI
2章 AIの実態
AIに知性はあるのか?
今のAIの作り方
AIにできること、できないこと
AIは理解しているのか?
コラム:新しい概念の獲得
3章 AIの中身
ディープラーニングの中身
活躍するAIの中身
AIに対する疑問
コラム:重なった画像の理解
4章 AIのビジネスでの活用
役立つAIの設計指針
ビジネス活用に必要な要素
AIと人間の間違え方の違い
データサイエンティストの重要性
ビジネスでの活用事例
コラム:人間の優れた技能
5章 未来
AI分野以外の動向
AIに仕事を奪われないためには?
AIが人間を超えるまでには?
AIが人間に置き換わった未来
Amazonで詳しく見る
紹介文
【東京大学特任准教授 松尾 豊氏 推薦】
大人気「10秒で始める人工知能プログラミング学習サービス」の代表者がおくる、
人工知能プログラミングに必要な数学を、やさしく学ぶ参考書が登場!
キホンのキホンからおさらいするから、ニガテな人でも大丈夫!
後半では、Pythonのコードを動かしてさらに理解を深められます!
■本書の目的
・人工知能関連の書籍に現れる数式への抵抗感をなくし、専門書を読むための数学基礎力をつけます。
・いくつかの人工知能のアルゴリズムを理解し、数式の意味を理解できるようにします。
■本書の特長
・ゼロからおさらいするので、誰でも読めます。
・人工知能プログラミングに必要な分野に特化しています。
・演習問題や例題で、理解を深められます。
■本書の対象読者
・人工知能アルゴリズムを用いてモデリングをしているが、その根底のアルゴリズムはブラックボックスであり、数学を復習したい方。
・人工知能アルゴリズムを体系的に学びたいが、数学を忘れており、専門書に現れる数式が理解できない方。
・人工知能アルゴリズムに興味があるが、ハードルが高いと感じている方。
■目次
CHAPTER 1 数学基礎
中学1 年から高校の数学を復習し、機械学習で使う数学の「入門レベル」を固めます。
CHAPTER 2 微分
微分の概念や表現方法を学びます。機械学習では「ディープラーニング(深層学習)」「ニューラルネットワーク」「最小2 乗法」「勾配降下法」「誤差逆伝播法」などで微分を活用します。
CHAPTER 3 線形代数
高校の範囲に大学1 年で学ぶ線形代数を加え、ベクトル・行列・線形変換を学びます。線形代数は膨大なデータや複雑なシステムを扱うのに役立ちます。
CHAPTER 4 確率・統計
確率・統計は「傾向を知り、限られたデータから全体像を予測する」ために、機械学習で活用されます。分散・尤度・正規分布などの難しい用語もやさしく学びます。
CHAPTER 5 実践編1 回帰モデルで住宅価格を推定してみよう
「データから住宅価格を推定する」ことを題材に、線形回帰モデルを理解します。
CHAPTER 6 実践編2 自然言語処理で文学作品の作者を当てよう
「文学作品を分析する」ことを題材に、自然言語を数学的に表現する方法などを学びます。
CHAPTER 7 実践編3 ディープラーニングで手書き数字認識をしてみよう
「手書きの数字を認識させる」ことを題材に、ディープラーニングの一種であるDNNを、画像認識から学びます。
東京大学特任准教授 松尾 豊氏 推薦! 人工知能プログラミングに必要な数学を、ゼロから抜け漏れなく、体系的に学ぶ! 数学を復習したいエンジニアに!
CHAPTER1 数学基礎
CHAPTER2 微分
CHAPTER3 線形代数
CHAPTER4 確率・統計
CHAPTER5 実践編1 回帰モデルで住宅価格を推定してみよう
CHAPTER6 実践編2 自然言語処理で文学作品の作者を当てよう
CHAPTER7 実践編3 ディープラーニングで手書き数字認識をしてみよう
Amazonで詳しく見る
紹介文
AIのブラックボックスを開けよう!
「ディープラーニング」の動作原理を「本当に」理解できる本です。
AIのブラックボックスを開けよう!
ディープラーニングの本質を理解するために必要な「数学」を
「最短コース」で学べます!
「ディープラーニング」の動作原理を「本当に」理解できる本です。
本書では、ディープラーニングの理解には欠かせない数学を
高校1年生レベルから、やさしく解説します。
(微分、ベクトル、行列、確率など)
最短コースで理解できるように、
解説する数学の分野は必要最低限のものだけに絞り、
その相関関係を★特製の綴込マップ★にまとめました。
また、数学を使ってイチから記述したコードを
Jupyter Notebook形式で提供しますので
実際に動かしながら学ぶことができます。
「ディープラーニング」の動作原理を「本当に」理解できる本です。
AIのブラックボックスを開けよう!
「ディープラーニング」の動作原理を「本当に」理解できる本です。
【導入編】
1章 機械学習入門
【理論編】
2章 微分・積分
3章 ベクトル・行列
4章 多変数関数の微分
5章 指数関数・対数関数
6章 確率・統計
【実践編】
7章 線形回帰モデル(回帰)
8章 ロジスティック回帰モデル(2値分類)
9章 ロジスティック回帰モデル(多値分類)
10章 ディープラーニングモデル
【発展編】
11章 実用的なディープラーニングを目指して
★巻頭綴じ込み★最短コースマップ
Amazonで詳しく見る
紹介文
ラズベリー・パイとカメラで色合いや形状,明るさ,動き,サイズ,顔,人数,スクワットの上下回数などを検出します.
ラズベリー・パイとその専用カメラ,オープンソースの画像処理ライブラリ OpenCVを利用して,色合いや形状,明るさ,動き,顔,サイズの検出を行います.さらにこれらを組み合わせて,通行者の人数やスクワットの上下回数などを検出します.
本書は月刊『Interface』2019年7月号の特集「カメラで測る 画像センシング[ラズパイ・カメラ便利帳付き]」の内容を再編集・加筆してまとめたものです.
目次
●イントロダクション カメラによる画像センシングで広がる世界
■産業分野
■ロボット
■施設
■自動運転
■社会福祉
●Appendix 1 実験に使うもの
■実験環境
■ラズベリー・パイの操作
●Appendix 2 体験用ラズベリー・パイの準備
■ソフトウェアとライブラリのバージョン
■インストール
■OpenCVでPiカメラを使えるようにする
■プログラムを試す
●Appendix 3 パソコンだけでも体験できます
■画像処理ライブラリOpenCVのインストール
■開発環境Visual Studioのインストール
■サンプル・プログラムの試し方
●Appendix 4 最低限おさえておきたい画像処理
●第1部 基本の画像処理
1-0 プログラムと画像データ
1-1 カラー画像のグレー・スケール化
1-2 グレー・スケール画像の2値化
1-3 基本図形や文字の描画
1-4 画像をぼかす平滑化
1-5 円の検出
1-6 楕円フィッティング
1-7 色によるマスク処理
1-8 いろいろなマスク処理
1-9 明るさヒストグラム
1-10 特徴点検出
1-11 画像マッチング
1-12 背景差分を使った画像認識
1-13 ターゲットを探すカスケード分類器
1-14 テンプレート・マッチング
1-15 識別の前処理で広く使えるモルフォロジー変換
●第2部 カメラで画像センシング
2-1 対象物の長さを測る
2-2 往復運動の回数をカウントする
2-3 侵入を検知する
2-4 通過物を数える
2-5 監視カメラを作る
2-6 ターゲットの接近を検知する
2-7 人数を数える
2-8 文字や数字を見つける
2-9 車のブレーキ・ランプを検知する
2-10 路面の白線を検知する
●第3部 覚えておくと便利なワザ
3-1 指定部分に背景を合成する「クロマキー合成」
3-2 画像の明暗を判定しノーマル/赤外線カメラを切り替える
Amazonで詳しく見る
紹介文
数学がニガテでも大丈夫! 機械学習をやさしく学ぼう
「機械学習に興味があるけど、どの資料を見ても数式が出てきて、分からない・・・」 本書は、そんな方にぴったりの本です。
機械学習を勉強中のプログラマ「アヤノ」と、友達の「ミオ」の会話を通じて、楽しく学んでいきます。本書では、
・そもそも機械学習がどうして注目を集めているのか?
・機械学習でできることにはどんなことがあるのか?
・どんな時に、回帰や分類、クラスタリングをすると有効なのか?
といった基本的なところから、
・ある問題に対して、どのように解決方法を考えればいいのか
・その解決方法を数式にするとどんな形になるのか
・実際にプログラムの形にするとどうなるのか
まで、丁寧に、じっくりと説明していきます。
とくに、数式については、高校で習った数学を忘れている方でも分かるように、つまづきやすいところや理解しにくいところを重点的に解説します。
※プログラムはPython 3で実装します
Chapter1 ふたりの旅の始まり
Chapter2 回帰について学ぼう ~広告費からクリック数を予測する
Chapter3 分類について学ぼう ~画像サイズに基づいて分類する
Chapter4 評価してみよう ~作ったモデルを評価する
Chapter5 実装してみよう ~Pythonでプログラミングする
Amazonで詳しく見る
紹介文
Pythonによるクローリング・スクレイピングの入門から実践までを解説した書籍です。2017年の初版から内容をアップデート、新ライブラリの解説などを追加した増補改訂版です。基本的なクローリングやAPIを活用したデータ収集、HTMLやXMLの解析から、データ取得後の分析や機械学習などの処理まで解説。データの収集・解析、活用がしっかりと基本から学べます。Webサービスの開発やデータサイエンスや機械学習分野で実用したい人はもちろん、基礎から解説しているのでPython初心者でもつまずかずに学習できます。多数のライブラリ、強力なフレームワークを活用して高効率に開発できます。
1. クローリング・スクレイピングとは何か
1-1. 本書が取り扱う領域
1-2. Wgetによるクローリング
1-3. スクレイピングに役立つUnixコマンド
1-4. gihyo.jpのスクレイピング
1-5. まとめ
2. Pythonではじめるクローリング・スクレイピング
2-1. Pythonを使うメリット
2-2. Pythonのインストールと実行
2-3. Pythonの基礎知識
2-4. Webページを取得する
2-5. Webページからデータを抜き出す
2-6. データをファイルに保存する
2-7. Pythonによるスクレイピングの流れ
2-8. URLの基礎知識
2-9. まとめ
3. ライブラリによる高度なクローリング・スクレイピング
3-1. HTMLのスクレイピング
3-2. XMLのスクレイピング
3-3. データベースに保存する
3-4. クローラーとURL
3-5. Pythonによるクローラーの作成
3-6. まとめ
4. 実用のためのメソッド
4-1. クローラーの特性
4-2. 収集したデータの利用に関する注意
4-3. クロール先の負荷に関する注意
4-4. 繰り返しの実行を前提とした設計
4-5. まとめ
5. クローリング・スクレイピングの実践とデータの活用
5-1. データセットの取得と活用
5-2. APIによるデータの収集と活用
5-3. 時系列データの収集と活用
5-4. オープンデータの収集と活用
5-5. Webページの自動操作
5-6. JavaScriptを使ったページのスクレイピング
5-7. 取得したデータの活用
5-8. まとめ
6. フレームワーク Scrapy
6-1. Scrapyの概要
6-2. Spiderの作成と実行
6-3. 実践的なクローリング
6-4. 抜き出したデータの処理
6-5. Scrapyの設定
6-6. Scrapyの拡張
6-7. クローリングによるデータの収集と活用
6-8. 画像の収集と活用
6-9. まとめ
7. クローラーの継続的な運用・管理
7-1. クローラーをサーバーで実行する
7-2. クローラーの定期的な実行
7-3. クローリングとスクレイピングの分離
7-4. クローリングの高速化・非同期化
7-5. クラウドを活用する
7-6. まとめ
Appendix. Vagrantによる開発環境の構築
A-1. VirtualBoxとVagrant
A-2. CPUの仮想化支援機能を有効にする
A-3. VirtualBoxのインストール
A-4. Vagrantのインストール
A-5. 仮想マシンを起動する
A-6. ゲストOSにSSH接続する
A-7. Pythonのスクリプトファイルを実行する
A-8. Linuxの基本操作
A-9. Vagrantで仮想マシンを操作するコマンド
Amazonで詳しく見る
紹介文
機械学習による機器の振動データに対する異常検知
、時系列データ(例として睡眠系列データ)に対する解析を解説。
機械学習による異常検知と系列データ解析を実例をもとに学ぶ
本書は、現在産業界で注目されている、機械学習による
・機器の振動データに対する異常検知
・系列データ(例として睡眠系列データ)に対する解析
を解説したものです。
業務や研究開発に必要だが機械学習については素人という方でも実践できるように、本書前半では、基本的な識別器・予測器のPythonによる実装例・使い方を解説しています。後半では、実問題への適用例を著者の研究経験をもとに解説しています。
第1章 機械学習とは何か
第2章 基本的な識別器・予測器
第3章 機器の振動データに対する異常検知
第4章 系列データの解析
Amazonで詳しく見る
紹介文
大手メーカーで活躍してきたクリエイターが
ゲーム開発のノウハウをゼロから教えます!
本書はPythonを使用した、ゲームプログラミングの解説書です。
類書とは異なり、終始一貫「ゲーム開発」に焦点を当て、
今書いているプログラムがどのような"動き"に反映され、
どのような"面白さ"に結びつくのかを、正しく学ぶことができます。
一般的なソフト開発ではなく「ゲーム開発の作法」をきちんと学ぶことによって、ゲーム好きな読者の皆さんの就職や趣味といったリアルな世界がより充実してくれることを願い、出版されました。
【読者対象】
○ゲーム業界に就職したい学生・社会人
○SNSや同人で自作ゲームを発表したい方
○落ち物パズル、RPGの作り方を知りたい方
○一般ソフトとゲーム制作の違いを知りたい方
○Pythonを始めたけど作るものが浮かばない方
……高校生ぐらいから読めます!
【本書の特長】
○業界の基礎知識やプログラマーの役割からきちんと解説
○Pythonの基本文法をしっかり解説、プログラミング初心者も安心
○プログラム1行ごとに説明を付けており、理解しやすい
○豊富な図解とイラストを用い、イメージで理解できる
○開発に必要な素材はすべて無償ダウンロードできる
クイズ、すごろく、おみくじ、診断アプリ、迷路、自動生成ダンジョン、落ち物パズル、本格PRGなど……簡単なミニゲームから難しいものまで幅広く教材を用意しています。
さらに、読者特典として3つのおまけゲームもプレゼント!
すべてのゲームをつくり終えた時、あたなのプログラミングスキルは何倍にも向上しているに違いありません。
本書を機に、ぜひゲームプログラミングの世界に飛び込んでみてください!
Prologueゲームプログラマーになろう!
Chapter 1 Pythonのインストール
Lesson 1-1 Pythonとは?
Lesson 1-2 Pythonのインストール
Lesson 1-3 Pythonを起動しよう
COLUMN ゲームクリエイターって儲かるの?
Chapter 2 Pythonを始めよう
Lesson 2-1 計算してみる
Lesson 2-2 文字列を出力する
Lesson 2-3 カレンダーを出力する
Lesson 2-4 プログラミングの準備
Lesson 2-5 プログラムを記述しよう
Lesson 2-6 入出力命令を知ろう
Lesson 2-7 プログラムの記述の仕方
COLUMN ゲームが完成するまで
Chapter 3 プログラミングの基礎を学ぼう
Lesson 3-1 変数と計算式
Lesson 3-2 リストについて
Lesson 3-3 条件分岐について
Lesson 3-4 繰り返しについて
Lesson 3-5 関数について
COLUMN ゲームの開発費はどれくらい? その1
Chapter 4 importの使い方
Lesson 4-1 モジュールについて
Lesson 4-2 カレンダーの復習
Lesson 4-3 日時を扱う
Lesson 4-4 乱数の使い方
COLUMN RPGで逃げるのに失敗する確率
Chapter 5 CUIでつくるミニゲーム
Lesson 5-1 CUIとGUI
Lesson 5-2 クイズゲームを作る
Lesson 5-3 すごろくを作る
Lesson 5-4 消えたアルファベットを探すゲームを作る
COLUMN ゲームの開発費はどれくらい? その2
Chapter 6 GUIの基礎1
Lesson 6-1 GUIについて
Lesson 6-2 ラベルを配置する
Lesson 6-3 ボタンを配置する
Lesson 6-4 キャンバスを使う
Lesson 6-5 おみくじを引くソフトを作る
COLUMN キャンバスに図形を表示する
Chapter 7 GUIの基礎2
Lesson 7-1 テキスト入力欄を配置する
Lesson 7-2 複数行のテキスト入力欄を配置する
Lesson 7-3 チェックボタンを配置する
Lesson 7-4 メッセージボックスを表示する
Lesson 7-5 診断ゲームを作る
COLUMN RGBによる色指定
Chapter 8 本格的なゲーム開発の技術
Lesson 8-1 リアルタイム処理を実現する
Lesson 8-2 キー入力を受け付ける
Lesson 8-3 キー入力で画像を動かす
Lesson 8-4 迷路のデータを定義する
Lesson 8-5 二次元画面のゲーム開発の基礎
COLUMN ゲームソフトを完成させるには
Lesson 8-6 ゲームとして完成させる
COLUMN デジタルフォトフレームを作る
Chapter 9 落ち物パズルを作ろう!
Lesson 9-1 ゲームの仕様を考える
Lesson 9-2 マウス入力を組み込む
Lesson 9-3 ゲーム用のカーソルの表示
Lesson 9-4 マス上のデータを管理する
Lesson 9-5 ブロックを落下させるアルゴリズム
Lesson 9-6 クリックしてブロックを置く
Lesson 9-7 ブロックが揃ったかを判定するアルゴリズム
Lesson 9-8 正しいアルゴリズムを組み込む
Lesson 9-9 タイトル画面とゲームオーバー画面
Lesson 9-10 落ち物パズルの完成
COLUMN winsoundで音を鳴らす
Chapter 10 Pygameの使い方
Lesson 10-1 Pygameのインストール
Lesson 10-2 Pygameのシステム
Lesson 10-3 画像を描画する
Lesson 10-4 図形を描画する
Lesson 10-5 キー入力を行う
Lesson 10-6 マウス入力を行う
Lesson 10-7 サウンドを出力する
COLUMN Pygameで日本語を使う
Chapter 11 本格RPGを作ろう! 前編
Lesson 11-1 ロールプレイングゲームについて
Lesson 11-2 迷路を自動生成する
Lesson 11-3 ダンジョンを作る
Lesson 11-4 ダンジョン内を移動する
Lesson 11-5 戦闘シーンを作る その1
Lesson 11-6 戦闘シーンを作る その2
Lesson 11-7 戦闘シーンを作る その3
COLUMN ゲームの画面演出 287
Chapter 12 本格RPGを作ろう! 後編
Lesson 12-1 ロールプレイングゲームの全体像
Lesson 12-2 ファイルのダウンロードとプログラムの実行
Lesson 12-3 プログラムリスト
Lesson 12-4 プログラムの詳細
COLUMN Pythonでのファイル処理
Chapter 13 オブジェクト指向プログラミング
Lesson 13-1 オブジェクト指向プログラミングについて
Lesson 13-2 クラスとオブジェクト
Lesson 13-3 tkinterを使ってオブジェクト指向を学ぶ
Lesson 13-4 オブジェクト指向プログラミングをもっと学ぶ
COLUMN 筆者も苦労したオブジェクト指向プログラミング
Appendix 池山高校Python研究部
Intro ゲームをつくろう!
1つ目 一筆書き迷路ゲーム
2つ目 英単語学習ソフト
3つ目 ブロック崩し
Amazonで詳しく見る
紹介文
基礎理論はコンパクトにまとめ、「耐雑音」「話者認識」「深層学習」についてたっぷり解説。音声認識分野がこれ一冊で学べる!
音声の信号処理についての知識ゼロでも読めるように、懇切丁寧に解説した。基礎理論はコンパクトにまとめ、「耐雑音」「話者認識」「深層学習」についてたっぷり解説。一気に実用が進んだ音声認識分野がこれ一冊で学べる!
■おもな内容
第1章 音声とは
第2章 音声分析
第3章 音声認識とは
第4章 隠れマルコフモデル
第5章 言語モデル
第6章 大語彙連続音声認識
第7章 耐雑音音声認識
第8章 話者適応と話者認識
第9章 深層学習
■機械学習プロフェッショナルシリーズ
本シリーズでは、発展著しい機械学習技術の数学的な基礎理論、実用的なアルゴリズム、それらの活用法を、全29巻にわたって刊行する。
ビッグデータ時代を牽引している若手・中堅の現役研究者が、入門的な内容から最先端の研究成果までをわかりやすく解説。
これからデータサイエンス分野で研究を始めようとしている大学生・大学院生、および、機械学習技術を基礎科学や産業に応用しようとしている研究者・技術者に向けた注目のシリーズである。
■シリーズ編者
杉山 将 理化学研究所 革新知能統合研究センター センター長/東京大学大学院新領域創成科学研究科 教授
第1章 音声とは
1.1 音の知覚
1.2 音声の生成
1.3 音韻と音素
第2章 音声分析
2.1 前処理
2.2 音声特徴量
2.3 音声特徴量の量子化
第3章 音声認識とは
3.1 音声認識の分類
3.2 DPマッチング
第4章 隠れマルコフモデル
4.1 確率モデルを用いたパターン認識
4.2 マルコフ過程
4.3 隠れマルコフモデルとは
4.4 音声認識のための隠れマルコフモデル
4.5 HMMを用いたパターン認識
第5章 言語モデル
5.1 言語の複雑さの尺度
5.2 確率的言語モデル
5.3 形態素解析
第6章 大語彙連続音声認識
6.1 サブワード認識単位を用いた学習・認識
6.2 音素文脈決定木を用いたクラスタリング
6.3 発音辞書
6.4 探索技術
6.5 識別学習
第7章 耐雑音音声認識
7.1 雑音とは
7.2 加算性雑音
7.3 乗算性雑音
7.4 非定常雑音への対応
第8章 話者適応と話者認識
8.1 話者適応とは
8.2 事後確率最大化法
8.3 最尤線形回帰法
8.4 話者正規化
8.5 話者認識とは
8.6 i-vectorを用いた話者照合
第9章 深層学習
9.1 ニューラルネットワーク
9.2 誤差逆伝播法
9.3 ニューラルネットワークによる音声認識
9.4 音声認識のための深層学習
9.5 音声認識の要素技術における深層学習
9.6 End-to-End学習
9.7 今後の展望
Amazonで詳しく見る
紹介文
人気の絵本シリーズにPython登場、人気の言語を手早くマスター
手軽に学びたい人の味方!人気の絵本シリーズにPython登場!
Pythonはコンパイラを使わずに実行できるインタープリタ型の言語でありながら、データ分析など最新のコンピューティングの現場でひろく活用されています。
本書では「プログラミングについて何も知らないこと」を前提に、基本からPythonを解説し、さらにリストや関数といった特徴ある機能を紹介していきます。また、章末でプログラミングサンプルを紹介するなど、実戦的な内容も含まれています。
本書には次のような特長があります。
・絵を多用し、短い解説で絵本のようにビジュアルに理解することができます
・2ページを単位とした説明、基礎に絞り込んだ内容でスピーディに学習できます
・予備知識は不要。「プログラミングとはなにか」から入門できます
・Pythonの特徴などや実行の仕組みなど、知識として知っておきたい事柄もフォロー
・クラス/オブジェクトの基本も解説。オブジェクト指向の基礎にも入門できます
【翔泳社の「絵本」シリーズのラインナップをアップデート】
翔泳社の「絵本シリーズ」は、豊富なイラストと簡潔な解説でコンピュータ技術に入門できる初心者向けのシリーズです。言語/技術の超初心者や手軽に習得したい方に最適な入門書です。
新しい「絵本シリーズ」では、旧来の分かりやすさ、親しみやすさ、基礎に徹した内容というコンセプトはそのままに、Web/ネットが全盛となった現在のコンピュータ技術の潮流に合わせた解説を心掛けます。『Cの絵本』『Javaの絵本』を皮切りにラインナップを順次刷新、さらに新しい仲間を増やしてラインナップを充実させていきます。
Pythonの勉強をはじめる前に
第1章 基本的なプログラム
第2章 計算の演算子
第3章 リスト
第4章 制御文
第5章 関数
第6章 文字列
第7章 ファイルと例外処理
第8章 クラスとオブジェクト
付録
Amazonで詳しく見る
紹介文
コンピュータビジョンの理論とアルゴリズムを基礎から学べる実践的な入門書。理論の説明にとどまらず、ベクトル演算や行列演算を駆使したサンプルを示しながら物体認識、3次元復元、ステレオ画像、拡張現実感、その他の応用について解説します。サンプルプログラムはPython2.7で書かれています。
基本的な画像処理
画像の局所記述子
画像間の写像
カメラモデルと拡張現実感
多視点幾何
画像のクラスタリング
画像検索
画像認識
画像の領域分割
OpenCV
付録A パッケージのインストール方法
付録B 画像のデータセット
付録C 画像の出典
Amazonで詳しく見る
紹介文
コンピュータによる視覚(ビジョン)機能を実現することを目的としたコンピュータビジョンは1970年代からはじまる学問分野であり,カメラで撮影された画像や映像に映る対象を理解するための様々な技術が長らく研究開発されてきた。特に近年は,深層学習をベースとした人工知能技術の発展とあいまって,基礎,応用の両面で急速な進歩を遂げている。また,仮想現実や拡張現実,マルチメディア,インタラクションなど様々な分野への応用も期待されている。
このような背景をのもと,本書『コンピュータビジョン―広がる要素技術と応用―』は,カメラキャリブレーションやカメラ位置姿勢推定,多視点幾何やフォトメトリックステレオによる3次元復元といった黎明期からの主要技術に加え,顔認識,人物属性認識,行動認識,重要領域検出,RGBD画像を用いた3次元物体認識,画像のキャプショニングといった応用技術,さらには近似最近傍探索,マルコフ確率場の推論と学習,凸最適化といった基盤技術をカバーする13章から構成される。本書を通して,コンピュータビジョン分野において最近注目を集めるトピックに関する基盤理論や原理,近年の重要文献,さらには実装方法を学べることが期待される。
第1章 コンピュータビジョンの概要
第2章 カメラキャリブレーション
第3章 多視点画像を用いた3次元復元
第4章 拡張現実感のためのコンピュータビジョン技術
第5章 フォトメトリックステレオ
第6章 近似最近傍探索
第7章 マルコフ確率場の推論と学習
第8章 コンピュータビジョンにおける凸最適化
第9章 顔認識
第10章 人物属性認識
第11章 単視点からの人物行動認識
第12章 重要領域の抽出
第13章 RGBD画像と3次元物体認識
第14章 画像キャプションの自動生成
Amazonで詳しく見る
紹介文
Pythonはここ数年で日本語の書籍も増え、開発現場での利用実績も着実に増えてきています。ご自身の第二、第三の言語の選択肢としてPythonが気になっているという方も多いのではないでしょうか。また、「Pythonを始めてみたけど、実際に業務で利用するには不安が残る」「コードレビューに怯えながらPythonを書いている」という方も多いのではないでしょうか。
本書は、そういった方を対象に、Pythonという言語が持つ機能の実践的な使い方を紹介します。Pythonは、日常的なツールからWeb開発、データ分析、機械学習など分野を問わず利用できる汎用性の高い言語です。本書も同じく、Pythonという言語の仕様やその特徴的な機能、標準ライブラリでできることを中心に扱うため、分野を問わず活用していただけます。
□第1章 Pythonはどのような言語か
1.1 プログラミング言語としての特徴
シンプルで読みやすい動的型付き言語
インデントによるブロックの表現
教育用プログラミング言語ABCの影響
後方互換性の重視
豊富な標準ライブラリ
さまざまな用途での利用
1.2 Pythonの歴史と現況
Python自体の進化
Pythonの誕生
Python 2系でメジャーな言語に
Python 3系への移行
現在のPythonの状況
Pythonを取り巻く環境の変化
1.3 Pythonコミュニティの特徴
コミュニティ主体のOSS
PyCon ── Pythonユーザーが集まるカンファレンス
PEPの存在
PEP 8:Style Guide for Python Code ── Python標準のスタイルガイド
PEP 20:The Zen of Python ── Pythonの設計ガイドライン
PEP 257:Docstring Conventions ── ドキュメントの書き方
1.4 本章のまとめ
□第2章 Pythonのインストールと開発者向けの便利な機能
2.1 Pythonのインストール
OSにプリインストールされているPython
macOSでの利用
公式インストーラを利用したインストール
Windowsでの利用
公式インストーラを利用したインストール
Ubuntuでの利用
APTを利用したインストール
そのほかのLinuxでの利用
Dockerの利用
公式イメージを利用したPythonの実行
スクリプトファイルの実行
2.2 Pythonの実行
本書で利用するpythonコマンド
Pythonインタプリタの2つのモード
対話モードのインタプリタ
対話モードの基本的な使い方
対話モードでよく使う組み込み関数
type() ── オブジェクトの型を調べる
dir() ── オブジェクトの属性を調べる
help() ── ヘルプページを表示する
Docstringを使ったヘルプページの作成
スクリプトの実行
モジュールをスクリプトとして実行
pythonコマンドとpython3コマンドの違い
2.3 本章のまとめ
□第3章 制御フロー
3.1 基本となる文法
インデントによるブロックの表現
インデントの幅
pass文 ── 何もしないことの宣言
変数の利用
型の宣言がいらない理由
コメント
コメントとDocstringの違い
3.2 条件分岐
if文 ── 条件を指定した処理の分岐
真となる値、偽となる値
シンプルな条件式
if文でよく使う数値の比較
if文でよく使うオブジェクトの比較
3.3 ループ ── 処理の繰り返し
for文 ── 要素の数だけ処理を繰り返す
for文でよく使う組み込み関数
for文のelse節の挙動
for文での変数のスコープ
while文 ── 条件を指定した処理の繰り返し
while文のelse節の挙動
break文 ── ループを抜ける
continue文 ── 次のループに移る
3.4 例外処理
try文 ── 例外の捕捉
except節 ── 例外が発生したときのみ実行する
else節 ── 例外が発生しなかったときのみ実行する
finally節 ── 例外の有無にかかわらず必ず実行する
raise文 ── 意図的に例外を発生させる
独自の例外を定義する
with文 ── 定義済みのクリーンアップ処理を必ず実行する
3.5 本章のまとめ
□第4章 データ構造
4.1 None ── 値が存在しないことを表現する
条件式でのNoneの利用
4.2 真理値 ── 真/偽を扱う
bool型 ── 真理値を扱う型
ブール演算
x or y ── xが真ならx、そうでなければyを返す
x and y ── xが真ならy、そうでなければxを返す
not x ── xが真ならFalse、そうでなければTrueを返す
4.3 数値
数値どうしの演算
数値を扱う組み込み型
int型 ── 整数を扱う型
float型 ── 浮動小数点数を扱う型
complex型 ── 複素数を扱う型
条件式での数値の利用
4.4 文字列
str型 ── 文字列を扱う型
文字列の演算
for文での文字列の挙動
条件式での文字列の利用
文字列内での変数の利用
f-string ── 式を埋め込める文字列リテラル
format() ── 引数に渡した変数で文字列を置換するメソッド
%演算子 ── 一番古い文字列フォーマット
str型とよく似たbytes型
str.encode()とbytes.decode()を利用した相互変換
Python 2系とPython 3系の文字列の違い
4.5 配列 ── 要素を1列に並べて扱う
list型 ── 可変な配列を扱う型
要素の追加と削除
インデックスによる要素へのアクセス
スライスによるリストの切り出し
tuple型 ── 不変な配列を扱う型
タプル作成時の注意点
インデックスによる要素へのアクセス
スライスによるタプルの切り出し
for文での配列の挙動
条件式で使える配列の性質
タプルとリストの使い分け
4.6 辞書 ── キーと値のセットを扱う
dict型 ── 辞書を扱う型
要素の追加と削除
キーによる要素へのアクセス
キーに使えるオブジェクトの条件
for文での辞書の挙動
条件式で使える辞書の性質
4.7 集合 ── 一意な要素の集合を扱う
set型 ── 可変な集合を扱う型
要素の追加と削除
frozenset型 ── 不変な集合を扱う型
集合の演算 ── 和、積、差、対称差
for文での集合の挙動
条件式で使える集合の性質
4.8 内包表記 ── 効率的なシーケンスの生成
リスト内包表記 ── 効率的なリストの生成
ネストしたリストの内包表記
if文のある内包表記
そのほかの内包表記
4.9 そのほかの型を表す概念
可変オブジェクト ── 定義後に値を変更できるオブジェクト
不変オブジェクト ── 定義後に値を変更できないオブジェクト
コンテナオブジェクト ── ほかのオブジェクトへの参照を持つオブジェクト
イテラブルなオブジェクト ── for文で使えるオブジェクト
呼び出し可能オブジェクト ── ()を付けて呼び出せるオブジェクト
4.10 本章のまとめ
□第5章 関数
5.1 関数 ── 関連する処理をまとめる
関数の定義と実行
引数を取る関数
関数はオブジェクト
関数の戻り値
returnがない場合の戻り値
関数のさまざまな引数
位置引数 ── 仮引数名を指定しない実引数の受け渡し
キーワード引数 ── 仮引数名を指定した実引数の受け渡し
デフォルト値のある引数 ── 実引数を省略できる仮引数
可変長の位置引数
可変長のキーワード引数
キーワードのみ引数 ── 呼び出し時に仮引数名が必須になる引数
位置のみ引数 ── 呼び出し時に仮引数名を指定できない引数
引数リストのアンパック ── リストや辞書に格納された値を引数に渡す
関数のDocstring
5.2 lambda式 ── 無名関数の作成
lambda式の定義と実行
lambda式の使いどころ
5.3 型ヒント ── アノテーションで関数に型情報を付与する
型情報を付与するのメリット
型情報の付与
変数への型情報の付与
型ヒントの活用例 ── 静的解析ツールの利用
5.4 本章のまとめ
□第6章 クラスとインスタンス
6.1 Pythonのクラス機構
classキーワードによるクラスの定義
インスタンスの作成
6.2 インスタンス ── クラスをもとに生成されるオブジェクト
インスタンスメソッド ── インスタンスに紐付くメソッド
インスタンス変数 ── インスタンスが保持する変数
インスタンスの初期化
__init__() ── インスタンスの初期化を行う特殊メソッド
引数を渡してインスタンス化する
__init__()と__new__()の違い ── イニシャライザとコンストラクタ
__new__()の注意点
プロパティ ── インスタンスメソッドをインスタンス変数のように扱う
property ── 値の取得時に呼び出されるメソッド
setter ── 値の設定時に呼び出されるメソッド
クラスやインスタンスのプライベートな属性
アンダースコアから始まる属性
アンダースコア2つから始まる属性
プライベートな属性に対するPythonコミュニティの考え方
6.3 クラス ── インスタンスのひな型となるオブジェクト
クラス変数 ── クラスオブジェクトが保持する変数
クラス変数にはインスタンスからも参照可能
クラスメソッド ── クラスに紐付くメソッド
スタティックメソッド ── 関数のように振る舞うメソッド
6.4 クラスの継承
メソッドのオーバーライドとsuper()による基底クラスへのアクセス
すべてのオブジェクトはobjectクラスのサブクラス
多重継承 ── 複数の基底クラスを指定する
多重継承の注意点
属性__mro__を利用したメソッド解決順序の確認
6.5 本章のまとめ
□第7章 モジュールとパッケージ、名前空間とスコープ
7.1 モジュール ── コードを記述した.pyファイル
モジュールの作成
モジュールのインポート
python3コマンドから直接実行する
引数を取得する
直接実行したときのみ動くコード
if __name__ == '__main__':ブロックの意味
変数__name__に格納される値
7.2 パッケージ ── モジュールの集合
パッケージの作成
パッケージ内のモジュールのインポート
__init__.py ── パッケージの初期化を行う
__init__.pyの便利な使い方
import文の比較
import文のみを利用したインポート
from節を利用して特定の属性をインポートする
.を利用した相対インポート
ワイルドカードを利用して複数の属性を一括インポートする
as節による別名の付与
7.3 インポートのしくみ
モジュール検索の流れ
sys.path ── モジュールの検索パス
検索パスの優先度
PYTHONPATH ── sys.pathに検索パスを追加する
7.4 名前空間と変数のスコープ
名前空間 ── 名前とオブジェクトのマッピング
名前空間の活用
スコープ ── 直接アクセス可能な領域
ローカルスコープ ── 関数内に閉じたスコープ
グローバルスコープ ── モジュールトップレベルのスコープ
ビルトインスコープ ── 組み込みオブジェクトのスコープ
エンクロージングスコープ ── 現在のローカルスコープの1つ外側のスコープ
7.5 本章のまとめ
□第8章 組み込み関数と特殊メソッド
8.1 組み込み関数 ── いつでも利用できる関数
オブジェクトの型を調べる関数
isinstance()、issubclass() ── 動的な型判定
callable() ── 呼び出し可能オブジェクトを判定
オブジェクトの属性に関する関数
hasattr() ── オブジェクトの属性の有無を判定
getattr()、setattr()、delattr() ── オブジェクトの属性を操作する
イテラブルなオブジェクトを受け取る関数
zip() ── 複数のイテラブルの要素を同時に返す
sorted() ── イテラブルの要素を並べ替える
filter() ── イテラブルの要素を絞り込む
map() ── すべての要素に関数を適用する
all()、any() ── 真理値を返す
そのほかの組み込み関数
8.2 特殊メソッド ── Pythonが暗黙的に呼び出す特別なメソッド
__str__()、__repr__() ── オブジェクトを文字列で表現する
__bool__() ── オブジェクトを真理値で評価する
__call__() ── インスタンスを関数のように扱う
属性への動的なアクセス
__setattr__() ── 属性への代入で呼び出される
__delattr__() ── 属性の削除で呼び出される
__getattr__()、__getattribute__() ── 属性アクセスで呼び出される
イテラブルなオブジェクトとして振る舞う
__iter__() ── イテレータオブジェクトを返す
__next__() ── 次の要素を返す
コンテナオブジェクトとして振る舞う
__getitem__()、__setitem__() ── インデックスやキーによる操作
__contains__() ── オブジェクトの有無を判定する
そのほかの特殊メソッド
8.3 本章のまとめ
□第9章 Python特有のさまざまな機能
9.1 ジェネレータ ── メモリ効率のよいイテラブルなオブジェクト
ジェネレータの具体例
ジェネレータの実装
ジェネレータ関数 ── 関数のように作成する
ジェネレータ式 ── 内包表記を利用して作成する
yield from式 ── サブジェネレータへ処理を委譲する
ジェネレータを利用する際の注意点
len()で利用する場合
複数回利用する場合
ジェネレータの実例 ── ファイルの内容を変換する
そのほかのユースケース
9.2 デコレータ ── 関数やクラスの前後に処理を追加する
デコレータの具体例
functools.lru_cache() ── 関数の結果をキャッシュする関数デコレータ
dataclasses.dataclass() ── よくある処理を自動追加するクラスデコレータ
デコレータの実装
シンプルなデコレータ
引数を受け取る関数のデコレータ
デコレータ自身が引数を受け取るデコレータ
複数のデコレータを同時に利用する
functools.wraps()でデコレータの欠点を解消する
デコレータの実例 ── 処理時間の計測
そのほかのユースケース
9.3 コンテキストマネージャー ── with文の前後で処理を実行するオブジェクト
コンテキストマネージャーの具体例
コンテキストマネージャーの実装
__enter__()、__exit__() ── with文の前後に呼ばれるメソッド
with文と例外処理
asキーワード ── __enter__()の戻り値を利用する
contextlib.contextmanagerでシンプルに実装する
コンテキストマネージャーの実例 ── 一時的なログレベルの変更
そのほかのユースケース
9.4 デスクリプタ ── 属性処理をクラスに委譲する
デスクリプタの具体例
デスクリプタの実装
__set__()を実装する ── データデスクリプタ
__get__()のみを実装する ── 非データデスクリプタ
デスクリプタの実例 ── プロパティのキャッシュ
そのほかのユースケース
9.5 本章のまとめ
□第10章 並行処理
10.1 並行処理と並列処理 ── 複数の処理を同時に行う
逐次処理で実行する
並行処理で実行する
並列処理で実行する
Pythonと並行処理
並行処理と非同期処理の関係
10.2 concurrent.futuresモジュール ── 並行処理のための高水準インタフェース
FutureクラスとExecutorクラス ── 非同期処理のカプセル化と実行
ThreadPoolExecutorクラス ── スレッドベースの非同期実行
スレッドベースの非同期実行が効果的なケース
ThreadPoolExecutorクラスを利用したマルチスレッド処理の実例
逐次処理で実装
マルチスレッドで実装
マルチスレッドの注意点
マルチスレッドでの動作に問題がある実装
スレッドセーフな実装
ProcessPoolExecutorクラス ── プロセスベースの非同期実行
プロセスベースの非同期実行が効果的なケース
ProcessPoolExecutorクラスを利用したマルチプロセス処理の実例
逐次処理で実装
マルチプロセスで実装
マルチプロセスの注意点
pickle化できるオブジェクトを使う
乱数の取り扱い方
10.3 asyncioモジュール ── イベントループを利用した並行処理を行う
コルーチン ── 処理の途中で中断、再開する
async構文を使ったコルーチンの実装
await構文を使ったコルーチンの呼び出しと中断
コルーチンの並行実行
コルーチンのスケジューリングと実行
イベントループ ── asyncioモジュールの中心的な機構
タスク ── スケジューリングしたコルーチンをカプセル化
非同期I/O ── イベントループに適したI/O処理
同期I/Oを利用する処理のタスク化
asyncioモジュールとHTTP通信
aiohttp ── 非同期I/Oを利用するHTTPクライアント兼サーバライブラリ
10.4 本章のまとめ
□第11章 開発環境とパッケージの管理
11.1 仮想環境 ── 隔離されたPython実行環境
venv ── 仮想環境作成ツール
venvのしくみ
仮想環境の有効化、無効化
仮想環境内でのpythonコマンド
仮想環境内でパッケージを利用する
複数のプロジェクトを並行して開発する
11.2 パッケージの利用
pip ── パッケージ管理ツール
基本的な使い方
パッケージのインストール
パッケージのアンインストール
PyPI ── Pythonパッケージのリポジトリ
ソースコードリポジトリにあるパッケージをインストールする
ローカルにあるパッケージをインストールする
インストール済みのパッケージをアップデートする
現在のユーザー用にインストールする
環境の保存と再現 ── requirementsファイルの活用
現在の環境の情報をrequirementsファイルに保存する
requirementsファイルから環境を再現する
開発環境でのみ利用するパッケージの管理
依存パッケージのアップデート
11.3 パッケージの作成
setup.py ── パッケージの情報をまとめたファイル
パッケージのディレクトリ構成
setup.pyの基本
PyPIへの登録を考慮する
依存パッケージを考慮する
.py以外のファイルを考慮する
PyPIへのパッケージの登録
PyPIのアカウント作成
配布物の作成
配布物のアップロード
11.4 本章のまとめ
□第12章 ユニットテスト
12.1 ユニットテストの導入
単一モジュールのテスト
テスト実行コマンドの簡略化
パッケージのテスト
ディレクトリ構成
サンプルアプリケーションの作成
12.2 unittestモジュール ── 標準のユニットテストライブラリ
テストケースの実装
前処理、後処理が必要なテストケース
テストの実行と結果の確認
テスト失敗時の結果
テスト失敗時の結果を抑制する
特定のテストのみを実行する
テストケースを直接指定
テストディスカバリ
12.3 unittest.mockモジュール ── モックオブジェクトの利用
モックオブジェクトの基本的な使い方
任意の値を返す呼び出し可能オブジェクトとして利用する
アサーションメソッドで呼び出され方をテストする
patchを使ったオブジェクトの置き換え
mockを利用するテストケースの実例
12.4 ユースケース別のテストケースの実装
環境依存のテストをスキップする
例外の発生をテストする
違うパラメータで同じテストを繰り返す
コンテキストマネージャーをテストする
12.5 本章のまとめ
□第13章 実践的なPythonアプリケーションの開発
13.1 作成するアプリケーション
LGTM画像を自動生成するコマンドラインツール
利用する主な外部パッケージ
requests ── HTTPクライアントライブラリ
Click ── コマンドラインツール作成ライブラリ
Pillow ── 画像処理ライブラリ
13.2 プロジェクトの作成
Gitの利用
.gitignoreファイルの作成
GitHubでのソースコード管理
パッケージのひな型作成
lgtmパッケージの作成
テストコードの作成
13.3 継続的インテグレーションの導入
CircleCIでテスト自動化
プロジェクトの追加
config.ymlの追加
テストの実行と結果の確認
13.4 アプリケーションの開発
コマンドライン引数の取得
画像のソース情報とメッセージを受け取る
テストコードの修正
画像の取得
ファイルパスから画像を取得するクラスの実装
URLから画像を取得するクラスの実装
検索キーワードから画像を取得するクラスの実装
画像を取得するクラスの利用
画像処理
文字列を画像上に描画する最小限の実装例
文字列を中央に最適なサイズで描画する
各処理の呼び出し
13.5 コマンドとして実行する
setup.pyの作成
entry_points ── スクリプトインタフェースの登録を行う引数
動かしてみよう
13.6 本章のまとめ
Amazonで詳しく見る
紹介文
卓越したPythonプログラマになるための必読書
本書は、Pythonを使って仕事をしている開発者が普段どのようなツールやテクニックを用いて仕事をしているのか、また開発者が実際に現場で用いているベストプラクティスについて解説した書籍です。本書を読むことで、先進的なPythonプログラマが日常的に使用している開発ノウハウを学ぶことができます。
第1章 現在のPythonのステータス
第2章 構文ベストプラクティス ― クラス以外
第3章 構文ベストプラクティス ― クラスの世界
第4章 良い名前を選ぶ
第5章 パッケージを作る
第6章 コードをデプロイする
第7章 他言語によるPythonの拡張
第8章 コードの管理
第9章 プロジェクトのドキュメント作成
第10章 テスト駆動開発
第11章最適化 ― 一般原則とプロファイリングテクニック
第12章最適化 ― いくつかの強力な解決方法
第13章 並行処理
第14章 Pythonのためのデザインパターン
Amazonで詳しく見る
紹介文
コンピュータビジョンの代表的な計算手順(アルゴリズム)について,詳細に解説.
OpenCVやWeb上のプログラムなど,コンピュータビジョンを行ううえでのツールは充実していますが,これらを改良したり,自分の問題のために書き換えるのは,一筋縄ではいきません.
本書では,コンピュータビジョン,とくに画像からの3次元解析の代表的な手法について,それらの計算手順(アルゴリズム)を詳細に解説することで,こうした問題を解決するヒントを提供します.
〈本書の特徴〉
・「計算手順」→「解説」という順序で解説
→理論の詳細を追わなくても学べる.
・アルゴリズムの適用例を示し,それぞれの精度と処理速度を評価
→高精度・高速な処理を行うために,アルゴリズムの何をどのように工夫すればよいかがわかる.
・この分野の第一人者である著者らが,各手法について,歴史的概観を交えて参考文献を紹介
→今後の学習の指針,分野の概観が得られる.
なお,実装を容易にするために,代表的な手順のサンプルコードと,行列・ベクトル演算ライブラリEigenの解説を森北出版のWeb サイトで公開しています.
第1章 序 論
第I部 コンピュータビジョンの基礎技術
第2章 楕円当てはめ
第3章 基礎行列の計算
第4章 三角測量
第5章 2画像からの3次元復元
第6章 射影変換の計算
第7章 平面三角測量
第8章 平面の3次元復元
第9章 楕円の解析と円の3次元計算
第II部 多画像からの3次元復元
第10章 多視点三角測量
第11章 バンドル調整
第12章 アフィンカメラの自己校正
第13章 透視投影カメラの自己校正
Amazonで詳しく見る
紹介文
詰め込みすぎないわかりやすい解説。コレならわかる!できる!
1 Pythonでプログラミングを始めよう
2 制御構文を理解しよう
3 関数の使い方をマスターしよう
4 オブジェクト指向を理解しよう
5 クラスの使い方をマスターしよう
6 モジュールを利用しよう
7 ファイルの読み書きと例外処理を行おう
8 アプリケーションを作成しよう
Amazonで詳しく見る
紹介文
知識ゼロからはじめるディープラーニング
EラーニングサイトUdemyの人気講師が教えるディープラーニングの基礎。ディープラーニングの本命であるニューラルネットワークと、ニューラルネットワークを学習させる際に用いられるアルゴリズムであるバックプロパゲーション(誤差逆伝播法)を初学者にもわかりやすく解説。また画像認識や自然言語処理の分野で高い効率性を発揮する畳み込みニューラルネットワークについてもコード付きで解説することにより、入門書であるにもかかわらず本格的AI開発の入り口まで学ぶことができます。
[本書の特徴]
・はじめてPythonに触れる方のために、Python本体と数値演算ライブラリNumPyによるプログラミングの基礎を解説しています。
・文系エンジニアのために、微分や線形代数など、ニューラルネットワークの理解に必要な数学の知識を解説しています。
・サンプルプログラムはフレームワークを使わずにPythonのみで記述しています。このため数式をコード化する際の原理が初心者にもわかりやすくなっています。
・サンプルプログラムはSBクリエイティブ株式会社のサイトからダウンロード可能です。
・Python3、Jupyter Notebook対応
第01章 ディープラーニングとは
第02章 Pythonの概要
第03章 ディープラーニングに必要な数学
第04章 ニューラルネットワーク
第05章 バックプロパゲーション
第06章 最小限の実装によるディープラーニング
第07章 畳み込みニューラルネットワーク(CNN)
第08章 ディープラーニングの応用
Amazonで詳しく見る
紹介文
「なぜディープラーニングが形を区別できるのか」が見えてくる!Excelと対話しながらしくみを解き明かす画期的な超入門書!初めてのAI学習に最適!難しい数学計算はExcelに任せてディープラーニングのしくみを動かしながら理解できる!
1章 初めてのディープラーニング(畳み込みニューラルネットワークのしくみは簡単
AIとディープラーニング)
2章 Excelの確認とその応用(利用するExcel関数はたったの7個
Excelの参照形式 ほか)
3章 ニューロンモデル(神経細胞の働き
神経細胞の働きを数式表現 ほか)
4章 ニューラルネットワークのしくみ(読み物としてのニューラルネットワークのしくみ
ニューラルネットワークが手書き文字を識別 ほか)
5章 畳み込みニューラルネットワークのしくみ(読み物としての畳み込み-ニューラルネットワークのしくみ
畳み込みニューラルネットワークが手書き数字を識別 ほか)
付録
Amazonで詳しく見る
紹介文
ディープラーニングの動作する数学の仕組みを解説。どの分野が必要かを知り、基本を理解し、どのように効いているかを学びます。
本書は、ディープラーニングを支え、ベースとなっている数学に焦点をあて、どのような仕組みで、どのように効いて、なぜ機能するのかの解説をしていきます。「ブラックボックス」と思われがちなディープラーニングの中身を理解していきます。
高校数学の知識を前提としながらも、必要な数学を復習しつつ、高校で習わない偏微分に関しては基本から必要な部分を解説して、ディープラーニングを支える数学の知識を学んでいきます。
「ディープラーニングという言葉は聞くが、どんなものなのか分からないので理解したい」「ブラックボックスと言われるディープラーニングの仕組みを知りたい」「ディープラーニングを学びたいけれど、数学の勉強のどこから手を付けていいか分からない」といった読者の興味に応える一冊です。
数学を学びながら、それがディープラーニングにどのように効いているのか分かることが重要です。その点を実感として理解することができれば、ディープラーニングの仕組みの本質が理解できたことにつながっていきます。そのためのディープラーニングの主要な概念の解説もしていきます。
Amazonで詳しく見る
紹介文
注目のコンピュータービジョンライブラリ。高度な映像処理、解析がPythonでさらに簡単に!
第1章 OpenCVについて(OpenCVとは
OpenCVの機能と構成 ほか)
第2章 画像・映像入出力(画像ファイルの表示
画像ファイルの処理と保存 ほか)
第3章 映像処理(カラーチャンネルの分離と合成
移動物体の抽出(浮動小数点数型画像) ほか)
第4章 基本操作(テキストとグラフィックスの描画
ピクセルの直接操作(映像処理) ほか)
第5章 映像解析(テンプレートマッチング
オプティカルフロー検出 ほか)
付録
Amazonで詳しく見る
紹介文
基礎から、SGD、自己符号化器、CNN、RNN、ボルツマンマシンまでと、盛りだくさん。軽快な語り口で、無理なく理解できる!
いま最も注目されている機械学習手法である深層学習(ディープラーニング)を、トップ研究者が解説した。基礎から、SGD、自己符号化器、CNN、RNN、ボルツマンマシンまでと、盛りだくさん。軽快な語り口なので、無理なく理解できる!
【機械学習プロフェッショナルシリーズ】
本シリーズでは、発展著しい機械学習技術の数学的な基礎理論、実用的なアルゴリズム、それらの活用法を、全29巻にわたって刊行する。
ビッグデータ時代を牽引している若手・中堅の現役研究者が、入門的な内容から最先端の研究成果までをわかりやすく解説。
これからデータサイエンス分野で研究を始めようとしている大学生・大学院生、および、機械学習技術を基礎科学や産業に応用しようとしている研究者・技術者に向けた注目のシリーズである。
全29巻のうち第1期として、以下の4点を同時刊行!
『機械学習のための確率と統計』杉山 将・著
『深層学習』岡谷 貴之・著
『オンライン機械学習』海野 裕也/岡野原 大輔/得居 誠也/徳永 拓之・著
『トピックモデル』岩田 具治・著
第2期の刊行は2015年8月、第3期の刊行は2015年12月の予定(^o^)/
【シリーズ編者】
杉山 将 東京大学大学院新領域創成科学研究科 教授
第1章 はじめに
第2章 順伝播型ネットワーク
第3章 確率的勾配降下法
第4章 誤差逆伝播法
第5章 自己符号化器
第6章 畳込みニューラルネット
第7章 再帰型ニューラルネット
第8章 ボルツマンマシン
Amazonで詳しく見る
紹介文
深層学習ベストセラーがさらにパワーアップ。リカレントニューラルネットワーク、GAN、深層強化学習の「章」が新たに加わった。
おお!もう第2版! 深層学習ベストセラーがさらにパワーアップ。リカレントニューラルネットワーク、GAN、深層強化学習の「章」が新たに加わり、ツールの最新事情も反映された。50ページ以上増強されたお得な一冊!
いまの姿を的確に、時代を見据えた、きちんとした大改訂。
ResNet、SENet、Faster R-CNN、YOLO、GAN、DCGAN、CGAN、CycleGAN
DQN、Actor-Critic、A3C、Caffe、Chainer、TensorFlow、Keras、PyTorch
・リカレントニューラルネットワーク、GAN、深層強化学習の「章」が新たに加わった。
・物体検出、セグメンテーション、可視化への活用も充実し、フレームワークの最新事情も反映。
・50ページ以上増強されたお得な一冊!
主な内容
1章 序論
2章 ニューラルネットワーク
3章 畳み込みニューラルネットワーク
4章 汎化性能を向上させる方法
5章 畳み込みニューラルネットワークの活用
6章 リカレントニューラルネットワーク
7章 オートエンコーダ
8章 敵対的生成ネットワーク
9章 深層強化学習
10章 ディープラーニングのフレームワーク
序論
ニューラルネットワーク
畳み込みニューラルネットワーク
汎化性能を向上させる方法
畳み込みニューラルネットワークの活用
リカレントニューラルネットワーク
オートエンコーダ
敵対的生成ネットワーク
深層強化学習
ディープラーニングのフレームワーク
Amazonで詳しく見る
紹介文
大ベストセラーの続編。さらに作る、さらに深くDeep Learningに迫る!
大ベストセラーの続編。さらに作る、さらに深くDeep Learningに迫る!
コンピュータの専門書としては異例の大ヒットを記録した『ゼロから作るDeep Learning』の続編。第二弾の本書では、自然言語処理や時系列データ処理に焦点を当て、ディープラーニングを使ってさまざまな問題に挑みます。word2vecやRNN(リカレントニューラルネットワーク)、LSTMやGRU、seq2seqやAttention……ディープラーニングを支えるこれら最先端の技術を実装レベルでマスターできます。前作同様、平坦な言葉で分かりやすくをモットーに、高度に見える技術の裏側をじっくり説明し、実際に作ることで理解を深めます。最後までコンセプトは変わらない。ゼロから作る!
Amazonで詳しく見る
紹介文
ディープラーニングを活用した各社の様々な事例やサービスをまとめた、まさに次世代の産業界の指標となる1冊です。
自動化や効率化が進むこれからの時代にますます注目を集めているディープラーニング。
本書では、ディープラーニングを活用した様々な事例やディープラーニングを用いたサービスを
提供する企業の取り組みをまとめた、まさに次世代の産業界の指標となる1冊です。
【序論】
・ディープラーニングとはなにか?
日本大学 生産工学部/杉沼浩司 ほか
・深層学習がもたらした画像認識技術の飛躍的向上
株式会社センスタイムジャパン
・ディープラーニングへの取り組み
~異常検知エンジン「gLupe」の紹介~
株式会社システム計画研究所/久野祐輔
・従来の概念を変えるディープラーニングを
用いた画像解析ソフトウェア「SuaKIT」
株式会社アプロリンク/塚田大和
・Deep Learning を活用した
外観検査システム「WiseImaging」
株式会社シーイーシー/久保田進也
【特別インタビュー】
・“データを価値に変える"
人工知能でビジネスをサポートするブレインパッドの取り組み
株式会社ブレインパッド
・産業用画像処理におけるディープラーニングの真価
─ HALCON が提供する機械学習機能とディープラーニング活用機能 ─
株式会社リンクス/島 輝行
・トンネル切羽 AI 自動評価システム
̶ Deep Learning 活用による取り組み̶
日本システムウエア株式会社/野村貴律
株式会社 安藤・間/宇津木慎司
・エッジコンピューティング向け組込み特化の
ディープラーニングフレームワーク「KAIBER」の活用法
ディープインサイト株式会社/久保田良則
【画像センシング展̶特別招待講演より】
・画像診断におけるAI 活用推進について
東京慈恵会医科大学 放射線医学講座/准教授 中田典生
・個体差がある物体でも瞬時に識別
画像識別技術「AI-Scan」
株式会社ブレイン/多鹿一良
・人間の感覚をもった画像検査システム
「Deep Inspection」
株式会社 Rist/遠野宏季
・画像認識および Deep Learning 開発サービス
「TrustSense」
株式会社トラスト・テクノロジー/山本隆一郎
■製品紹介
●株式会社スカイロジック
●丸紅無線通信株式会社
●アースアイズ株式会社
●HPCシステムズ株式会社
●株式会社エンルートラボ
●キヤノン IT ソリューションズ株式会社
●クリスタルメソッド株式会社
●コグネックス株式会社
●株式会社システムズナカシマ
●株式会社タイテック
●ビットブリッジ株式会社
●株式会社マイクロテクニカ
●株式会社ミラック光学
Amazonで詳しく見る
紹介文
ラズパイを使ってさまざまな機械学習の演習を行い、体験を重ねながら理解する入門書。専門知識がなくても読み通せます。
ラズパイを使ってさまざまな機械学習の演習を行い、体験を重ねながら理解する入門書。専門知識がなくても読み通せます。
第1章 機械学習と人工知能、ニューラルネットワークとの関係
第2章 機械学習入門
第3章 Raspberry Piで機械学習を体験するための準備(※)
第4章 サポートベクトルマシンによるアヤメの分類
第5章 多層ニューラルネットワークによるアヤメの分類
第6章 手書き数字の分類
第7章 コンピュータとじゃんけん勝負をしよう
第8章 画像処理でグー・チョキ・パーを読み取ろう
第9章 じゃんけんシステムの完成
第10章 ディープラーニング
※Raspberry Pi用OSのインストールと環境設定の解説は、本書のサポートページに掲載されます。
【付録A】matplotlibを用いたプログラムの解説
【付録B】OpenCVを用いたプログラムの解説
【付録C】自分の手の画像を学習用データとする方法
(注:【付録】はサポートページにてPDF形式で配布します。電子版では、末尾に収録されます)
Amazonで詳しく見る
紹介文
深層学習の世界的名著、ついに刊行
AI研究の一分野として注目を集める深層学習(ディープラーニング)に関する教科書として世界的な評価を受けている解説書。深層学習の理解に必要な数学、ニューラルネットワークの基礎から、CNN(畳み込みニューラルネットワーク)やRNN(回帰結合型ニューラルネットワーク)などのすでに確立した手法、さらに深層学習の研究まで、深層学習の基礎を理論を含めてしっかり学習したい人に最適な内容になっている。近年の深層学習研究をリードする著名な研究者たちが執筆した入門者必読の書である。
本書は、深層学習に関する数学的バックグラウンドやコンセプトから産業への応用まで、包括的に解説した唯一の書籍です。
第1章 はじめに
第I部 応用数学と機械学習の基礎
第2章 線形代数
第3章 確率と情報理論
第4章 数値計算
第5章 機械学習の基礎
第II部 深層ネットワーク:現代的な実践
第6章 深層順伝播型ネットワーク
第7章 深層学習のための正則化
第8章 深層モデルの訓練のための最適化
第9章 畳み込みネットワーク
第10章 系列モデリング:回帰結合型ニューラルネットワークと再帰型ネットワーク
第11章 実用的な方法論
第12章 アプリケーション
第III部 深層学習の研究
第13章 線形因子モデル
第14章 自己符号化器
第15章 表現学習
第16章 深層学習のための構造化確率モデル
第17章 モンテカルロ法
第18章 分配関数との対峙
第19章 近似推論
第20章 深層生成モデル
Amazonで詳しく見る
紹介文
AIの大衆化―多くの人々がディープラーニングを利用できるよう実践解説!
AIの大衆化―多くの人々がディープラーニングを利用できるよう実践解説!
PythonベースのディープラーニングフレームワークKerasの開発者である筆者が、1人でも多くの人々がディープラーニングを利用できるよう実践解説します。
本書はディープラーニングを一から学習したいと考えている人のために書かれています。数学的な表記を避け、代わりにコードを使って定量的な概念を説明することで、機械学習とディープラーニングの基本的な考えについて実践的な知識を養っていきます。
サンプルコードはPythonベースのディープラーニングフレームワークであるKerasに基づいており、バックエンドエンジンとしてTensorFlowを使用しています。
Part 1では、ディープラーニングを大まかに紹介。機械学習とニューラルネットワークを囲む状況といくつかの定義を示し、取り組みを開始するために必要な概念を説明します。
第1章:人工知能(AI)、機械学習、ディープラーニングの基本的なコンテキストと予備知識を提供。
第2章:ディープラーニングに取り組むために必要な基本概念(テンソル、テンソル演算、勾配降下法、バックプロパゲーション)を紹介。
第3章:ディープラーニングフレームワークであるKerasの紹介。分類タスクと回帰タスクを処理する単純なニューラルネットワークの訓練と内部で何が起きているのかが理解できる。
第4章:機械学習の一般的なワークフローとよくある落とし穴・解決法を詳解。
Part 2では、ディープラーニングの実践的な応用例としてコンピュータビジョンと自然言語処理を詳しく見ていきます。サンプルの多くは、ディープラーニングを実務で使用するときに遭遇する問題を解決するためのテンプレートとして利用できます。
第5章:画像分類に焦点を合わせ、コンピュータビジョンの実践的な例を幅広く取り上げる。
第6章:テキストや時系列といったシーケンスデータを処理するための手法を実際に試してみる。
第7章:最先端のディープラーニングモデルを構築するための高度な手法を紹介。
第8章:画像やテキストを作成する能力を持つディープラーニングモデルであり、驚くほど芸術的な結果をもたらすことがあるジェネレーティブモデルの紹介。
第9章:本書の総括。ディープラーニングの限界とその未来を予測。
本書を最後まで読めば、ディープラーニングとは何か、適用できるのはどのような状況か、その制限についてしっかり理解できるはずです。コンピュータビジョンから自然言語処理、画像分類、時系列予測、感情分析、画像/ テキスト生成に至るまで、現実の幅広い問題にKerasを使用できるようになり、最高の短期集中コースとして活用できます。
まえがき
謝辞
監訳者より
本書について
カバーについて
Part 1 ディープラーニングの基礎
1章 ディープラーニングとは何か
1.1 AI、機械学習、ディープラーニング
1.2 ディープラーニングの前史:機械学習
1.3 なぜディープラーニングなのか、なぜ今なのか
2章 予習:ニューラルネットワークの数学的要素
2.1 初めてのニューラルネットワーク
2.2 ニューラルネットワークでのデータ表現
2.3 ニューラルネットワークの歯車:テンソル演算
2.4 ニューラルネットワークのエンジン:勾配ベースの最適化
2.5 最初の例を振り返る
3章 入門:ニューラルネットワーク
3.1 ニューラルネットワークの構造
3.2 Kerasの紹介
3.3 ディープラーニングマシンのセットアップ
3.4 二値分類の例:映画レビューの分類
3.5 多クラス分類の例:ニュース配信の分類
3.6 回帰の例:住宅価格の予測
4章 機械学習の基礎
4.1 機械学習の4 つの手法
4.2 機械学習モデルの評価
4.3 データ前処理、特徴エンジニアリング、表現学習
4.4 過学習と学習不足
4.5 機械学習の一般的なワークフロー
Part 2 ディープラーニングの実践
5章 コンピュータビジョンのためのディープラーニング
5.1 畳み込みニューラルネットワークの紹介
5.2 小さなデータセットでCNNを一から訓練する
5.3 学習済みのCNNを使用する
5.4 CNNが学習した内容を可視化する
6章 テキストとシーケンスのためのディープラーニング
6.1 テキストデータの操作
6.2 リカレントニューラルネットワークを理解する
6.3 リカレントニューラルネットワークの高度な使い方
6.4 畳み込みニューラルネットワークでのシーケンス処理
7章 高度なディープラーニングのベストプラクティス
7.1 Sequential モデルを超えて:Keras Functional API
7.2 Keras のコールバックとTensorBoardを使ったディープラーニングモデルの調査
7.3 モデルを最大限に活用するために
8章 ジェネレーティブディープラーニング
8.1 LSTM によるテキスト生成
8.2 DeepDream
8.3 ニューラルネットワークによるスタイル変換
8.4 変分オートエンコーダによる画像の生成
8.5 速習:敵対的生成ネットワーク
9章 本書のまとめ
9.1 主な概念の復習
9.2 ディープラーニングの限界
9.3 ディープラーニングの未来
9.4 目まぐるしく変化する分野に後れずについていくには
9.5 最後に
付録A Kerasとその依存ファイルをUbuntu にインストールする
A.1 Pythonの科学ライブラリをインストールする
A.2 GPUのサポートをセットアップする
A.3 Theanoをインストールする(オプション)
A.4 Kerasをインストールする
付録B AWSのGPUインスタンスでJupyter Notebookを実行する
B.1 Jupyter NotebookをAWSで実行する理由
B.2 Jupyter NotebookをAWSで実行しない理由
B.3 AWS GPUインスタンスのセットアップ
B.4 Kerasをインストールする
B.5 ローカルポートフォワーディングを設定する
B.6 ローカルブラウザからJupyter Notebookを使用する
Amazonで詳しく見る
紹介文
ディープラーニングの発展・応用手法を実装しながら学ぼう
本書ではディープラーニングの発展・応用手法を実装しながら学習していきます。ディープラーニングの実装パッケージとしてPyTorchを利用します。扱うタスク内容とディープラーニングモデルは次の通りで「ビジネスの現場でディープラーニングを活用するためにも実装経験を積んでおきたいタスク」という観点で選定しました。
[本書で学習できるタスク]
転移学習、ファインチューニング:少量の画像データからディープラーニングモデルを構築
物体検出(SSD):画像のどこに何が映っているのかを検出
セマンティックセグメンテーション(PSPNet):ピクセルレベルで画像内の物体を検出
姿勢推定(OpenPose):人物を検出し人体の各部位を同定しリンク
GAN(DCGAN、Self-Attention GAN):現実に存在するような画像を生成
異常検知(AnoGAN、Efficient GAN):正常画像のみからGANで異常画像を検出
自然言語処理(Transformer、BERT):テキストデータの感情分析を実施
動画分類(3DCNN、ECO):人物動作の動画データをクラス分類
本書は第1章から順番に様々なタスクに対するディープラーニングモデルの実装に取り組むことで高度かつ応用的な手法が徐々に身につく構成となっています。各ディープラーニングモデルは執筆時点でState-of-the-Art(最高性能モデル)の土台となっており、実装できるようになればその後の研究・開発に役立つことでしょう。
ディープラーニングの発展・応用手法を楽しく学んでいただければ幸いです。
実装環境
・読者のPC(GPU環境不要)、AnacondaとJupyter Notebook、AWSを使用したGPUサーバー
・AWSの環境:p2.xlargeインスタンス、Deep Learning AMI(Ubuntu)マシンイメージ(OS Ubuntu 16.04|64ビット、NVIDIA K80 GPU、Python 3.6.5、conda 4.5.2、PyTorch 1.0.1)
第1章 画像分類と転移学習(VGG)
1.1 学習済みのVGGモデルを使用する方法
1.2 PyTorchによるディープラーニング実装の流れ
1.3 転移学習の実装
1.4 Amazon AWSのクラウドGPUマシンを使用する方法
1.5 ファインチューニングの実装
第2章 物体検出(SSD)
2.1 物体検出とは
2.2 Datasetの実装
2.3 DataLoaderの実装
2.4 ネットワークモデルの実装
2.5 順伝搬関数の実装
2.6 損失関数の実装
2.7 学習と検証の実施
2.8 推論の実施
第3章 セマンティックセグメンテーション(PSPNet)
3.1 セマンティックセグメンテーションとは
3.2 DatasetとDataLoaderの実装
3.3 PSPNetのネットワーク構成と実装
3.4 Featureモジュールの解説と実装
3.5 Pyramid Poolingモジュールの解説と実装
3.6 Decoder、AuxLossモジュールの解説と実装
3.7 ファインチューニングによる学習と検証の実施
3.8 セマンティックセグメンテーションの推論
第4章 姿勢推定(OpenPose)
4.1 姿勢推定とOpenPoseの概要
4.2 DatasetとDataLoaderの実装
4.3 OpenPoseのネットワーク構成と実装
4.4 Feature、Stageモジュールの解説と実装
4.5 TensorBoardXを使用したネットワークの可視化手法
4.6 OpenPoseの学習
4.7 OpenPoseの推論
第5章 GANによる画像生成(DCGAN、Self-Attention GAN)
5.1 GANによる画像生成のメカニズムとDCGANの実装
5.2 DCGANの損失関数、学習、生成の実装
5.3 Self-Attention GANの概要
5.4 Self-Attention GANの学習、生成の実装
第6章 GANによる異常検知(AnoGAN、Efficient GAN)
6.1 GANによる異常画像検知のメカニズム
6.2 AnoGANの実装と異常検知の実施
6.3 Efficient GANの概要
6.4 Efficient GANの実装と異常検知の実施
第7章 自然言語処理による感情分析(Transformer)
7.1 形態素解析の実装(Janome、MeCab+NEologd)
7.2 torchtextを用いたDataset、DataLoaderの実装
7.3 単語のベクトル表現の仕組み(word2vec、fastText)
7.4 word2vec、fastTextで日本語学習済みモデルを使用する方法
7.5 IMDb(Internet Movie Database)のDataLoaderを実装
7.6 Transformerの実装(分類タスク用)
7.7 Transformerの学習・推論、判定根拠の可視化を実装
第8章 自然言語処理による感情分析(BERT)
8.1 BERTのメカニズム
8.2 BERTの実装
8.3 BERTを用いたベクトル表現の比較(bank:銀行とbank:土手)
8.4 BERTの学習・推論、判定根拠の可視化を実装
第9章 動画分類(3DCNN、ECO)
9.1 動画データに対するディープラーニングとECOの概要
9.2 2D Netモジュール(Inception-v2)の実装
9.3 3D Netモジュール(3DCNN)の実装
9.4 Kinetics動画データセットをDataLoaderに実装
9.5 ECOモデルの実装と動画分類の推論実施
Amazonで詳しく見る
紹介文
本書はディープラーニングの発展型技術である物体検出と画像生成について取り上げた解説書です。自動運転、顔認識、外観検査、医療画像診断など、多くの分野で利用されている技術となっています。
物体検出はSSDの実装法をプログラミングを行いながら解説しています。また、手軽に物体検出を体験できるようTensorFlow Hubについても紹介しています。
画像生成はオートエンコーダ―からGANまでを取り上げました。
本書はディープラーニングの発展型技術である物体検出と画像生成について取り上げた解説書です。自動運転、顔認識、外観検査、医療画像診断など、多くの分野で利用されている技術となっています。
1章 開発環境について
1.1 Anacondaの導入
1.1.1 Anacondaに含まれる主なツール
Anaconda Navigator(アナコンダナビゲーター)
Jupyter Notebook(ジュピターノートブック)
Spyder(スパイダー)
1.1.2 Anacondaのインストール
1.1.3 Anaconda Navigatorを起動して仮想環境を用意する
1.1.4 ライブラリのインストール
PyTorchを仮想環境にインストールする
1.2 Jupyter Notebookを使う
1.2.1 Jupyter Notebookを仮想環境にインストールする
1.2.2 ノートブックを作成する
ノートブックを保存するためのフォルダーを作成する
ノートブックの作成
1.2.3 ソースコードを入力して実行する
Jupyter Notebookのコマンド
1.2.4 ノートブックを閉じる/開く
ノートブックを閉じる
ノートブックを開く
1.2.5 Jupyter Notebookのメニューを攻略する
[File]メニュー
[Edit]メニュー
[View]メニュー
[Insert]メニュー
[Cell]メニュー
[Kernel]メニュー
1.3 Spyderを使う
1.3.1 Spyderを仮想環境にインストールする
1.3.2 モジュールの保存
1.3.3 モジュールのプログラムを実行する
実行中のプログラムの変数の値を確認する
1.4 Google Colabを使う
1.4.1 Colabノートブック
Colabの利用可能時間
1.4.2 Googleドライブ上のColab専用のフォルダーにノートブックを作成する
Googleドライブにログインしてフォルダーを作成する
ノートブックの作成
1.4.3 セルにコードを入力して実行する
1.4.4 Colabノートブックの機能
[ファイル]メニュー
[編集]メニュー
[表示]メニュー
[挿入]メニュー
[ランタイム]メニュー
[ツール]メニュー
GPUを有効にする
2章 SSDによる物体検出
2.1 物体検出の概要
2.2.1 物体検出とは
2.1.2 SSD(Single Shot MultiBox Detector)
2.1.3 SSDにおける物体検出の流れ
物体検出の学習時の処理
物体検出の推論時の処理
2.1.4 プログラミングの流れ
データセットに関わるプログラミング
SSDモデル
学習と学習後における推論
2.2 データセットの用意と前処理
2.2.1 VOCデータセットの概要
VOC2007
VOC2012
2.2.2 VOCデータセットとVGG16、SSD300の学習済み重みのダウンロード
「data」フォルダーと「weights」フォルダーの作成
VOC2012のダウンロードと解凍
VGG16の学習済み重み、SSD300の学習済み重みのダウンロード
2.2.3 アノテーションデータをリスト化する
プログラムの実行はノートブック、クラスなどの定義はモジュールで
イメージとアノテーションのファイルパスをリスト化する(make_filepath_list()関数)
バウンディングボックスの座標と正解ラベルをリスト化するクラスの定義(GetBBoxAndLabelクラス)
2.2.4 イメージとアノテーションを前処理する
COLUMN PyTorchとTorchvisionのインストール
データ拡張の内容
イメージの切り出し
データの前処理を行うDataTransformクラスの定義
データの前処理をイテレートする仕組みを提供するPreprocessVOC2012クラス
2.2.5 ミニバッチを生成するDataLoader
DataLoaderでミニバッチを生成する
2.3 SSDモデルの実装
2.3.1 畳み込みニューラルネットワーク(CNN)
2次元フィルターで画像の特徴を検出する
サイズ減した画像をゼロパディングで元のサイズに戻す
プーリングで歪みやズレによる影響を回避する
2.3.2 SSDモデルの構造
SSDモデルの出力
SSDモデルの全体像
2.3.3 vggネットワークの実装
vggネットワークの構造
vggネットワークを生成するmake_vgg()関数の定義
vggネットワークを生成して構造を確認してみよう
2.3.4 extrasネットワークの実装
extrasネットワークの構造
extrasネットワークを生成するmake_extras()関数の定義
make_extras()関数の動作確認
2.3.5 locネットワークの実装
locネットワークの構造
locネットワークを生成するmake_loc()関数の定義
make_loc()関数の動作確認
2.3.6 confネットワークの実装
confネットワークの構造
confネットワークを生成するmake_conf()関数の定義
make_conf()関数の動作確認
2.3.7 L2Norm層の実装
L2Normの処理
L2Normクラスの定義
2.3.8 デフォルトボックスを生成するDBoxクラス
特徴量マップのセルごとにデフォルトボックスを用意する仕組み
DBoxクラスの定義
DBoxクラスの動作確認
2.4 順伝播処理の実装
2.4.1 decord()関数の定義
decord()関数を定義する
2.4.2 1つの物体に対するバウンディングボックスを1つに絞り込む
Non-Maximum Suppressionの処理を追ってみる
nonmaximum_suppress()関数の定義
2.4.3 推論時にバウンディングボックスの情報を出力する
Detectクラスの処理の概要
COLUMN One-hotエンコーディングとソフトマックス関数
Detectクラスを定義する
2.5 SSDモデルの実装
2.5.1 SSDモデルにおける順伝播処理について徹底解説
__init()__における初期化処理
forward()による順伝播処理の詳細
SSDクラスの定義
2.6 バウンディングボックスの処理
2.6.1 DBoxの情報をBBox形式の情報に変換するpoint_form()関数
point_form()関数の定義
2.6.2 2個のボックスが重なる部分の面積を求めるintersect()関数
intersect()関数の定義
2.6.3 ボックス間のジャッカード係数(IoU)を計算するjaccard()関数
jaccard()関数の定義
2.6.4 match()関数の定義
match()関数の処理
match()関数の定義
2.7 デフォルトボックスのオフセット情報を作るencode()関数
encode()関数の定義
2.8 SSDの損失関数としてMultiBoxLossクラスを作成する
2.8.1 MultiBoxLossクラスのforward()メソッドの処理
教師データとして「DBoxのオフセット値」と「物体の正解ラベル」を取得
物体を検出したPositive DBoxのオフセット情報の損失「loss_l」を計算
COLUMN SmoothL1Loss関数について
confネットワークが出力する21クラスの予測値(確信度)の損失を求める
COLUMN クロスエントロピー誤差
Hard Negative Miningのための抽出用マスクを作成
オフセット情報の平均損失と確信度の損失平均を求める
MultiBoxLossクラスの定義
2.9 SSDモデルの学習プログラム
2.9.1 「Googleドライブ」にデータ一式をアップロードする
Googleドライブの「ObjectDetection」フォルダーへのアップロード
2.9.2 Colabノートブックで学習プログラムを実行する
ドライブのマウント
GPUの設定
「ObjectDetection」フォルダー内のモジュールをインポート可能にする
データローダーの作成
SSDモデルの生成
損失関数とオプティマイザーの作成
学習と同時に検証を行う関数を実行する
COLUMN 誤差逆伝播における重みの更新式
2.10 学習済みモデルでの推論の実施
2.10.1 ノートブックを作成して物体検出を実施
検証モードのSSDモデルを生成して学習済み重みをセット
SSDモデルに画像を入力する
2.10.2 検出結果を写真上に描画する
検出から描画までを行うSSDPredictionsクラス
物体検出を行って検出結果を描画する
学習済みの重み「ssd300_mAP_77.43_v2.pth」に取り替えてみる
3章 「FasterRCNN+InceptionResNetV2」による物体検出
3.1 TensorFlow Hubの物体検出モデル「FasterRCNN+InceptionResNetV2」
3.1.1 「FasterRCNN+InceptionResNetV2」の概要
3.2 「FasterRCNN+InceptionResNetV2」で物体検出を体験してみる
3.2.1 Colabノートブックを作成
3.2.2 物体検出の実施
風景写真を物体検出にかける
昆虫の写真、スマートフォンの写真、鳥の絵画で試してみる
4章 オートエンコーダー
4.1 オートエンコーダー(PyTorch)
4.1.1 オートエンコーダーのメカニズム
3層構造のオートエンコーダー
4.1.2 PyTorchによるオートエンコーダーの実装
オートエンコーダーを実装して手書き数字を学習する
復元された画像を表示してみる
4.2 畳み込みオートエンコーダー(TensorFlow)
4.2.1 畳み込みオートエンコーダーのメカニズム
エンコーダー
デコーダー
4.2.2 TensorFlowによる畳み込みオートエンコーダーの実装
畳み込みオートエンコーダーを実装してファッションアイテムの画像を学習する
学習結果を出力してみる
4.3 畳み込みオートエンコーダーによるノイズ除去(TensorFlow)
4.3.1 ノイズ除去畳み込みオートエンコーダーのメカニズム
4.3.2 TensorFlowによるノイズ除去畳み込みオートエンコーダーの実装
ノイズ除去畳み込みオートエンコーダーを実装して学習する
ノイズを加えた画像と復元した画像を出力する
4.4 変分オートエンコーダー(PyTorch)
4.4.1 変分オートエンコーダーのメカニズム
変分オートエンコーダーの損失関数
4.4.2 PyTorchによる畳み込みオートエンコーダーの実装
変分オートエンコーダーを実装する
変分オートエンコーダーに入力した結果を出力する
デコーダーに任意のデータを入力して画像を生成する
4.5 変分オートエンコーダー(TensorFlow)
4.5.1 変分オートエンコーダーのメカニズム
潜在ロスの計算
4.5.2 TensorFlowによる変分オートエンコーダーの実装
変分オートエンコーダーを実装する
入力したイメージと復元したイメージを出力してみる
5章 GAN(敵対的生成ネットワーク)
5.1 DCGANによる画像生成(PyTorch)
5.1.1 GANのメカニズム
GANの学習の仕組み
5.1.2 DCGANのメカニズム
5.1.3 PyTorchによるDCGANの実装
DCGANを実装する
5.2 DCGANによる画像生成(TensorFlow)
5.2.1 TensorFlowによるDCGANの実装
DCGANを実装してFashion-MNISTデータセットで学習する
学習済みの生成器で画像を生成
5.3 Conditional GANによる画像生成(PyTorch)
5.3.1 Conditional GANのメカニズム
生成器への正解ラベルの入力
識別器への数値ラベルの入力
5.3.2 PyTorchによるConditional GANの実装
Conditional GANを実装する
5.4 Conditional GANによる画像生成(TensorFlow)
5.4.1 TensorFlowによるConditional GANの実装
Colabノートブックでプログラムを実行
学習済みの生成器にノイズを入力して画像を生成してみる
Appendix ディープラーニングの数学的要素
A.1 ニューラルネットワークのデータ表現:テンソル
A.1.1 NumPyのスカラー(0階テンソル)
A.1.2 NumPyのベクトル(1階テンソル)
A.1.3 NumPyの行列(2階テンソル)
A.1.4 3階テンソルとより高階数のテンソル
A.2 ニューラルネットワークを回す(ベクトルの演算)
A.2.1 ベクトルの算術演算
A.2.2 ベクトルのスカラー演算
A.2.3 ベクトル同士の四則演算
ベクトル同士の加算と減算
A.2.4 ベクトルのアダマール積を求める
A.2.5 ベクトルの内積を求める
A.3 ニューラルネットワークを回す(行列の演算)
A.3.1 行列の構造
A.3.2 多次元配列で行列を表現する
A.3.3 行列のスカラー演算
A.3.4 行列の定数倍
A.3.5 行列の成分にアクセスする
A.3.6 行列の成分同士の加算・減算をする
A.3.7 行列のアダマール積
A.3.8 行列の内積を求める
行列同士の内積を求めてみる
A.3.9 行と列を入れ替えて「転置行列」を作る
A.4 微分
A.4.1 極限(lim)
A.4.2 微分の基礎
A.4.3 微分をPythonで実装してみる
数値微分で関数を微分してみる
プログラムの実行結果
A.4.4 微分の公式
A.4.5 変数が2つ以上の場合の微分(偏微分)
A.4.6 合成関数の微分
合成関数のチェーンルールの拡張
積の微分法
Amazonで詳しく見る
紹介文
プログラミングは一切行わず、医用画像に人工知能を導入するための解説書。
プログラミングは一切行わず、医用画像に人工知能を導入するための解説書。
Neural Network Console(ソニー社)と、DIGITS(NVIDIA社)を使って、深層学習と医用画像処理を行う手順とノウハウを詳しく解説。
Amazonで詳しく見る
紹介文
医用画像に人工知能を本格的に導入するためのわかりやすい解説書。
医用画像に人工知能を本格的に導入するためのわかりやすい解説書。
・TensorFlow+Kerasで行う
・Anaconda上で環境構築する
・データはだれでも入手できるデータを使う
を基本的な方針としてまとめた。
Amazonで詳しく見る
紹介文
本書は、機械学習コンセプト全般をカバーし、理論的背景とPythonコーディングの実際を解説しています。初歩的な線形回帰から始め、ディープラーニング(CNN/RNN)、敵対的生成ネットワーク、強化学習などを取り上げ、scikit-learnやTensorFlowなどPythonライブラリの新版を使ってプログラミング。第3版では13~16章の内容をほとんど刷新したほか、敵対的生成ネットワークと強化学習の章を新たに追加。機械学習プログラミングの本格的な理解と実践に向けて大きく飛躍できる一冊です。