一种能够学习家谱关系的简单神经网络

血缘一共同拥有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)

Neural Networks for Machine Learning by Geoffrey Hinton (4)的更多相关文章

  1. Neural Networks for Machine Learning by Geoffrey Hinton (1~2)

    机器学习能良好解决的问题 识别模式 识别异常 预測 大脑工作模式 人类有个神经元,每一个包括个权重,带宽要远好于工作站. 神经元的不同类型 Linear (线性)神经元  Binary thresho ...

  2. [Hinton] Neural Networks for Machine Learning - Basic

    Link: Neural Networks for Machine Learning - 多伦多大学 Link: Hinton的CSC321课程笔记1 Link: Hinton的CSC321课程笔记2 ...

  3. [Hinton] Neural Networks for Machine Learning - Converage

    Link: Neural Networks for Machine Learning - 多伦多大学 Link: Hinton的CSC321课程笔记 Ref: 神经网络训练中的Tricks之高效BP ...

  4. [Hinton] Neural Networks for Machine Learning - RNN

    Link: Neural Networks for Machine Learning - 多伦多大学 Link: Hinton的CSC321课程笔记 补充: 参见cs231n 2017版本,ppt写得 ...

  5. [Hinton] Neural Networks for Machine Learning - Bayesian

    Link: Neural Networks for Machine Learning - 多伦多大学 Link: Hinton的CSC321课程笔记 Lecture 09 Lecture 10 提高泛 ...

  6. [Hinton] Neural Networks for Machine Learning - Hopfield Nets and Boltzmann Machine

    Lecture 11 — Hopfield Nets Lecture 12 — Boltzmann machine learning Ref: 能量模型(EBM).限制波尔兹曼机(RBM) 高大上的模 ...

  7. 课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 4、Logistic Regression with a Neural Network mindset

    Logistic Regression with a Neural Network mindset Welcome to the first (required) programming exerci ...

  8. 课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)—— 2、10个测验题

    1.What does the analogy “AI is the new electricity” refer to?  (B) A. Through the “smart grid”, AI i ...

  9. 课程一(Neural Networks and Deep Learning),第四周(Deep Neural Networks) —— 3.Programming Assignments: Deep Neural Network - Application

    Deep Neural Network - Application Congratulations! Welcome to the fourth programming exercise of the ...

随机推荐

  1. JAVA版数据库主键ID生成器

    import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public clas ...

  2. AC日记——送花 洛谷 P2073

    送花 思路: 线段树: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 struct TreeN ...

  3. Python Unicode与中文处理(转)

    Python Unicode与中文处理 python中的unicode是让人很困惑.比较难以理解的问题,本文力求彻底解决这些问题: 1.unicode.gbk.gb2312.utf-8的关系: htt ...

  4. gvim 编辑器配置

    "关才兼容模式 set nocompatible "模仿快捷键,如:ctrt+A 全选.Ctrl+C复制. Ctrl+V 粘贴等 source $VIMRUNTIME/vimrc_ ...

  5. Python3 字典及三级菜单练习

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- # Author;Tsukasa list_1 = { '广州':{ '越秀区':{ '五羊石像','镇海 ...

  6. 在Spring Controller中将数据缓存到session

    Servlet方案 在Controller的方法的参数列表中,添加一个javax.servlet.http.HttpSession类型的形参.spring mvc会 自动把当前session对象注入这 ...

  7. mysql索引之七:组合索引中选择合适的索引列顺序

    组合索引(concatenated index):由多个列构成的索引,如create index idx_emp on emp(col1, col2, col3, ……),则我们称idx_emp索引为 ...

  8. 在CentOS6或RHEL6恢复上ext4文件系统误删除的文件

    首先说明: [root@CentOS6 ~]# rm -rf / //这条命令不可以执行 [root@CentOS6 ~]# rm -rf /* //这条命令可以执行,别去试 ext4文件系统上误删除 ...

  9. Express使用MongoDB常用操作

    const MongoClient = require('mongodb').MongoClient const url = "mongodb://localhost:27017" ...

  10. 封装boto3 api用于服务器端与AWS S3交互

    由于使用AWS的时候,需要S3来存储重要的数据. 使用Python的boto3时候,很多重要的参数设置有点繁琐. 重新写了一个类来封装操作S3的api.分享一下: https://github.com ...