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

血缘一共同拥有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. linux命令(4):vmstat命令

    CPU监控如下: vmstat 2 10  //表示每隔2秒运行10次 内存监控如下: vmstat –s 监控进程及CPU.内存状态 如下: top

  2. hdu 3667(最小费用最大流+拆边)

    Transportation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  3. C#发送Post请求,带参数,不带参数,指定参数

    1.不带参数发送Post请求 /// <summary> /// 指定Post地址使用Get 方式获取全部字符串 /// </summary> /// <param na ...

  4. AC日记——「SDOI2017」序列计数 LibreOJ 2002

    「SDOI2017」序列计数 思路: 矩阵快速幂: 代码: #include <bits/stdc++.h> using namespace std; #define mod 201704 ...

  5. 使用for循环打印9×9乘法表

    请使用for循环,倒序打印9×9乘法表. 打印结果如下图所示: 使用for循环打印9×9乘法表 #include <stdio.h> int main() { int i, j, resu ...

  6. java 中整数类型的进制转换

    int a=10; Integer.toBinaryString(a); //转换成2进制Integer.toOctalString(a);  //转换成8进制Integer.toHexString( ...

  7. CF1025B Weakened Common Divisor【数论/GCD/思维】

    #include<cstdio> #include<string> #include<cstdlib> #include<cmath> #include ...

  8. CodeForces 740A Alyona and copybooks

    完全背包. 直接做个背包容量为$100000$的完全背包,这样就可以避免繁琐的分类讨论了. #pragma comment(linker, "/STACK:1024000000,102400 ...

  9. Linux命令之whereis

    whereis [选项] [文件] (1).选项 -b 只搜索二进制文件 -B <目录> 只在路径下查找二进制文件 -m 只搜索man手册 -M <目录> 只在路径下查找man ...

  10. Linux命令之sort

    sort [选项] [文件] 对文本文件的行进行排序.常见的字符排序空字符串<数字<a<A<b<B...<z<Z (1).常用选项 -b,--ignore-l ...