SlideShare a Scribd company logo
1 of 31
Python
機械学習プログラミング
第1章: 「データから学習する能力」をコンピュータに与える
輪講について
 各章2人1組
 2人で1章 or 半分ずつ役割分担 は自由
 各章2回くらいを目処に検討中
第2章は,Deep Learningの根幹の話なので,少し難易度が上がるため
進学希望者が担当することをオススメ
順番は, 4 → 5 → 6 → 2 章
 1/17から 水曜2限を予定
発表内容
 優先順位
 理論解説
グラフ,数式等の解説
 ソースコード解説
スライドでも,エディタでの説明でも可
GitHubにコードがあるのでそれを活用
理論 >>> ソースコード
X1
X2
第1章の内容
 機械学習の一般的概念
 3種類の学習と基本用語
 機械学習システムをうまく設計するための構成要素
 データ解析と機械学習のためのPythonのインストールとセットアップ
機械学習の一般概念
 20世紀後半,機械学習は人工知能の1分野として発展
 自己学習アルゴリズムによって,予測を行うためのモデルを構築
 主な使用例
 メールスパムフィルタ (Gmail)
 文字/音声認識ソフトウェア (Siri)
 Web検索エンジン (Google)
ゲームAI (AlphaGo)
Data Model 予測
3種類の機械学習
 本書では以下の3種類の機械学習に関して解説
 教師あり学習(supervised learning)
 教師なし学習(unsupervised learning)
 強化学習 (reinforcement learning)
教師あり学習
Supervised learning
“教師あり学習”による未来予測
 教師あり学習
 ラベルのついたトレーニングデータを基にモデルを構築
 将来や未知のデータを予測
 スパムメールの場合
トレーニング
データ
ラベル
予測モデル 予測未知のデータ
機械学習アルゴリズム
2つの教師あり学習
教師あり学習は,大きく分けて2つ
 分類 (classification)
 離散値の予測を返すモデル
 例 : スパムメールか非スパムメール
 回帰 (regression)
 連続値の予測を返すモデル
 例 : 勉強時間とテストの点数の関係
分類 (classification)
 離散的な分類予測
予測モデル
5 0 4 1
未知のデータ
2
何の数字か予測
学習データ
分類 (classification)
 2クラス分類
陽性クラス
陰性クラス
決定境界 機械学習により求める
新しいデータを
決定境界に基づいて
分類する
回帰 (regression)
 回帰分析 (regression analysis)
 連続値の予測
 複数の予測変数(訓練データ) と 応答変数(教師ラベル) で予測モデルを作成
 予測 : 予測に使用する変数 → 説明変数 X,予測したい変数 → 結果変数 Y
 線形回帰の予測 : 学習時間とテストの点数との関係
X : 学習時間
Y : 点数 回帰直線
推定 : 新たな生徒
学習時間 : 5時間
予測点数 : 64点
回帰モデル
強化学習 (reinforcement learning)
 目標 : 環境に応じて自動で性能を改善するシステム (エージェント)
 環境に応じた教師ラベル(報酬)を自動で付与
 このため,強化学習は教師あり学習に属する
 フィードバックはラベルや値ではなく,報酬関数でモデルの評価を数値化したものを
用いる
 例 : チェスエンジン
環境
行動
報酬
状態
環境 : チェス盤の盤面
行動 : 次の一手
報酬 : “勝ち” “負け”
教師なし学習
Unsupervised learning
“教師なし学習”による隠れた構造の発見
 教師あり学習 → 正解・報酬の算出が定義されてる
 教師ラベルのない,構造が不明なデータから知見を取り出す
 結果変数や報酬関数が不要
 データの構造を調べることで意味のある知見を取り出す
教師なし学習
クラスタリングによるグループの発見
 クラスタリング(clustering)
X1
X2
X1
X2
特徴量の類似性を基に,データをグルーピング
特徴量 : X1, X2
例 : [緯度, 経度]による位置情報クラスタリング
RGBによる画像のクラスタリング
データ圧縮のための次元削減
 データの次元 : 各データを表す要素数(ベクトル数)
高次元のデータの場合・・・
 特徴の次元が増えるのに対して計算処理が指数関数的に上昇(次元の呪い)
 計算機の性能や機械学習アルゴリズムにも限界
