学习视频网址:https://www.bilibili.com/video/av48285039?p=11

Deep Learning 的发展历程:

学习笔记P11——DL 简介

Deep learning 和Machine Learning的过程是一样的,可以总结为三个步骤:

学习笔记P11——DL 简介

对于DL而言,第一步定义一个函数集合就相当于定义一个neuron network。

学习笔记P11——DL 简介

示例,neuron network 的一种形式:

将两个LR输出合并,输入到一个函数中形成一个Neuron,最后再做一次输出变换:

学习笔记P11——DL 简介

我们可以利用不同的方法连接这些neuron network,这样就可以得到不同的structure。neuron network中所有的参数就是整个network的参数。

这些neruon怎么连接起来呢?

这里有很多种方式,怎么连接是人为手动设计的;最常见的一种连接方式是全连接fully connect feedforward network(卷积是另外一种连接方式);

全连接网络结构简单视图,一共6个neuron,两个一排。每个neuron 都有一组weights和一组biases。这组参数是根据training data训练找出来的。

学习笔记P11——DL 简介

输入是(1,-1),为第一层的neuron随机初始化一组参数,neuron的function是Sigmoid:

学习笔记P11——DL 简介

假设其中的neuron中参数都是已知的,就可以根据如上计算得到每个neuron的输出:

学习笔记P11——DL 简介

若输入为(0,0),则结果为:

学习笔记P11——DL 简介

所以对于一个neuron network就可以看成是一个function,它的输入是一个vector,输出也是vector。

如上例可表达为:

学习笔记P11——DL 简介

如果一个neuron network的参数是已知的,他就是一个function。如果参数是未知的,我们只知道这些neuron network是如何连接的,这样的一个neuron network实际上就是定义了一个neuron structure 的function set。为每个neuron 设置不同的参数就得到不同的function,把这些可能的function都集合起来就得到了一个function set。

上面是对全连接结构的特殊介绍,更general的结构如下:

学习笔记P11——DL 简介

可以看到一共有L层的neuron,每一层都有若干个neuron.因为每一层的neuron都是两两连接的,所以叫全连接;又因为连接的方式是由前往后逐步传递的所以又称为feedforward network.

Deep learning 就是有多个Hidden layers组成的网络结构。具体有几层算作深度学习这个因人而异:

学习笔记P11——DL 简介

通常我们使用Matrix operation来表示neuron network的运作。

还是用上面的例子来解释:

学习笔记P11——DL 简介

更通俗的来说,

学习笔记P11——DL 简介

其中W是每层neuron的weights矩阵,b是每层neuron的biases的矩阵。输入matrix是X,第一层得到的输入是a1,以此类推得到输出y:

学习笔记P11——DL 简介

这样做的好处是可以利用GPU做运算,这样比用cpu要快。

怎么理解这整个neuron network?

学习笔记P11——DL 简介

Hidden layers可以理解为在做特征抽取,代替人工特征工程。从输入X到hidden layer最后的输出(x1,x2,...,xk)就可以看成是提取后的特征;

output layer可以理解为在做一个多分类的分类器,这个多分类是那前一个layer的output当做feature,即他不是直接使用输入X,而是使用经过多个hiddden layers之后提取出的特征(x1,x2,...,xk)来作为输入。

学习笔记P11——DL 简介

图像识别的例子:

学习笔记P11——DL 简介

输入一张图片到Machine,然后输出数据。

学习笔记P11——DL 简介

上面是一张有256个pixel的图片,输入表示:有墨迹的地方设为1,空白的地方设为0.输出是一个一维10行的向量,每个元素表示其是该个数据的几率:

学习笔记P11——DL 简介

最大的几率是第二个位置为0.7,故machine认为这个图片上的数据是2.

学习笔记P11——DL 简介

要有多少个hidden layer,多少个neuron,其中的参数怎么设置;我们要做的就是利用GD来找到一个最好的function来表示这个machine。

小结:

怎么决策layers的数目和每个layer中neurons的数目?——经验和直觉+多方的尝试

从非DL的方法到DL的方法,我并不认为ML变的简单了,而是我们把一个问题转化为另外一个问题。

对于不是deep model,需要得到好的结果需要做 feature engine去找到一组好的feature,但是对于DL 的model不需要做Feature Engine,例如做图像识别的时候可是直接把pixel输入到model中;然而DL带来了新的问题:需要定义network structure,所以问题从怎么抽取特征转换成如何定义网络结构。

DL是否真的好用,要看哪个问题比较容易,我个人认为如果是语音、影像以及图像识别define network structure可能要比feature extract容易。人类的听和看都太过于潜意识,影像识别目前还无法知道人类是如何辨识的,故而很难让人抽取有用的特征让linern model去学习。所以不如就让machine自己尝试找出好的structure,这件事情反而变的比较容易。

deep learning 在nlp上面performance并没有那么好:

个人认为:人在做Nlp方面是比较强的,NLP对人来说比较容易设计rule,因此设计的较好的rule往往可以得到不错的结果。因此deep learning看起来就并没有那么有用。

可不可以自动学习network 的structure?

可以。例如:Evolutionary Artificial Neural network;不普及不是很成熟。

可不可以自己设计network structure?

可以。

文章开始就介绍了,DL有三个步骤,上面第一步做完了,第二步就是定义一个function的好坏(怎么决定一组参数的好坏):

以手写体识别为例:

学习笔记P11——DL 简介

判断这组参数好坏就是对每组参数的输出和目标输出做cross entropy。然后通过变换不同的参数让这个值最小。

怎么找最合适的参数去minimiz loss,使用的方法是Gradient Descent。先初始化一组参数,然后求偏微分:

学习笔记P11——DL 简介

学习笔记P11——DL 简介

BP算法就是求解偏微分的有效方式,具体介绍下回分解:

相关文章:

  • 2021-05-12
  • 2021-04-14
  • 2021-09-12
  • 2021-05-06
  • 2021-04-29
  • 2021-11-03
  • 2021-06-24
  • 2021-10-05
猜你喜欢
  • 2021-08-28
  • 2021-11-26
  • 2021-06-27
  • 2021-08-20
  • 2021-11-21
  • 2022-12-23
  • 2021-12-04
相关资源
相似解决方案