• 沒有找到結果。

第七章 子計畫六:普及資訊擷取架構

7.2 智慧型教室之教師系統

7.2.4 系統實作

7.2.4.1 系統流程

本系統的兩個重要流程為情境推論模型訓練流程以及情境判斷流程。情境推 論模型訓練流程會紀錄使用者所處的情境及其所對應的服務設定,並藉所儲存的 訓練資料建立情境推論模型,而情境判斷流程則是教師在實際授課時,系統能藉 情境推論模模型進行情境判斷。

情境推論模型訓練流程

圖 7-10 為情境推論模型訓練流程的流程圖,此流程的目的是紀錄感測設備 所感測到的環境、使用者狀態與使用者的服務設定並以之建立情境推論模型。

C1 C2 … Cn T

30fl... 20C.

...

… -56dbm s1

⋮ ⋮ ⋮ ⋮

... ... ... ...

步驟:

1. 紀錄使用者的身份。

2. 紀錄使用者狀態與服務設備設定的狀態

3. 將取得的資訊存到資料庫中,當作歷史資料。

4. 利用群集分析建立服務類型。

5. 依照歷史資料與所建立的服務類型,以分類工具建立情境推論模型。

情境判斷流程

使用情境推論模型,隨著使用者與使用者所在環境的改變,提供適當的服務 設定給使用者。如圖 7-11 所示。

圖 7-11 情境判斷流程 步驟:

1. 先將周邊設備給予初始化。

2. 進行身分辨識 是:進入系統 否:禁止登入

3. 取得教師資訊,如教師資料、課程資訊、投影片進度等。

4. 選擇使用決策樹分類或是貝式機率分類來做為情境分類的方法。

6. 持續的感測環境與使用者狀態

7. 依據感測設備感測到的資訊,進行情境判斷,決定使用者所使用的服務類型。

8. 依據服務類型設定周邊設備的狀態,同時並紀錄資訊。

7.2.4.2 系統服務

本研究系統所提供的三種服務為自動播放投影片、音量控制及燈光控制:

 自動播放投影片:紀錄教師上次授課時投影片播放的進度與使用的投影片檔 案,以供下次上課時,能接續進度。

 音量控制:根據情境推論所得到的服務類型,依據服務類型中音量的設定,

來調整麥克風大小聲。

 燈光控制:教室四周加設四組燈光裝置(黑板、講台、學生 A、學生 B),依據 情境推論所得到的服務類型,設定這四組燈光裝置的開關。

7.2.4.3 教學環境系統介面

本系統的使用者操作介面如圖 7-12 所示:

圖 7-12 使用者操作介面(修改自期中報告)

圖 7-12 為本系統操作介面,主要分為四個區塊,由左至右,由上而下,分 別為:

 情境感知示意圖:圖中 Mote 圖示(”O”)顯示教師目前的位置及教師週遭的 燈光亮度。並在示意圖的右上方顯示目前的時間、授課教師的資訊及教師目 前的座標位置。

 使用者控制服務設備區塊:當教師想修正系統所提供的服務型時,可以透過 此區塊來做調整,調整的同時也將會把資訊儲存到資料庫中。

 系統控制按鈕區塊:當教師點選下課按鈕時,則系統會認定教師已授課結束,

故會先暫停目前的所有的動作,直到又有教師進行身份認證登入後,系統才 又會認定有教師即將開始授課,繼續利用環境與使用者狀態來進行情境判斷 並提供適當的服務給教師。

另外本系統還提供了一個重新訓練模組的按鈕,目的就是要系統去重新訓練 情境推論模型,使得系統所提供的服務,能越來越貼近教師的需求。

7.2.4.4 教學環境

本系統的實體環境分為教室環境及教師身上所攜帶的感測裝置。

 教室環境配置 i.感測器網路配置

感測器網路配置如圖 7-13。系統為了感測環境資訊與使用者所在 的位置,在教室中配置了 10 個 Crossbow MICAz 的感測節點,圖中的 圖示 為 Crossbow MICAz,圖示 代表教師目前所在的位置,圖示 則 是 配備 MIB510CA 的電腦,負責收集所有 Crossbow MICAz 傳回來的 訊號並以接收訊號強度(RSSI)進行使用者位置的預測。

