首页 AI学术青年与开发者社区

【中文字幕】卡耐基梅隆大学 2018 秋季《深度学习导论》Bhiksha Raj 领衔主讲

开课时间:9月27日开始正式发布,更新节奏视官网课程而定
开课时长:28讲视频

神经网络:由多个感知机组成的网络。 

感知机:仿射函数的和加上 bias T 得到的值和阈值作比较

仿射和线性的区别:

线性函数:过原点,即f(0) = 0
仿射函数:有偏置,因此不过原点,即当仿射的常数项为 0 的时候为线性函数

阈值,也即神经网络的激活函数可以选择的有,sigmoid,softmax,relu等

deep:一个有向图,从源到接收器的**最长的**长度就是“深度”

网络的深度:网络中每一个输入信号在抵达output时必须经历的最长的过程

处理一个问题,需要超过两个以上的神经元则称该网络为“deep network"

神经网络拟合函数:


1. as a Boolean function

MLP 可以 model any boolean function

只要一层(即没有隐藏层)的神经网络即可表示与门,或门,非门。

而在基础门的前提下,只要再增加一层隐藏函数既可以表示任意 boolean 函数

比如说,增加了一层隐藏层,该层由两个或门感知机组成,一个或门的阈值为1,一个为-1,即可表示 XOR boolean function 


但是在数据维度增加的时候,只有一层隐藏层的神经网络的系数将会呈指数级的增长。

这个时候可以通过增加神经网络的深度来使得指数由指数增长变为线性增长。



## Boolean Function 参考知识
DNF公式:[Disjunctive normal form](https://zh.wikipedia.org/wiki/%E6%9E%90%E5%8F%96%E8%8C%83%E5%BC%8F) 析取范式:析取作为最外层,其他的算子只能作为内层,同样的还有合取范式CNF

[卡诺图](https://zh.wikipedia.org/wiki/%E5%8D%A1%E8%AF%BA%E5%9B%BE):真值表的变形,可以将有 n 个变量的逻辑函数的 2^n 个**最小项**组织在给定的长方形表格中。同时为相邻最小项(相邻与(and)项运用邻接律化简提供了直观的图形工具。在部分情况下,卡诺图能让逻辑变得一目了然,但是如果需要处理的逻辑函数的自变量比较多,则卡诺图会变得更加复杂

[真值表](https://zh.wikipedia.org/wiki/%E7%9C%9F%E5%80%BC%E8%A1%A8):列是逻辑的基本操作的取值,而其中某一列或某几列是前面的列取值的结果,即满足 Y = A O B 的表达式,其中 O 表示的是某一种 boolean 表达式

[展开全文]

神经网络可以看成多个感知机组合成网络,通过连接和阈值拟合任意的函数。感知机的不同组合能够构建复杂的划分边界,从而对各类数据进行分类

[展开全文]

只有一个隐藏层的神经网络也可以拟合任意函数,但是隐藏层所需要的神经单元可能是无限多个。故为了降低神经元的数量,我们可以考虑增加神经网络的层数。如果我们限定了神经网络的深度,那么需要的神经元个数的上限是多少?无限大。所以当你在AC0级的基础上建立一个固定深度的神经网络的时候,理论上,神经元的个数并没有一个上限。并且这个网络可以很好地构成任一函数。

但是接下来,假设我们有这样一个网络,如果这个网络足够深,但我限制每一层中神经元的个数,那么这个神经网络是否绝对可以拟合任一函数呢?确实不能。所以当我提到一个神经网络足够用的时候,意味着它的层数足够深,并且每一层的神经元数目足够。这整个网络可以模拟一个具体的函数了。现在我们谈论的是模拟一个具体函数的能力,并不是意味着仅仅它才可以模拟这个函数。

我们应该怎样设计一个神经网络去计算着一个特定的函数?第一个问题就是我们如何使用一堆数字来表示我们的输入和输出。神经网络的基本结构是感知机,它数学公式是:z=权重×输入的结果+偏置项。这样就得到一个关于输入的仿射组合。

其次是如何构建一个神经网络来执行必要的函数。激活函数,这个函数用来处理输入的仿射组合,并且激活函数在大多数情况下可以将它看做一个感知机,因为它最初被定义为一个阈值函数或是正弦函数。(每次提到感知机的时候,你应该能想到输入数据的仿射组合,而这些输入数据是输入到激活函数中去的,即all输入×权重+偏置)。但这样写有些麻烦,每次都得加b,有个简单的方法即在输入向量里添加1,设想它就是输入变量里的一个额外部分,这样偏置就直接变成了这里的权重,z=all输入×权重。

前馈网络:输入的数据在第一层被运算,得到的结果传到第二层继续运算,一直到最后一层。信号永远不会返回到前面的任何单元,它是单向的、非循环的。

分歧函数告诉了网络输出值和每个x对应的真实想要的值之间的差值。

学习一个神经网络就和确定网络参数是一样的,这些需要确定的参数就是网络所需要的权重和误差。用来对目标函数进行建模。在实际中,不会知道g(x)的函数定义,所以我们将根据画出输入输出训练实例,并估计网络的参数,来使用这些实例来对输入输出关系进行拟合。

最简单的多层感知机模型实际上并没有多层的概念,甚至也没有层,就是一个感知机模型。我们有很多实例,在数轴中就是一个个蓝色红色的点点,我们需要通过这些数据学习能够产生不同输出的权重w和偏置项b,这样就可以找到一个超平面,来完美分开蓝色和红色的点。

[展开全文]

可以通过各种布尔函数的组合来构建无限的可能来完成给定的布尔型任务。把复杂的形状,拆解为多个一般性的基本凸函数图形,这样就能让每个自网络处理一个凸函数图形,然后把他们整合起来,形成任意的复杂决策边界。

多层感知机能够联结多个计算模型以此来耦合复杂的布尔函数。

[展开全文]

如何定义现代计算机的架构呢?

冯诺伊曼结构

当前的神经网络模型都属于连接机器。

————————————————————

里程碑之一:

兴奋性突触:能够激发神经元的突触,如果有足够的刺激,它们就会被激发。

抑制性突触:当一些信号传递过来,这个不会被激发,不管传递过来的是什么。

————————————————————

感知机模型:

simplified mathematical model

模型思想:如果你有一些输入元素进入一个网络单元,这个单元会以权重组合的方式操作这些输入。如果权重组合超过了一个阈值,这个神经元就会被激发,否则就不会被激发。

这个非常简单的结构是非常全能的。

Rosenblatt提出一种学习算法:

如果目前输出与期望输出不匹配,这两者的差异将会与当前输入相乘,并加到当前的权重上面。这种学习规则非常流行,在机器学习中,无时无刻都会用到。

感知机无法解决异或XOR问题。

单独的感知机单元的计算能力有限。但是如果组织成网络,计算能力就会非常强!

上述均是布尔学习模型。但我们的大脑不是布尔机器,我们的大脑输入基于各种实数。

————————————————————

感知机是可以处理实数输入的。

可以使用简单的线性函数模拟出布尔函数,而且可以通过对各种布尔函数的组合来构建无限的可能来完成给定的布尔型任务。

一旦你知道其工作原理,就能够构建任意复杂的布尔函数。

————————————————————

complex decision boundaries:如何设计网络?

应该把复杂的形状,拆解为多个一般性的基本凸函数图形,这样就能让每个子网络处理一个凸函数图形,然后将它们组合起来,来形成任意的复杂决策边界。

处理图像分类的情况:也是如此,神经网络的作用就是学习到这两个向量领域在高维的分界线。

————————————————————

总结:多层感知机能够连接多个计算模型以此来耦合复杂的布尔函数,但它本质上还是布尔模型,只是通过各种不同的线性函数的组合来实现这一点。

MLP能代表任意形状决策边界,MLP可以用来分类数据。

————————————————————

MLP——regression

如果想要的输出是连续的实数,而不是之前的布尔型0或者1,应该怎么做?

可以对任意函数进行建模。我们可以将这个函数理解为序列函数。可以让隐含层的感知机两两配对,每一对来配合某个阶跃函数在某个区域内的高度。然后以从左到右的顺序,总能得到一个输出值。甚至!可以让这种近似来得更加精确,即,让每个区间更窄,产生更多的区间。

总结:MLP作为连接型计算模型,是可以用来处理分类任务的,MLP同样可以用来对连续型函数进行建模。

神经网络其实就是多层感知机(MLP)。

MLP具有一定的记忆机制,目前看到的都是MLP的前向feedforward工作,但是,有一些循环网络,这种网络的某个单元输出会回到单元本身。

对神经网络进行计算:对概率分布进行计算等等。

AI任务只是一些能被神经网络建模的函数。

 

 

 

 

 

 

 

 

 

 

 

[展开全文]

本节内容主要是导论内容,介绍了一些与深度学习有关的背景,嗯...深度学习起源于一个很早的年份,Alexander Brain,联结主义,信息存储在神经元与神经元之间的连接中!

[展开全文]

感知器神经元 可模拟布尔运算,

带隐层的感知器网络可进行凸形状表示

多个凸形状集合 可用多个感知机网络联合

感知机网络可逼近任意形状函数

[展开全文]

为了通过神经网络,拟合指定的目标函数,

1)建立散度(偏差)的公式;

2)从目标函数中抽样,因为目标函数大多数时候也是未知的。

 

合适权重的原理:

1)权重向量与边界超平面正交;

