Pythonと機械学習と私@書籍紹介その3「Pythonで動かして学ぶ!あたらしい教科書」シリーズ7選(翔泳社)

書籍
スポンサーリンク

こんにちは、ときか姉です♪

今回の書籍紹介は、「Pythonで動かして学ぶ!あたらしい◯◯の教科書」と名付けられた翔泳社のシリーズから7冊紹介します♪

この記事は以下のような方におすすめします。

  • 【初心者】Pythonや機械学習の教科書選びに悩んでいる。
  • 【初心者】機械学習に必要な数学や統計もPython実装しながら直感的に理解したい。
  • 【中級者】実務に使えるチカラをつけるため演習問題が豊富な本を探している。
  • 【上級者】深層強化学習やブロックチェーンなんかも実装してみたい。

もしよろしければ以前書いた以下の書評も合わせてご覧ください♪

1. Pythonで動かして学ぶ!あたらしい数学の教科書

数学の教科書と銘打たれていますが、機械学習・深層学習の理解に向けた数学です。

第一章〜第三章では、基本的なPython構文から始まり、簡単な数学を扱います。第四章では線形代数を一通り学べます。固有値と固有ベクトル、コサイン類似度までです。第五章で微分・積分・偏微分・全微分まであります。この辺りは、機械学習を意識して、連鎖律やその多変数合成関数バージョンまで含まれており、最急降下法へと続きます。第六章では、確率・統計です。平均・分散・相関係数などの基礎に始まり、ベイズ定理や尤度、情報量までです。機械学習の評価指標として交差エントロピーなどもあります。第七章が機械学習で、分類とニューラルネットワーク、誤差逆伝播法、深層学習でおわります。

演習や章末コラムが面白く、飽きさせない工夫になっています。機械学習と関連した数学をしっかり学び、そのPython実装までできるようになりたいという方におすすめです。

ただし、数学に関する内容が主で、第七章の機械学習については触れる程度にとどまります。機械学習の理論と実装をしっかり学びたい人は、この本だけでは足りないと思いますので、後述の本も参考にすると良いと思います。

2. Pythonで学ぶ!あたらしい統計学の教科書

全7部構成になっており、それぞれに章節があるため、かなり細分化された目次になっています。

第1部では統計学の基本ですが、サンプリングなどの標本が得られるプロセスや母集団の解釈なども詳しく解説されています。初心者が混乱しやすい不偏分散などの解説も丁寧です。第2部ではPythonとJupyter notebookの使い方についてです。第3部では、実際に1変量・多変量分析を行い、matplotlib/seabornによる可視化まで行います。箱ひげ図だけでなく、バイオリンプロットやペアプロットまであります。標本抽出のシミュレーションがあり、Pythonで統計学を学ぶ意義ここにありという印象を受けました。推定・検定へと続き、検定結果の解釈についても解説されています。第4部では、統計モデルに関して、ノンパラメトリックを含めて記述されています。パラメタ推定も尤度最大化・損失最小化に章分けされている徹底ぶりで、交差検証やAICにまで至ります。第5部では、正規線形モデルについてです。分散分析はType2 ANOVAとAICによる変数選択まで含まれています。第6部は一般線形化モデルで、ロジスティック回帰からポアソン回帰までです。第7部では、機械学習の基礎で、正則化やRidge/Lasso回帰に始まり、パーセプトロンとニューラルネットワークとなります。

各章が「用語解説」「実装」「補足」などのように区分されており、読み返しもしやすい工夫がなされています。何より、手法だけでなく統計の考え方や解釈について非常に詳しく書かれているため、データサイエンスを実務に活用する方におすすめです。

ただし、動かして統計的な振る舞いを理解するのが主眼ですので、数式などは最小限です。統計数学をしっかり学びたい人には不向きです。

3. Pythonによるあたらしいデータ分析の教科書

