一種可以學習家譜關係的簡單神經網絡
血緣一共有12種關係:
son, daughter, nephew, niece, father, mother, uncle, aunt, brother, sister, husband, wife
有1個英國家庭以及1個意大利家庭,每個家庭有12個人。各種家庭關係都是可用三元數組表示,即( Agent / Relation / Patient ) 結構:
- (colin has-father james)
- (colin has-mother victoria)
- (james has-wife victoria) 可以由上述關係推導得到
該網絡由5層結構組成,如圖1所示
圖1
- 網絡底層左右兩邊各有12個神經元。
- 第1層左側神經元輸入 Agent 向量,每次只有一個爲1,如000100000000。
- 第1層右側神經元輸入 Relation 向量,每次也只有一個爲1。
- 第2層左側神經元用來序列化 Agent 向量,右側神經元用來序列化 Relation 向量。
- 第3層用以學習 Agent 與 Relation 的關係,預測出 Patient。
- 第4層解析出 Patient 向量。
- 第5層是預測出的實際 Patient,其每次的激活值可能不只一個。
例如:Andrew has-aunt ? 可能對應多個 aunt。
網絡學到了什麼?
以序列化輸入 Agent 的 6 個神經元爲例,如圖2.
- 1號神經元對不同國籍的輸入很敏感,能夠進行區分。
- 2號神經元對每次輸入 Agent 所屬的輩分(Generation)很敏感。
- 6號神經元對每次輸入 Agent 所屬的家庭很敏感。
圖2
關於 概念(Concepts) 的兩種理論
- 特徵理論(The Feature Theory)
概念是語義特徵的集合。
A concept is a set of semantic features.
因此概念就能夠用特徵的向量來表示。
- 結構主義理論(The Structuralist Theory)
概念的意義存在於概念與概念之間的關係。
The meaning of a concept lies in its relationships to other concepts.
因此概念可以用關係圖模型表達。 Hinton 認爲 *Both sides are wrong* ,因爲
神經網絡可以使用語義特徵來實現關係圖模型。
Softmax 輸出函數
均方誤差有以下缺陷
- 如果目標是1而現在的實際輸出是0.00000001,那麼返回給神經元的梯度幾乎爲0.
- 強制指定所屬各類概率就會剝奪網絡的學習能力。
Softmax作爲邏輯迴歸的推廣,能夠很好解決這些問題。
構造公式
yi=ezi∑j∈groupezi
梯度公式
∂yi∂zi=yi(1−yi)
代價函數依然使用相互熵
dC / dy 的陡峭正好抵消了 dy / dz 的平坦。
相互熵
C=−∑jtjlogyj
梯度
∂C∂zi=∑j∂C∂yj∂yj∂zi=yi−ti
Theano相應函數
x,y,b = T.dvectors('x','y','b')
W = T.dmatrix('W')
y = T.nnet.softmax(T.dot(W,x) + b)