レビュー記事『Pythonではじめる教師なし学習』

サブスクおすすめ
\プライム会員なら追加料金なし!/
Pythonではじめる教師なし学習

写真:『Pythonではじめる教師なし学習』 出典: 当サイト撮影

スポンサーリンク

書評『Pythonではじめる教師なし学習』の感想(オススメ本)

こんにちは!Aoneko( @blue_cats03)です。今回は『Pythonではじめる教師なし学習 ―機械学習の可能性を広げるラベルなしデータの利用』を読んだ感想とレビュー記事です。

 

 

 

『Pythonではじめる教師なし学習』の概要

「教師なし学習」はラベル付けされていないデータから学習する機械学習の一種です。現在の機械学習では大量のラベル付きのデータを用いる「教師あり学習」が主流ですが、ラベルを付けるには膨大なコストがかかります。現実世界に機械学習を適用していくためには、ラベル付けを必要としない「教師なし学習」の重要性が増してくると考えられます。

Pythonではじめる教師なし学習』は、実践的な視点から、データにある隠れたパターンを特定し、異常検出や特徴量抽出・選択を行う方法を紹介しています。

ラベルなしデータを有効に利用することで、機械学習の可能性を格段に広げる教師なし学習の本質に迫っています。さらに、変分オートエンコーダ(VAE)や敵対的生成ネットワーク(GAN)、制限付きボルツマンマシン(RBM)などの生成モデルも紹介しています。

 

 

 

機械学習プロジェクト

Pythonではじめる教師なし学習』の第2章では、機械学習プロジェクトを準備し、管理する方法が記載されています。

本書の第2章は、データの取得からモデルの構築と評価、システムの実装までをカバーしています。

バージョン管理:Git

Gitはプログラムコードのバージョンを管理するシステムで、『Pythonではじめる教師なし学習』のコード例はすべてJupyter Notebookの形でGitHubレポジトリから入手可能です。

『Pythonではじめる教師なし学習』のGit Hubでは、Git Large File Storageを用いてデータセットの配布を行っています。

公式サイト: GitHubレポジトリ(『Pythonではじめる教師なし学習』のコード例)

 

『Pythonではじめる教師なし学習』GitHubレポジトリ

図: GitHubレポジトリ, 出典: GitHub公式サイト

 

Gitの使い方

Frontify CEOのRoger Dudler氏の「Gitの使い方」が参考になります。

公式サイト: Gitの使い方(git - the simple guide)

 

 

scikit-learnを用いた教師なし学習

Pythonではじめる教師なし学習』のⅡ部では、教師なし学習の2つの重要な概念である次元削減とクラスタリングについて説明し、それらを用いた異常検出とグループ分けを紹介しています。

公式サイト: scikit-learn(Pythonの機械学習ライブラリ)

scikit-learn: machine learning in Python — scikit-learn 0.23.2 documentation
scikit-learn: machine learning in Python
異常検出は、サイバーセキュリティ違反、ハッキング行為、基幹システム機器のメンテナンス不良などを効率的に発見することができます。
グループ分けは、市場調査、オンラインショッピング、音楽配信、ビデオ配信、出会い系サイト、SNSでの挙動調査などに用いられます。

 

TensorFlowとKerasを用いた教師なし学習

Pythonではじめる教師なし学習』のⅢ部では、ニューラルネットワークとそのフレームワークで広く使われているTensorFlowKerasを用いた教師なし学習を紹介しています。

 

TensorFlowとKerasを用いた教師なし学習
  • オートエンコーダ
  • オートエンコーダハンズオン
  • 半教師あり学習

 

公式サイト: TensorFlow

TensorFlow
あらゆるユーザーを対象とした、エンドツーエンドのオープンソース機械学習プラットフォーム。各種ツール、ライブラリ、コミュニティ リソースを備え、柔軟性に富んだ TensorFlow のエコシステムをご確認ください。

 

公式サイト: Keras

keras

図: kerasのHP画面, 出典: keras公式サイト

 

TensorFlowとKerasを用いた深層教師なし学習

Pythonではじめる教師なし学習』のⅣ部では、大規模なラベルなしデータセットの分野である「深層教師なし学習」に関して解説しています。

 