第一章〜第二章は導入です。第三章から数学の基礎です。線形代数と確率統計に触れます。第四章でmatplotlibによる可視化と機械学習ライブラリScikit-learnが紹介されています。第五章では、Webからスクレイピングしてきたデータに対して形態素解析などの自然言語処理や、画像データの扱いについて書かれています。

基礎的なデータ分析とその流れの全体図を掴みたい初心者にはおすすめです。数式と実装ともバランスが良いです。線形代数やSVMの実装などはとても詳しく書かれています。

ただし、実務的な内容は分量が少なめなので、その辺りを踏み込んで知りたい中級者以上にはやや物足りないかもしれません。

4. Pythonで動かして学ぶ!あたらしい機械学習の教科書

第一章〜第三章でPython構文・可視化手法です。第四章は機械学習に必要な数学についての解説となります。第五章で回帰、第六章で分類、第七章でニューラルネットワーク・深層学習です。第八章で深層学習を用いた手書き数字MNISTデータの解析です。第九章で教師なし学習として、K-meansと混合ガウスモデルとなっています。

手書きのようなフォントと図を用いたかわいらしい感じのイラストで、数学やグラフのみかたが何度も丁寧に繰り返されていて理解を助けてくれます。

他の教科書を読んでも理解できなかった初心者人向けですが、中級者以上には物足りないかもしれません。

初心者向けにも関わらず、最後はEMアルゴリズムの解説があったのですが、その箇所が個人的にはとても良かったです。

5. Pythonで動かして学ぶ!あたらしい深層学習の教科書

「実際にPythonで書けるようになる」ことを意識された教科書です。そのため、解説はさらっとで問題・ヒント・解答の流れになっています。問題集と呼んでも良いかもしれません。プログラミング学習サービス「Aidemy」の公式教科書とのことです。

第1章の機械学習の概論のあと、第2章では機械学習に共通する流れについてです。k-分割や過学習についての解説がなされています。第3章では評価指標についてで、混同行列やF値、再現率・適合率、PR曲線にいたります。第4章〜第7章がPythonに関する内容となり、関数・Numpyまでです。第8章〜第9章ではPandasについてです。DataFrameの結合や要約統計量を求めることをはじめとして、実務を意識したかなり実用的な内容になっています。第10章で可視化です。datetime, timedelta型とその演算なども含まれており、金融データのような時系列解析を意識した内容になっています。第11章でmatplotlib, 第12章でその他グラフによる可視化となっています。第13章でlambda式やmap, リスト内包表記や辞書形式の応用と、この辺りがユニークな構成となっています。第14章ではデータのクレンジングで欠損値や重複データの扱いなど、まさに実務を意識した内容に踏み込んでいます。第15章でOpenCVを用いた画像データの前処理になっています。第16章では分類問題で、SVMやランダムフォレスト, k-NNまでです。第17章〜第18章では、ハイパーパラメータとチューニングです。各手法ごとのやり方が詳述されています。第19章で深層学習の実践となっており、kerasによるモデル生成・学習・評価となっています。第20章では深層学習のチューニングで、DropoutやReLUの導入など、Kaggle経験者などにはお馴染みの精度改善手法が紹介されています。第21章で、Convolusional Neural Network (CNN)を用いた画像分類です。第22章で、標準化やバッチ正則化、転移学習など、CNNの精度を向上させる手法に触れられてます。

Python構文やデータサイエンスの経験者で中級者以上向けかと思います。章末に、添削問題と総合添削問題があるため、理解だけでなくコーディング力を実際に身につけることができるのも良い点です。

個人的には第13章のlamda式、第17章〜第18章および第22章のハイパーパラメータチューニングのところが概観と復習として勉強になりました。

6. Pythonで動かして学ぶ!あたらしいブロックチェーンの教科書

ブロックチェーンについてまとまった知識を得ようと購入しました。

