[第2版]Python機械学習プログラミング 達人データサイエンティストによる理論と実践
Sebastian Raschka(著)
,Vahid Mirjalili(著)
,株式会社クイープ(著)
,福島真太朗(著)
/impress top gearシリーズ
作品情報
機械学習本ベストセラーの第2版!
著者陣の経験に基づく洞察とより専門的な知識を学べる
機械学習の各コンセプトについて、理論や数学的背景、Pythonコーディングの実際を網羅的に解説。初期の機械学習アルゴリズムから、ニューラルネットワーク(CNN/RNN)までの手法を取り上げます。Python関連ライブラリとしてはscikit-learnやTensorFlowなどを使用。第2版では、第1版への読者のフィードバックを随所に反映し、ライブラリの更新に対応。13章以降はほとんど新規の書き下ろしです。本書は、機械学習を本格的に理解・実践するのに不可欠な一冊となっています。
◎本書は『Python Machine Learning: Machine Learning and Deep Learning
with Python, scikit-learn, and TensorFlow, 2nd Edition』の翻訳書です。
◎微積分/線形代数、Pythonの文法、データ分析用ライブラリについてある程度理解している必要があります。
■「はじめに」より抜粋
機械学習の実践的なサンプルコードを調べて試してみるのは、この分野に飛び込むのにうってつけの方法である。幅広い概念が明確になるからだ。本書では、Python言語と機械学習ライブラリを使って機械学習の実装を体験してみるほか、アルゴリズムの背後にある数学的な概念を紹介する。それらの概念は、機械学習をうまく利用するために欠かせないものである。したがって、本書は単なる実用書ではない。本書では、機械学習の概念を必要に応じて詳しく説明する。
もっとみる
商品情報
- ジャンル
- コンピュータ・情報 - コンピュータ・インターネット
- 出版社
- インプレス
- 掲載誌・レーベル
- impress top gearシリーズ
- 書籍発売日
- 2018.03.16
- Reader Store発売日
- 2018.03.16
- ファイルサイズ
- 133.6MB
- ページ数
- 624ページ
※この商品はタブレットなど大きなディスプレイを備えた機器で読むことに適しています。
文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。
この作品のレビュー
平均 5.0 (2件のレビュー)
-
最低限必要な知識
・Pythonをすでに勉強していること
本書で解説されること
・主な機械学習の手法
・感覚的な数学的説明
・scikit-learnなどの最低限の外部ライブラリを用いたコーディング
…・TensorFlowの使い方
本書では解説されていないこと
・詳細な数学的背景(PRMLなどで補強する必要がある)
・強化学習
・機械学習についての最新の研究続きを読む投稿日:2020.04.23
このレビューはネタバレを含みます
機械学習と深層学習の各種アルゴリズムの理論とPythonでのアルゴリズムの書き方、さらにはそれらのパッケージの実際の実用コードまで書かれている、網羅的な教科書
レビューの続きを読む
機械学習にしても教師あり学習の分類と回帰…、教師なし学習、NLPを網羅し、さらに深層学習ではNNの基礎からCNNやRNNについて書かれていてTensorflowでの実装にも触れられている
高校数学はもちろん、大学数学も線形代数と微積の基礎は知っている前提で展開が進み、深層学習の話ではテンソルや畳み込み積分といった大学数学の中でも難易度の高いものに触れられるので、全体的に難易度の高い本ではあるが、プログラミング力はそこまで要求されず、長いコードは読み飛ばしても問題なさそう
強化学習の詳細、物体検出、動画、音声あたりは対象外である
1章 機械学習概要
3種の機械学習の概要と以降で頻出する基本用語、Pythonやパッケージの準備について
2章 機械学習の分類 基礎
単層パーセプトロンの実装によるアイリスの分類について
また、以降に頻出する勾配降下法についての説明も
重みwにコスト関数の負の勾配×学習率をかけたΔwを順次足していく(重みは特徴量の個数分あるのがややこしい)
このコスト関数の各重みごとに偏微分してく過程はややこしいけどめちゃくちゃ大事 そして学習率の大きさも適切なものにすることが重要
次にスケーリングについて、勾配降下法でスケーリングが大事なのは各重み係数を対等に扱うため(だからXGBTもスケーリングいると思うんだけどどうなんだろうか?)
勾配降下法もいろいろあってバッチ勾配降下法がまとめてやるやつ(小さいデータセットなら有効)で、でかいのには確率的勾配降下法(逐次的勾配降下法やオンライン勾配降下法とも呼ぶ)で、トレーニングセット増加ごとに重みを更新する
これも以降(NNやブースティングとかで)よく出てくる 地味にめちゃくちゃ大事な気がする 当たり前だけどオンライン学習にも使えるから便利
3章 機械学習の分類 scikit-learnの活用
有名な分類アルゴリズムの理論と実装の解説やそれぞれの良さ悪さ
2章の単層パーセプトロンは単純だけどやっぱ弱い
まずは①ロジスティック回帰で、パーセプトロンと非線形関数(シグモイド)を使う 正解値と予測値が違えば重みをあげてく
またここで正則化について、重みの大きさに課すペナルティでL1とL2がある 前者は疎行列になるからそれぞれ役割が変わってくる いずれにせよ過学習防止にやくだつ(ちなみにL2正則化で係数に1/2を使う理由はよく分からない 微分した時に消えるから?)
次に②SVMで、これは分類平面の式にでてくる各種重みwの最小化問題になる
①と②は前者は更新データに強い 後者は外れ値の影響を受けにくい という良さ
次に③カーネルSVM 非線形のものに強い 一度次元をあげて分類してから下げる
④決定木は値の大小に注目するのでスケーリングがいらないのが強い 決定木はLGBMとかにも使われてるからとても重要そう
結局分岐した瞬間に発生する情報利得の最大化の問題(ようはその条件分岐によってちゃんと目的変数を分岐できたかの度合い)意味解釈性がとてもでかい
⑤ランダムフォレストは④のアンサンブル版
最後に怠惰学習の⑥k近傍法 これは正直僕もよく分からない なにが怠惰なんだろう 要するに従来と異なり関数を作らずデータセットを丸暗記する(アルゴリズムが非常に単純なため)
4章 前処理
欠損値対応や名義特徴量(Tシャツの色)順序特徴量(Tシャツのサイズ)のマッピングについて
名義特徴量はonehotエンコーディングが必要 この際Tシャツの色が3色なら列は2列でいいことに注意 計算量軽減のためにも覚えとこう
他にもスケーリングやtrain-testの分割
ランダムフォレストを使うと特徴量の重要度が分かるので便利
5章 次元削減によるデータ圧縮
①PCA(教師なし)によりデータをより低次元にする(分散が大きくなるように軸を選択)
②LDA(教師あり)は教師ありなのでクラスの分離を最適化する方向に次元圧縮する ここらへん線形代数がとても難しかった(変動行列の固有値分解の話)
③カーネルPCAは非線形への対応 ここらへんもすごく難しいが一旦高次元にしてから低次元にするって感じ
6章 モデル評価とハイパラのチューニング
パイプラインによる効率化
k分割交差検証によるモデル性能評価によりバイアスバリアンスのいいバランスを作る
グリッドサーチによりハイパラの最適な組み合わせを見つける 網羅的に見つけてくれる
最後に性能評価について これは単なる正解率だけでない手法について(混同行列とか)
不均衡データを扱う際は少数派クラスの間違えにペナルティを課すとか数を無理やり揃えるとか
7章 アンサンブル
異なるモデルの組み合わせということで、アンサンブル学習とバギングとブースティングについて
特にブースティングは今流行りの手法なので非常に重要
要は非復元抽出して学習を繰り返し、前回外したものは重みを強くするという手法
8章 感情分析
NLPの1つである感情分析について
要するに単語を特徴量にした行列を生成して機械学習するだけ ただ頻出する単語(be動詞とか冠詞)を消したりするのは独特の作業 大きい疎行列を扱うからオンライン学習も推奨されてる
アウトオブコアはデータをすべてはメモリに読み込まずに使える メモリ効率が良い
1からトピックを作って分類する教師なし学習もある(トピックモデル)
9章 Webアプリケーションとしての利用
Flaskを用いてWebアプリケーションを開発して8章の映画レビュー分類を実装
MLの話というよりFlaskの話で、Pythonでどのようにディレクトリ構造やファイルシステム、CSSを設定するかについて
最後はWebサーバへのデプロイ
10章 回帰分析
重回帰分析の理論と実装について
実装の前のEDAとして相関行列の調査やスケーリングなど
回帰分析のコスト関数は誤差平方和が一般的 これを最小化する
外れ値除去の代わりにRANSACにより正常値のみを選定して学習させる
性能評価では決定係数を用いるのが一般
非線形関係に対応するためにランダムフォレスト回帰を使う方法もある(少し難しかった)不純度の指標として誤差平方和ろ使う感じ
11章 教師なし学習
k-meansによるグループ化(適切なkの設定が大事 エルボー法で決定することもできる)
樹形図などいろんな表記法がある
DBSCANはクラスタの形が球状という制限がないので半月上のクラスタも作れる
12章 多層NNの基礎
NNの基礎 コスト関数は確率的勾配降下法はオンラインで便利だし、ノイズがあるのも極小値回避に役立つ
ミニバッヂ学習の方が時間効率が良いのでこっちを使うこともある(確率的勾配法と同じだけど母集団全部でなく一部を選んで使うから効率的って感じ)
コスト関数と非線形活性化関数により出力の誤差を計算し、この誤差を最小化していく
バックプロバゲーション(リバース自動微分)により前の層の重みを更新していく(ちょっと難しい)
13章 TensorFlowによるNNトレーニングの並列化
TensorFlowの低レベルAPIにより単純なモデルを作成 高レベルAPIでモデルトレーニングを行う
GPUを用いる方法について
活性化関数としてソフトマックス関数は所属確率を出してくれる ReLU関数は勾配消失問題(大きい値に対して勾配が0に近づいてしまい計算が遅くなる)
14章 TensorFlowの機能
テンソルに対する演算や関数を計算グラフとして定義できる(そもそもテンソルがややこしいが行列やベクトルの一般化って感じ) 計算グラフはネットワークそのものに感覚的に近い この計算グラフの作り方がややこしい 入力ノードにテンソルをいれる(ためしに階数0のテンソルを入れてみるとわかりやすい)
計算グラフを作るためにプレースホルダを設定する必要あり
あとは計算グラフの設定と図示化について
15章 画像分類 CNN
入力画像から特徴マップを作るのが非常に大事 これによって低レベルの特徴量を導ける
畳み込みを行う上で0パディング(周りを0にしとく)と反転(畳み込みのままだとindexの方向が異なるので 2次元の場合回転であって転置ではない)が大事
パディングはいろいろな大きさがあるがsameパディングが主流 境界の影響は気にしなくて良いからfullずあなくていいしテンソルの幅を維持したいからvalidじゃなくてよい
最近は畳み込みにフーリエ変換を使う
プーリングも重要 画像をぼかす 計算効率があがり過学習も減る
たとえばカラー画像に対し、テーブルが3つあるイメージになり、それぞれにカーネル行列(重み行列 1こにつき3層)をかける カーネル行列の数だけ出力される たとえば5個なら5個の出力マップが行われる 次にそれぞれプーリングする そして活性化して出力する
畳み込みとプーリングは数回繰り返すこともある
正則化としてドロップアウト(トレーニング時に隠れユニットをランダムで一部使わない 実行時は全部使う)
あとはTensorFlowでの実装について
16章 RNN
系列データの場合はh(t)をx(t)のみでなくh(t-1)も使う
何回も重みをかけて1つの重み行列になるが、このとき重みが1以下ならどんどん小さく(勾配消失)、1以上なら発散してしまう(勾配発散)
勾配消失を防ぐためにLSTMユニットがある これがh(t)だけでなくc(t)からなるメモリセルからなる(とても難しい)
TensorFlowによる感情分析の実装 文書の場合は長さ(つまり単語数)はまちまちなので空いたところは0で埋める 次に各単語を数値化するときにonehotを使うと大変な計算量や次元の呪いになるので埋め込みを使って数値化するとよい
次に単語でなく文字レベルの実装(次の文字の予測) 教師なしなのでbuildメソッド→trainメソッドの次はsampleメソッドというものになり勝手に文書を作ってくれる
その他JupyterNotebookの使用方法やMatplotの使い方、線形代数の行列分解についても補足として載ってる(割愛)続きを読む投稿日:2019.11.17
新刊自動購入は、今後配信となるシリーズの最新刊を毎号自動的にお届けするサービスです。
- ・発売と同時にすぐにお手元のデバイスに追加!
- ・買い逃すことがありません!
- ・いつでも解約ができるから安心!
※新刊自動購入の対象となるコンテンツは、次回配信分からとなります。現在発売中の最新号を含め、既刊の号は含まれません。ご契約はページ右の「新刊自動購入を始める」からお手続きください。
※ご契約をいただくと、このシリーズのコンテンツを配信する都度、毎回決済となります。配信されるコンテンツによって発売日・金額が異なる場合があります。ご契約中は自動的に販売を継続します。
不定期に刊行される「増刊号」「特別号」等も、自動購入の対象に含まれますのでご了承ください。(シリーズ名が異なるものは対象となりません)
※再開の見込みの立たない休刊、廃刊、出版社やReader Store側の事由で契約を終了させていただくことがあります。
※My Sony IDを削除すると新刊自動購入は解約となります。
お支払方法:クレジットカードのみ
解約方法:マイページの「予約・新刊自動購入設定」より、随時解約可能です続巻自動購入は、今後配信となるシリーズの最新刊を毎号自動的にお届けするサービスです。
- ・発売と同時にすぐにお手元のデバイスに追加!
- ・買い逃すことがありません!
- ・いつでも解約ができるから安心!
- ・優待ポイントが2倍になるおトクなキャンペーン実施中!
※続巻自動購入の対象となるコンテンツは、次回配信分からとなります。現在発売中の最新巻を含め、既刊の巻は含まれません。ご契約はページ右の「続巻自動購入を始める」からお手続きください。
※ご契約をいただくと、このシリーズのコンテンツを配信する都度、毎回決済となります。配信されるコンテンツによって発売日・金額が異なる場合があります。ご契約中は自動的に販売を継続します。
不定期に刊行される特別号等も自動購入の対象に含まれる場合がありますのでご了承ください。(シリーズ名が異なるものは対象となりません)
※再開の見込みの立たない休刊、廃刊、出版社やReader Store側の事由で契約を終了させていただくことがあります。
※My Sony IDを削除すると続巻自動購入は解約となります。
お支払方法:クレジットカードのみ
解約方法:マイページの「予約自動購入設定」より、随時解約可能ですReader Store BOOK GIFT とは
ご家族、ご友人などに電子書籍をギフトとしてプレゼントすることができる機能です。
贈りたい本を「プレゼントする」のボタンからご購入頂き、お受け取り用のリンクをメールなどでお知らせするだけでOK!
ぜひお誕生日のお祝いや、おすすめしたい本をプレゼントしてみてください。※ギフトのお受け取り期限はご購入後6ヶ月となります。お受け取りされないまま期限を過ぎた場合、お受け取りや払い戻しはできませんのでご注意ください。
※お受け取りになる方がすでに同じ本をお持ちの場合でも払い戻しはできません。
※ギフトのお受け取りにはサインアップ(無料)が必要です。
※ご自身の本棚の本を贈ることはできません。
※ポイント、クーポンの利用はできません。クーポンコード登録
Reader Storeをご利用のお客様へ
ご利用ありがとうございます!
エラー(エラーコード: )
ご協力ありがとうございました
参考にさせていただきます。