54
符号化と正規化 神成淳司研究室 特別講義 慶應義塾大学SFC研究所 所員(訪問) 小野 雄太郎 1 2010/5/24 神成淳司研究室 2010

神成淳司研究室 特別講義 - 符号化と正規化

Embed Size (px)

DESCRIPTION

2010/05/24に行った、神成淳司研究室 特別講義の資料です。

Citation preview

Page 1: 神成淳司研究室 特別講義 - 符号化と正規化

符号化と正規化

神成淳司研究室 特別講義

慶應義塾大学SFC研究所 所員(訪問)

小野 雄太郎

1 2010/5/24 神成淳司研究室 2010

Page 2: 神成淳司研究室 特別講義 - 符号化と正規化

AGENDA

2010/5/24 神成淳司研究室 2010 2

Page 3: 神成淳司研究室 特別講義 - 符号化と正規化

Agenda

• コンピュータにできること

• 符号化

• システムを形作る

• 正規化

• Logic

• 世界を単純化して見る

2010/5/24 神成淳司研究室 2010 3

Page 4: 神成淳司研究室 特別講義 - 符号化と正規化

コンピュータにできること Binary

2010/5/24 4 神成淳司研究室 2010

Page 5: 神成淳司研究室 特別講義 - 符号化と正規化

ON | OFF

• コンピュータは ON/OFF スイッチの集まり

– 電源を入れる -> スイッチがオンになる

– キーボードを押す -> スイッチがオンになる

– ネットワークの信号が届く -> スイッチがオンになる

2010/5/24 神成淳司研究室 2010 5

Page 6: 神成淳司研究室 特別講義 - 符号化と正規化

連鎖

• スイッチがオンになったら、ほかのスイッチがオンになるようにする

• ひとつの動作が、多くの動作を呼び出す

2010/5/24 神成淳司研究室 2010 6

Page 7: 神成淳司研究室 特別講義 - 符号化と正規化

スイッチ

• 押しボタン

– 押すと、電線がつながる (ON)

• 押しボタン 2

– 押すと、電線が離れる (OFF)

• 押さないと電気が流れている (ON)

• 電気が流れると、ほか電線がつながる

– リレー

– 真空管

– トランジスタ (半導体)

2010/5/24 神成淳司研究室 2010 7

Page 8: 神成淳司研究室 特別講義 - 符号化と正規化

リレー

• 電磁石を使ったスイッチ

– コイルに電気を流すと、磁石となってほかのスイッチを ON/OFF する

2010/5/24 神成淳司研究室 2010 8

Page 9: 神成淳司研究室 特別講義 - 符号化と正規化

リレーを見てみよう

2010/5/24 神成淳司研究室 2010 9

Page 10: 神成淳司研究室 特別講義 - 符号化と正規化

世界で最初の計算機

• Difference Engine

– 対数表を製作するために考えられた (1822年)

• 多項式を解くことができた

2010/5/24 神成淳司研究室 2010 10

Page 11: 神成淳司研究室 特別講義 - 符号化と正規化

ENIAC

• 世界で(ほぼ)最初の電気計算機 (1946年)

– 真空管を使った計算機

2010/5/24 神成淳司研究室 2010 11

Page 12: 神成淳司研究室 特別講義 - 符号化と正規化

その後の進化

• トランジスタ数は増え続けている

– Intel Core i7

• 11.7億トランジスタ

• 32nm(ナノメーター)間隔で製造

2010/5/24 神成淳司研究室 2010 12

Page 13: 神成淳司研究室 特別講義 - 符号化と正規化

符号化 Encode | Decode

2010/5/24 神成淳司研究室 2010 13

Page 14: 神成淳司研究室 特別講義 - 符号化と正規化

モールス符号

• ONとOFFを組み合わせて、文字を割り当てた

– 文字を ON/OFF のパターンとしてルール化

2010/5/24 神成淳司研究室 2010 14

Page 15: 神成淳司研究室 特別講義 - 符号化と正規化

文字コード

• 文字に番号を振った

– A = 0x41 (65)

– B = 0x42 (66)

– C = 0x43 (67)

– 0 = 0x30 (48)

– 1 = 0x31 (49)

– 改行 = 0x0A (10)

• コードの振り方に種類がある

– Shift JIS

– Unicode

2010/5/24 神成淳司研究室 2010 15

Page 16: 神成淳司研究室 特別講義 - 符号化と正規化

画像データ

