Practical

How to convert nltk.tree.Tree to other type of Tree?

I didn’t found any example on this problem, so I want to provide sample code for someone who is not that familiar with reading API.

# Construct nltk.tree.Tree
s = '(ROOT (S (NP (NP (DT The) (JJ old) (NN oak) (NN tree)) (PP (IN from) (NP (NNP India)))) (VP (VBD fell) (PRT (RP down)))))'
my_tree = Tree.fromstring(s)

# Convert my_tree to ParentedTree
my_parented_tree = ParentedTree(0, [])
my_parented_tree = my_parented_tree.convert(my_tree)

# Check result
print(type(my_parented_tree))
my_parented_tree.draw()

 

Reference:

  1. What is the ‘cls’ variable used for in Python classes?
  2. NLTK Tree convert API
Advertisements
Practical

Concise and clear explanation of context-free grammar

CFG

Reference:

@inproceedings{yang2015robot,
title={Robot Learning Manipulation Action Plans by” Watching” Unconstrained Videos from the World Wide Web.},
author={Yang, Yezhou and Li, Yi and Ferm{\”u}ller, Cornelia and Aloimonos, Yiannis},
booktitle={AAAI},
pages={3686–3693},
year={2015}
}

Practical

Paper reading – The naïve utility calculus: Joint inferences about the costs and rewards of actions

前言

今天讀的論文是 The naïve utility calculus: Joint inferences about the costs and rewards of actions,key insight 是把人類其實有能力去推算別人為了達成目標,所得到的 reward、跟所需耗費的 cost 大致是什麼。

以前的 work 大致都著重在人類的行為是為了完成目標,得到不同 reward,卻忽略了不同人做同一件事其實 cost 不同。

重要的人類行為

條列一些之前的發現:

  1. 人類的行為是為了某個 goal
  2. 人類會盡量採取(自認為)有效率的方式去達成目標

在這前提之下,我們就可以大致推得在 goal 是 G 的時候,採取行為 A 的機率有多高。越能有效率達到 G 的 A,被採取機率就越高。

我們用L(A|G)來表示這個可能性(likelihood)。

擷取.JPG

在這種 formulation 之下,我們可以將人類的決策行為當成一個 Markov decision process ,所以就可以:

  1. Forward: 推算出人類在某個 state 會採取什麼行為
  2. Backward: 從人類行為推算出他的 goal

擷取擷取2

這篇論文的 key insight 

上面提到的方法看起來很有趣,用基本的條件機率和貝氏定理就可以描述如何 infer 人的 action或 inverse infer 人的 goal,但如果你仔細用心就會發現,每一個 action 的成本其實不一樣,我們怎麼能只用夠不夠有效率來推論人會不會這樣做呢?(甚至可能有資訊不足的問題,例如完成 goal G 有 100 種方法,但我只聽過 5 種)

所以這篇 paper 才提出應該要用同時考慮 action 的 cost。

擷取擷取2

如何用數學和程式實作出這篇論文的概念?

這邊我也還不是很懂,看來應該是需要先讀懂他們 2009 年的那篇論文:

Baker, Chris L., Rebecca Saxe, and Joshua B. Tenenbaum. “Action understanding as inverse planning.” Cognition 113.3 (2009): 329-349.

等我懂了再寫出來分享。

擷取.JPG