11.01.2013 Views

Dynamic Bayesian Approach for Detecting Cheats in Multi-Player ...

Dynamic Bayesian Approach for Detecting Cheats in Multi-Player ...

Dynamic Bayesian Approach for Detecting Cheats in Multi-Player ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

13<br />

14<br />

15<br />

16<br />

17<br />

18<br />

19<br />

20<br />

21<br />

22<br />

23<br />

24<br />

25<br />

26<br />

27<br />

28<br />

29<br />

30<br />

31<br />

32<br />

33<br />

34<br />

35<br />

36<br />

37<br />

38<br />

39<br />

40<br />

41<br />

42<br />

43<br />

44<br />

45<br />

46<br />

47<br />

48<br />

49<br />

50<br />

51<br />

52<br />

53<br />

54<br />

55<br />

56<br />

57<br />

58<br />

59<br />

60<br />

61<br />

62<br />

63<br />

64<br />

65<br />

6 S.F. Yeung, John C.S. Lui<br />

Cheat<strong>in</strong>g<br />

C ~<br />

Aim<strong>in</strong>g<br />

Accuracy<br />

A ~<br />

Distance<br />

D ~<br />

(a) A <strong>Bayesian</strong> network consists of three random<br />

variables aim<strong>in</strong>g Accuracy, Cheat<strong>in</strong>g<br />

and Distance.<br />

C ~ t-1<br />

A ~ t-1<br />

Fig. 1 An example of <strong>Bayesian</strong> network and <strong>Dynamic</strong> <strong>Bayesian</strong> network.<br />

replicat<strong>in</strong>g the <strong>Bayesian</strong> network <strong>in</strong> Figure 1(a) <strong>for</strong> every<br />

time slices. This enhancement adds a dependency between<br />

the random variable Cheat<strong>in</strong>g( ˜ C) <strong>in</strong> every two adjacent<br />

time slices. In other words, the random variable ˜ Ct at time t<br />

depends on the random variable ˜ Ct−1 at time (t−1).<br />

Inferr<strong>in</strong>g a DBN is much like <strong>in</strong>ferr<strong>in</strong>g a static <strong>Bayesian</strong><br />

network, but one will not <strong>in</strong>fer the whole dynamic <strong>Bayesian</strong><br />

network s<strong>in</strong>ce the state space is large (or <strong>in</strong>f<strong>in</strong>ite) and it is<br />

computational expensive to deal with an arbitrary large dynamic<br />

<strong>Bayesian</strong> network as time elapses. Instead, one needs<br />

to update the probabilities and “roll” the network <strong>for</strong>ward as<br />

time elapses. We illustrate this concept with a work<strong>in</strong>g example.<br />

Figure 1(b) models the temporal change <strong>in</strong> the probability<br />

of whether the player is cheat<strong>in</strong>g or not, as well as the<br />

<strong>in</strong>fluence of the random variable ˜ Ct and ˜ Dt on the probability<br />

of the player’s aim<strong>in</strong>g accuracy.<br />

Without the loss of generality, the very first time slice<br />

occurs at t = 0 is considered as a special case with the assumption<br />

that the prior probability P( ˜ C0 = true) = 0.5<br />

(i.e., <strong>in</strong> the beg<strong>in</strong>n<strong>in</strong>g, we have no <strong>in</strong><strong>for</strong>mation to determ<strong>in</strong>ate<br />

whether a player is a cheater or not. So we consider<br />

the case that a player can be honest or cheat<strong>in</strong>g with equal<br />

probabilities). Let say that <strong>in</strong> the first time slice, we observe<br />

that the player aims accurately from a short distance, i.e.,<br />

Ã1 = 1 and ˜ D1 = 0. For the second time slice, we also observe<br />

that the player aims accurately from a long distance,<br />

i.e., Ã2 = 1 and ˜ D2 = 1. Given the outcomes of Ãt and<br />

˜Dt, <strong>for</strong> t ∈ {1, 2} are known, one can <strong>in</strong>fer the probability<br />

of whether the player is cheat<strong>in</strong>g or not on each of these two<br />

time slices.<br />

The <strong>in</strong>ference can be carried out <strong>in</strong> two stages. For the<br />

first stage, we estimate whether ˜ Ct is true or not based on<br />

the probability distribution of ˜ Ct−1. For the second stage,<br />

we improve the estimate of ˜ Ct based on the observed values<br />

of Ãt and ˜ Dt at time t. Let us illustrate this concept.<br />

On the first time slice, estimate the outcome of ˜ C1 based<br />

on ˜ C0. Note that this estimation is computed based on the<br />

conditional probability distribution P(Ct|Ct−1). The esti-<br />

D ~ t-1<br />

C ~ t-1<br />

A ~ t-1<br />

D ~ t-1<br />

C ~ t-1<br />

A ~ t-1<br />

time slice t-1 time slice t time slice t+1<br />

(b) A DBN unrolled <strong>for</strong> three consecutive time slices.<br />

mate of ˜ Ct is:<br />

P( ˜ C1 = T)<br />

= P( ˜ C1 = T | ˜ C0 = T)P( ˜ C0 = T)<br />

+P( ˜ C1 = T | ˜ C0 = F)P( ˜ C0 = F)<br />

= (0.8)(0.5) + (0.3)(0.5)<br />

= 0.55.<br />

D ~ t-1<br />

For the second stage, we update this estimate base on the<br />

observed values of Accuracy and Distance (i.e., Ã1 and<br />

˜D1) <strong>for</strong> time slice t = 1, which gives:<br />

P( ˜ C1 = T | Ã1 = 1, ˜ D1 = 0)<br />

P(<br />

=<br />

Ã1 = 1| ˜ C1 = T, ˜ D1 = 0)P( ˜ C1 = T)P( ˜ D1 = 0)<br />

�<br />

c1 P(Ã1 = 1| ˜ C1 = c1, ˜ D1 = 0)P( ˜ C1 = c1)P( ˜ D1 = 0)<br />

(0.5)(0.55)<br />

=<br />

(0.5)(0.55) + (0.5)(0.45)<br />

= 0.38.<br />

This gives the probability of whether the player is cheat<strong>in</strong>g<br />

or not at time slice t = 1.<br />

For the second time slice, we estimate the outcome of ˜ C2<br />

based on updated probability of ˜ C1, this gives:<br />

P( ˜ C2 = T)<br />

= P( ˜ C2 = T | ˜ C1 = T)P( ˜ C1 = T)<br />

+P( ˜ C2 = T | ˜ C1 = F)P( ˜ C1 = F)<br />

= (0.8)(0.38) + (0.3)(0.62)<br />

= 0.49.<br />

Then we update this estimate based on the observed values<br />

of Ã2 and ˜ D2, this gives:<br />

P( ˜ C2 = T | Ã2 = 1, ˜ D2 = 1)<br />

P(<br />

=<br />

Ã2 = 1| ˜ C2 = T, ˜ D2 = 1)P( ˜ C2 = T)P( ˜ D2 = 1)<br />

�<br />

c2 P(Ã2 = 1| ˜ C2 = c2, ˜ D2 = 1)P( ˜ C2 = c2)P( ˜ D2 = 1)<br />

(1.0)(0.49)<br />

=<br />

(1.0)(0.49) + (0.5)(0.51)<br />

= 0.66.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!