• ひとつひとつの点を、数字に直した

– 光の三原色

• R

• G

• B

– 白

• 0xFFFFFF

– 赤

• 0xFF0000

2010/5/24 神成淳司研究室 2010 16

Page 17: 神成淳司研究室 特別講義 - 符号化と正規化

符号化とは

• ある事象を、ほかのモノとみなすためのルール – ルールの例

• 1 だったら... YES の答え

• 0 だったら... NO の答え

– 例: アンケート

• 1 だったら... 男性

• 0 だったら... 女性

– 例: 出欠

• 1 = 出席

• 0 = 欠席

• 2 = 遅刻

• 3 = 公欠

2010/5/24 神成淳司研究室 2010 17

Page 18: 神成淳司研究室 特別講義 - 符号化と正規化

エンコードとデコード

• エンコード (符号化) – ある事象・モノを特定のルールで数字にする処理

• 例: – YES -> 1

– NO -> 0

• デコード (復号化) – 符号化された数字を、元の意味に戻すこと

• 例: – 1 -> YES

– 0 -> NO

– エンコードしたときと同じルールを使って、符号化された数字を、元の意味に戻す

2010/5/24 神成淳司研究室 2010 18

Page 19: 神成淳司研究室 特別講義 - 符号化と正規化

システムを形作る 世界を符号で切り出す

2010/5/24 神成淳司研究室 2010 19

Page 20: 神成淳司研究室 特別講義 - 符号化と正規化

システムを設計する

• 現実世界を符号として切り取り、その符号に対して処理をする

– 数字を切り出す

– 文字を切り出す

– 画像を切り出す

2010/5/24 神成淳司研究室 2010 20

Page 21: 神成淳司研究室 特別講義 - 符号化と正規化

レシートから情報を抜き出す

2010/5/24 神成淳司研究室 2010 21

Page 22: 神成淳司研究室 特別講義 - 符号化と正規化

レシートから情報を抜き出す

• 日付

• 担当者名

• 商品名

• 商品の単価

• 商品の数量

• 商品の合計

• 買い物の小計

• 消費税

• 合計金額

2010/5/24 神成淳司研究室 2010 22

Page 23: 神成淳司研究室 特別講義 - 符号化と正規化

データの扱い

• データを抜き出して分類すると、処理がしやすくなる

– ある日の売り上げを集計したい

• 抜き出した日付を調べて、その日の合計金額をすべて足せばよい

– ある商品が何個売れたかを調べたい

• 商品名を調べて、売れた商品の数量をすべて足せばよい

2010/5/24 神成淳司研究室 2010 23

Page 24: 神成淳司研究室 特別講義 - 符号化と正規化

データの関連付け (1)

• あるデータと、あるデータをくっつける方法を考える

– 性別と年代

• コンビニのレジには、性別と年代を登録するボタンがついている

– どんな人が買っているかを データから分析できる

2010/5/24 神成淳司研究室 2010 24

Page 25: 神成淳司研究室 特別講義 - 符号化と正規化

データの関連付け (2)

• ひとつのデータを中心に、いろいろなデータを紐づける

– ポイントカード

• ポイントカードを持っている人の個人情報(性別、年齢、職業等)と、売れたものをマッチングできる

– どんなに人が、どんな時に、何を買っているかがわかる

– 商品の企画や宣伝に活用している

2010/5/24 神成淳司研究室 2010 25

Page 26: 神成淳司研究室 特別講義 - 符号化と正規化

どんなデータをもっていますか?

• あるデータを中心に関連付けができますか?

• どんなデータを関連付けますか?

• 関連付けると、どんなことがわかりますか?

2010/5/24 神成淳司研究室 2010 26

Page 27: 神成淳司研究室 特別講義 - 符号化と正規化

正規化 Normalization

2010/5/24 神成淳司研究室 2010 27

Page 28: 神成淳司研究室 特別講義 - 符号化と正規化

データを記録する方法

• データを分解し、符号化した後、そのデータにアクセスしやすいように、記録する必要がある

• 重複したデータをたくさん持たないようにする必要がある

2010/5/24 神成淳司研究室 2010 28

Page 29: 神成淳司研究室 特別講義 - 符号化と正規化

正規化

• データを決まったルールで分解し整理すること

– ボイス・コッド正規系がデータベースで有名

• 例1 (これではどのデータが価格かわからない)

– 2005/5/23, シャンプー, 100円, 5個, 消費税25円

– 5/23, たまご, 1ダース, 200

