東京工科大学 コンピュータサイエンス学部 担当:亀田弘之 コンピュータサイエンス概論2016 第4日目(5/9) 東京工科大学 コンピュータサイエンス学部 担当:亀田弘之
平成28年 東京工科大学コンピュータサイエンス学部 確認 授業計画 第1回:プログラミングの楽しさ (21世紀の忍法使いアイテム=プログラミング言語を知る) 第2回:コンピュータサイエンスと法・倫理(知的財産権,さまざまな事例紹介) 第3回:コンピュータサイエンスと知能研究・ゲーム研究 (人工知能・機械学習・脳科学・認知科学などの魅力を知る) 第4回:コンピュータと情報ネットワークの仕組み (コンピュータとネットワークの仕組み・原理の基礎を知る) 第5回:クラウドコンピューティング (ビッグデータ(オープンデータ)やデータベースの基礎など) 第6回:ソフトウェア工学(ソフトウェアはどのようにして作られるのか, 開発の現場を覗いてみる。開発プロセス,プロジェクトマネジメントなど) 第7回:コンピュータサイエンスにおける計算の理論 (チューリングマシン,コンピュータサイエンス小史など) 第8回:コンピュータサイエンスの全容と将来を議論 (e-healthCare, e-learning, e-government等, 君は何を学ぶのか? なぜ学ぶのか? どうやって学ぶのか?) 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 到達目標 コンピュータサイエンスに関して以下のことが到達目標である。 コンピュータサイエンスの社会的役割・意義を 理解し説明できる。 コンピュータサイエンスを学ぶ上での 重要な能力・資質を理解する。 コンピュータサイエンスの概要を説明できる。 将来のコース選択(案)を自力で作成し、 人にわかりやすく説明できる。 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 この授業の行動指針 明るく楽しく前向きの姿勢で、自ら進んで学ぶ。 (Learn positively, curiously and constantly! ) 他利的に行動する。 ( Behave altruisticly! ) 皆と積極的に討論する。 ( Discuss together aggressively! ) 後回しにしない。 (Don’t procrastinate! Do right now what you should be doing now. ) 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 この授業の行動指針 明るく楽しく前向きの姿勢で、自ら進んで学ぶ。 (Learn positively, curiously and constantly! ) 他利的に行動する。 ( Behave altruisticly! ) 皆と積極的に討論する。 ( Discuss together aggressively! ) 後回しにしない。 (Don’t procrastinate! Do right now what you should ne doing now. ) 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 まずは、情報提供 http://gamingjs.com/ice/ にアクセスしてみよう! (注)Google Chrome でアクセスすることを薦めます。 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 参考メモ // ******** START CODING ON THE NEXT LINE ******** var shape = new THREE.SphereGeometry(100); var cover = new THREE.MeshNormalMaterial(); var ball = new THREE.Mesh(shape, cover); scene.add(ball); 参考図書 3D Game Programming for Kids https://www.youtube.com/watch?v=erY7K_LPybs 平成28年 東京工科大学コンピュータサイエンス学部
本題に入りましょう!
平成28年 東京工科大学コンピュータサイエンス学部 前回の積み残しから始めましょう。 (しばらく前回と同じパワポ資料が続きます!) 平成28年 東京工科大学コンピュータサイエンス学部
人工知能とは? What is Artificial Intelligence? What should we study? How should we study it?
平成28年 東京工科大学コンピュータサイエンス学部 空を飛びたい! 揚力 (Lifting force) の発見 鳥のように空を飛ぶ 鳥のように柔軟に飛びたい (未だに実現していない。) トンボのように飛びたい。 飛行機の実現(地球の裏まで飛んで行ける) 今や宇宙に飛び出すこともできる! 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 人工知能 定義:人間のように知的な処理能力を 持つソフトウェア 検証方法:チューリングテスト 応用分野: ロボット 自然言語処理 認識(文字・音声・画像) 機械学習 データサイエンス などなど 平成28年 東京工科大学コンピュータサイエンス学部
人工知能の例1 ー音声対話型癒しロボットPDDINー 平成28年 東京工科大学コンピュータサイエンス学部
質問 このロボット研究に関係する 技術は? What technology is applied to this robot? 書き出してみよう! _________ _________ _________ その他(_____) 良く考えて、 答えてみてね! 平成28年 東京工科大学コンピュータサイエンス学部
人工知能の例2 ー未知語獲得システムUWAS-Iー 平成28年 東京工科大学コンピュータサイエンス学部
人工知能の例2 ー未知語獲得システムUWAS-Iー 未知語獲得システムのデモをお見せします。 プログラミング言語は、Prolog言語です。 Prolog言語は、人工知能用の言語の1つです。 (メモ) 人工知能用プログラミング言語 Lisp言語 Prolog言語 Haskell言語 C言語、C++言語 Java など 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 人工知能の例3 記号微分計算システムのデモをお見せします。 プログラミング言語は、Prolog言語です。 Prolog言語は、人工知能用の言語の1つです。 これはデモ用のものであり、本格的な数式処理システムとしては、Mxima などがある。 (注)Maxima はフリーソフトウェアです。 平成28年 東京工科大学コンピュータサイエンス学部
記号微分のプログラムソース全容 d(X,X,1). d(T,X,0) :- atom(T) ; number(T). d(U+V,X,DU+DV) :- d(U,X,DU), d(V,X,DV). d(U-V,X,DU+ (-DV)) :- d(U,X,DU), d(V,X,DV). d(-T,X,-R) :- d(T,X,R). d(K*U,X,K*W) :- number(K), d(U,X,W). d(U*V,X,B*U+A*V) :- d(U,X,A), d(V,X,B). d(U/V,X,W) :- d(U*V^ (-1),X,W). d(U^V,X,V*W*U^ (V+ (-1))) :- number(V), d(U,X,W). d(U^V,X,Z*log(U)*U^V+V*W*U^ (V+ (-1))) :- d(U,X,W), d(V,X,Z). d(log(T),X,R*T^ (-1)) :- d(T,X,R). d(exp(T),X,R*exp(T)) :- d(T,X,R). d(sin(T),X,R*cos(T)) :- d(T,X,R). d(cos(T),X,-R*sin(T)) :- d(T,X,R). d(tan(T),X,W) :- d(sin(T)/cos(T),X,W).
平成28年 東京工科大学コンピュータサイエンス学部 数式ソフトウェアMaximaの動作例 X+1/x を x で積分 積分結果を x で2回続けて微分 (注)微分・積分だけではなく、行列計算や方程式を解くこともできます。 自分でチャレンジしてみてください。 平成28年 東京工科大学コンピュータサイエンス学部
その他にもさまざまな人工知能・機械学習の分野がある 定理の自動証明支援システム(coq) 帰納論プログラミング(Progolシステムなど) 発想推論システム など (論理学が活躍!) ニューラルネットワーク(deep learningが注目されている) 機械翻訳システム(Google翻訳、IBMのWATSONなど) いろいろ調べてみよう! で、それって何の役に立つの? と問うてみてください。 平成28年 東京工科大学コンピュータサイエンス学部
それでは、そろそろ今日の本題へ 話はガラッと変わります。
平成28年 東京工科大学コンピュータサイエンス学部 I.ネットワークの仕組み Network at a hardware level Network at a logical level Network protocols Network software The Internet IoT 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 Computer Networks 3つの視点 ハードウェアレベル 論理レベル ソフトウェアレベル 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 ISOの7階層モデル 参考 アプリケーション層 プレゼンテーション層 セッション層 トランスポート層 データリンク層 物理層 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 1. ハードウェアレベル 有線ケーブルの種類 より線ケーブル 同軸ケーブル 光ファイバケーブル 無線 IEEE802.11諸規格 IEEE802.11b, IEEE802.11a IEEE820.11g, IEE802.11n (画像出典) 住友電工(http://www.sei.co.jp/newsletter/2012/08/product.html) ケーブルダイレクト(http://www.cabling-ol.net/cabledirect/C5E-BL.php) atmarkit(http://www.atmarkit.co.jp/fsys/cableconnect/07network_tel/network_tel.html) 平成28年 東京工科大学コンピュータサイエンス学部
ハードウェアレベル(2) ケーブルに電気的信号が流れる 入力信号 LANケーブル(電線、同軸、光ファイバ) 出力信号 ケーブル(通信線)を通って情報が伝わる (変復調,暗号化,ディジタル化など様々な工夫がされている。) 入力信号は、一般にはアナログ信号(連続量の信号) アナログ信号はノイズ(雑音)に弱く、操作性も悪い。 アナログ信号はディジタル信号にすると、ノイズに強くなり、操作性も良くなる。 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 アナログ信号 vs. ディジタル信号 ディジタル信号は,アナログ信号に比べて, ノイズに強い メディアの劣化に強い 操作性に富んでいる などの特徴がある。 (参考)将来、フーリエ級数と符号理論を学んでください。 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 ノイズ(雑音)とは 参考 本来の信号以外の余計な信号のこと。 いろいろな雑音(ノイズ) 熱雑音 1/f 雑音 白色雑音(ホワイトノイズ) 量子化雑音 その他 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 (説明)ノイズに強いディジタル信号 (参考)将来、フーリエ級数と符号理論を学んでください。 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 問題提起 ノイズに弱いアナログ信号を,ノイズに強いディジタル信号に変えたい。どうすればいいのだろうか? (参考: これをA/D変換と言ったりすることもある) 処理 (アナログ/ディジタル変換、 A/D変換) アナログ信号 ディジタル信号 平成28年 東京工科大学コンピュータサイエンス学部
ディジタル化の流れ ーアナログ量をディジタル量へー 重要 ディジタル化の流れ ーアナログ量をディジタル量へー 標本化 量子化 符号化 (注)・標本化:sampling ・量子化quantization ・符号化:coding 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 シャノン・染谷の標本化定理 重要 X(t)が0~F[Hz]の間の値しかとらないとする。 このとき、x(t)をT<=1/(2F)[秒]毎に測定(標本化)したデータ系列 { ・・・, x(-3T), x(-2T), x(-T), x(0), x(T), x(2T), x(3T), ・・・, x(nT),・・・} に対して、以下の式が成り立つ。 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 参考メモ 標本化定理を理解するためには、Fourier変換(フーリエ変換)を学ぶ必要がある。 フーリエ変換をより深く理解するためには、微積分学や線形代数(ベクトル)を学ぶ必要がある。 (参考) 微積分学+線形代数 → 関数解析(ヒルベルト空間) 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 確認 標本化: 時間の離散化 量子化: 測定量(計測量)の離散化 符号化: 0と1で表現 (注) 値10を2進数1010で表す。 文字aを10進数97(16進数61)で表す。 したがって、2進数で01100001と表す。 画像も0と1で表す。 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 2. 論理レベル 通信プロトコル(TCP/IPなど) IPアドレス URL(URI) 経路探制御(ルーティング) など 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 重要 インターネットは、ネットのネット 複数のLAN同士をつなげたものがインターネット 英語では、the Internet あるいは、Internet と記す。 用語 “internet” は、「相互接続したネットワーク」を意味する普通名詞。 用語 “Internet” は、現在地球上に存在し、私たちが日常的に利用しているあのインターネットのこと。 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 The Internet Map http://buzzap.jp/news/20130729-the-internet-map/ (時間のあるときに一度見ておいてください。) 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 3. ソフトウェアレベル 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 インターネットコマンド紹介 curl wget ftp arp ping など、いろいろあります。 少しずつ使えるようになろう! 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 参考サイト 情報通信白書 for Kids http://www.soumu.go.jp/joho_tsusin/kids/ 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 平成28年 東京工科大学コンピュータサイエンス学部 https://www.telegeography.com/telecom-maps/submarine-cable-map/
平成28年 東京工科大学コンピュータサイエンス学部 II.コンピュータの仕組み 以降は次回やりますので、目を通しておいてください。 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 コンピュータの基本構成(前回の確認) 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 情報処理の基本的形態 処理 入力 出力 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 コンピュータの基本構成(1) 処理装置 入力装置 出力装置 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 処理装置の概要 CPU 記憶装置 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 処理装置の概要 CPU 記憶装置 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 処理装置の概要 CPU バス 主記憶装置 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 CPUの概観例 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 処理装置の概要 レジスタ レジスタ ALU レジスタ 主記憶装置 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 処理装置の概要 レジスタ レジスタ ALU レジスタ 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 レジスタ CPU内での演算(数値計算、論理演算)を行う際、作業場所として利用。 レジスタは複数個用意されている。 それぞれに名前がついている。 PC(プログラムカウンタ) アキュムレータ ベースレジスタ 命令レジスタ など (注)CPU(設計会社)の種類によって名前は違っている。 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 CPU内の動作サイクル [手順1] プログラムカウンタ(PC)に格納されている値mを 調べ、PCの値を1つ増やす。 [手順2] 主記憶の中の、アドレスmの値読み、 命令レジスタ(IR)に転送・コピーする。 [手順3] IRにコピーされた01のビットパターンを解釈する。 [手順4] 解釈の結果に応じた動作を行う。 [手順5] 最初の[手順 1] に戻る。 (注)上記の一連の動作を 「フェッチー解釈ー実行サイクル」と呼ぶ。 *fetch-interpret-execute cycle 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 CPUの動作を例で理解 前に10進む 向きを左に90度変える 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 CPUの動作を例で理解 コンピュータにさせたい動作 Pythonプログラム 前に10進む 向きを左に90度変える import turtle Kame = turtle.Pen() Kame.shape(‘turtle’) Kame.forward(100) Kame.left(90) 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 CPUの動作サイクル 命令の取り出し PC 9 ① ② IR Fd 100 命令の意味を解釈 ⑤ ALU 解釈・実行 ⑥ 命令を実行 Aレジスタ 101100 ④ 制御機能 ③ 1 2 3 4 5 6 7 8 9 Fd 100 10 Left 90 11 12 13 14 15 16 17 18 19 20 21 22 23 24 メモリ (記憶装置) 番地 (アドレス) 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 コンピュータは0と1の世界 符号化された命令群 アドレス番号 Fd → 0001 Bw → 0010 Lt → 0100 Rt → 1000 10進数 2進数 16進数 0 0 0 1 1 1 2 10 2 3 11 3 4 100 4 5 101 5 6 110 6 7 111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 CPUの動作サイクル 命令の取り出し PC 9 ① ② IR Fd 100 命令の意味を解釈 ⑤ ALU 解釈・実行 ⑥ 命令を実行 Aレジスタ 101100 ④ 制御機能 ③ 1 2 3 4 5 6 7 8 9 0001 01100100 10 0100 01010000 11 12 13 14 15 16 メモリ (記憶装置) 番地 (アドレス) 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 前回はここまで、でしたね! これらの枠組みの下、機械語でプログラムを書くことになる。 機械語とは、コンピュータに対する命令であり、0と1の並びで符号化されている。 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 処理装置の概要 レジスタ レジスタ ALU レジスタ 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 処理装置の概要 レジスタ レジスタ ALU レジスタ 主記憶装置 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 処理装置の概要 CPU バス 主記憶装置 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 コンピュータの基本構成(2) 処理装置 入力装置 出力装置 制御装置, 演算論理装置, 記憶装置 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 コンピュータの基本構成(3) 処理装置 入力装置 出力装置 制御装置, 演算論理装置, 記憶装置 平成28年 東京工科大学コンピュータサイエンス学部
平成28年 東京工科大学コンピュータサイエンス学部 レポート(予告) 先日配布した小冊子「明日を作るIT技術者」を 読み始めてください。最終回に本小冊子に関するレポート課題が出ます。 詳細は後日お知らせします。 平成28年 東京工科大学コンピュータサイエンス学部
レポートNo.3 課題:小冊子「明日を作るIT技術者」の Guide 4 を読み、あなたが重要であると思った 用語(キーワード、重要語)を10個以上 書き出しなさい。 ・ ・ 学生番号: 氏名: 提出日:2016/5/16 18時
宿題(レポートNo.1) 課題1:配布資料に記載されている<<事例>>(全部で7つある)に 関して、3つを選び自分なりの解答を作成せよ。 高校生が読んでわかるような解答文にすること。 提出先:研A6階のレポート提出ボックス 提出期限:平成28年4月27日(水)15時まで 形式:A4版レポート用紙。 表紙には、授業名、課題名(課題1)、提出年月日、 学籍番号、氏名を大きめに記すこと。 レポートの枚数は4~6ページ程度とする。
第3日目の自宅課題(home work) レポート課題No.2 課題: 「自分の勉強(学習)に役立つ人工知能システム(アプリ ケーション)」があるとしたら、それはどんなものか? 1つ考え、それを必要に応じて図なども用いながら説明しなさい。 (注)提案人工知能システム(アプリケーション)に関して、 その概要(overview)と必要な技術(element technology)に ついて述べること。 Tokyo University of Technology 2016 (H. Kameda)