全5部からなっています。第1部でブロックチェーンの概要や歴史です。前半はサトシ・ナカモト氏の論文や、スマートコントラクトなどの解説があります。ブロックチェーンのトレーサビリティを生かした実社会でのユースケースなどが紹介されています。後半では、ベースとなるハッシュ関数をはじめとした暗号技術、P2PネットワークやProof of Workの解説があります。第2部でPythonの基本に触れます。第3部でブロックチェーンの仕組みです。第1部の各内容の詳細というかたちで、ハッシュ関数のより詳細な解説とブロックヘッダやトランザクションのようなブロックの中身に関する解説があります。実際に楕円曲線暗号を用いて秘密鍵と公開鍵を生成する過程も記されています。ウォレットやトランザクション、ハッシュ計算もあります。第4部で実際にブロックチェーンを作成する過程になります。プレーンブロックチェーンを作成したのちに、難易度調整やマークルートなどのカスタマイズが含まれます。第5部では、スケーラビリティ問題などから、シュノア署名をはじめとしたより高度な暗号技術に至るまで、ブロックチェーン開発の先端技術が紹介されています。さらに学ぶための情報源やBitcoin Coreに関する紹介、分散型アプリケーション(DApps)の開発にまで至ります。

解説も必要最小限にとどめられているだけでなく、Pythonコードも解説を省略して知っていることを前提として記述されている箇所も多いため、初心者には不向きです。全般ものすごく専門的な内容なので上級者以上向けです。暗号理論に関してもある程度知識がないと読み進めるのは大変かと思います。基礎的な数学やPython開発に習熟しているある程度経験を積んだエンジニアが、新たにブロックチェーンについて学びたいという場合、章末問題もありおすすめの本です。

この辺りは門外漢でしたのでとても新鮮で楽しく読みました。

7. 現場で使える!Python深層強化学習入門

基礎編と応用編の2部構成になっています。基礎編では、強化学習アルゴリズムについての一般的な解説です。マルコフ決定過程、ベルマン方程式、動的計画法、TD学習などです。モデルフリーのものも紹介されています。理論だけでなく、倒立振子制御の実装も含まれています。畳み込みネットワーク、LSTMのような再帰型ネットワークの解説を挟み、深層強化学習DQNアルゴリズムの解説になります。

第2部の応用編では、実際にアルゴリズムを実装していく形になります。連続制御の例としては歩行制御があります。巡回セールスマンやルービックキューブ解法のような組み合わせ最適化の問題も取り上げられています。GANを用いた系列データ生成の例として、SeqGANによる文章生成が取り上げられています。大規模言語モデルが発展した今日では、モデルの性能としては驚きは少ないかもしれませんが、方策ベースの強化学習をGANに適用することによる離散的な系列データ生成は、あまり取りあえげられている本は少なく、新鮮な内容かと思います。最後はセマンティックセグメンテーションに関しても触れています。

アルゴリズムの記述には、実装例と検証結果も含まれているため、イメージしやすい構成になっています。物理シミュレータとして、OpenAI Gymとpybullet-gymが用いられていますが、その解説が個人的にはとてもためになりました。コードは出版社サイトからダウンロード可能です。

強化学習を扱うため、初心者向けとはいえないところです。中級者以上向けです。

まとめ

以上です。

(一部タイトルが異なりますが)翔泳社の「Pythonで動かして学ぶ!〇〇の教科書」シリーズの7冊を紹介しました。

総じてやさしい解説が多いように感じました。欲を言うともう少しフォントや枠組みが見やすければいいかなと思う部分もあります。

いかがでしたでしょうか?参考になりましたでしょうか?

もしよろしければフォローやいいねをお願いしますね♪

本記事がみなさんのPython学習のお役に立てれば幸いです。

♪♪♪ Have a nice coding day ♪♪♪

[楽天Koboでの電子書籍ご購入はコチラ↓]

ご新規(左)/ご継続(右)


タイトルとURLをコピーしました