– 10-05-24, たまご 200円, 1, 税別

• 例2 (データをひとつひとつ分解していく)

2010/5/24 神成淳司研究室 2010 29

販売日 商品名 価格 数量 単位 消費税

2010/5/23 シャンプー 100 5 個 25

2010/5/23 たまご 200 1 ダース 10

2010/5/24 たまご 200 1 ダース 10

Page 30: 神成淳司研究室 特別講義 - 符号化と正規化

正規化のルール (1)

• 複数の意味を持つデータを混載しない

– ひとつの列に複数の繰り返しを入れない

2010/5/24 神成淳司研究室 2010 30

販売日 商品名 価格 数量 単位 消費税

2010/5/23 シャンプーとたまご 100, 200 6 個 ダース

35

2010/5/24 たまご 200 1 ダース 10

販売番号 販売日 商品名 価格 数量 単位 消費税

1 2010/5/23 シャンプー 100 5 個 25

1 2010/5/13 たまご 200 1 ダース 10

2 2010/5/24 たまこ 200 1 ダース 10

Page 31: 神成淳司研究室 特別講義 - 符号化と正規化

正規化のルール (2)

• 商品が決まれば、価格も単位もわかる

– 毎回重複して記録する必要がない

2010/5/24 神成淳司研究室 2010 31

販売番号 販売日 商品名 価格 数量 単位 消費税

1 2010/5/23 シャンプー 100 5 個 25

1 2010/5/13 たまご 200 1 ダース 10

2 2010/5/24 たまご 200 1 ダース 10

販売番号 販売日 商品ID 数量

1 2010/5/23 1001 5

1 2010/5/13 1002 1

2 2010/5/24 1002 1

商品ID 商品名 価格 単位 消費税

1001 シャンプー 100 個 25

1002 たまご 200 ダース 10

Page 32: 神成淳司研究室 特別講義 - 符号化と正規化

正規化の効用

• 集計するときに、正確にデータを特定できる

– たまごの販売数を知りたい

1. たまごの商品IDは “1002”

2. 商品IDが “1002” の販売データを探す

3. 見つかった販売データの数量を合計する

2010/5/24 神成淳司研究室 2010 32

販売番号 販売日 商品ID 数量

1 2010/5/23 1001 5

1 2010/5/13 1002 1

2 2010/5/24 1002 1

商品ID 商品名 価格 単位 消費税

1001 シャンプー 100 個 25

1002 たまご 200 ダース 10

Page 33: 神成淳司研究室 特別講義 - 符号化と正規化

LOGIC 処理を組み立てる

2010/5/24 神成淳司研究室 2010 33

Page 34: 神成淳司研究室 特別講義 - 符号化と正規化

データ処理ロジック

• コンピュータは、

– あるデータの集合に対し

– 特定のロジックにしたがって

– 繰り返し

– 処理を行う

• ことが、基本的動作

2010/5/24 神成淳司研究室 2010 34

Page 35: 神成淳司研究室 特別講義 - 符号化と正規化

足し算

• もっとも基本的なロジック

– ある数字とある数字を足して、答を得る

• 1 + 1 = 2

• 10 + 10 + 10 = 30

– 引き算

• 10 + (-2) = 8

– 掛け算

• 2 + 2 + 2 + 2 + 2 = 10 (2*5)

2010/5/24 神成淳司研究室 2010 35

Page 36: 神成淳司研究室 特別講義 - 符号化と正規化

繰り返し

• 複雑なことを、単純化する – コンピュータは、

• とてつもないスピードで

• 単純な作業を

• 繰り返し行って

• 処理の結果を得る

– ことで、複雑な処理を実現している

• 掛け算 – 足し算を、ひたすら繰り返す

• データの関連付け – IDを繰り返し調べて、関連したデータを取り出す

2010/5/24 神成淳司研究室 2010 36

Page 37: 神成淳司研究室 特別講義 - 符号化と正規化

比較

• あるデータが、対象とするデータと同じかどうかを調べる

– 比較の結果を、ほかの処理で活用する

– 比較の結果で、処理内容を切り替える

2010/5/24 神成淳司研究室 2010 37

Page 38: 神成淳司研究室 特別講義 - 符号化と正規化

疑似ロジック

たまごの合計販売数を調べる

1. レシートを1つ選ぶ

2. 購入商品の一覧を調べる

3. 商品が ”たまご” だった場合 (比較) 1. 数量を調べる

