本書は,文系・理系の垣根を越えて,広く大学初年次の学部生に向けたデータサイエンスの入門書である。
「“データサイエンス”とは何か?」と問うところから始まり,データサイエンスに関する統計学,機械学習・AIなどに関する話題,代表的なデータ処理ツールといった,データサイエンスにまつわる考え方・使い方をしっかり身につけられるよう構成している。
文理融合の立場から本文中での高度な数学はなるべく避け,傍注やコラムで各章のトピックにまつわる解説や小噺などを随所に採り挙げることで,データサイエンスやその先の高度な関連分野にも興味を持ってもらえるように工夫を凝らしている。
本書はChatGPTのプロンプトを利用して、効率的かつクオリティの高いデータ分析・可視化手法を解説した書籍です。今まで膨大な時間と複雑な手間をかけていたデータ分析も本書を利用すれば、素早く精度の高い分析結果を導くことができます。また分析手法だけでなく、可視化プロセスも触れていますので、美麗でわかりやすいグラフを作成できます。
GPT-4に匹敵、もしくは超える性能を持つ4つの次世代AIモデルClaud、Command-R、Gemini、Llamaをピックアップし、PythonとJavaScript(Node.js)でプログラミングするための基礎知識を解説。
Chapter1 次世代AIモデルを理解する
Chapter2 Claude APIを利用する
Chapter3 Command-R APIを利用する
Chapter4 Llamaを利用する
Chapter5 Geminiを利用する
ソフト開発とプログラミングのための情報誌■特集:PythonユーザーのためのVisual Studio Code■特集2:ニューラルネットは画像のどこを見て物体を識別しているのか?
本書は具体的なデータ分析の手法を説明する意図で書かれたものではありません。
実用的な目的ならscikit-learnやChainerなどの既存のフレームワークを使うべきですが、本書では機械学習のいくつかの有名なアルゴリズムを、自分でゼロから実装することを目標としています。こうすることにより、とかくブラックボックスになりがちな機械学習の仕組みを理解し、さらなる応用力と問題解決力を身につけることができるようになります。
また、処理系にはデファクトスタンダードであるPythonを使い、機械学習に必要な数学の知識もわかりやすく解説しています。
これから機械学習を始める学生さんや、いきなりプロジェクトに放り込まれていまいち理解できないままデータ分析の仕事をしているエンジニアの方にも最適です。
●目次
はじめに
第01章 学習を始める前に
01 本書の目的
02 本書は何を含まないか
03 機械学習の初歩
04 実行環境の準備
第02章 Pythonの基本
01 プログラムの実行方法
02 基本的な文法
03 数値と文字列
04 複数行処理
05 制御構造
06 リスト、辞書、集合
07 関数定義
08 オブジェクト指向
09 モジュール
10 ファイル操作
11 例外処理
第03章 機械学習に必要な数学
01 基本事項の確認
02 線形代数
03 微積分
第04章 Pythonによる数値計算
01 数値計算の基本
02 NumPyの基本
03 配列の基本計算
04 疎行列
05 NumPy/SciPyによる線形代数
06 乱数
07 データの可視化
08 数理最適化
09 統計
第05章 機械学習アルゴリズム
01 準備
02 回帰
03 リッジ回帰
04 汎化と過学習
05 ラッソ回帰
06 ロジスティック回帰
07 サポートベクタマシン
08 k-Means法
09 主成分分析(PCA)
INDEX
はじめに
第01章 学習を始める前に
01 本書の目的
02 本書は何を含まないか
03 機械学習の初歩
04 実行環境の準備
第02章 Pythonの基本
01 プログラムの実行方法
02 基本的な文法
03 数値と文字列
04 複数行処理
05 制御構造
06 リスト、辞書、集合
07 関数定義
08 オブジェクト指向
09 モジュール
10 ファイル操作
11 例外処理
第03章 機械学習に必要な数学
01 基本事項の確認
02 線形代数
03 微積分
第04章 Pythonによる数値計算
01 数値計算の基本
02 NumPyの基本
03 配列の基本計算
04 疎行列
05 NumPy/SciPyによる線形代数
06 乱数
07 データの可視化
08 数理最適化
09 統計
第05章 機械学習アルゴリズム
01 準備
02 回帰
03 リッジ回帰
04 汎化と過学習
05 ラッソ回帰
06 ロジスティック回帰
07 サポートベクタマシン
08 k-Means法
09 主成分分析(PCA)
INDEX
機械学習エンジニア&データサイエンティスト必携!
初学者でもpandasによる前処理手法がわかる
【本書の背景】
機械学習やデータサイエンスでは、いかに「きれいなデータ」を用意できるかが非常に重要です。データクレンジングともいわれますが、実際の現場のデータは、機械学習やデータ分析にすぐ利用できるデータは皆無に等しく、エンジニアによりデータの前処理が必須となってきています。
【本書の概要】
本書は、機械学習やデータサイエンスの現場では、データ処理に必要な定番のライブラリ「pandas」を用いて、前処理の基本と様々な前処理手法について、あますところなく解説した書籍です。
初学者向けにシンプルでわかりやすいサンプルを用いていますので、pandasの基本操作方法やデータ構造、さらに前処理の基本の理解についてもしっかり学ぶことができます。
pandasを理解することで、様々な機械学習・データ分析タスクがスムーズに行えるようになります。
【本書の対象読者】
・機械学習エンジニア(初学者)
・データサイエンティスト(初学者)
【著書からひとこと】
機械学習では「Garbage In, Garbage Out(略、GIGO)」と言う概念があります。これは「無意味な(ゴミのような)データを入力すると無意味な結果が戻される」の意味です。
GIGOの概念でも解る通り、機械学習エンジニアは様々な手法で収集された膨大なデータの分析を行い、意味のある結果を得るために、多種多様な手法の前処理/分析を行います。
機械学習において約7割の時間はデータの前処理に費やされると言われていますが、その多くは「pandas」を使ったものです。
CSVファイルの読み込みから始まり、要約統計量や欠損値・外れ値・重複データの確認、さらにデータのマージやグループ化などの様々なタスクをpandasで行います。
本書では機械学習「初学者向け」にpandasの基本的な操作を解説しています。初歩的な要約統計量の算出やグループ化やダミー変数、さらに文字列や時系列データの基本操作など、幅広い範囲をカバーしています。
日々、データを業務で取り扱う機械学習エンジニアやKaggle等のデータ分析競技をやられている方に向けて、pandasを使ったデータ前処理のお役に立てばと思い執筆いたしました。
昨今の「音響システム」を理解するには、「物理」や「数学」の知識が不可欠になっています。
本書では、それらを次のようにまとめています。
○音響工学 ○波動方程式
○伝達関数と古典制御 ○ラプラス変換と電気回路
○Arduinoによるサウンドシステム ○振動と波動
今の「音響システム」を理解するには、「物理」や「数学」の知識が不可欠になっています。
基礎知識のある方はもちろん、これから「音響工学」を志す方にも理解を深めるのに役立つ内容になっています。
第1章 音響工学
[1] 「電子回路フィルタ」の「3次元音響」
[2] 「音」の共振回路
[3] 「ヘルムホルツの共鳴器」と「音響インピーダンス」
[4] 「Arduino」と「Python」によるサウンドシステム
第2章 方程式
[1] 「Octave」について
[2] 差分近似で解く「波動方程式」
[3] 「連続方程式」と「運動方程式」
[4] 「熱力学」と「状態方程式」の応用
第3章 ラプラス変換と電気回路
[1] 要素の伝達関数とラプラス変換
[2] 「ラプラス変換」で解く電気回路の応答
[3] 「ナイキスト安定判別法」と「ゲイン余裕」
第4章 振動と波動方程式
[1] 音波の振動
[2] 「波動方程式」と「反射波」
[3] 「フーリエ級数」による「波動方程式」の展開
[4] 「横振動」「縦振動」のエネルギーと運動量
[5] 固体を伝わる「振動」と「波動方程式」
Webデータ収集・解析の技法を基礎から実用まで徹底解説。
人気フレームワークKerasの解説書!
直感的かつ短いコードでアイデアを形にできるKerasはTensorFlowのラッパーとして大人気のライブラリです。本書でもTensorFlowをバックエンドとして使用し、自然言語処理、画像識別、画像生成、音声合成、テキスト生成、強化学習、AIゲームプレイなどさまざまなモデルをPythonとKerasで実装します。対象読者は、各種のディープラーニングを素早く実装したいプログラマー、データサイエンティスト。ディープラーニングを支える技術の速習にも好適です。数式はなるべく使わずにコードと図で説明します。ニューラルネットワークおよびPython 3の基本を理解している人であれば誰でも始めることができます。
「数学」は、私たちの生活や仕事と密接にかかわっていますが、知らない人が見れば、まるで魔法のように見えるかもしれません。
本書は「数学」という魔法の道具にまつわる話を、現代・過去・未来にこだわらずに取り上げた、「数学を知りたい人」のための本です。
語り部「シエラザード」が毎夜語る、千夜一夜の物語になぞらえ、「道具」として作られた数学の起こりから、魔法のような計算式や
理論の話、さらにはプログラムから最新の「AI」の話まで、40を超える幅広い数学のエピソードを紹介。
本書を読むことで、数学という不思議な世界をより広く、楽しく感じられるでしょう。
■「数学という魔法」と、世界を変えた方程式
・道具として生まれた数
・0の誕生と量
・希少・かたより …など
■数学の天才と発展
・見えない音の正体を探る波動方程式
・アインシュタインの方程式は天使か悪魔か
・蝶が羽ばたくと竜巻が起こるバタフライ効果 …など
■機械学習の発明
・AIの仕組みと奇跡のコードPython
・悪魔の階段
・未来が見えるラプラスの悪魔 …など
■プログラミングと数学
・カーネルトリックという魔術
・アダムとイブの愛は永遠か?
・映画タイタニックの生存確率をAIで解く …など
自作派のためのコンピューター技術情報誌[特集]「Python」でつくる簡単な実用プログラム
便利なツールを利用してどんどん成果物を作ることで無理なくプログラミングに馴染もう!より本格的なゲームエンジンに取り組む足掛かりとしても最適です。
昨今のAIブームの中でも、「ディープ・ラーニング」や「ニューラル・ネットワーク」などは、コアな技術です。
しかし、一部の技術者を除いて、誰もが使えているわけではありません。
「機械学習って何ができるのか」「どんなことに活用されているのか」
「機械学習の勉強をしてみたいけれど難しいのか」「勉強してみたけど、よく分からない…」
…そんな疑問をもった「機械学習プログラミング」に挑戦してみたい方が、時間をかけずに「機械学習」をモノにするための入門書です。
■ちょっとだけ「機械学習」
・ごくゲーム的なデモ
・仕組みを直感的に理解できるデモ
・コードをちょっとだけイジるデモ
■「定番フレームワーク」体験する
機械学習のフレームワークとして定番と言われている「Scikit-learn」と「TensorFlow」、最近話題の「PyTorch」について、「どこを見ればいいか」「何をやっているか」「どんな答が得られているか」を直感的に解説。
Scikit-Learn /TensorFlow /PyTorch(全部プロ用ツールなのでサワリだけ)
■環境構築
機械学習の主流言語はPythonなので、Pythonでの環境構築を行なう。Anacondaのインストールから、Jupyter Notebookの使い方、注意点など。
・Anacondaのインストール /・Jupyter Notebookの使い方 /・機械学習に必要なコードを書いてみる(ベクトルや配列の扱い、シグモイド、ReLu、最も単純なパーセプトロンモデルなど)
■グラフの描画法
機械学習(ディープラーニングも含む)で最も劇的な結果の出し方は、実は結果をグラフで図示する過程である。
Jupyter notebook上でmatplotlibライブラリを用いて、結果の図示法に強くなろう。
・matplotlibの基本
・機械学習でよく使うデータの図示法(分類、予測、誤差、分岐など)
■Scikit-learnで機械学習
機械学習の定番ライブラリScikit-learnで実際にデータの分類を行なう。
・回帰による分類 /・SVMによる分類 /・決定木による分類 /・その他高度な分類
■Tensorflowでディープ・ラーニング
ディープ・ラーニングの定番フレームワーク「TensorFlow」で実際に画像認識を行なう。
・最小構成のニューラル・ネットワークで知る「画像分類の基本」
・ディープニューラルネットワークで体験する「分類精度向上」
・ハイパーパラメータの調整で体験するチューニング
技術革新に乗り遅れるな!AI活用でナンバーワン・ゲームを目指そう
本書は、2020年8月に刊行した「v1.1対応版」を最新版へのアップデートを行った改訂版です。
「Unity ML-Agents」(Unity Machine Learning Agents)は、Unityで「機械学習」の環境を構築するためのフレームワークです。ゲームに登場するキャラクターを「強化学習」で鍛えることで、人間の代わりになる対戦相手としたり、ゲームバランスの評価に活用したりなど、ゲームAIはさまざまなゲーム制作の場面で活用することができます。
本書では、はじめて「機械学習」にチャレンジする方から学んでいただけるように、機械学習の仕組みや学習方法の基礎から、サンプルプログラムを使った実践まで、ていねいに解説しました。また、AIを組み込んで活用する応用事例も多数掲載しており、ゲーム開発の現場ですぐに役立てることができます。
第1章 機械学習とUnity ML-Agentsの概要
1-1 人工知能と機械学習
1-2 教師あり学習と教師なし学習と強化学習
1-3 強化学習
1-4 Unity ML-Agentsの概要
第2章 はじめての学習環境の作成
2-1 開発環境の準備
2-2 プロジェクトの準備
2-3 はじめての学習環境の作成
2-4 学習と推論
2-5 学習の高速化
第3章 Unity ML-Agents の基礎
3-1 状態と観察
3-2 行動
3-3 報酬とエピソード完了
3-4 決定
3-5 学習設定ファイル
3-6 mlagents-learn
3-7 TensorBoard
第4章 さまざまな学習方法
4-1 SAC
4-2 Discrete
4-3 Visual Observation
4-4 Raycast Observation
4-5 セルフプレイ
4-6 Curiosity
4-7 模倣学習
4-8 LSTM(Long Short-Term Memory)
4-9 カリキュラム学習
4-10 環境パラメータのランダム化
第5章 サンプルの学習環境
5-1 サンプル学習環境の準備
5-2 3DBall
5-3 GridWorld
5-4 PushBlock
5-5 Pyramids
5-6 WallJump
5-7 Hallway
5-8 Worm
5-9 Crawler
5-10 Walker
5-11 FoodCollector
5-12 Basic
5-13 Match3
5-14 Sorter
5-15 Soccer
5-16 CooperativePushBlock
5-17 DungeonEscape
第6章 ゲーム開発における強化学習の活用
6-1 ゲーム開発での強化学習エージェントの活用
6-2 ジャンプゲーム - テストの自動化
6-3 障害物避けゲーム - コンテンツのバランス調整のサポート
6-4 Puppo, The Corgi - より自然な振る舞いを行うNPC
6-5 ドッジボール - 人間の代わりとなる対戦相手
6-6 AIロボットサッカー - ロボットの強化学習
第7章 Python APIを使った学習環境の構築
7-1 Python APIを使った学習
7-2 Gymラッパー
7-3 Python Low Level API
7-4 サイドチャネル
7-5 カスタムサイドチャネル
Pythonのしくみと作り方をイラストで詳しく解説。ポイント解説と練習問題で独学でも知識が身に付く。オブジェクト指向の考え方もしっかり理解できる。
ラズベリー・パイとPICマイコンを使って量子演算電卓の製作にチャレンジします.また,重ね合わせの原理や干渉といった光の実験を通して,量子コンピュータの挙動を理解します.難しい数式は極力使わず,手を動かすことを優先しました.
「Bottle」はPython言語で「Webアプリケーション」を作るためのフレームワークです。
特別な「フォルダ」や「ファイル名」「設定ファイル」の記述などは必要なく、適当なフォルダに適当な名前で「Pythonファイル」を置けば、そこが「Webアプリケーションフォルダ」になります。
また、Python言語の「Webフレームワーク」には、アプリケーションの書き方が共通しているという特徴があります。
そのため「Bottle」での書き方を習得すれば、「Django」や「Flask」などの本格的なWebフレームワークにも応用がきくのです。
本書は、「Bottle」のインストール法といった基本的な説明から始めて、「Bottle」での「Webアプリケーション」の書き方を実際に「Webアプリケーション」を作りながら解説。
「Webフレームワーク」に触れるのが初めての方でも、安心して学べる入門書となっています。
■第1章 「Python」「WSGI」そして「Bottle」
・「Python」のWeb規格「WSGI」
・ファイル一枚で「Webアプリ」が書ける「Bottle」
■第2章 「Bottle」が動く仕組み
・もっとも簡単なプログラムの仕組み
・ページを増やす
■第3章 Windows7 PCの完全処分と再活用法
・「テンプレート」で変数の値を表示
・「Pythonコード」を埋め込む
■第4章 フォーム
・簡単なデータの受け渡し
・同じアドレスに戻る
■第5章 データベースその1 -データベース作成、データ追加ー
・「Bottle」でなぜ「データベース・アプリケーション」なのか
・データベースファイルの作成とテーブルの作成
■第6章 データベースその2 -データをいろいろと操作するー
・データの一覧ページ
・データの詳細ページ
質のよい人工知能を構築するには,その構造・メカニズムを深く理解することが重要である。そのために必要なのは,その数理的な知識のみならず,実際にプログラミングをしてニューラルネットワークを構築する経験であろう。この観点から,本書では2章に「機械学習の基礎」を配置し,機械学習の基本的な意味理解と応用を行うにあたって,最低限理解しておく必要があるパターン認識の数学的な意味について解説した。また,その理解の助けとなるよう,確率密度関数やベクトル,テンソルについては「学び直しコラム」を用意した。さらに,この章で得た知識をもとに理解が深まるよう,3章に「ニューラルネットワーク」を配置した。ニューラルネットワークのメカニズムを説明する過程では,それを理解するのに必要な数学的知識をその場で学べるように配慮した。また,Pythonのプログラムをニューラルネットワーク専用のライブラリを使用せずに構築することで,理論と実際の動作とを結びつけられるようにした。
以上を踏まえたうえで,4章の「追加学習」ではその理論を解説するとともに,これをPyTorchを使って記述し,これまで学んできた内容をどのようにライブラリで記述できるのかを学べるようにした。
【読者へのメッセージ】
小学校の頃を思い出してほしい。私たちは新しい数字や漢字を毎日少しずつ追加的に覚えていった。これはごく自然な学習スタイルなので,現在の人工知能ブームの主役に躍り出た学習マシン:ニューラルネットワークについても,私たち人間と同じような追加的な学習ができるものだと思っている人がほとんどであろう。だが,なんとこれがニューラルネットワークには難しいのである!仮に6年生までの知識をマスターしたニューラルネットワークがあったとしたら,これに新しい1文字の漢字を追加的に学習させると,過去の記憶をほぼ全て喪失する「破滅的忘却」が起きてしまうのである。つまりこのような新しい知識をニューラルネットワークに記憶させるには,再度6年生までの漢字と新しい1文字の漢字とを学習させ直す必要がある。このような状況でニューラルネットワークを人のように日々学習して賢く成長しながら与えられた課題を解決できるようにするには,膨大な手間がかかることは言うまでもない。この問題を解決するべく,近年新しい学習手法が開発されつつある。それが「追加学習法」である。実のところその歴史は古く,現在に至るまで著者も含めて多くの研究者が様々なアプローチでこの問題の解決に努めてきた。この最新手法を学ぶべく,本書は基礎からプログラミングしながら学べるようにしてある。
ところで皆さんは,教科書を読んで「理解できた!」と感じていたにも関わらず,いざプログラミングしてシステムを構築しようとすると途端に良く分からない事柄が沢山あることに気が付いたご経験はないだろうか?本書は理論を学び,手を動かしてプログラミングすることを両輪のように進めて確実に理解できるようにすることを目指した。本書を活用した皆さんの中から更なる新しい学習理論を提唱する人が現れることを願ってやまない。
Pythonでテスト駆動開発をするために知っておきたいpytestのすべて
●本書の目的
・Pythonを使っているのでpytestを使ったテスト駆動開発する
・シンプルなテストをシンプルに書く
・複雑なテストもシンプルに書く
・読みやすいテストを書く
・self.assertEqual()やself.assertLessThan()のようなものではなく、assertだけでテスト駆動する
・単体テストまたはnoseのテストを実行できるようにする
●必要な基礎体力
・Pythonを使{ったことがあ|ってい}る
・テスト駆動開発のことはなんとなく知っている
・pytestのインストールくらいはできる
【目次】
CHAPTER1 はじめてのpytest
CHAPTER2 テスト関数を作成する
CHAPTER3 pytestのフィクスチャ
CHAPTER4 組み込みフィクスチャ
CHAPTER5 プラグイン
CHAPTER6 構成
CHAPTER7 pytestを他のツールで使ってみる
付録A 仮想環境
付録B pip
付録C pytestのプラグイン
付録D Pythonプロジェクトのパッケージ化と配布
付録E xUnitフィクスチャ
付録F クラウドでpytestを使う(CircleCI社・金洋国氏書き下ろし)
付録G pytestを用いたテスト駆動開発(アジャイルコーチ(フリーランス)・安井力氏書き下ろし)
●著書について
Brian Okken
20年にわたるR&D経験を持つ主席ソフトウェアエンジニア。試験計測機器を開発している。また、Test&Codeポッドキャストを主催し、Python Bytesポッドキャストの共同開催者でもある。
【目次】
CHAPTER1 はじめてのpytest
CHAPTER2 テスト関数を作成する
CHAPTER3 pytestのフィクスチャ
CHAPTER4 組み込みフィクスチャ
CHAPTER5 プラグイン
CHAPTER6 構成
CHAPTER7 pytestを他のツールで使ってみる
付録A 仮想環境
付録B pip
付録C pytestのプラグイン
付録D Pythonプロジェクトのパッケージ化と配布
付録E xUnitフィクスチャ
付録F クラウドでpytestを使う(CircleCI社・金洋国氏書き下ろし)
付録G pytestを用いたテスト駆動開発(アジャイルコーチ(フリーランス)・安井力氏書き下ろし)