pydial訓練政策policy module

人機對話的過程可以看做是多輪對話的過程,在傳統方式中,我們可以通過手寫規則,來依據用戶的輸入來決定系統的輸出是什麼.

pydial提供了強化學習的環境..可以測試你自身的訓練政策或者加載在你自己的系統中加載訓練政策.

手寫規則:

if global_summary['GLOBAL_BYCONSTRAINTS'] > 0.5 and global_summary['GLOBAL_COUNT80'] > 3:
    act = PolicyUtils.getGlobalAction(belief, 'INFORM_BYNAME', domainString=self.domainString)
elif global_summary['GLOBAL_BYALTERNATIVES'] > 0.5:
    act = PolicyUtils.getGlobalAction(belief, 'INFORM_ALTERNATIVES', domainString=self.domainString)
elif global_summary['GLOBAL_BYNAME'] > 0.5:
    act = PolicyUtils.getGlobalAction(belief, 'INFORM_REQUESTED', domainString=self.domainString , 
                                      bookinginfo=self.booking_slots_got_value_for)

在現實生活中,這種方法並不推薦使用.

在NLU的輸出部分,是對應的由一個個槽和對應的槽值組成的槽值對,而每個槽值對都有一個置信狀態,聯合起來便成了置信區間.

在DM中,需要對NLU做出判別並能做出決策.這裏採用了強化學習中的Q-learning方法.

pydial中的policy.py方法,是所有其餘決策方法的基類.他有需要建立一個對話獎勵模型的所有需要的公共方法.

其餘基於強化學習的例如sara方法,都是基於其上進行強化學習政策訓練的來進行的.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章