2. 販売合計数に、調べた数量を足す (足し算)

4. まだ調べていない購入製品がある場合 (比較) 1. (2)に戻る (繰り返し)

5. まだ調べていないレシートがある場合 (比較) 1. (1)に戻る (繰り返し)

6. 合計販売数を表示する

2010/5/24 神成淳司研究室 2010 38

Page 39: 神成淳司研究室 特別講義 - 符号化と正規化

データを処理する

• 仕事を単純な流れに分解することで、自動化することができる

2010/5/24 神成淳司研究室 2010 39

メール受信 旅行中

不在通知メール自動返信

メールボックスに保存

大切な人

携帯メールに転送

YES

NO

YES

NO

Page 40: 神成淳司研究室 特別講義 - 符号化と正規化

世界を単純化して見る Rule and Design

2010/5/24 神成淳司研究室 2010 40

Page 41: 神成淳司研究室 特別講義 - 符号化と正規化

繰り返し起こることを単純化する

• 毎月、毎週、毎日、毎時、毎秒、繰り返し起こり、作業をすることを見つけ出し、その作業を単純化することで、システムを作ることができる

– 毎月売り上げを集計するシステム

• 毎週の売り上げを集計する

– 毎日の売り上げを集計する

» レジごとの売り上げを集計する

• お客様毎の売り上げを集計する

• 商品ごとの合計を集計する

2010/5/24 神成淳司研究室 2010 41

Page 42: 神成淳司研究室 特別講義 - 符号化と正規化

複雑なデータを正規化し単純化

• さまざまに表現できる事象を符号としてデータを単純化し、そのデータを正規化してあらわすことで、同じ事象を同じデータとして表現できる

– データの種類(内容)を明確化する

– データの重複を排除する

2010/5/24 神成淳司研究室 2010 42

販売番号 販売日 商品ID 数量

1 2010/5/23 1001 5

1 2010/5/13 1002 1

2 2010/5/24 1002 1

商品ID 商品名 価格 単位 消費税

1001 シャンプー 100 個 25

1002 たまご 200 ダース 10

Page 43: 神成淳司研究室 特別講義 - 符号化と正規化

単純なデータから情報を紡ぎだす

• あるデータと、ほかのデータを、ある関係性を持って結合すると、データから新しい情報が生まれる

– どこから、どこにいって、 何を買って、いつ帰ったか

2010/5/24 神成淳司研究室 2010 43

Page 44: 神成淳司研究室 特別講義 - 符号化と正規化

システム化を提案してください

2010/5/24 神成淳司研究室 2010 44

Page 45: 神成淳司研究室 特別講義 - 符号化と正規化

ポイント

1. どのようなデータを使いますか?

2. データにどのような情報が含まれていますか?

3. データをどのように符号化/正規化しますか?

4. 複数のデータをどうやって関連付けますか?

5. 処理を行うと得られる結果はなんですか?

2010/5/24 神成淳司研究室 2010 45

Page 46: 神成淳司研究室 特別講義 - 符号化と正規化

提案例

Q. 処理を行うと得られる結果はなんですか?

A. iPodで再生した音楽の情報と、運動での消費カロリーを関連付け、一番カロリーを消費できる音楽を見つける

2010/5/24 神成淳司研究室 2010 46

Page 47: 神成淳司研究室 特別講義 - 符号化と正規化

提案例

• どのようなデータを使いますか?

– iPodで再生した音楽の情報

– 万歩計の情報

• データにはどのような情報が含まれていますか?

– iPodで再生した音楽の情報

• 音楽を再生した時間

• 再生した音楽の名前

• 再生した音楽のアーティスト

– 万歩計の情報

• 記録した時間

• 歩数

2010/5/24 神成淳司研究室 2010 47

Page 48: 神成淳司研究室 特別講義 - 符号化と正規化

提案例

• データをどのように符号化/正規化しますか? – 再生した音楽の情報

• 1分ごとに、再生している音楽の情報を記録する

– 万歩計

• 1秒ごとに、動きがあったかを記録する – 1 = 動きがあった

– 0 = 動きがなかった

2010/5/24 神成淳司研究室 2010 48

時間 楽曲名 アーティスト

11:00 compass 川島あい

11:01 masquerade TRF

11:02 Not Too Late Norah Jones

11:03 君と歩いた季節 いきものがかり

11:04 チェリー SOTTE BOSSE

11:05 君がいるだけで SOTTE BOSSE

