108 年 國立政治大學資訊科學系碩士班《機率》
第 1 題20 分
依據表一中的 C 語言程式作答。表中包含兩個欄位,「行號」的欄位是為了溝通之用,不是程式的本身。「程式」欄位則是各行號的 C 語言程式指令;有一些行是蓄意留白的。
表一:某題的 C 語言程式
01 #include <time.h>
02 #include <stdlib.h>
03
04 int crossover (double x);
05
06 int main()
07 {
08 int i;
09 int repeats = 1000000;
10 double sum = 0;
11 for (i = 0; i < repeats; i++)
12 sum += (double)rand() / (double)RAND_MAX;
13 printf("%6.4f\n", sum / (double)repeats);
14
15 sum = 0;
16 for (i = 0; i < repeats; i++)
17 sum += crossover(0.6);
18 printf("%6.4f\n", sum / (double)repeats);
19
20 return 0;
21 }
22
23 int crossover (double x)
24 {
25 if ((double)rand() / (double)RAND_MAX <= x)
26 return 1;
27 else
28 return 0;
29 }
(a) (3%) 依照表一目前的程式,第 13 行可能會印出什麼?說明你的答案。
(b) (3%) 依照表一目前的程式,第 18 行可能會印出什麼?說明你的答案。
(c) (3%) 如果我們執行表一的程式很多次,第 13 行所列印的資料是否每一次都會一樣?如果有可能不一樣的話,會是怎樣的不一樣?舉例說明並且說明原因。
(d) (3%) 如果我們執行表一的程式很多次,第 18 行所列印的資料是否每一次都會一樣?如果有可能不一樣的話,會是怎樣的不一樣?舉例說明並且說明原因。
(e) (4%) 如果我們把第 10 行的 1000000 改成 1000,對於上面 (c) 和 (d) 的答案會不會有影響?如果有影響的話是怎樣的影響?舉例說明並且說明原因。
(f) (4%) 如果我們把第 17 行的 0.6 改成 0.8,對於上面 (c) 和 (d) 的答案會不會有影響?如果有影響的話是怎樣的影響?舉例說明並且說明原因。
登入後即可作答並保存紀錄。
此題主要測試對 C 語言中隨機數生成函數 rand() 和 srand() 的理解,以及其在機率統計中的應用,特別是均勻分布和二元分布。
核心觀念:
srand(time(NULL))的作用:初始化隨機數生成器,確保每次執行程式時能產生不同的隨機數序列。rand()函數:生成偽隨機整數,範圍通常在 0 到RAND_MAX之間。RAND_MAX:rand()函數所能生成的最大值。- 均勻分布:
rand() / (double)RAND_MAX的結果近似於在 上的均勻分布。 - 二元分布 (Bernoulli Distribution):
crossover函數的輸出,當隨機數小於或等於給定機率x時為 1,否則為 0。 - 大數法則 (Law of Large Numbers):當重複試驗的次數足夠大時,樣本平均值會趨近於理論期望值。
解題步驟:
(a) 第 13 行的輸出
第 13 行 printf("%6.4f\n", sum / (double)repeats); 印出的是 sum / (double)repeats 的值。
在 main 函數中,sum 是從第 11 行的 for 迴圈累加而來的。迴圈從 i = 0 執行到 i < repeats (即 repeats 次),每次疊代都將 (double)rand() / (double)RAND_MAX 的值加到 sum 中。
rand() / (double)RAND_MAX 模擬了一個在 區間上的均勻分布隨機變數。
根據大數法則,當 repeats (即 1000000) 很大時,sum / (double)repeats 的值會近似於這個均勻分布的期望值。
對於一個在 上的均勻分布,其期望值為 。
因此,第 13 行預期印出一個接近 0.5 的值,格式化為小數點後 4 位。
【答案】接近 0.5000。這是因為 rand() / (double)RAND_MAX 產生的是一個近似於 上的均勻分布隨機變數,根據大數法則,大量隨機數的平均值會趨近於該分布的期望值,即 。
(b) 第 18 行的輸出
第 18 行 printf("%6.4f\n", sum / (double)repeats); 印出的是另一個 sum / (double)repeats 的值。
在第 15-17 行,sum 被重新初始化為 0,然後進入一個 for 迴圈,重複 repeats 次。
每次疊代,sum 被加上 crossover(0.6) 的返回值。
crossover(0.6) 函數的邏輯是:
if ((double)rand() / (double)RAND_MAX <= 0.6)
return 1;
else
return 0;
這表示 crossover(0.6) 模擬了一個伯努利試驗,成功(返回 1)的機率是 ,失敗(返回 0)的機率是 。
因此,sum 變數實際上是在計算 repeats 次伯努利試驗中,返回 1 的總次數。
sum / (double)repeats 就是這 repeats 次試驗中,得到 1 的比例。
根據大數法則,當 repeats 很大時,這個比例會趨近於伯努利試驗成功的理論機率。
在這裡,成功的機率是 0.6。
因此,第 18 行預期印出一個接近 0.6 的值,格式化為小數點後 4 位。
【答案】接近 0.6000。這是因為 crossover(0.6) 函數模擬了一個機率為 0.6 的伯努利試驗。根據大數法則,大量重複試驗的平均結果(在此為得到 1 的比例)會趨近於其理論機率。
(c) 第 13 行輸出的資料是否會每次都一樣?
rand() 函數生成的是偽隨機數。雖然 srand(time(NULL)) 確保了每次程式執行時的隨機數序列是不同的,但在單次程式執行過程中,rand() 每次調用都會產生一個不同的、但遵循特定分佈(在這裡是近似均勻分布)的數值。
因此,迴圈中的 sum 變數每次疊代累加的值都會不同,導致 sum / (double)repeats 的最終值在多次執行程式時也會不同。
這些值會圍繞著理論期望值 0.5 波動。由於 repeats 是 1000000,根據大數法則,波動的範圍會比較小,但仍然存在。
【答案】不會。雖然 sum / (double)repeats 的值會趨近於 0.5,但由於 rand() 每次調用產生的都是不同的隨機數,累加後的 `sum
第 2 題18 分
資料分類 (classification) 是人工智慧工作的重要項目之一。在比較單純分類工作之中,程式的分類結果只會被劃分為分類正確和分類錯誤兩種。假設我們有某甲、某乙兩個分類器設計者。某甲和某乙測試他們的分類器時,分別使用了 1000 個和 10000 個測試案例,某甲和某乙的分類器分別把其中 750 和 7500 個案例分類正確 (也就是個別有 250 和 2500 個分類錯誤)。假設你是競賽的裁判者,從 confidence interval 的角度來評論是某甲還是某乙的分類器的正確率何者較好?回答下列問題。
(a) (6%) 簡要說明 confidence interval 的定義和應用的意義。
(b) (6%) 假設我們已經知道這兩個分類器的正確率的 variance,說明計算 confidence interval 時,牽涉到的相關變數和相關影響。
(c) (6%) 從第 (b) 題的立場出發,以 confidence interval 的角度公平地評比某甲和某乙的分類器的品質,兩者有無差異?詳細說明你的判斷。
登入後即可作答並保存紀錄。
此題主要探討在機器學習的評估中,如何使用信賴區間 (Confidence Interval, CI) 來比較不同模型的性能,特別是當樣本數不同時。
核心觀念:
- 信賴區間 (Confidence Interval, CI):提供一個參數(例如分類器的正確率)可能落在哪個範圍內的一個區間估計,並伴隨一個信心水準 (confidence level)。
- 點估計 (Point Estimate):單一數值估計參數的值,例如樣本正確率。
- 大數法則 (Law of Large Numbers):當樣本數足夠大時,樣本平均值趨近於母體期望值。
- 中央極限定理 (Central Limit Theorem):當樣本數足夠大時,樣本平均值的分布近似於常態分布,即使母體分布不是常態。
- 信賴區間的構成要素:點估計、標準誤 (Standard Error, SE)、信心水準 (通常對應 z 值或 t 值)。
- 樣本數對信賴區間的影響:樣本數越大,標準誤越小,信賴區間越窄,估計越精確。
- 變異數 (Variance) 或標準差 (Standard Deviation):衡量數據離散程度的指標,影響標準誤的大小。
解題步驟:
(a) Confidence Interval 的定義和應用意義
定義:
信賴區間 (Confidence Interval, CI) 是一個給定信心水準 (confidence level) 下,用來估計母體參數(如平均值、比例、變異數等)可能落入的數值範圍。例如,一個 95% 的信賴區間表示,如果我們重複抽樣並計算信賴區間很多次,其中約有 95% 的區間會包含真實的母體參數。
應用意義:
- 量化不確定性:點估計(如樣本平均值或樣本比例)只能提供一個單一的估計值,但無法告訴我們這個估計值有多可靠。信賴區間則能提供一個範圍,反映了估計值的不確定性。
- 比較不同群體/模型:當我們需要比較兩個或多個群體(例如不同分類器的性能)時,可以直接比較它們的信賴區間。如果信賴區間重疊程度很小,我們可以認為它們之間存在顯著差異;如果重疊很多,則可能沒有顯著差異。
- 輔助決策:在科學研究、工程應用、市場調查等領域,信賴區間可以幫助決策者了解估計結果的精確度,並做出更明智的判斷。例如,在醫學上,信賴區間可以幫助評估某種治療方法的有效範圍。
- 統計推論:信賴區間是統計推論的重要工具,它將樣本的資訊推廣到母體。
【答案】信賴區間是一個給定信心水準下,用來估計母體參數可能落入的數值範圍。其應用意義在於量化估計值的不確定性,並提供一個範圍來比較不同群體或模型的性能,輔助統計決策。
(b) 計算 Confidence Interval 時,相關變數和相關影響
計算信賴區間通常有以下公式形式(以比例為例):
其中:
- Point Estimate (點估計):通常是樣本比例,計算方式為
正確案例數 / 總案例數。- 對某甲:
- 對某乙:
- Standard Error (標準誤, SE):衡量樣本統計量(如樣本比例)變異性的指標。對於比例,其估計值為 ,其中 是樣本比例, 是樣本數。
- (臨界值):由信心水準決定的值。例如,對於 95% 的信心水準,,,查表得到 。
- Variance (變異數):題目提到已知變異數。對於比例,理論變異數是 。在計算標準誤時,我們使用樣本比例 來估計母體比例 ,因此使用 。如果題目明確給出母體變異數 (或其估計值),則標準誤的計算會用到它,例如對於平均數,標準誤是 。
相關變數與影響:
-
樣本數 ():
- 影響:樣本數是分母。樣本數越大,標準誤越小, margin of error 越小,信賴區間越窄,估計越精確。
- 在此題:某乙的樣本數 (10000) 遠大於某甲 (1000)。這表示某乙的信賴區間預期會比某甲的窄,估計更精確。
-
樣本比例 ():
- 影響:樣本比例影響標準誤的計算()。當 接近 0 或 1 時, 較小;當 接近 0.5 時, 最大。
- 在此題:兩者樣本比例都是 0.75。所以 的值相同。
-
信心水準 (Confidence Level):
- 影響:決定了 的值。信心水準越高(例如 99% vs 95%), 越大,margin of error 越大,信賴區間越寬。
- 在此題:假設我們使用相同的信心水準(例如 95%)來比較兩者。
-
變異數 (Variance) 或其估計值:
- 影響:變異數(或標準差)直接影響標準誤。
第 3 題20 分
我們以 CI(A, B, C) 表示當給定 B 前提之下, A 和 C 是條件獨立 (conditionally independent)。這裡的 A、B 和 C, 可以代表多個機率變數 (random variables)。舉例來說 CI({X1, X2}, {X3, X4}, {X5}) 表示 “{X1, X2} and {X5} are conditionally independent given {X3, X4}”。在以下的題目中,我們定義並且採用以下的簡易寫法。
Pr(x1, x2, ..., xn) = Pr(X₁ = x1, X₂ = x2, ..., Xn = xn)
在以上所列的簡易寫法之中, X; 代表某一個機率變數 (1 ≤ j ≤ n), x; 則是 X; 的數個可能的狀態 (state) 中的某一個可能的狀態。
我們可以用 chain rule 的方式輕易展開 n 個機率變數的 joint probability distribution, 如以下公式所述。
現在假設已知 CI({X₃}, {X₁}, {X₂})、CI({X₄}, {X₁, X₂}, {X₃})、CI({X₄}, {X₁}, {X₂, X₃})、CI({X₃, X₄}, {X₁, X₂}, {X₅})。
證明下列等式。
登入後即可作答並保存紀錄。
此題主要測試對條件獨立性 (Conditional Independence, CI) 的理解,以及如何利用條件獨立性來簡化聯合機率分布的表示,特別是與貝氏網路 (Bayesian Network) 的結構相關。
核心觀念:
- 條件獨立性 (Conditional Independence):若 A 和 C 對於 B 是條件獨立的,記作 CI(A, C | B),表示知道 B 的資訊後,A 和 C 之間不再有直接的關聯。數學上,這表示 。
- 聯合機率分布 (Joint Probability Distribution):描述多個隨機變數同時取特定值的機率。
- 鏈式法則 (Chain Rule):將聯合機率分布分解為一系列條件機率的乘積。
- 貝氏網路的結構:條件獨立性是定義貝氏網路結構的基礎,它決定了變數之間的邊(依賴關係)。
已知條件:
- CI({X₃}, {X₁}, {X₂})
- CI({X₄}, {X₁, X₂}, {X₃})
- CI({X₄}, {X₁}, {X₂, X₃}) (請注意:此條件與條件2有潛在衝突,在貝氏網路中,通常只保留最簡化的依賴。但我們依題目給定來推導。如果同時成立,則 。這意味著 僅僅依賴於 和 的某種組合,或是 和 在某種意義上「等價」於 的父節點。我們將依據題目給定的條件來證明。)
- CI({X₃, X₄}, {X₁, X₂}, {X₅})
證明目標:
解題步驟:
我們從聯合機率分布的鏈式法則開始,逐步利用給定的條件獨立性來簡化。
現在,我們逐項替換:
-
:
根據條件 1: CI({X₃}, {X₁}, {X₂}) 。
因此,我們將 替換為 。目前的式子變為:
-
:
根據條件 2: CI({X₄}, {X₁, X₂}, {X₃}) 。
根據條件 3: CI({X₄}, {X₁}, {X₂, X₃}) 。
如果題目給定的條件是正確且一致的,則這意味著 可以被簡化為 或 。
目標式子中要求的是 。
如果 CI({X₄}, {X₁}, {X₂, X₃}) 成立,則 。
我們在此使用條件 3 的結論來替換。目前的式子變為:
-
:
第 4 題20 分
The probability distribution of the Poisson random variable X, representing the number of outcomes occurring in a given time interval or specific region, is
where is the average number of outcomes occurring in the given time interval or specified region and (Euler's number).
Prove: the mean and variance of X are both .
登入後即可作答並保存紀錄。
核心觀念
泊松隨機變數 的機率質量函數為
其中 。
本題使用以下定義:
以及
計算過程的關鍵是利用指數函數級數:
解題方法
先求平均數,再利用二階階乘動差求變異數。因為泊松分布中的 可以和 、 約分,計算會直接化為 的級數。
一、證明平均數為
依照期望值定義,
當 時,該項為 ,因此從 開始:
利用
得到
提出一個 :
令 ,則 ,所以
由於
因此
故泊松隨機變數的平均數為
二、求二階動差
直接計算 也可以,但使用恆等式
會更簡潔。因此先求 。
依照期望值定義,
第 5 題12 分
假設在沒有任何額外資訊的前提之下,某人 P 得到某一病症 D 的機率是 0.2,沒有得到 D 的機率是 0.8。再假設有一檢測,當 P 罹患 D 時,在該檢測呈現陽性的機率為 0.9,呈現陰性的機率為 0.1;又若 P 沒有罹患 D 時,在該檢測呈現陽性的機率為 0.3,呈現陰性的機率為 0.7。在某一次健康檢查時, P 在該檢測中呈現陽性,從機率計算的角度, P 得到 D 的機率比較高還是沒有得到 D 的機率比較高,詳細說明你的答案?
登入後即可作答並保存紀錄。
此題為貝氏定理 (Bayes' Theorem) 的應用,用來計算在獲得新的證據(檢測結果為陽性)後,更新對事件(是否罹患疾病 D)的機率判斷。
核心觀念:
- 貝氏定理 (Bayes' Theorem):用於更新事件發生的機率,當有新的證據出現時。公式為:
其中 可以進一步展開為全機率公式:。 - 條件機率 (Conditional Probability):事件發生的機率,在另一個事件已經發生的前提下。
- 全機率公式 (Law of Total Probability):計算一個事件的總機率,通過考慮所有可能的互斥條件。
已知資訊:
- (罹患疾病 D 的先驗機率)
- (未罹患疾病 D 的先驗機率)
- (若罹患 D,檢測呈陽性的機率,即 Sensitivity 或 True Positive Rate)
- (若罹患 D,檢測呈陰性的機率,即 False Negative Rate)
- (若未罹患 D,檢測呈陽性的機率,即 False Positive Rate)
- (若未罹患 D,檢測呈陰性的機率,即 Specificity 或 True Negative Rate)
目標:
比較 和 ,判斷哪個機率較高。
解題步驟:
我們需要計算後驗機率 (posterior probabilities) 和 。
1. 計算 (檢測呈陽性的總機率)
使用全機率公式:
2. 計算 (已知檢測陽性,罹患 D 的機率)
使用貝氏定理:
3. 計算 (已知檢測陽性,未罹患 D 的機率)
使用貝氏定理:
第 6 題10 分
以 X 代表一個機率變數,且 X 代表的數值不小於零 (X 小於零的機率為零),假設 X 有兩個可能 的機率分布,分別以 f 和 g 代表這兩個機率分布的 probability density function,並且分別以 F 和 G 代表這兩個機率分布的 cumulative distribution function。假設對於 X 的任何的值 x, F(x) ≥ G(x)。假設我們必須採用 F 或者 G,選擇之後得到的評價分數就是 X 的期望值,我們應該選擇何者才能提高所得的評價?詳細說明你的選擇的理由。
登入後即可作答並保存紀錄。
核心觀念
本題考查累積分布函數與期望值的關係,以及隨機變數的隨機序。
對於非負隨機變數 ,其期望值可用尾端機率表示為
若累積分布函數為 ,則
因此
同理,
題目給定對所有 都有
這代表採用分布 時,累積機率較早增加,隨機變數較傾向取較小的值;採用分布 時, 具有較大的右尾,因此期望值較大。
解題方法
由 ,兩邊同時取 並反向不等式,可得
將此不等式對 積分:
利用非負隨機變數的尾端積分公式:
因此,使用分布 所得到的評價分數期望值不小於使用分布 的期望值。若在某些區間上嚴格滿足 ,且該區間具有正長度,則通常有