深層学習や機械学習も環境が整ってきて、誰でも気軽に試せるようになってきました。
会社のサービスやアプリケーションに機械学習を組み込んだ例も頻繁に見かけるようになっています。
本書は、Pythonプログラマーが、、本書のために作られたサンプルプログラムを利用し、実際に体験しながら機械学習を業務や作業にどう組み込んでいくかを学習する解説書です。
機械学習や深層学習の奥は深く、利用できる範囲も広大ですが、まずはどういうものかを、本書で学んでください。
◆本書で取り扱っている技術・サンプル例など
AIで美味しいワイン判定、 顔にモザイクをかける、 手書き数字を判定、 郵便番号を自動認識、動画から特定の場面を検出
文章を単語に分割。単語、意味をベクトル化、文章を分類してみよう、自動作文に挑戦、SNSへのスパム投稿を判定
写真に写った物体を認識、ニュース記事を自動でジャンル判定、料理の写真からカロリーを調べる
CONTENTS
第1章 機械学習/ ディープラーニングについて
1-1 機械学習とは何か?
1-2 どのようなシナリオで機械学習を行うのか?
1-3 機械学習で利用するデータの作り方
1-4 インストール不要で使えるColaboratory について
1-5 Jupyter Notebook の使い方
1-6 個別にプログラムを実行する方法
第2章 機械学習入門
2-1 一番簡単な機械学習を実践しよう
2-2 アヤメの分類に挑戦してみよう
2-3 AI で美味しいワインを判定しよう
2-4 過去10 年間の気象データを解析してみよう
2-5 最適なアルゴリズムやパラメーターを見つけよう
第3章 OpenCV と機械学習 – 画像・動画入門
3-1 OpenCV について
3-2 顔検出 – 顔に自動でモザイクをかけよう
3-3 文字認識 – 手書き数字を判定しよう
3-4 輪郭抽出 – はがきの郵便番号認識に挑戦しよう
3-5 動画解析 – 動画から熱帯魚が映った場面を検出しよう
第4章 自然言語処理
4-1 言語判定をしてみよう
4-2 文章を単語に分割してみよう
4-3 単語の意味をベクトル化してみよう
4-4 文章を分類してみよう
4-5 自動作文に挑戦しよう
4-6 SNS や掲示板へのスパム投稿を判定しよう
第5章 ディープラーニング( 深層学習) について
5-1 ディープラーニング(深層学習)について
5-2 TensorFlow 入門
5-3 TensorFlow でアヤメの分類をしてみよう
5-4 ディープラーニングで手書き数字の判定
5-5 写真に写った物体を認識しよう
5-6 画像データからカタカナの判定
第6章 機械学習で業務を効率化しよう
6-1 業務システムへ機械学習を導入しよう
6-2 学習モデルの保存と読み込みについて
6-3 ニュース記事を自動でジャンル分けしよう
6-4 Web で使える文章ジャンル判定アプリを作ろう
6-5 機械学習にデータベース(RDBMS) を利用しよう
6-6 料理の写真からカロリーを調べるツールを作ろう
Appedix
機械学習の環境を整えよう
ダウンロードデータ
本書で解説したサンプルデータを以下のサイトからダウンロードできます。 なお、使用方法などに関しては、必ず書籍の該当箇所をご確認の上、ご利用ください。
アクセス後、右上にある「「Clone or download」から「download ZIP」を選んでダウンロードして下さい。
正誤情報
- 2018.06.28著者によるサポートページをご参照ください
- 2018.09.014刷以降に誤記・誤植がありました。
- 2018.08.104刷に誤記・誤植がありました。
- 2018.07.301-3刷に誤記・誤植がありました。
著者によるサポートページをご参照ください
4刷以降に誤記・誤植がありました。
(4刷以降 — 2018/09/01更新) *
p.209 入力コマンドのファイル名間違い *
[x] $ cat jawiki-latest-pages-articles-* > wiki.wp2txt
[o] $ cat jawiki-latest-pages-articles-* > wiki.txt
p.333 ソースコード『train_mlp.py』にて *
GitHubのソースコードは修正されています。
[冒頭に追加] import numpy as np, h5py
[x] x, y, test_size=0.2)
[o] np.array(x), np.array(y), test_size=0.2)
4刷に誤記・誤植がありました。
正誤表(4刷 — 2018/08/10更新) *
P208 *
(誤)モデルを作成するための大量の分かち書きデータを含め、コンピュータによる〜
(正)モデルを作成するための大量の分かち書きデータを含むコンピュータによる〜
P.211 similar.py *
末尾2行のプログラムは削除しても問題なく動作します。
P.225 *
[x]そして、始点となる単語を「魚」とするとしましょう。そうすると、「魚」につながる単語は、「魚 | は」になります。
[o] そして、始点となる単語を「魚」とするとしましょう。そうすると、「魚」につながる単語は、「魚 | は」あるいは「魚 | を」となります。ここでは、「魚 | は」をランダムに選んだとしましょう。
P.231 *
(誤) 基本語ドメイン辞書
(正) 解析済みブログコーパス
P.261 *
[x]『プレースホルダ』とは、値をテンプレートに値を当てはめるための仕組みです
[o]『プレースホルダ』とは、テンプレートに値を当てはめるための仕組みです
P.324 *
[x] その手法として、学習させるすべての文書で、その単語がどのくらいの頻度で使われているかを調べます。
[o] その手法として、学習させるすべての文書で、その単語がどのくらいの頻度で使われているかを調べます。この時、IDFは全文書における単語の出現頻度の『逆数』です。逆数にすることで、ありふれた単語の重要度を下げます。
P.351 *
[x] SQLiteであれば、Pythonの標準ライブラリなので、とくにモジュールをインストールしたり、データベース・サーバーの設定を行う必要はありません。
[o] SQLiteであれば、Pythonに最初から同梱されているので、とくにモジュールをインストールしたり、データベース・サーバーの設定を行う必要はありません。
1-3刷に誤記・誤植がありました。
正誤表 (1-3刷 — 2018/07/30更新) *
P.18 L.3 *
(誤) そして、『人口知能((AI)』とは〜
(正) そして、『人工知能(AI)』とは〜
P.19 L.13 *
(誤) 次元削減
(正) データの次元数を削減
P.72 *
誤:どのような手順を踏んだら良いのでしょうか。・・・・・以下のような順番で機械学習を実践しましょう。
正:まず、ゴールを決定しましょう。ここでは、「がく片や花びらの長さと幅から、アヤメの品種を分類する」ことをゴールとします。そのために、以下の順番で機械学習プログラムを実装しましょう。
P.86 precision, recall, f1-scoreについて詳しい補足 *
[x] precisionが精度、recallが再現率 (実際に正解した割合)、f1-scoreが精度と再現率の調和平均で、supportが正解ラベルのデータの数です。
[o] precisionが精度(適合率)、recallが再現率、f1-scoreが精度と再現率の調和平均で、supportが正解ラベルのデータの数です。precision(精度)は、正と予測したデータのうち実際に正であるものの割合で、recall(再現率)は、実際に正であるもののうち正であると予測されたものの割合、つまり、実際に正解した割合です。
P.90 コラム L.1 *
(誤) 複数の分類記を用いて性能を向上させる
(正) 複数の分類木を用いて性能を向上させる
P.96 *
(誤) 以下のプログラムを実行して、Coraboratoryの仮想マシン上に
(正) 以下のプログラムを実行して、Colaboratoryの仮想マシン上に
P.103 予測データの作成『yosoku.py』のプログラム *
[x] if i <= interval: continue [o] if i < interval: continue 条件式にイコールがあると、temps[0]のデータが説明変数xに含まれなくなってしまうため、イコールを消します。(具体的なソースコード P107 * 誤:97%を超える 正:96%を超える
P108 *
ソースコード(※1)の下、「allAlgorithms = ・・・」の上に以下を追加。現在このコードの説明はあるが、コードにない状態 warnings.filterwarnings(‘ignore’) P.110 補足を追加 *
学習データが少ない場合、評価の信ぴょう性を上げるためにクロスバリデーションを行うことが多くあります。
P.125 *
(誤) 「.JPEG」にすれば、JPEG画像に変換されて保存します。 (正) 「.jpg」にすれば、JPEG画像に変換されて保存します。
P.304 5章 img-resize.py *
[誤] img = cv2.resize(img, (im_size, im_size)) [正] img = cv2.resize(img_gray, (im_size, im_size)) なお、GitHubにあるソースコードは既に修正済みです。
P.139 subplotの書式をより正確に *
[x] pyplot.subplot( 行数 , 列数 , 何番目を描画するか ) [o] matplotlib.pyplot.subplot( 行数 , 列数 , 何番目を描画するか )
お問い合わせ
本書に関するお問い合わせは、下記のボタンをクリックしてお問い合わせフォームよりお問い合わせください。