11:06 旅立ちの日に 川島あい

11:07 Don't Know Why Norah Jones

11:08 愛のカケラ Every Little Thing

記録秒数 カウント

11:00:00 1

11:00:01 0

11:00:02 1

11:00:03 1

11:00:04 0

11:00:05 1

… …

11:02:45 0

11:02:46 1

Page 49: 神成淳司研究室 特別講義 - 符号化と正規化

提案例

• 複数のデータをどうやって関連付けますか?

– 1分ごとの情報に集計する

2010/5/24 神成淳司研究室 2010 49

時間 記録秒数 カウント

11:00 11:00:00 1

11:00 11:00:01 0

11:00 11:00:02 1

11:00 11:00:03 1

11:00 11:00:04 0

11:00 11:00:05 1

… … …

11:02 11:02:45 0

11:02 11:02:46 1

時間 歩数

11:00 60

11:01 75

11:02 55

11:03 69

11:04 61

11:05 72

11:06 60

11:07 66

11:08 71

時間 楽曲名 アーティスト

11:00 compass 川島あい

11:01 masquerade TRF

11:02 Not Too Late Norah Jones

11:03 君と歩いた季節 いきものがかり

11:04 チェリー SOTTE BOSSE

11:05 君がいるだけで SOTTE BOSSE

11:06 旅立ちの日に 川島あい

11:07 Don't Know Why Norah Jones

11:08 愛のカケラ Every Little Thing

時間

11:00

11:01

11:02

11:03

11:04

11:05

11:06

11:07

11:08

Page 50: 神成淳司研究室 特別講義 - 符号化と正規化

提案例

• 処理を行うと得られる結果はなんですか? – iPodで再生した音楽の情報と、運動での消費カロリーを関

連付け、一番カロリーを消費できる音楽を見つける

• アーティストごとに歩数を合計し、平均を計算する

• このデータを使って、さらに処理できるは? – 消費したいカロリーから、曲リストを作る

2010/5/24 神成淳司研究室 2010 50

時間 楽曲名 アーティスト 歩数

11:00 compass 川島あい 60

11:01 masquerade TRF 75

11:02 Not Too Late Norah Jones 55

11:03 君と歩いた季節 いきものがかり 69

11:04 チェリー SOTTE BOSSE 61

11:05 君がいるだけで SOTTE BOSSE 72

11:06 旅立ちの日に 川島あい 60

11:07 Don't Know Why Norah Jones 66

11:08 愛のカケラ Every Little Thing 71

アーティスト 平均歩数

TRF 75

Every Little Thing 71

いきものがかり 69

SOTTE BOSSE 66.5

Norah Jones 60.5

川島あい 60

Page 51: 神成淳司研究室 特別講義 - 符号化と正規化

APPENDIX

2010/5/24 神成淳司研究室 2010 51

Page 52: 神成淳司研究室 特別講義 - 符号化と正規化

参考資料

• モールス符号 – http://www.tele.soumu.go.jp/kids/break/break1.htm

• 文字コード – http://www.kanzaki.com/docs/jcode.html

– http://mikeneko.creator.club.ne.jp/~lab/kcode/index.html

– http://www.watch.impress.co.jp/internet/www/column/ogata/index.htm

• データの正規化 – http://www.annyys.net/html/kihon_002.htm

– http://www.atmarkit.co.jp/fdb/rensai/db_enginer03/db_enginer03_1.html

• CPUの仕組み (Intel ミュージアム) – http://www.intel.co.jp/jp/intel/museum/index.htm

2010/5/24 神成淳司研究室 2010 52

Page 53: 神成淳司研究室 特別講義 - 符号化と正規化

参考書籍

• CODE コードから見たコンピュータのからくり

– ISBN: 4891003383

– http://www.amazon.co.jp/dp/4891003383

• CPUの創りかた

– ISBN: 4839909865

– http://www.amazon.co.jp/dp/4839909865

2010/5/24 神成淳司研究室 2010 53

Page 54: 神成淳司研究室 特別講義 - 符号化と正規化

プログラミング環境

• Small Basic 日本語版 – http://www.atmarkit.co.jp/fdotnet/chushin/smallbasic_01/smallbasic_01_01.html

– http://blogs.msdn.com/myamada/archive/tags/Small+Basic/default.aspx

– http://www.atmarkit.co.jp/fdotnet/vblab/smallbasic/smallbasic_01.html

2010/5/24 神成淳司研究室 2010 54