2)权重向量靠近分类为正的方向。

 

更新权重的方法:

1)Xi分类为正,在W上添加Xi向量;

2)Xi分类为负,在W上减去Xi向量;

同时,划分边界与W保持正交

 

 

 

[展开全文]

感知就是从输出到输入,中间构建阈值,可以实现布尔运算,阈值也可以是硬阈值或者软阈值,甚至是一个函数。线性函数拓展到布尔运算,形状不过是多个叠加条件。拓展到多维,运用微积分的思想,可以模拟任何函数。

[展开全文]

这就是一个感知器,作为一个阈元件,如果加权和大于某个临界值,则向下传递,否则不会。

从源到接收的最长路径就是图的深度,从输入到输出最大数量的神经元,称为神经网络的深度。如果超过两个神经元,则称此神经网络为深度神经网络。deep>2

MLP可以搭建任意布尔函数,不限类型的布尔函数。所以MLP又称为通用布尔函数。单一的神经元可以成为布尔开关。

一个隐藏层,两层的网络即可以组成任意的布尔函数。通常情况下,n个变量的XOR可能需要2n-1个感知机,然后你会需要指数级别数量的感知机,当你使用一个隐藏层的时候,这将仅仅使用一个线性数量的。这就是深度的作用。所以建议大家考虑增加层数。如果给所使用的层数设置一个上限,那么宽度将是指数级别的宽。那样电路将是最坏的情况。

布尔MLP如果只使用一层隐藏层的话,或者是限定层数,单元数将是指数型的大。我们还会有更加复杂的函数,不同的函数要求不同的深度。

[展开全文]

进入小组观看课程

更多 >>
以下为该课程相关学习小组,您可以选择任意小组加入学习课程并交流

SMART Lab学习小组

成员:1泡泡:0

点击观看
生物医学小分队

成员:163泡泡:67

点击观看
CUM 11-485/785 NLP学习小组

成员:278泡泡:160

点击观看