Python機械学習プログラミング PyTorch&scikit-learn編
4,620円 (4,200円+税)
【注意】本書のEPUB版は固定レイアウト型になっております。文字の大きさの変更や検索、引用などはお使いいただけません。画面の大きい端末でご利用ください。
関連サイト
本書の関連ページが用意されています。
内容紹介
第3版まで続くロングセラーのPyTorch版! 機械学習の基本から先進的な手法まで本格解説
『機械学習を実践的に学ぶための優れたテキスト』
『多くのトピックを網羅した深い一冊。強力にお勧め』―原著への読者の声
本書の前半は、基本的な機械学習ライブラリのscikit-learnを使った手法を解説。分類の基本モデルに始まり、単層ニューラルネットまでを実装するほか、データ前処理、次元削減、ハイパーパラメーターのチューニング、アンサンブル学習、回帰分析などを取り上げます。
後半では、PyTorchによるさまざまなディープラーニングの手法を説明。PyTorchの仕組みを示したあと、CNN/RNN/Transformerといったモデルの実装を解説。敵対的生成ネットワーク、グラフニューラルネットワーク、強化学習もカバー。
◎本書は『Machine Learning with PyTorch and Scikit-Learn: Develop machine learning and deep learning models with Python』の翻訳書です。
◎微積分/線形代数、Pythonの文法、データ分析用ライブラリについてある程度理解している必要があります。
書誌情報
- 著者: Sebastian Raschka, Yuxi (Hayden) Liu, Vahid Mirjalili(著), 株式会社クイープ(訳), 福島真太朗(監修)
- 発行日: 2022-12-15 (紙書籍版発行日: 2022-12-15)
- 最終更新日: 2024-02-01
- バージョン: 1.2.0
- ページ数: 712ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス
対象読者
機械学習やデータサイエンスに興味のあるIT技術者や研究者/学生、データサイエンティスト。
著者について
Sebastian Raschka
ウィスコンシン州立大学マディソン校の統計学助教授。機械学習と深層学習の研究に注力している。オープンソースの熱心な貢献者でもあり、Grid.aiにおいてAI教育のリードとして、人工知能に興味を持つ人々を支援するという、新しい役割を担う予定。
Yuxi (Hayden) Liu
グーグルの機械学習ソフトウェアエンジニア。世界最大の検索エンジンの広告最適化のための機械学習モデル/システムの開発・改良に取り組んでいる。これまでも、さまざまなデータ駆動型ドメインの業務に機械学習サイエンティストとして従事。
Vahid Mirjalili
コンピュータビジョンのアプリケーションに特化したディープラーニングの研究者。ミシガン州立大学にて機械工学とコンピュータサイエンスの両方で博士号を取得。博士課程では、実世界の問題を解決するコンピュータビジョンの新しいアルゴリズムを開発し、引用の多い研究論文をいくつか発表。
株式会社クイープ
1995年、米国サンフランシスコに設立。コンピュータシステムの開発、ローカライズ、コンサルティングを手がけている。2001年に日本法人を設立。主な訳書に、『プログラマーなら知っておきたい40のアルゴリズム 定番・最新系をPythonで実践!』『[第3版]Python機械学習プログラミング 達人データサイエンティストによる理論と実践』『Amazon Web Servicesインフラサービス活用大全 システム構築/自動化、データストア、高信頼化』などがある(いずれもインプレス発行)。www.quipu.co.jp
福島真太朗
現在、企業で機械学習、データマイニングの研究開発、技術開発の業務に従事。東京大学理学部物理学科卒業。東京大学大学院新領域創成科学研究科 複雑理工学専攻 修士課程修了。東京大学大学院情報理工学系研究科 数理情報学専攻 博士課程修了。博士(情報理工学)。専攻は機械学習・データマイニング・非線形力学系。
目次
本書に寄せて
謝辞
著者・その他の貢献者・レビュー担当者
はじめに
目次
第1章 「データから学習する能力」をコンピュータに与える
- 1.1 データを知識に変える「知能機械」
- 1.2 3種類の機械学習
- 1.3 基本用語と表記法
- 1.4 機械学習システムを構築するためのロードマップ
- 1.5 機械学習にPythonを使う
- まとめ
第2章 分類問題―単純な機械学習アルゴリズムの訓練
- 2.1 人工ニューロン―機械学習の前史
- 2.2 パーセプトロンの学習アルゴリズムをPythonで実装する
- 2.3 ADALINEと学習の収束
- まとめ
第3章 分類問題―機械学習ライブラリscikit-learnの活用
- 3.1 分類アルゴリズムの選択
- 3.2 scikit-learn活用へのファーストステップ:パーセプトロンの訓練
- 3.3 ロジスティック回帰を使ってクラスの確率を予測するモデルの構築
- 3.4 サポートベクトルマシン(SVM)による最大マージン分類
- 3.5 カーネルSVMを使った非線形問題の求解
- 3.6 決定木学習
- 3.7 k最近傍法:怠惰学習アルゴリズム
- まとめ
第4章 データ前処理―よりよい訓練データセットの構築
- 4.1 欠損データへの対処
- 4.2 カテゴリデータの処理
- 4.3 データセットを訓練データセットとテストデータセットに分割する
- 4.4 特徴量の尺度を揃える
- 4.5 意味のある特徴量の選択
- 4.6 ランダムフォレストで特徴量の重要度を評価する
- まとめ
第5章 次元削減でデータを圧縮する
- 5.1 主成分分析(PCA)による教師なし次元削減
- 5.2 線形判別分析(LDA)による教師ありデータ圧縮
- 5.3 非線形の次元削減と可視化
- まとめ
第6章 モデルの評価とハイパーパラメータのチューニングのベストプラクティス
- 6.1 パイプラインによるワークフローの効率化
- 6.2 k分割交差検証を使ったモデルの性能の評価
- 6.3 学習曲線と検証曲線によるアルゴリズムの診断
- 6.4 グリッドサーチによる機械学習モデルのチューニング
- 6.5 さまざまな性能評価指標
- 6.6 クラスの不均衡に対処する
- まとめ
第7章 アンサンブル学習―異なるモデルの組み合わせ
- 7.1 アンサンブルによる学習
- 7.2 多数決による分類器の結合
- 7.3 バギング:ブートストラップ標本を使った分類器アンサンブルの構築
- 7.4 AdaBoostによる弱学習器の活用
- 7.5 勾配ブースティング:損失関数の勾配に基づいてアンサンブルを訓練する
- まとめ
第8章 機械学習の適用―感情分析
- 8.1 IMDb映画レビューデータセットでのテキスト処理
- 8.2 BoWモデルの導入
- 8.3 文書を分類するためのロジスティック回帰モデルの訓練
- 8.4 さらに大規模なデータの処理:オンラインアルゴリズムとアウトオブコア学習
- 8.5 潜在ディリクレ配分(LDA)によるトピックモデルの構築
- まとめ
第9章 回帰分析―連続値をとる目的変数の予測
- 9.1 線形回帰
- 9.2 Ames Housingデータセットの探索
- 9.3 最小二乗線形回帰モデルの実装
- 9.4 RANSACを使ったロバスト回帰モデルの学習
- 9.5 線形回帰モデルの性能評価
- 9.6 回帰に正則化手法を使う
- 9.7 多項式回帰:線形回帰モデルから曲線を見出す
- 9.8 ランダムフォレストを使って非線形関係に対処する
- まとめ
第10章 クラスタ分析―ラベルなしデータの分析
- 10.1 k-means法を使った類似度によるオブジェクトのグループ化
- 10.2 クラスタを階層木として構成する
- 10.3 DBSCANを使って高密度の領域を特定する
- まとめ
第11章 多層人工ニューラルネットワークを一から実装する
- 11.1 人工ニューラルネットワークを使って複雑な関数をモデル化する
- 11.2 手書きの数字を分類する
- 11.3 人工ニューラルネットワークの訓練
- 11.4 ニューラルネットワークでの収束について
- 11.5 ニューラルネットワークの実装についての補足
- まとめ
第12章 ニューラルネットワークの訓練をPyTorchで並列化する
- 12.1 PyTorchと訓練の性能
- 12.2 PyTorch:最初のステップ
- 12.3 PyTorchでの入力パイプラインの構築
- 12.4 PyTorchでのニューラルネットワークモデルの構築
- 12.5 多層ニューラルネットワークでの活性化関数の選択
- まとめ
第13章 PyTorchのメカニズム
- 13.1 PyTorchの主な特徴
- 13.2 PyTorchの計算グラフ
- 13.3 PyTorchのテンソルオブジェクト:モデルパラメータの格納と更新
- 13.4 自動微分による勾配の計算
- 13.5 torch.nnモジュールを使って一般的なアーキテクチャの実装を単純化する
- 13.6 プロジェクト1:車の燃費を予測する
- 13.7 プロジェクト2:MNISTの手書きの数字を分類する
- 13.8 より高レベルなPyTorch API:PyTorch Lightning
- まとめ
第14章 画像の分類―ディープ畳み込みニューラルネットワーク
- 14.1 畳み込みニューラルネットワーク(CNN)の構成要素
- 14.2 畳み込みニューラルネットワーク(CNN)を実装する
- 14.3 PyTorchを使ってディープ畳み込みニューラルネットワーク(DCNN)を実装する
- 14.4 CNNを使って顔画像で笑顔を分類する
- まとめ
第15章 系列データのモデル化―リカレントニューラルネットワーク
- 15.1 系列データ
- 15.2 リカレントニューラルネットワーク(RNN):シーケンスモデルの構築
- 15.3 RNNの実装:PyTorchでのシーケンスモデルの構築
- まとめ
第16章 Transformer.—Attentionメカニズムによる自然言語処理の改善
- 16.1 RNNにAttentionメカニズムを追加する
- 16.2 Self-Attentionメカニズム
- 16.3 Attentionさえあれば大丈夫:オリジナルのTransformerアーキテクチャ
- 16.4 大規模な言語モデルの構築:ラベルなしデータの活用
- 16.5 PyTorchでのBERTモデルのファインチューニング
- まとめ
第17章 新しいデータの合成―敵対的生成ネットワーク
- 17.1 敵対的生成ネットワーク(GAN)
- 17.2 GANを一から実装する
- 17.3 畳み込み層とワッサースタイン距離を使って合成画像の品質を改善する
- 17.4 GANのその他の用途
- まとめ
第18章 グラフニューラルネットワーク―グラフ構造データでの依存性の捕捉
- 18.1 グラフデータ
- 18.2 グラフ畳み込み
- 18.3 GNNをPyTorchで一から実装する
- 18.4 PyTorch Geometricライブラリを使ってGNNを実装する
- 18.5 他のGNN層と最近の開発動向
- まとめ
第19章 複雑な環境での意思決定―強化学習
- 19.1 はじめに:経験からの学習
- 19.2 強化学習の理論的基礎
- 19.3 強化学習のアルゴリズム
- 19.4 最初の強化学習アルゴリズムを実装する