Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
簡単な機械学習 / Python ML
Search
kaityo256
PRO
December 22, 2020
Education
2
2k
簡単な機械学習 / Python ML
プログラミング基礎同演習
kaityo256
PRO
December 22, 2020
Tweet
Share
More Decks by kaityo256
See All by kaityo256
デバッグの話 / Debugging for Beginners
kaityo256
PRO
9
1k
ビット演算の話 / Let's play with bit operations
kaityo256
PRO
4
280
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
15
5k
制限ボルツマンマシンの話 / Introduction of RBM
kaityo256
PRO
3
890
論文の読み方 / How to survey
kaityo256
PRO
220
160k
リンゴゲームと貧富の差 / Origin of the disparity of wealth
kaityo256
PRO
13
14k
渡辺研Slackの使い方 / Slack Local Rule
kaityo256
PRO
9
8.6k
時間の矢について / Time's arrow
kaityo256
PRO
12
17k
t-SNEをざっくりと理解 / Overview of t-SNE
kaityo256
PRO
2
1.4k
Other Decks in Education
See All in Education
The Gender Gap in the Technology Field and Efforts to Address It
codeforeveryone
0
270
Use Cases and Course Review - Lecture 8 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
790
(2024) Couper un gâteau... sans connaître le nombre de convives
mansuy
2
160
Library Prefects 2024-2025
cbtlibrary
0
120
Algo de fontes de alimentación
irocho
1
440
勉強する必要ある?
mineo_matsuya
2
2.3k
Informasi Program Coding Camp 2025 powered by DBS Foundation
codingcamp2025
0
120
Design Guidelines and Models - Lecture 5 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
720
Web Application Frameworks - Lecture 4 - Web Technologies (1019888BNR)
signer
PRO
0
2.6k
Flinga
matleenalaakso
2
13k
Mathematics used in cryptography around us
herumi
2
380
JavaScript - Lecture 6 - Web Technologies (1019888BNR)
signer
PRO
0
2.5k
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Docker and Python
trallard
42
3.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Practical Orchestrator
shlominoach
186
10k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
Unsuck your backbone
ammeep
669
57k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Transcript
1 簡単な機械学習 プログラミング基礎同演習 慶應義塾大学理工学部物理情報工学科 渡辺 2020/12/22
2 機械学習 • 機械学習とは • 過学習 • 回帰 • GAN
3 惑星の動きを観測する (大量のデータ) Ԧ = Ԧ モデル化 法則の抽出 (情報圧縮)
4 彗星の動きを予測できる (モデルが正しければ) Ԧ = Ԧ モデル計算 法則からスタート
5 惑星の動きを観測する (大量のデータ) なんらかのモデルを作る 彗星の動きを予測できる (モデルが正しければ) 情報圧縮
6 教師あり学習 (Supervised Learning) 教師なし学習 (Unsupervised Learning) 強化学習 (Reinforcement Learning)
「問題と解答のセット」を与えて学習させる方法 ・画像認識、家賃推定など データだけ与えて、データの分類を行う方法 ・売上データを解析し、一緒に売れそうな商品を推薦する等 エージェントの行動に適切に報酬を与えることで 最適な行動を学習させる方法 ・チェスや囲碁の思考ルーチンなど ネコ イヌ
7 分類問題 (classification) 入力に対して「ラベル」を推定する問題 ネコ イヌ 回帰問題 (regression) 入力に対して「値」を推定する問題 16万円
写真に写るものがネコか イヌか判定する 築年数、駅までの距離、 周辺施設などから家賃を 推定する 築年数: X年 駅から: 徒歩Y分 広さ: Z平米 近所にコンビニあり
8 荷重 x 伸び y バネの伸びと荷重の関係 とりあえずいろんな荷重に対して、伸びを測定してみる データセット 伸び 荷重
9 荷重xとバネの伸びyの 関係をたくさん測定する なんらかのモデルを作る 未知の荷重x’に対して、 正しい伸びy’を予測できる 情報圧縮 荷重 x 伸び
y 荷重 x’ 伸び y’
10 0 荷重 伸び 観測値 先程のデータセットをグラフにしてみる の関係が予想される 最小二乗法でaを決める モデルパラメータ
11 何が起きたか? 多数のデータセットから、モデルが決まった 情報が圧縮された このモデルは正しいか? どうすれば正しいと検証できるか?
12 データセット 訓練データ テストデータ モデルを決める モデルの予測性能を確認する データを2つのグループに分ける
13 0 入力 出力 訓練誤差 0 入力 出力 汎化誤差 訓練誤差
汎化誤差 訓練データとモデルとの誤差 テストデータとモデルとの誤差 訓練誤差が小さい =うまく学習できている 汎化誤差が小さい =モデルが予測能力を持つ
14 0 出力 入力 0 出力 入力 訓練データは完璧に再現するが… 訓練データ テストデータ
テストデータが全然合わない 0 出力 入力 訓練データに最適化され過ぎ、 予測性能を失うことを 過学習(Over fitting)と呼ぶ 実はこんな関数だった
15 荷重 x 伸び y モデル データ 荷重 x’ 伸び
y’ 予測 データ ネコ イヌ モデル モデルパラメータ:少数 最適化:最小二乗法 モデルパラメータ:多数 最適化:SGD, Adam, AdaGrad, etc. ネコ 予測
16 • 機械学習とは一種の情報圧縮 • 具体的にはパラメータの最適化 • 学習とは「訓練誤差」を減らす作業 • 目的は「汎化誤差」を減らす事 •
過学習とは「訓練データ」に最適化 され過ぎ、未知のデータへの予測能 力を失うこと
17 ※データは厚生労働省の平成30年賃金構造基本統計調査による 「年齢・学歴・企業規模」から「給与」を推定したい 学歴 中卒 高卒 高専・短大卒 大学・大学院卒 企業規模 小企業(従業員数〜99人)
中企業(従業員数〜999人) 大企業(従業員数1000人〜) 年齢 給与 「年齢・学歴・企業規模」を説明変数、「給与」を目的変数と呼ぶ
18 年齢と給与は強く相関していそう 「学歴」や「企業規模」はどのように取り込むか? = age age + age 係数の意味 毎年
円だけ給与があがる
19 →ラベルの変数化 企業規模が大きくなるほど給与が上がりそう size= 0 (小企業) 1 (中企業) 2 (大企業)
= age age + size size + 企業規模が給与に与える影響
20 = age age + size size + size= 0
(小企業) 1 (中企業) 2 (大企業) 係数の意味 小企業勤務に比べ、中企業勤務は size 円 だけ給与が多い 小企業勤務に比べ、大企業勤務は 2size 円 だけ給与が多い 中企業勤務による給与増分は、大企業と小企業の 中間であると仮定していることに 小→中→大の給与の増分は独立に扱いたい
21 「小規模かどうか?」「中規模かどうか?」の変数を作る 小 = 1 (小企業勤務) 0 (それ以外) 中 =
1 (中企業勤務) 0 (それ以外) 大 = 1 (大企業勤務) 0 (それ以外) 小 中 大 ( ) , , このようなベクトルを作ると 小企業勤務= (1, 0, 0) 中企業勤務= (0, 1, 0) 大企業勤務= (0, 0, 1) ベクトルのうち、要素一つだけ1、それ以外は0 これをone-hot 表現と呼ぶ
22 = age age + + + + 小 小
中 中 大 大 One-hot表現による回帰 係数の意味 中 中企業勤務の人は、小企業勤務の人より − 小 円だけ給与が高い 大 大企業勤務の人は、小企業勤務の人より − 小 円だけ給与が高い 差しか意味を持たないが、ラベルの数だけ変数を作るのが楽 学歴も同様にone-hot表現を作る
23 課題の手順 • Pandasを使ってデータを読み込む • 大企業に務める人の給与を学歴別にプロット • ラベル変数からone-hot表現を作る • 年齢・企業規模・学歴について回帰分析
結果の解析 = age age + + + + 小 小 中 中 大 大 company_size_small company_size_middle company_size_large age 係数が上記のような名前で得られるので、その値について考察 学歴は education_[middle/high/tech/university]という名前に
24 偽造者 (Generator) 博物館 (Real Dataset) 鑑定者 (Discriminator) 提供されたデータが 本物か偽物か見分ける
ニセのデータを生成 本物のデータを提供
25 ランタイムのタイプから「ハードウェアアクセラレータ」としてGPUを選ぶ