TensorFlowとKerasを用いた深層教師なし学習
  • 制限付きボルツマンマシンを用いた推薦システム
  • 深層信念ネットワークを用いた特徴量検出
  • 敵対的生成ネットワーク
  • 時系列クラスタリング

 

 

『Pythonではじめる教師なし学習』の著者Ankur A. Patel(アンクル・A・パテル)

Pythonではじめる教師なし学習』の著者は、AI起業家として有名なAnkur A. Patel(アンクル・A・パテル)です。パテル氏の経歴などは彼のWebサイトから見ることができます。

公式サイト: Ankur A. Patel

パテル氏は現在、Vista Equity Partnersのポートフォリオ企業である7Park Dataのデータサイエンス担当兼副社長というポジションで活動されています。

 

ankurapatel

写真: Ankur A. Patel, 出典: Ankur A. Patel公式サイト

 

 

『Pythonではじめる教師なし学習』の口コミ・評価・評判

Pythonではじめる教師なし学習』の口コミや評価・評判を集めてみました。教師なし学習の利点や特性などを体系的に学べる書籍です。

 

「Pythonではじめる教師なし学習」で、「あり」と「なし」の違いというか。分析計画の中の位置づけが、さらりと整理されており、目から鱗がボロボロです!
引用: Twitter, 石塚康志氏(@yasushiishizuka)

 

教師あり学習と対比し、教師なし学習の利点や特性などを踏まえながら、以下の順で教師なし学習を紹介してくれている。
内容は、機械学習の基本知識をすでに理解している人向け。

・scikit-learnを用いた教師なし学習
 次元削減:膨大な特徴量を含んだ高次元データを、関数近似などで特徴量を残しつつ低次元に変換する
 ・線形射影(主成分分析(PCA)、特異点分解、ランダム射影)
 ・多様体学習(ISOMAO、多次元尺度構成法、局所線形埋め込み、t-sne、辞書学習...)
 クラスタリング:類似性に基づいて観測点をグループ分けする

・TensorFlowとkerasを用いた教師なし学習
 オートエンコーダ:特徴量抽出手法の一つ
 半教師あり学習:教師あり、なしの両方のメリットを組み合わせる。利用できるラベル情報を活用してデータセットの構造を明らかにして、残りのデータのラベルづけの補助ができる

・TensorFlowとkerasを用いた深層教師なし学習
 RBM(制限付きボルツマンマシン)による映画推薦システムの構築
 DBM(Deep Belief Network:深層信念ネットワーク)の構築:複数のRBMからなる
 GAN:敵対的生成ネットワーク、DCGAN
 時系列クラスタリング:一つの観測点でしかなかった横断的データ以外に、時系列データを学習できる

実際にgithubからソースコードをダウンロードして、クレジットカードのトランザクションデータを使って不正を検知する教師なし学習システムの構築演習を体験する事ができる。
機械学習における教師なし学習法についての一連の作業過程、分析手法の実例を勉強したい人に価値が出てくる著作だと感じた。

引用: Amazon, Kyle

 

 

プログラミング関連記事

書評『Coders』感想とレビュー」では、クライブ・トンプソン氏の書籍『Coders(コーダーズ) 凄腕ソフトウェア開発者が新しい世界をビルドする』の概要を紹介しています。

関連記事: 書評『Coders』感想とレビュー

書評『Coders』感想とレビュー
クライブ・トンプソン『Coders』を読んでみた感想と概要を紹介したブログ。ホワイトカラーの働き方とは違うコーダーの特徴とは? ソフトウェア開発やプログラミングに興味の方にお勧めの一冊です。感想や口コミなど。

 

子供のプログラミング学習は無料のCode.orgがオススメ」では、NPO「code.org(コード・ドット・オルグ)」が提供する無料のプログラミング教材について解説しています。

関連記事: 子供のプログラミング学習は無料のCode.orgがオススメ

子供のプログラミング学習は無料のCode.orgがオススメ
アメリカのSTEM教育から「Code.org」のサービスがリリースされ、子供(幼稚園, 小学生, 中学校, 高校)のプログラミング学習が無料となりました。お金をかけずにスキルが身につき、コストパフォーマンスの良い教育コンテンツです。
Aonekoをフォローする
Aoneko Lab