大学生向けに書かれたPythonの教科書.
第1章 Python をどうやってはじめるのか?
第2章 Python に慣れよう
第3章 とにかく始めよう
第4章 マルバツゲームを作ろう
第5章 盤上のタイルの選択
第6章 ゲームの勝敗
第7章 勝ち負け判定の手直し
第8章 ちょっと立ち止まって
第9章 ゼミの中での議論
第10章 ゲームを単独で動く形にしよう
信号処理を学んだことがない読者を対象に「音の信号処理は案外簡単」と実感してもらうことを目的に,Pythonの対話型プログラミング環境Google Colaboratoryを用いて,音響信号処理を一通り行えるよう解説。
著者作成のサポートページをWebで公開中。詳しくはコロナ社HPをご確認ください。
1.演習環境の立上げ
1.1 PythonとColab
1.1.1 Pythonとは
1.1.2 Colabとは
1.2 演習環境の準備
1.2.1 Python入門とColabの利用
1.2.2 本書のサポートページ
1.3 ColabでWAVファイルを聞いてみる
2.音に触れる
2.1 音を数式で表現する
2.1.1 時間の関数としての音の数式表現
2.1.2 振幅と位相を含んだ数式表現
2.2 正弦波を生成して聞いてみる
2.3 A-D変換について確認する
2.3.1 標本化
2.3.2 不適切な標本化
2.3.3 量子化
2.3.4 よろしくない量子化
2.3.5 量子化誤差を聞いてみる
3.アナログ音の周波数分析
3.1 正弦波の重ね合わせによる周期波形の合成
3.1.1 ウォーミングアップ:2成分複合音の合成
3.1.2 3成分複合音の合成
3.1.3 成分音の振幅と波形の関係
3.1.4 成分音の位相と波形の関係
3.1.5 三角関数の合成
3.2 フーリエ級数展開
3.2.1 丸い波による角(かど)のある波の合成
3.2.2 周期波形の分解
3.2.3 分解された成分の位相と振幅を調べる
3.3 スペクトル
3.3.1 フーリエ級数展開で得たスペクトルを描画する
3.3.2 実フーリエ級数展開から複素フーリエ級数展開へ
3.3.3 複素フーリエ級数展開で得たスペクトルを描画する
3.3.4 基本的な周期波形のスペクトル
4.ディジタル音の周波数分析
4.1 ディジタル信号のフーリエ変換
4.1.1 DFTとFFT
4.1.2 FFTスペクトルを読み解く(王道の解釈)
4.1.3 FFTスペクトルを読み解く(曲がった解釈)
4.1.4 スペクトルの振幅値に関する解釈
4.1.5 ディジタル信号のスペクトル
4.2 窓関数
4.2.1 方形波窓による切出しが引き起こす問題
4.2.2 窓関数を用いた波形の切出し
4.2.3 STFTとスペクトログラム
4.3 窓関数による波形の変化とスペクトルの変化
4.3.1 切り出した波形の合成による元の波形の復元
4.3.2 窓関数の掛け算によるスペクトルの変化
4.4 忘れてはいけない位相スペクトル
5.音のフィルタリング
5.1 FIRフィルタによる雑音の除去
5.1.1 インパルス応答の畳込み
5.1.2 FIRフィルタを自作する
5.1.3 FIRフィルタの自動設計(窓関数法)
5.2 IIRフィルタによる雑音の除去
5.2.1 IIRフィルタの自動設計
5.2.2 IIRフィルタを利用した雑音除去
5.3 頭部伝達関数を用いた音像定位の制御
5.3.1 頭部伝達関数とは
5.3.2 頭部伝達関数を用いて音像を制御してみよう
5.4 FFTを利用した長い音のフィルタリング
6.さまざまな音響信号処理
6.1 ボイスチェンジャ
6.1.1 まずボイスチェンジしてみる
6.1.2 スペクトルの変化を観察する
6.1.3 スペクトルの変化を検討する
6.2 エフェクタ
6.2.1 トレモロ
6.2.2 ビブラート
6.3 マイクロホンアレイによるビームフォーミング
6.3.1 遅延和法(DS法)の基礎
6.3.2 遅延和法の実行
引用・参考文献
索引
機械学習による異常検知と系列データ解析を実例をもとに学ぶ
本書は、現在産業界で注目されている、機械学習による
・機器の振動データに対する異常検知
・系列データ(例として睡眠系列データ)に対する解析
を解説したものです。
業務や研究開発に必要だが機械学習については素人という方でも実践できるように、本書前半では、基本的な識別器・予測器のPythonによる実装例・使い方を解説しています。後半では、実問題への適用例を著者の研究経験をもとに解説しています。
第1章 機械学習とは何か
第2章 基本的な識別器・予測器
第3章 機器の振動データに対する異常検知
第4章 系列データの解析
Raspberry Piは、手のひらに収まるほど小型でありながら、本格的なコンピュータとして利用できるシングルボードコンピュータの代表格です。近年は、こうしたRaspberry Piの環境にAIを組み合わせる試みが注目されつつあります。生成AIのChatGPTを活用すれば、Raspberry Piの設定方法や電子パーツを動かすプログラムの書き方を相談しながら作業を進めることができ、製作や学習の負担を大幅に減らせます。さらに、Raspberry Pi上でAIモデルを実際に動作させる取り組みも増えています。
本書は、Raspberry Piを用いてAIを活用するための具体的な方法を紹介します。Raspberry Piの操作方法や電子パーツを制御するプログラムの作成など、実践的な作業を進めるうえで生成AIを併用すると、疑問点をその場で解消でき、学習を効率的に進められます。さらに、Raspberry Pi上で大規模言語モデル(LLM)を動作させる方法にも触れるほか、音声を文字に変換する仕組みや、カメラ映像から物体を識別する方法など、Raspberry PiとAIを組み合わせることで実現できる多様な処理を取り上げます。また、Pythonの基礎や電子パーツの扱い方など、土台となる知識も丁寧に解説します。
本書の最後には、AIと電子工作を組み合わせた作品づくりに挑戦します。Raspberry Piを中心に、AIとハードウェアの融合がどのような可能性をもたらすのか、実際の作品を通して確かめていきます。
※本書の内容は『電子工作&サーバー構築徹底解説! ラズパイ5完全ガイド』を基に最新AI活用法を盛り込み大幅に改訂したものです
はじめに
本書の読み方
免責事項
第1章 Raspberry Piについて知る
1-1 Raspberry Pi とは
1-2 ラズパイのハードウエアと機能を知る
第2章 ラズパイを使うための準備
2-1 ラズパイに必要な機器
2-2 ラズパイで動作するOS
2-3 Raspberry Pi OSの準備
2-4 Raspberry Pi OSの設定
第3章 ラズパイの基本操作
3-1 Raspberry Pi OSの基本操作
3-2 コマンドを使った操作
3-3 パッケージの管理
3-4 ラズパイを遠隔操作する
3-5 ファイルサーバー
第4章 Pythonプログラミング入門
4-1 ラズパイでのプログラム開発
4-2 Pythonで作成したプログラムの実行
4-3 Pythonの基礎
第5章 AIの活用
5-1 生成AIの活用
5-2 ローカルLLMを動かす
5-3 音声をテキスト化する
5-4 AIアクセラレーターの利用
第6章 カメラ&通信機能を利用する
6-1 カメラで撮影する
6-2 AIカメラの利用
第7章 電子パーツの基本動作を理解する
7-1 電子パーツの購入方法
7-2 電子工作の準備
7-3 電子パーツを接続して動かす
第8章 電子パーツの制御方法の基本
8-1 電子パーツをラズパイで制御する
8-2 LEDの点灯制御
8-3 スイッチの状態を読み取る
8-4 モーターの回転速度を調節する
8-5 ボリュームの状態を読み取る
8-6 温度センサーで計測する
第9章 AIを活用して作品を作る
9-1 アイデアから作品を作る手順
9-2 生成AIを電子工作やプログラムに役立てる
9-3 AIと電子工作を組み合わせた作品を作る
機械学習とは、データから学習した結果をもとに、新たなデータに対して判定や予測を行うことです。すでにさまざまな機械学習の方法が開発されています。本書では、そうした方法について背景にある理論や特徴を解説した上で、Pythonプログラミングによる実装法を説明していきます。初期の機械学習アルゴリズムから取り上げ、終盤ではディープラーニングについても見ていきます。機械学習の理論と実践についてバランスよく解説してあり、AIプログラミングの第一歩を踏み出すための格好の一冊です。
ニューラルネットワークは、動物の脳の神経細胞を数学的な計算によって表現できるようにした数学モデルです。本書ではニューラルネットワークを根本から知るために、数学的手法を学びつつ実際にPythonによってプログラムを作成してその挙動を確認します。Jupyter Notebookを使って機械学習の入門書として、ディープラーニングを学ぶのに役立ちます。
Chapter0 機械学習のススメ
Chapter1 開発環境の用意とPythonの基礎
Chapter2 パーセプトロンから多層パーセプトロンへ
Chapter3 ニューラルネットワーク
Chapter4 バックプロパゲーション(誤差逆伝播)
Chapter5 Pythonによるニューラルネットワークの実装
Chapter6 ディープラーニング
この本は、Pythonそのものを教えようとする本ではなく、特定のタスクに対応するための特定の概念やテクニックを(ときにトリックも)示したものである。収録したレシピは、初歩的で一般性の高いタスクから、高度、あるいは専門的なタスクまで、最上のテクニックを示している。あなたのPythonレベル、もっと一般的に言えばプログラミングスキルが、どの程度のものであるにせよ、この本から何らかの価値あるものを得ていただけると信じるものである。-Pythonコミュニティの英知を集めた実践的なコードを収録。Pythonを使いこなすための決定版。
「ビッグデータ」,「データサイエンティスト」,「AI」といった言葉がよく聞かれ,日々蓄積されるさまざまなデータの利活用が推進されている昨今,「機械学習」は,これらの言葉と切っても切れない存在となっている。
本書は,さまざまなデータから未来を予測する“回帰問題”や“分類問題”に焦点を当て,多くのPythonのコードとともに,機械学習の効率的なアルゴリズムを取り上げていく。アルゴリズムがどのように振る舞うかをプログラムから理解し,結果を適切に解釈できるよう,動作を理解するためのコードと,実践で利用する最適化されたコードの2種類を用意し,また無償で入手可能なデータセットに対してアルゴリズムを適用し,その実行結果から解釈の仕方に至るまでを丁寧に解説している。
実際に手を動かしながら読み進めていくことで,データ解析に必要な考え方を一通り身につけることができる,データ解析の入門書として格好の1冊となろう。
[原著名:Machine Learning in Python: Essential Techniques for Predictive Analysis]
マンデルブロ集合をPythonで描画する!
スクリプティング言語「Python」の普及が進み、最近は「主力のプログラミング言語」の1つになりました。特に「数式計算処理」や「機械学習」などのパッケージが充実してきたこともあり、多くの分野で「Python」を使ってプログラミングしています。本書はその中で、「科学技術計算」に使う、「数式処理」「グラフ作成」などの初歩的な項目をまとめたものです。一通り目を通せば、「配列の処理」「グラフの作成」「数式の処理」などの概要は把握できるはずです。
共通の課題を40の異なるプログラミングスタイルで提示!
レーモン・クノーの『文体練習』にインスパイアされて執筆された本書は、1つの課題を40の異なるプログラミングスタイルで実装する、というコンセプトに基づき、プログラムの書き方とさまざまなアルゴリズムの長所短所を含めた特性を解説します。伝統的なコンピュータサイエンスで取り上げられるスタイルはもちろん、並行性やニューラルネットワークなど、最近のトレンドもカバー。各プログラミングパラダイムについての理解を深めることができます。
古典的な問題と実世界の問題をリンクさせ、知識を広げる意欲作!
昔からあるアルゴリズムと、そのコーディングの理解を深めることによって、Pythonプログラミングのスキルを向上させようというコンセプトです。探索、クラスタリング、グラフ、といった、昔からある話題(幅優先探索、深さ優先探索、A*探索アルゴリズム、制約充足問題、グラフアルゴリズムによる問題の解決、ニューラルネットワーク、遺伝的アルゴリズムなど)を例に取り上げて、読者が抱える(アプリケーション、データ、性能といった)新しくて現実的な問題と、古典的な解決策をリンクさせることで、解いていきます。
脳の働きに注目し、脳を活性化させる学習効果の高い独自のスタイルで人気の高いHead Firstシリーズにプログラミング初心者向けバージョンが登場。
Pythonを使ったプログラミングの基本について、イラストや写真を多用して直感的な理解を促します。
やさしい切り口ながらも、データ型、データ構造、抽象化、再帰、モジュールなど、プログラミングの基本を段階的に学び、後半では複雑で大規模なアプリケーションの作成にも取り組みます。
認知科学と教育心理学に基づいたアプローチで、プログラミングのテクニックだけではなく、論理的思考やプログラミング的な考え方を、楽しみながら身に付けられるように工夫されています。
本書の主な内容:理論から実践へのスムーズな移行。本書で提供するソースコードとライブラリーによる完全トレードシステムの開発。いろいろなトレードシステムの長所と短所の評価。トレードステーション、トレーダーズスチューディオ、マルチチャート、エクセルなどのプラットフォームから最大限の力を引き出すためのアドバイスとプロからの助言。サンプルコード、キーワード、データアクセスを提供する便利な付録でアルゴリズム開発時間の短縮。
本書は、プログラミングの初心者が、Pythonという言語の世界を通して、楽しくプログラミングの基礎を学べるように構成されています。セミナー形式でレクチャーを受けるスタイルなので、一歩ずつ着実に理解を深めることができます。このセミナーの目標は、プログラミングの初心者がPythonを使って実用的なデータ処理ができるレベルに到達することです。手を動かして、ステップごとに結果を確認しつつ、考えながら学ぶというスタイルで進めていきます。特に第1章から第3章までは、初心者目線でていねいなやり取りを展開しています。第4章〜第7章では、主にPythonプログラミングの基本を解説します。この範囲を押さえればプログラミングの基礎的なスキルは出来上がり、いろいろな処理のためのソースを書いていくことができるでしょう。第8章〜第10章では、Pythonの特徴を活かしたアルゴリズムの実装など、実践的なプログラミングを通してコーディングの力を養います。最後に数学ライブラリを使ったデータ処理、グラフィックスとデータ可視化の基本テクニックを身につけることになります。
定番のマルチプラットフォーム向けエディタ「Visual Studio Code」の使い方を解説する書籍の改訂新版です。最新のVisual Studio Codeに全面対応するほか、リモート開発機能やGitHubとの連携とった解説も拡充し、さらにパワーアップした決定版です。
●第1部:Visual Studio Codeの基本
・第1章:インストールと初期設定 - Visual Studio Codeを使いはじめる
・第2章:画面構成と基本機能 - 直感的な画面に隠された多くの機能たち
・第3章:ビューとコマンドパレット - いろいろな情報を整理し、簡単に呼び出す
・第4章:Gitとの連携 - 基本操作から便利な拡張機能まで
・第5章:デバッグ機能 - さまざまな言語のデバッグを直感的なUIで行う
・第6章:そのほかの機能 - タスク、リント、スニペット、ターミナル
・第7章:リモート開発機能 - 開発環境と実行環境の差分を埋める新機能
・第8章:GitHub連携/GitHub Codespaces - GitHubと繋がった開発環境とワークフロー
・第9章:カスタマイズ - 柔軟な設定項目、ショートカットでより使いやすく
・第10章:拡張機能 - 導入、管理、おすすめの拡張機能
●第2部:実際の開発でVisual Studio Codeを使う
・第11章:GoでのWeb API開発 - 各種の開発支援ツールと連携した拡張機能
・第12章:TypeScriptでの開発 - デフォルトで使えるフロントエンド開発機能たち
・第13章:Pythonでの開発とDockerコンテナの利用 - Web API開発と環境分離テクニック
・第14章:プログラムの開発にとどまらない活用 - データ分析、ドキュメンテーション、構成管理
●第3部:拡張機能の開発とLanguage Server Protocol
・第15章:拡張機能開発の基本 - Visual Studio Codeの拡張ポリシーとひな形の作成
・第16章:実践・拡張機能開発 - テキスト編集、スニペット、リント、カラーテーマ
・第17章:自作の拡張機能を公開する - 広く使ってもらうために必要なさまざまな事項
・第18章:Language Server Protocol - エディター拡張のための次世代プロトコル
Pythonでデータサイエンスの理論と実践を学ぶ データサイエンスは、「データを科学的に扱う」学問分野です。近年、ICTの進展によって、センサやインターネットを通じて取得できるデータ量が爆発的に増加したこと、コンピュータの高性能化に伴ってこれまでできなかった大規模なデータ処理が可能となったことなどから注目されています。
本書は、データサイエンスの基礎となる統計分析からパターン認識(機械学習)、時系列データ分析、深層学習などを、Pythonを使って実際に分析しながら学ぶものです.
データの取り扱い、確率・統計の基礎といった基本的なところから、パターン認識、深層学習といった統計・機械学習手法、時々刻々と変化する時系列データの分析などの解説を行い、読者がデータサイエンスの一通りを俯瞰できるようになっています。
Pythonを使った解説によって理論と実践を同時に学ぶことができるので、データサイエンスを学び、自身の分野に応用したい方にピッタリの一冊です。
第2版にあたっては深層学習を大幅に拡充し、自然言語処理、生成系(AutoEncoder、GAN)などの近年重要視されるテーマを取り上げました。
1章 はじめに
2章 データの扱いと可視化
3章 確率の基礎
4章 統計の基礎
5章 回帰分析
6章 パターン認識
7章 時系列データ分析
8章 深層学習の基礎
9章 深層学習による画像処理
10章 深層学習による画像処理
11章 生成系深層学習
12章 深層強化学習
索引
スケーラビリティ,頑健性,セキュリティ,パフォーマンスが優れているアプリケーションをPythonで実現!
本書は,Pythonを用いたアプリケーション設計方法を様々な観点から解説します。ビジネス要求を満たす製品を構築するためには欠かすことのできない,保守性,再利用性,テスト容易性,スケーラビリティ,パフォーマンス,ユーザビリティ,セキュリティを取り上げ,読者が頑健かつ柔軟なソフトウェアの設計方法を理解することを目的としています。
またDevOpsや継続的インテグレーション,最適なオブジェクト指向の使用方法なども紹介しています。これらを理解することで,読者はビジネス規模が拡大しても耐え得る,スケーラブルなアプリケーション設計を構築できるようになるでしょう。
アプリケーション構築に欠かせない,各フレームワークのメリットなどにも焦点を当てており,これからアプリケーションを設計しなければならないエンジニアにとって価値の高い実践的な内容も含んでいます。特に第7,8章で解説されるデザインパターンとアーキテクチャパターンは,汎用的に使える知識であり,たとえPythonを使用しないエンジニアでも大きな恩恵を受けることができるでしょう。
本書で学ぶこと
ー 品質属性を正しく考慮したプログラムの実装
ー スケーラブルなWebアプリケーションの設計
ー Pythonの特徴を活かしたデザインパターン
ー テストツールを用いたパフォーマンスの最適化
ー Pythonアプリケーションをリモート環境やクラウドへデプロイ方法
ー Pythonのセキュアアーキテクチャアプリケーション
Pythonで機械学習に必要な統計解析を学べる!!
機械学習を使いこなすには、確率・統計に根ざしたデータ解析の基礎理論の理解が不可欠です。そこで本書は、Pythonの簡単な使い方から確率・統計の基礎、統計モデルによる機械学習を解説します。
第I部 Python による計算
第1章 Python の初歩
第2章 確率の計算
第II部 統計解析の基礎
第3章 機械学習の問題設定
第4章 統計的精度の評価
第5章 データの整理と特徴抽出
第6章 統計モデルによる学習
第7章 仮説検定
第III部 機械学習の方法
第8章 回帰分析の基礎
第9章 クラスタリング
第10章 サポートベクトルマシン
第11章 スパース学習
第12章 決定木とアンサンブル学習
第13章 ガウス過程モデル
第14章 密度比推定
付録A ベンチマークデータ
A.1 UCI Machine Learning Repository
A.2 mlbench
A.3 datasets
参考文献
Python索引
用語索引