情報量と符号化

Similar documents
2014年度 信州大・医系数学

2011年度 大阪大・理系数学

Microsoft PowerPoint - prog03.ppt

Microsoft Word - no11.docx

スライド 1

複素数平面への誘い

Microsoft Word - no103.docx

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

ポインタ変数

プログラミングA

初めてのプログラミング

JavaプログラミングⅠ

デジタル表現論・第6回

2016年度 京都大・文系数学

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog08.ppt

Microsoft Word - 3new.doc

JavaプログラミングⅠ

2016年度 九州大・理系数学

Javaプログラムの実行手順

プログラミング実習I

演習課題No12

Microsoft Word - no02.doc

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(VBA) サンプル問題 知識科目 第 1 問 ( 知

オートマトン 形式言語及び演習 1. 有限オートマトンとは 酒井正彦 形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110,

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(C 言語 ) サンプル問題 知識科目 第 1 問 (

PowerPoint Presentation

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

Microsoft Word - 18環設演付録0508.doc

Week 1 理解度確認クイズ解答 解説 問題 1 (4 2 点 =8 点 ) 以下の各問いに答えよ 問題 bit 版の Windows8.1 に Java をインストールする時 必要なパッケージはどれか 但し Java のコンパイルができる環境をインストールするものとする 1. jdk

Microsoft PowerPoint - prog08.ppt

データ構造

2017年度 千葉大・理系数学

第4回

Java講座

Prog1_6th

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

講習No.9

Information Theory

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){

様々なミクロ計量モデル†

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

JavaプログラミングⅠ

Microsoft Word - no202.docx

DVIOUT

プログラミング基礎

講習No.8

Microsoft PowerPoint - C4(反復for).ppt

4STEP 数学 Ⅲ( 新課程 ) を解いてみた関数 1 微分法 1 微分係数と導関数微分法 2 導関数の計算 272 ポイント微分法の公式を利用 (1) ( )( )( ) { } ( ) ( )( ) ( )( ) ( ) ( )( )

Microsoft Word - 微分入門.doc

デジタル表現論・第4回

PowerPoint プレゼンテーション

Microsoft Word - ㅎ㇤ㇺå®ı璃ㆨAIã†®æŁ°ç’ƒ.docx

そもそも情報とはなに? ある事柄に関して知識を得たり判断のより所としたりするために不可欠な 何らかの手段で伝達 ( 入手 ) された種々の事項 ( の内容 ) ( 新明解国語辞典第 6 版 三省堂より一部抜粋 ) コンピュータで取り扱う情報の定義 Claud Elwood Shannon( 情報理論

PowerPoint プレゼンテーション

ToDo: 今回のタイトル

Microsoft PowerPoint - 講義資料-mlib

Microsoft Word - Stattext07.doc

ポインタ変数

DVIOUT-SS_Ma

2015年度 信州大・医系数学

CプログラミングI

V-CUBE One

Microsoft PowerPoint - prog04.ppt

JavaScriptで プログラミング

1. 関数 scanf() 関数 printf() は変数の値を画面に表示しますが それに対し関数 scanf() はキーボードで入力した値を変数に代入します この関数を活用することで対話式 ( ユーザーの操作に応じて処理を行う ) プログラムを作ることができるようになります 整数の和

JavaプログラミングⅠ

memo


2018年度 2次数学セレクション(微分と積分)

Microsoft Word - VB.doc

医用工学概論  Medical Engineering (ME)   3年前期の医用工学概論実習と 合わせ、 医療の現場で使用されている 医用機器を正しく安全に使用するために必要な医用工学(ME)の 基礎知識を習得する。

学年第 3 学年 2 単元名 ( 科目 ) いろいろな関数の導関数 ( 数学 Ⅲ) 3 単元の目標 三角関数 対数関数 指数関数の導関数を求めることができる 第 次導関数の意味を理解し 求めることができる 放物線 楕円 双曲線などの曲線の方程式を微分することができる 4 単元の学習計画 三角関数 対

模擬試験問題(第1章~第3章)

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Prog1_10th

コンピュータリテラシ 第 6 回表計算 2 このスライド 例題 /reidai6.xlsx /reidai6a.xlsx 課題 12 /reidai6b.xlsx /table12_13.xlsx

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 (

メソッドのまとめ

Microsoft PowerPoint - 7.pptx

Microsoft PowerPoint - enshu4.ppt [äº™æ‘łã…¢ã…¼ã…›]

Microsoft PowerPoint ppt

オートマトン 形式言語及び演習 3. 正規表現 酒井正彦 正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語

関数とは 関数とは 結果を得るために 処理を行う仕組み です Excel2010 には あらかじめ関数が数式として組み込まれています たとえば SUM 関数 は 指定した値をすべて合計する 仕組みです 長い計算式や複雑な計算式を作成せずに 簡単に結果を求めることができます 例合計 =A1+A2+A3

シンプルスマホ3 ユーザーガイド

Microsoft PowerPoint - 5Chap15.ppt

統計学的画像再構成法である

2-1 / 語問題 項書換え系 4.0. 準備 (3.1. 項 代入 等価性 ) 定義 3.1.1: - シグネチャ (signature): 関数記号の集合 (Σ と書く ) - それぞれの関数記号は アリティ (arity) と呼ばれる自然数が定められている - Σ (n) : アリ

2011 年度春学期基礎ゼミナール ( コンピューティングクラス ) A コース 1 / 18 コンピュータリテラシー A コース 第 10 講 [ 全 15 講 ] 2011 年度春学期 基礎ゼミナール ( コンピューティングクラス ) 同志社大学経済学部 DIGITAL TEXT コンピュータリ

講習No.12

正誤表(FPT1004)

PowerPoint プレゼンテーション

2014年度 九州大・理系数学

2

2

講習No.1

2014年度 東京大・文系数学

Microsoft PowerPoint - prog04.ppt

Transcription:

I. ここでの目的情報量の単位はビットで 2 種の文字を持つ記号の情報量が 1 ビットです ここでは 一般に n 種の文字を持つ記号の情報量を定義します 次に 出現する文字に偏りがある場合の平均情報量を定義します この平均情報量は 記号を適当に 0,1 で符号化する場合の平均符号長にほぼ等しくなることがわかります II. 情報量とは A. bit 情報量の単位としてbitが利用されます 1bitは0か1の情報を運びます 一の問題があるとき 0 か 1 などの1bitの情報があれば答えを表現できす B. 三択問題では 3 択問題の場合はどうでしょう 1bit では答えは表現できません 0,1 種を区別する必要があるので 2bit が必要です では 4 択問題ではどうでしょう やはり 0,1,2,3 の 4 種が表現できれば良いので 2bit で表現できまと 3 択問題も 4 択問題も必要な情報量は同じでしょうか? C. 答えが推測できる場合今日が良い天気の場合 明日は 晴れか雨か の問いには 多分晴れと答えるでしょう でも 今日が雨の場合 晴れと雨の確率は五分五分でしょう この二つの場合 答えの持つ情報量は同じでしょうか? 3 択でも 情報科学部の学生に 情報科学部の学科数は 1,2,3 どれでしょう の問題を出したとき 多くは 3 を出すでしょう 答え 1 を出す確率はほとんどないでしょう 仮に 10% が 1,30% が 2 60% が 3 と答えるたしましう しかし 一般の人は余り知らないから 30% が 1 と 3,40% が 2 と答えるものとしましょう この二つの場合の答えのもつ情報量は同じでしょうか? III. 情報量の定義 ( シャノンの定義 ) A. n 個の選択肢からの情報量 1. n=2 の場合たとえば コインを投げたとき 裏と表の二つの選択肢となる これは 1bit で表現できます 2. n=4 の場合 4 種類だから 2bit で表現できます これは コインを 2 回投げた場合とじでやはり 2bit となる 3. 一般の場合 nbitで n の場合を表現できます 従って 2 n 個の選択肢の場合 log 2 n

ビットとなる 4. log て何? 一般に 2 n =m のとき log 2 (m)=n と表現します log の次の 2 log( 対数 ) の底と呼び 省略する場合があります 一般に log(1 log p log 2 (m) は任意の底で log m/log 2 で計算できま a. なぜ?( 底の変換 ) p=a r -> ar=log p 底をbとして両辺の対数をとる -> b P=log b ar -> b p=rlog b a - > r=log b p/log b a b. なぜ?( 積の対数は 対数の和 ) a r = s p =, q a とおく a (r+s) = r a s =pq a -> 両辺のlogをとる a (pq) log = log a q r a p + s c. log 2 p のグラフ横軸 p 縦軸が log 2 p のグラフです 縦軸を x とすると 横軸は 2 x のグラフです 5. 英字 漢字記号を含む英字 ( 記号を含めて約 32 文字 ) と漢字 ( 約 3000 字 ) の1 文当たりのおおよその情報量を求めなさい また 多くの場合英字は 8bit 漢字は16bitで表現されます この理由を考えなさい 必要次の値を利用しなさい 2 5 =32 10 2=1024 12 =4800 2 B. 確率を考慮する 1. シャノンの定義シャノンはいくつかの事象 Ei がある確率 Pi で起こる場合 一つの事象 E が持つ情報量を次のように定義しました I(pi)=log(1/pi) そして 1 記号当たりの平均情報量を次のように定義しました I(p1,..pn)=p1*log(1/p1) + p2*log( ここで log の底は 2 とします

2. 性質一般に n 個の事象の生起確率が等しい場合に 1 記号の平均情報量は最大になり log n となります 3. n=2 の場合事象が 2 の場合 一方が確率 p の場合 他方の確率は 1-p となります 平均情報量は I(p,1-p)=p*log(1/p) + (1-p)*log(1 となります これを 確率 p のグラフにすると 次のようになります p=0.0 1.0 のときは 確実に予想出来ますから情報量 0 です 確率時は 全く答えの予想が出来ません このとき情報量が最大で 1 となります a. p を 0..1 に変化したときの平均情報量 b. 関数表示ツール 1. フリーウエア :FunctionView 以下からダウンロードできます http://hp.vector.co.jp/autho 自己解凍後 陽関数に関数を設定し 設定メニューで変数の範囲を指定します 関数の様子を見るのにおすすめソフトです 4. n=3 の場合 a. 問題 3 個の事象の平均情報量の最大値は幾らですか? 1. 解答例各確率が 1/3 の場合が最大で 次の値になります 計算には Mathmedia を利用しています In[12]:=N(-3*(1/3)*log(2,(1/ Out[12]:=1.58 b. 問題 p1=0.3 p2=0.4 p3=0.3 の場合の平均情報量を 1. 解答例 N( ) は 値の数値を求めます

In[10]:=N(-2*0.3*log(2,0.3)- Out[10]:=1.57 c. 問題 p1=0.1 p2=0.3 p3=0.6 の場合の平均情報量を 1. 解答例 In[11]:=N(-0.1*log(2,0.1)-0. Out[11]:=1.29 d. 問題先の例で 3.b の場合より 3.c の場合の方が情報量が低い理由を推しやすさの観点から説明しなさい C. 平均情報量を計算するプログラム ( アプレット ) 1. 機能ここで 平均情報量を求めるプログラム ( アプレット ) を紹介しましょう 2. アプレットの実行下のウインドウで text の欄に文字を入力します たとえば 0011 とします 計算ボタン を押すと 各文字の出現確率を求め これから平均情報量を計算して表示します この場合 0,1 の出現確率はともに 2/4 で 平均情報量は 1 になります 0011110022 では 平均情 1.52 となります 3. 計算プログラム (Java 言語 : アプレット ) アプレットのプログラムは C とよく似ています ただし 文字列や表示関数は Java 独特です node[] は text の各文字の出現回数を記録する配列です ( これを確保します ) 最初の for 文で node[] を 0 に初期化します 次に st=text.gettext() で text の記号を st み 次の for 文で 各文字の出現回数を node[] に記録します st は st の c 番目の文字 st.length() は st の文字数を返す関数 最後の for 文で 平均情報量を計算しています Math.log(x 数の値を返す数学関数です prb は 各文字の確率を記録する文字列で prb = prb + (char)i+":"+node[i]+" は i 番目の文字とその確率を示す文字を prb に追記します 文字列の + は文字列を繋ぐ演算となります infsum は平均情報量を累計しす Double.toString(infSum) は infsum avrinfo.settext() で 計算した値を表示します void button1_actionperformed(act int CHAR_SIZE=256;

int i,c; int node[]=new int[char_size]; for (i = 0; i < CHAR_SIZE; i++ node[i] = 0; 算 確率の表示準備 求める String st; st=text.gettext();// 入力した文字列を読む for (c = 0; c < st.length(); c node[(int)st.charat(c)]++; double infsum=0.0,pi; String prb=""; for(i=0;i<char_size;i++){ if(node[i]!= 0) { pi=(double)node[i]/(double prb=prb+(char)i+":"+node[i infsum=infsum+pi*(math.log avrinfo.settext(double.tostrin label1.settext(prb);// 各文字の出現確率 4. Java ソースアプレットは Java 言語のプログラムで ホームページから実行できるプログラムです ソースプログラムを参照して下さい くわしくアプレットを勉強したい人は こちらのプログラミング >Java を参考にしてください D. 課題 1. 問題 1 0.3 0.2 0.15 0.15 0.1 0.1 の確率を持つ事象めなさい 2. ヒント log は windows のアクセサリの電卓で計算できます 表示メニューで 関数電卓 に切り替えます 数字の次に log キーを押すと 10 を底とする log の値が表示されます これを log 2 ると 2 を底とする log の値になります

トップに戻る