圖 7-13 感測器網路配置

系統提供的服務中音量控制與投影片播放,這兩種服務是經由系統 透過程式來操控,而燈光裝置則需透過 Phidget InterfaceKit 0/0/4 來操 控,並以 USB 介面與系統做連接。

 教師裝置配置

教師身上配戴一個 Crossbow MICAz 感測裝置,透過 MICAz 負責收集 使用者狀態資訊,如教師的位置及該位置的燈光亮度等資訊。

7.2.4.5 建立情境感知推論模型

情境感知推論模型的建立過程分為定義常用服務類型與建立情境感知推論 模型兩個步驟。

 以分群定義服務類型

本系統所提供的服務為燈光開關、音量控制以及投影片播放。其中投影片這 部份會隨著授課教師與課程不同而有所改變,同時並記錄每一次授課進度。

由於服務設備有四組燈光裝置及音量控制,因此在定義常用服務類型時,系 統需要針對這四組的燈光控制與音量大小來做分群,以作為教師常用的服務類 型,本研究使用資料探勘中的群集分析(Clustering)來分析歷史資料中的服務設定 欄位,找出服務設備中有哪幾項設定是同時發生的,將這些服務設定的組合訂為 服務類型。

首先我們透過 MS SQL Server 2005 BI(Business Intelligence)中的資料探勘,

將歷史資料中的服務設定欄位 (Speaker ,Dev0,Dev1 ,Dev2 ,Dev3)作為分 群的欄位,如圖 7-14 所示:

圖 7-14 服務類型的設定-分群欄位選擇(修改自期中報告)

圖 7-15 分群圖表(修改自期中報告)

 以分類方法訓練情境感知預測模型

定義了幾種教師常用的服務類型後,我們將服務類型視為歷史資料的類別 (class label)。利用分類分析(classification)建立情境感知預測模型。表 7-1 為訓練 資料的資料表欄位,當中的 class_num 欄位為服務類型。

表 7-1 訓練資料表欄位

sn Id sche cla_type Light locArea class_num 圖 7-16 為訓練資料的部分內容:

光裝置將隨著使用者的位置開啟燈光設備。

本系統使用 MS SQL Server 2005 資料探勘中的決策樹及貝氏機率分類兩種 分類方法,利用這兩種方法分別建立情境感知預測模型,分述如下:

 使用決策樹建立情境感知預測模型

我們將訓練資料表格中的 id、light、locArea、sche 這四個欄位,作為 分類依據的屬性, 而 classNum 欄位做為將預測輸出的分類類型。

圖 7-17 為決策樹依據訓練資料所建立的決策樹模型

圖 7-17 決策樹分類圖表(修改自期中報告)

圖 7-18 為 分 類 規 則 範 例 , 當 課 程 編 號 為 MI5210701 與 ID 為 010230e687 且 light 大於 234 時,此時將提供服務類型 4 供教師使用。

為了比較不同的分類方法對建立情境感知預測模型的影響,我們以 MS SQL Server 2005 的貝氏機率分析,對相同訓練資料進行分析,得到如圖 7-19 貝氏機 率分類圖表。此圖表可以檢視輸入變數與預測變數之間的關聯性強弱,貝氏機率 分類是根據輸入變數與預測變數之間的相依機率所決定的,在此將作為情境感知 預測模型。

圖 7-19 情境推論模型-貝氏機率分類圖表

我們可以檢測各個預測變數值發生的前提下,各輸入的變數選項的機率 值。機率越高,表示在選定此條件下的條件機率越高。

如圖 7-19,當預測變數選定為 ClassNum = 2 時,則輸入變數中當 LocArea >=1 的條件機率最高,依此類推是 light >= 236、sche = MI600770…

等。

後,將感測到的資訊回傳給系統,而系統中的情境推論模組會使用 Microsoft 所 提供的 ADOMD.net 套件,透過 ADOMD.net 與建置在 MS SQL Analysis Service 2005 中的情境感知預測模型進行連線,並將收到的感測資訊看作是一筆輸入參 數的記錄,利用本研究自訂的 DMX(Data Mining Extension),將這筆記錄送 到情境感知預測模型中依循其規則進行情境判斷,再依據情境判斷的結果來調控