画像(RGB) : 次元3の特徴 位置情報(緯度,経度) : 次元2の特徴
教師なし次元削減
教師なし次元削減
 特徴量の前処理に使うアプローチ
 データからノイズを除去,関連する大半の情報を維持して,特徴の次元数を削減
 ノイズがあると,性能が低下する学習アルゴリズムもある
 データの可視化にも有効
3次元 2次元
次元が低下
データが見やすく
分類しやすい
基本用語と表記法
基本用語
 例 : Irisデータセット(アヤメの花の計測データ)
長さ (花びら) 幅 ( 花びら ) 長さ ( 根 ) 幅 ( 根 ) クラスラベル
1 5.1 3.5 1.4 0.2 Setosa
2 6.4 3.5 4.5 1.2 Versicolor
・・・ ・・・ ・・・ ・・・ ・・・ ・・・
150 5.9 3.0 5.0 1.8 Virginica
サンプル
(インスタンス)
特徴量
(属性,計測値)
線形代数での特徴表現
 行列での表現
長さ (花びら) 幅 ( 花びら ) 長さ ( 根 ) 幅 ( 根 ) クラスラベル
1 5.1 3.5 1.4 0.2 Setosa
2 6.4 3.5 4.5 1.2 Versicolor
・・・ ・・・ ・・・ ・・・ ・・・ ・・・
150 5.9 3.0 5.0 1.8 Virginica
x1 x2 x3
y1 y2 y3
⋮ ⋮ ⋮
z1 z 𝟐 z 𝟑
5.1 3.5 1.4
6.4 3.5 4.5
⋮ ⋮ ⋮
0.2
1.2
⋮
5.9 3.0 5.0 1.8
Irisデータセット
150サンプル & 4次元の特徴
150 × 4の行列 : X ∈ ℝ 𝟏𝟓𝟎×𝟒
と記述
機械学習システムを
構築するためのロードマップ
Roadmap
予測モデルに機械学習を使用
 ワークフロー
ラベル
生データ
トレーニング
データセット
テスト
データセット
学習
アルゴリズム
最終モデル 新しいデータ
ラベル前処理 学習 評価
予測
特徴抽出とスケーリング
特徴選択
次元削減
サンプリング
モデル選択
交差検証
性能指標
ハイパーパラメータ最適化
ラベル
前処理:データ整形
Data Preprocessing
データの前処理
 Irisのデータセットにおいて
 特徴 : 色,色調,花の明度,高さ,花の長さ・幅
 機械学習では,用いる特徴量の尺度を合わせる必要
 多くの場合,特徴量を[0, 1]の範囲に変換 (正規化)
 もしくは,平均0・分散1の標準正規分布に変換 (標準化)
 特徴量によっては,相関の高いものが重複する可能性
 次元削減が有効
 特徴空間の次元が減る → 必要な記憶域が削減,機械学習の高速化
予測モデルのトレーニングと選択
 最適な予測モデルの選定
 複数のアルゴリズムを比較 性能評価指標を選定
 よく用いる指標は,正解率 (正解数 / 全テスト数)
 現実のデータに性能の良いモデル
 モデルの汎化性能を推定する必要
 トレーニングデータの一部を検証データに分割 擬似的な未知のデータ
 ハイパーパラメータの最適化
ハイパーパラメータ : 学習前に値を決定しなければならないパラメータ (第6章)
モデルの評価と未知のインスタンスの予測
 汎化誤差
学習時に使用しなかったデータ(テストデータ)に対する予測値とデータの差
未知のデータに対する性能の評価
 特徴量の前処理に関する注意点
 特徴量のスケーリング,次元削減のパラメータは学習データからのみ算出
未知のデータにも同じパラメータを用いる必要がある
機械学習にPythonを使用する
Machine learning using Python
なぜPython?
 機械学習周りのライブラリが豊富
 Numpy : 行列演算ライブラリ
 Scipy : 科学計算ライブラリ
 Scikit-learn : 機械学習ライブラリ
 matplotlib : グラフ描画ライブラリ
 pandas : 高度なデータフレームワーク
Pythonライブラリ インストール
 本書の内容は,Python3.4.3以降が対象
 Anacondaを用いると,より簡単にインストールすることが可能
