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
シリーズAI入門:3. 計算機の仕組み
Search
FSCjJh3NeB
February 03, 2021
Education
0
100
シリーズAI入門:3. 計算機の仕組み
AIの作成に用いられることが多い,計算機の仕組みについて眺めます。
FSCjJh3NeB
February 03, 2021
Tweet
Share
More Decks by FSCjJh3NeB
See All by FSCjJh3NeB
シリーズAI入門:13b 生成AI
2hz9qeedd
1
150
Stats of bioRxiv (2021)
2hz9qeedd
0
85
シリーズAI入門:1. ガイダンス・AIの概要
2hz9qeedd
0
190
シリーズAI入門:2. AI研究の歴史
2hz9qeedd
0
240
シリーズAI入門:4. 人間の情報処理の仕組み
2hz9qeedd
0
220
シリーズAI入門:5. 第1次AIブーム 探索
2hz9qeedd
0
160
シリーズAI入門:6. 第2次AIブーム 知識ベース
2hz9qeedd
0
170
シリーズAI入門:7. 第3次AIブーム パタン認識
2hz9qeedd
0
290
シリーズAI入門:8.AIを巡るいくつかの問題
2hz9qeedd
0
160
Other Decks in Education
See All in Education
AI 時代軟體工程師的持續升級
mosky
1
2.2k
Adobe Express
matleenalaakso
1
7.7k
LinkedIn
matleenalaakso
0
3.5k
書を持って、自転車で町へ出よう
yuritaco
0
140
BrightonSEO, San Diego, CA 2024
mchowning
0
130
HCL Notes/Domino 14.5 EAP Drop1
harunakano
1
170
新人研修の課題と未来を考える
natsukokanda1225
0
1.3k
Unraveling JavaScript Prototypes
debug_mode
0
150
5 Things Every L&D Pro Should Steal from Marketing
tmiket
0
150
お仕事図鑑pitchトーク
tetsuyaooooo
0
2.3k
Monaca Education 活用事例セミナー:「年間通してMonaca Educationを活用する授業実践のご報告」
asial_edu
0
120
Zero to Hero
takesection
0
160
Featured
See All Featured
Six Lessons from altMBA
skipperchong
27
3.6k
How GitHub (no longer) Works
holman
314
140k
Making Projects Easy
brettharned
116
6k
The Invisible Side of Design
smashingmag
299
50k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
10
500
How to train your dragon (web standard)
notwaldorf
91
5.9k
KATA
mclloyd
29
14k
Building Applications with DynamoDB
mza
93
6.2k
Transcript
コンピューターの基礎 シリーズAI入門 © FSCjJh3NeB 2021 (※ 但し画像を除く)
n AIは計算機で作成されることが多い u 計算機ができたことで,AI研究が盛り上がった u 計算機はそもそもどんなもの? p 計算機はどういう仕組みでできている? p 計算機はどういう仕組みで計算している?
p (なんで,それで知能ができるの???) 2
日用品過ぎて謎の存在コンピュータ n Computer? u Compute=“計算する”を意味する動詞が元 p 我々が今,一般にいう「コンピュータ」登場以前は 計算を行う人を指して「 Computer」と呼称 u
この講義では計算機とコンピュータを同義で呼称 u 実は「コンピュータ」は「そろばん」とほぼ同じ 3
映画:Hidden Figures n マーキュリー計画に参加し た Computer(右の3人の女性) が主人公の映画 u 日本題:ドリーム u
半分以上は実話 u 初期のプログラミング言語 FORTRAN の話も出てくる 4 ※ マーキュリー計画:1958年〜1963年 IBM 7090 は 1959年に完成,導入 本作品で主人公(ポスター真ん中)として取り上げられた キャサリン・ジョンソン博士は2020年2月に101歳で逝去
IT, ICT n IT u Information Technology u 情報技術 n
ICT u Information/Communication Technology u 情報通信技術 5
情報処理と情報通信 n 情報通信:入力=出力 n 情報処理:入力 = 出力 / 6
コンピュータの基礎構成要素 n 基本は3種類:入力・演算(処理)・出力 f(x) 入力 演算 出力 7
コンピュータの基礎構成要素 n 基本は3種類:入力・演算(処理)・出力 入力 演算 出力 8
コンピュータの基礎構成要素 n 演算部分が本体 u パソコンを買うときによく聞く単語=重要な要素 G PU メモリ CPU HDD/SSD
GPU データを記録 データを処理 9
コンピュータの基礎構成要素 n ハードウェアを制御するためにはソフトウェアも G PU BIOS OS アプリ アプリ ミドルウェア
ミドルウェア 10
コンピュータの基礎構成要素 n ハードウェアを制御するためにはソフトウェアも G PU BIOS OS アプリ ミドルウェア ソフトウェア
ハードウェア 11
n “計算”は文明の構築に不可欠な要素 u 暦の策定,建造物(ex.ピラミッド)の構築,などなど u 補助ツールとしての計算機もいろいろ 計算機色々 砂そろばん (メソポタミア?) 千
百 十 一 算木 (中国?) 計算尺 ※ Description: Calculator Triumphator CRN1 build 1958 in Germany (DDR) * Source: made by author * Date: 2006-02-12 * Author: Hannes Grobe 手回し式計算機※ 12
コンピュータの計算原理 n 実は「コンピュータ」は「そろばん」とほぼ同じ 13
コンピュータの計算原理 n 電磁リレー u 電磁石を使って,回路をON・OFF n 真空管 u 電気的に,電気のON・OFFを制御 n
トランジスタ u 真空管をもっと進化させたようなイメージ 「そろばん」の“珠”を,スイッチで表現 14
スイッチの原理 n リレー回路の場合は単純な電磁石の仕組み u 電気を通すと,磁石の力でスイッチON u 電気を止めると,磁力が消えてスイッチOFF × 15
スイッチの原理 種別 速度 安定性 作りやすさ 電磁リレー とても遅い すぐ壊れる 簡単 真空管
遅い すぐ壊れる すこし難しい トランジスタ 早い まず壊れない 非常に難しい 16
最古の(電子式)コンピュータ…? n 定義によるが,多くの場合… u ABC:Atanasoff-Berry Computer u ENIAC: Electronic Numerical
Integrator and Computer 時期的には1940年代,第2次世界大戦中に開発 ENIACは特に,弾道計算を目的に作成された 17
余談:類するもの n Enigma,Bombe,COLOSSUS u ABC,ENIACと同時期に作成された計算機 u 暗号生成・解析用 ※ A rebuild
of a British Bombe located at Bletchley Park museum. Photographer: User:Tom Yates Enigma Colossus Mark-I Bombe※ これらは特定の暗号生成・解析しかできず,さらにEnigmaはほぼ機械式 18
ポイント n この時代のコンピュータは,ハードウェア的に プログラムを作成するものが多い u 「4+8」を計算させるとして,回路上の線などを 物理的に差し替えることで実行 n ただし,基本的な原理は現在も変わらず u
大まかには,小型化&高速化したもの 情報空間=「仮想世界」,物理空間=「現実世界」??? 小型化・ブラックボックス化により 現実感がないが,当然,物理的な動きに根ざす 19
ABC vs. ENIAC n 書籍やWebサイトにより「世界最初の電子式コン ピュータ」や,その成立年には揺らぎ… u 定義の仕方により見解が分かれる u 多くの場合でABCもしくはENIACがあげられ,後者が主
流 n 成立年の揺らぎについて(※トリビア) u どの論文・特許・レポートなどを用いるかによる n ABCとENIACの揺らぎ u 「電子式コンピュータ」の定義等による 20
ABC vs. ENIAC n ABC u 二進法によるデータ表現 u 機械的なデバイス(歯車や機械的スイッチ)を用いず, 電子的に計算を実行
u 計算をする部分とデータを保持する部分メモリを分離 u 非プログラム内蔵方式 u 連立一次方程式を解く機能のみを実現 n ENIAC u 10進法によるデータ表現 u 機械的なデバイス(歯車や機械的スイッチ)を用いず, 電子的に計算を実行 u 計算をする部分とデータを保持する部分メモリを分離 u プログラム内蔵方式(後になってから) p チューリング完全(ここでは様々な計算問題を解ける…位でOK) 21
この時代のコンピュータの基礎構成要素 メモリ (計算用回路) 出力 電気を貯める 電気を流す・止める 光る 22 Central Processing
Unit
この時代のコンピュータの基礎構成要素 n CPU,メモリ,などはすごそうだ(実際スゴイ)が, 基本的には下のような回路のちょっとスゴイ版 電池 スイッチ ×電球 23
プログラム内蔵方式 n メモリ上にプログラムを読み込み,実行する u <-> ワイヤードプログラム方式 p 回路上で,線(ワイヤー)を繋いでプログラムを表現する 24 ENIACの操作風景
ケーブルを抜き差ししている
当時におけるコンピュータの評価 n コンピュータは全世界で5台ぐらいしか売れないと思う トーマス・J・ワトソン( IBM創業者 )?(1943年?) ※ ※ 実際にはそんなことは言っていないと言う説がかなり優勢 電卓と同様かつ手のかかるもので,
多くの人にとっては全く縁のないものだった 25
最初期の汎用コンピュータ&ハードディスク n UNIVAC-I (1951) n IBM 305 RAMAC (1956) 最初期のコンピュータ
ENIAC 完成が おおよそ1946年 汎用電子デジタルコンピュータは,その5年後に ENIAC のエンジニアらが設計 汎用のハードディスクは,さらに5年後の 1956年 (ダートマス会議も同年) ※厳密には305に搭載された350ユニット 26
現代のコンピュータの基礎構成要素 メモリ (計算用回路) 入出力 電気を貯める 電気を流す・止める 光る 27 Central Processing
Unit
メモリ 現代のコンピュータの基礎構成要素 I/O バス レジスタ CPU 28
そろばんの計算方法(数字の表し方) 2 6 5 1〜4 5 29
そろばんの計算方法(足し算) 265+ 111 = ? 30
そろばんの計算方法(足し算) 3+ 5 = ? 31
そろばんの計算方法(足し算) 3+ 6 = ? 32
そろばんの計算方法(足し算) 3+ 7 = ? 33
そろばんの計算方法(足し算) n 玉の位置で数値を表現 n 各列が桁(1, 10, 100, 1000…)に対応 n 玉が動かせなくなったら(各列で9以上になった
ら)その分を上の桁に繰り越し 引き算は逆の操作 かけ算は足し算の繰り返しでもOK 電気的にできたら高速にできるかも? 34
コンピュータの計算原理 n 「そろばん」で言う,玉の位置を電気的に保持し, 計算を実現 n 電気のあり・なし(ON/OFF)で表現 u 1桁あたり玉が一つの「そろばん」を考えると良い OFF/0 OFF/0
ON/1 35
デジタル計算機 n デジタル -> digital ------> digit -> 桁 砂そろばん
(メソポタミア?) 千 百 十 一 算木 (中国?) 計算尺 ※ Description: Calculator Triumphator CRN1 build 1958 in Germany (DDR) * Source: made by author * Date: 2006-02-12 * Author: Hannes Grobe 手回し式計算機※ 石や棒などの独立したモノで 何らかの数値を表すタイプ 明確な切れ目がない,定規のようなタイプ デジタル アナログ 36
n 離散値(デジタル)と連続値(アナログ) u 離散値:デジタル (カクカクしてる) u 連続値:アナログ (なめらか) デジタルとアナログ 37
コンピュータの計算原理 n 電磁リレー u 電磁石を使って,回路をON・OFF n 真空管 u 電気的に,電気のON・OFFを制御 n
トランジスタ u 真空管をもっと進化させたようなイメージ 「そろばん」の“珠”を,スイッチで表現 38
スイッチの原理 種別 速度 安定性 作りやすさ 電磁リレー とても遅い すぐ壊れる 簡単 真空管
遅い すぐ壊れる すこし難しい トランジスタ 早い まず壊れない 非常に難しい 動く・熱が出る=壊れやすい …と,考えればOK! 39
回路用記号(一部) 抵抗 スイッチ (ON/OFF) スイッチ (プッシュ) LED 交差 (接触なし) グラウンド
結線 スイッチ (トランジスタ) 40
トランジスタ n とりあえずここでは「半導体」を使ったスイッチ n 電気でON/OFFを制御 N型:普段はOFF 制御線に電気を流すとON P型:普段はON 制御線に電気を流すとOFF IN
OUT IN OUT GATE GATE 41
n 計算のためには電気回路で論理演算を実現する必要 n 論理演算(Logical Operation) u ブール演算(Boolean Operation)とも u 1(真)か0(偽)かの2通りの入力値に対して1つの値を出力
する演算 u AND,OR,NOT の3種類ができればOK 42
AND I1 I2 O 0 0 0 0 1 0
1 0 0 1 1 1 I1 I2 O 43
OR I1 I2 O 0 0 0 0 1 1
1 0 1 1 1 1 I1 I2 O 44
NOT I O 0 1 1 0 I O ※
LEDの記号との混乱に注意 45
NOT AND (NAND) I1 I2 O 0 0 1 0
1 1 1 0 1 1 1 0 I1 I2 O 46
NOT OR (NOR) I1 I2 O 0 0 1 0
1 0 1 0 0 1 1 0 I1 I2 O 47
n 論理演算をそのまま電気回路で実現するのは なかなか困難なタスク… n 実際には,NAND,NOR,NOT を実現 u AND は NAND
の NOT u OR は NOR の NOT 48
NOT I O 0 1 1 0 I O Vh
I O 49
NOT AND (NAND) I1 I2 O 0 0 1 0
1 1 1 0 1 1 1 0 I1 I2 O Vh O I1 I2 50
NOT OR (NOR) I1 I2 O 0 0 1 0
1 0 1 0 0 1 1 0 I1 I2 O Vh O I1 I2 51
2進数における 1bit の演算 n 入力は,IA,B の2つ n 結果の最大値は,10進数での 2,2進数の10 u
出力が2桁なので,2つの線が必要 IA IB 0 0 0 1 1 0 1 1 O 0 1 1 2 O2 O1 0 0 0 1 0 1 1 0 1bit = 1桁 52
2進数における 1bit の演算 IA IB O1 O2 IA IB 0
0 0 1 1 0 1 1 O2 O1 0 0 0 1 0 1 1 0 53
XOR I1 I2 O 0 0 0 0 1 1
1 0 1 1 1 0 I1 O I2 00 1 01 1 10 1 11 0 00 0 01 1 10 1 11 1 I1 I2 O この回路で実現 54
2進数における n bit の演算 n n-1 n-2 … j …
1 0 IA IB O 0桁目があるので,これで n bit n bit 同士の足し算では,最大 n+1 bit j 桁目の出力を決める要因は…? IA,j , IB,j と (IA,j-1 + Ib,j-1 )の桁上がりの有無 55
2進数における 1bit 3入力 の演算 IA IB Ic 0 0 0
0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 O2 O1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 IA IC O1 O2 IB 下位の桁からの繰り上がり 56
2進数における 1bit 3入力 の演算 IA IC O1 O2 IB IA
IB O1 O2 IA IB O1 O2 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 57
2進数における N bit の演算 IA IB O1 O2 IA IB
O1 O2 IC IA IB O1 O2 IC IA IB O1 O2 IC IA,0 IB,0 IA,1 IB,1 IA,2 IB,2 IA,n-1 IB,n-1 … O0 O1 O2 On-1 On … 58
シークエンス回路 n 順序回路とも n 単純な論理回路だけでは状態が保持できない u 2入力の回路で,1+2+3 を実現するには… p 1+2
の結果(A)を求める p Aの状態をセットし,A+3の結果(B)を求める n 過去の状態も参考に,出力を決められる回路 n “遅延(Delay)”要素によって過去状態を保持 自動でセットしたい 59
シークエンス回路 論理回路 入力 出力 内部状態 次の 内部状態 D D D
遅延回路 60
シーケンス回路の構成要件 n 「出力を入力につなげば,前の状態を取り込める」 という発想自体は理解できる n 単純に,出力を入力に戻してOKか? u 「ラットレーシング」現象 p 入力と出力が区別できなくなりループしてしまう…
61
シーケンス回路の構成要件 n 入出力の対応を明確にするために, 何らかの「カウンタ」を持ち込んではどうか? u 状態1に対する出力を,状態2の入力に… n 「カウンタ」をどう実現? u 発振回路:一定の周期で電圧を上下させる仕組み
n 「カウンタ」に対応させた出力の入力をどう実現? u 遅延回路:カウンタに応じて前の状態を戻す仕組み 62
発振回路 n 水晶の圧電効果を用いるものが一般的 u 原理や回路についてはここでは省略 n 発振回路によって,特定の周波を得ることができ, これをクロック信号(カウンタ)に利用 t 1t
63
発振回路 n 実は発振回路は非常に身近 u CPUにおける重要な要素の一つ n これらの数値が発振回路のクロック周波数 u 1秒あたりのカウント回数( ≈
計算回数) 64
クロック周波数 n 1秒間に刻むクロックの数 n 動作周波数とも n 単位はHz(ヘルツ) u 1秒間に10回のクロックを刻む場合,10Hzと表現 n
このクロックを回路(コンピュータ)全体で 共有することで,同期をとる 65
遅延回路 n 単位遅延(1t分の遅延)で,出力を戻す回路 u n回単位遅延させることで,任意の時間の遅延も実現 φ1 φ2 t φ1 φ2
O I 一瞬だけ電気(電荷) を保持できる部品 キャパシタ (≈コンデンサ) パストランジスタ (スイッチの⼀種) 66
パストランジスタ n P型とN型のトランジスタを組み合わせた ( Complementary :C型 )のトランジスタ u ここではP型,N型の欠点を相補するスイッチ …といった程度の認識でOK
I O G G I O G 67
レジスタ n メモリ(データを保持する回路)の一種 u 先の遅延回路の応用の一種ともいえる n 特に“内部メモリ”として利用 I φ1 ・Wt
φ2 φ1 ・Wt φ1 ・Rd O 68