Public Class

Prediction

Public Function

Dtree()

Dim

UseMethod

As Integer Dim

classNum

As Integer

Dim

adomd_conn

As

AdomdConnection

Dim

adomd_cmd

As

AdomdCommand

Dim

cmd

As String

=

""

Dim

adomd_rs

As

AdomdDataReader

adomd_conn =

New

AdomdConnection("Data Source=localhost;Initial

Catalog='ContextAware_Cluster'")

If

UseMethod == 1

Then

'決策樹分類使用

cmd =

"SELECT t.[sn], [Traing Data].[Class Num] From [Traing Data] PREDICTION JOIN OPENQUERY([Context Aware], "

cmd = cmd &

"'SELECT [sn], [id], [sche],[light], [locArea]

FROM [dbo].[Now_Status] where sn=1' ) AS t ON "

cmd = cmd &

"[Traing Data].[Id] = t.[id] AND [Traing Data].[Sche] = t.[sche] AND [Traing Data].[Light] = t.[light] AND [Traing Data].[Loc Area] = t.[locArea]"

Else

'貝氏機率分類使用

cmd =

"SELECT t.[sn], [Traing Data].[Class Num] From [Traing Data] PREDICTION JOIN OPENQUERY([Context Aware], "

cmd = cmd &

"'SELECT [sn], [id], [sche],[light], [locArea]

FROM [dbo].[Now_Status] where sn=1' ) AS t ON "

cmd = cmd &

"[Traing Data].[Id] = t.[id] AND [Traing

Data].[Sche] = t.[sche] AND [Traing Data].[Light] = t.[light] AND [Traing

Try

adomd_conn.Open()

adomd_rs = adomd_cmd.ExecuteReader()

If

adomd_rs.Read() =

True Then

classNum = Convert.ToInt32(adomd_rs.GetValue(1))

End If

Catch

ex

As

Exception

MessageBox.Show(ex.ToString())

Finally

If Not

(adomd_rs

Is Nothing) Then

adomd_rs.Close()

End If

If Not

(adomd_conn.State = ConnectionState.Open)

Then

adomd_conn.Close()

Public ClassPrediction Public FunctionDtree()

DimUseMethodAs Integer DimclassNumAs Integer

Dimadomd_connAsAdomdConnection Dimadomd_cmdAsAdomdCommand DimcmdAs String=“”

Dimadomd_rsAsAdomdDataReader

IfUseMethod == 1Then

決策樹分類使用

cmd =“INSERT INTO [Decision Tree] “ cmd = cmd &

“([sn],[id],[sche],[cla_type],[light],[locArea],[ppt],[speaker],[dev0],[dev1],[dev2],[dev3],[loctemp]

,[classNum]) “

cmd = cmd &“OPENQUERY([Context Aware],’SELECT

[sn],[id],[sche],[cla_type],[light],[locArea],[ppt],[speaker],[dev0],[dev1],[dev2],[dev3],[loctemp],[

classNum] FROM [dbo].[cle_02_test01]’)”

Else

cmd = cmd &“OPENQUERY([Context Aware],’SELECT

[sn],[id],[sche],[cla_type],[light],[locArea],[ppt],[speaker],[dev0],[dev1],[dev2],[dev3],[loctemp],[

classNum] FROM [dbo].[cle_02_test01]’)”

End If

adomd_cmd =NewAdomdCommand(cmd, adomd_conn)

Try

adomd_conn.Open()

adomd_rs = adomd_cmd.ExecuteReader()

Ifadomd_rs.Read() =True Then

classNum = Convert.ToInt32(adomd_rs.GetValue(1)) End If

CatchexAsException

MessageBox.Show(ex.ToString()) Finally

If Not(adomd_rsIs Nothing)Then adomd_rs.Close()

End If

If Not(adomd_conn.State = ConnectionState.Open)Then adomd_conn.Close()