pip install <パッケージ名>
pip install <パッケージ名> --upgrade
パッケージのインストール
パッケージのアップデート
conda install <パッケージ名>
conda install <パッケージ名> --upgrade
パッケージのインストール
パッケージのアップデート
まとめ
 機械学習の種類
 教師あり学習 : 分類,回帰
 教師なし学習 : クラスタリング,次元削減
 強化学習
 機械学習のロードマップ
 データの前処理
 Pythonでの機械学習

More Related Content

Similar to [輪講] 第1章

Kerasで深層学習を実践する
Kerasで深層学習を実践するKerasで深層学習を実践する
Kerasで深層学習を実践するKazuaki Tanida
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門Daiyu Hatakeyama
 
Python 学習教材
Python 学習教材Python 学習教材
Python 学習教材Jun MITANI
 
最近のRのランダムフォレストパッケージ -ranger/Rborist-
最近のRのランダムフォレストパッケージ -ranger/Rborist-最近のRのランダムフォレストパッケージ -ranger/Rborist-
最近のRのランダムフォレストパッケージ -ranger/Rborist-Shintaro Fukushima
 
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]DeNA
 
はじめての人のためのDeep Learning
はじめての人のためのDeep Learningはじめての人のためのDeep Learning
はじめての人のためのDeep LearningTadaichiro Nakano
 
Pythonによる機械学習
Pythonによる機械学習Pythonによる機械学習
Pythonによる機械学習Kimikazu Kato
 
本の紹介「絵で見てわかるITインフラの仕組み」
本の紹介「絵で見てわかるITインフラの仕組み」本の紹介「絵で見てわかるITインフラの仕組み」
本の紹介「絵で見てわかるITインフラの仕組み」Takahiko Sato
 
オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用Ruo Ando
 
R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42Atsushi Hayakawa
 
Apache Spark チュートリアル
Apache Spark チュートリアルApache Spark チュートリアル
Apache Spark チュートリアルK Yamaguchi
 
Example of exiting legacy system
Example of exiting legacy systemExample of exiting legacy system
Example of exiting legacy systemTakamchiTanaka
 
Deeplearning bank marketing dataset
Deeplearning bank marketing datasetDeeplearning bank marketing dataset
Deeplearning bank marketing datasetTellSun
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章Haruki Eguchi
 
Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~Yasutomo Kawanishi
 
Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門cch-robo
 
Buffer overflow
Buffer overflowBuffer overflow
Buffer overflowionis111
 

Similar to [輪講] 第1章 (20)

Kerasで深層学習を実践する
Kerasで深層学習を実践するKerasで深層学習を実践する
Kerasで深層学習を実践する
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
 
Python 学習教材
Python 学習教材Python 学習教材
Python 学習教材
 
最近のRのランダムフォレストパッケージ -ranger/Rborist-
最近のRのランダムフォレストパッケージ -ranger/Rborist-最近のRのランダムフォレストパッケージ -ranger/Rborist-
最近のRのランダムフォレストパッケージ -ranger/Rborist-
 
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
 
Majan cnn
Majan cnnMajan cnn
Majan cnn
 
はじめての人のためのDeep Learning
はじめての人のためのDeep Learningはじめての人のためのDeep Learning
はじめての人のためのDeep Learning
 
Pythonによる機械学習
Pythonによる機械学習Pythonによる機械学習
Pythonによる機械学習
 
本の紹介「絵で見てわかるITインフラの仕組み」
本の紹介「絵で見てわかるITインフラの仕組み」本の紹介「絵で見てわかるITインフラの仕組み」
本の紹介「絵で見てわかるITインフラの仕組み」
 
オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用オペレーティングシステム 第1回-公開用
オペレーティングシステム 第1回-公開用
 
R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42R入門(dplyrでデータ加工)-TokyoR42
R入門(dplyrでデータ加工)-TokyoR42
 
Apache Spark チュートリアル
Apache Spark チュートリアルApache Spark チュートリアル
Apache Spark チュートリアル
 
Example of exiting legacy system
Example of exiting legacy systemExample of exiting legacy system
Example of exiting legacy system
 
Deeplearning bank marketing dataset
Deeplearning bank marketing datasetDeeplearning bank marketing dataset
Deeplearning bank marketing dataset
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章
 
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
 
Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~
 
Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 
Buffer overflow
Buffer overflowBuffer overflow
Buffer overflow
 

[輪講] 第1章

Editor's Notes

  1. トレーニングデータの詳細