落园 » ≪统计学习精要(The Elements of Statistical Learning)≫课堂笔记(十七):神经网络|专注经济视角下的互联网

≪统计学习精要(The Elements of Statistical Learning)≫课堂笔记(十七):神经网络

神经网络,这是要开始Deep Learning了么?

神经网络的历史和大起大落还是可以八卦一下的...

第一波:人工神经网络起源于上世纪40年代,到今天已经70年历史了。第一个神经元模型是1943年McCulloch和Pitts提出的,称为thresholdlogic,它可以实现一些逻辑运算的功能。自此以后,神经网络的研究分化为两个方向,一个专注于生物信息处理的过程,称为生物神经网络;一个专注于工程应用,称为人工神经网络。

第二波:上世纪80年代神经网络的研究热潮。带反馈的神经网络开始兴起,其中以Stephen Grossberg和John Hopfield的工作最具代表性。很多复杂的认知现象比如联想记忆都可以用反馈神经网络进行模拟和解释。一位在神经网络领域非常资深的学者跟我聊天时说,在那个年代,只要你的文章跟神经网络扯上点关系,无论什么杂志,都很容易发表。

第三波:直到2006年深度网络(deep network)和深度学习(deep learning)概念的提出,神经网络又开始焕发一轮新的生命。深度网络,从字面上理解就是深层次的神经网络。至于为什么不沿用以前的术语“多层神经网络”,个人猜测可能是为了与以前的神经网络相区分,表示这是一个新的概念。这个名词由多伦多大学的GeoffHinton研究组于2006年创造。事实上,Hinton研究组提出的这个深度网络从结构上讲与传统的多层感知机没有什么不同,并且在做有监督学习时算法也是一样的。唯一的不同是这个网络在做有监督学习前要先做非监督学习,然后将非监督学习学到的权值当作有监督学习的初值进行训练。

上述来自:http://www.caai.cn/contents/118/1934.html

有没有感觉最近deep learning热得一塌糊涂?好像是个人都知道有这么个词儿但是真正知道他干什么的、怎么来的的人却不怎么多。嗯,貌似从这节课开始,要掀起deep

learning的篇章咯。顿时感觉好洋气哇。

----------正文的分割线-----------

这节课先介绍七十多年前的Perceptron模型。

1. 神经元

大致就是这样一张图片。神经元细胞有个大大的细胞核,然后有个轴突。如果神经元细胞拼在一起,可以构成一个神经网络。

perceptron

(我觉得这个细胞模型和后面的东西其实没太直接的联系...就是一个很好看的图...)

2. Perceptron模型

Perceptron模型有若干输入:x_{1},...,x_{n},标记为\{x_{n}\}序列。

每个输入都有一个权重(某种程度上可以理解为信息损失):w_{1},...,w_{n},标记为\{w_{n}\}序列。

最后每个“细胞”还有一个偏(门限):b,即我们常说的常数项截距。

最终的状态:s=\sum_{i=1}^{N}x_{i}w_{i}-b

输出:y=\sigma(s),比较简单的情况下,\sigma(\cdot)可以是一个二元输出函数,比如\sigma(s)=\begin{cases}1 & s>0\\0 & s<0\end{cases}或者写作\sigma(s)=I(s>0)。但是比较讨厌的是这个函数不可微,所以我们可以转成一个可微的函数(有点类似logistic regression的思路,用概率的密度函数来做)。

sigmoid

可微的情况下,这个输出就是:y=\frac{1}{1+e^{-s}},这样就可以做成一个光滑的曲线了。

3. Perceptron算法

给定一批数据D=\{(x_{i},y_{i}),1\leq i\leq N\}, 我们希望求得w^{*}使得w\cdot x_{i}>0,如果y_{i}=1;否则,w\cdot x_{i}<0(即w^{*}(y_{i}x_{i})>0

算法:先是我们可以不断重复的无限复制数据:(x_{1}y_{1}),...,(x_{n},y_{n}),(x_{1}y_{1}),...,(x_{n},y_{n}),(x_{1}y_{1}),...,(x_{n},y_{n})...

然后初始化:k=0,w(k)=0

开始循环:

For k=1,2,...

IF w(k)\cdot(y(k)x(k))<0,then w(k+1)=w(k)+y(k)x(k)

定理 如果存在w使得w^{*}(y_{i}x_{i})>0,\,\forall i成立(即平面线性可分),则Perceptron算法在有限步收敛。

证明:

  • w(k)=\sum_{k=1}^{K-1}y(k)x(k)(仅计算改过的)=w(k-1)+\cdots\Rightarrow\left\Vert w(k)\right\Vert ^{2}\leq\left\Vert x_{1}\right\Vert ^{2}+\cdots\left\Vert x_{k-1}\right\Vert ^{2}\leq(k-1)\underbrace{\max\left\Vert x_{i}\right\Vert }_{Constant}
  • 存在w*使得w^{*}(y_{i}x_{i})>0,\,\forall i,那么我们有\delta=\min w^{*}(y_{i}x_{i})>0\left\Vert w^{*}w(k)\right\Vert ^{2}\leq\left\Vert w^{*}\right\Vert ^{2}\left\Vert w(k)\right\Vert ^{2},同时我们有\left\Vert w^{*}w(k)\right\Vert ^{2}=\left\Vert w^{*}\sum y(k)x(k)\right\Vert ^{2}=\left\Vert \sum w^{*}y(k)x(k)\right\Vert ^{2}\geq K^{2}\delta^{2}这样就会有KC\geq\left\Vert w(k)\right\Vert ^{2}\geq\frac{1}{\left\Vert w^{*}\right\Vert ^{2}}K^{2}\delta^{2},当k趋近无穷大的时候,显然左式不成立。所以必有在某个k的时候停止迭代。

4. 推广至多类——Collins算法(2002)

(1) Collins表述

给定 D=\{(x_{i},y_{i}),1\leq i\leq N\},\Phi(x,y)\in\mathbb{R},求w使得y_{i}^{*}=\arg\max_{y\neq y_{i}}w\cdot\Phi(x_{i},y),\forall i,除了y_{i}外最大。这样w\cdot\Phi(x_{i},y_{i})>w\cdot\Phi(x_{i},y),y\neq y_{i}y^{*}=\arg\max_{y}\Phi(x,y)

(2)算法:\Delta\Phi(x_{i},y_{i}^{*})=\Phi(x_{i},y_{i})-\Phi(x_{i},y_{i}^{*}),

y_{i}^{*}=\arg\min_{y\neq y_{i}}w\cdot\Phi(x_{i},y)

初始化:k=0,w(k)=0.

For k=1,2,...

计算 \Delta\Phi(x_{i},y_{i}^{*}(k))<0w(k+1)=w(k)+\Delta\Phi(x(k),y^{*}(k))

输出:w^{*}=\frac{1}{K}\sum_{1}^{K}w(k)

(3)定理。若为线性平面可分,则在有限步内收敛。


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *