【Day 14】深度学习(Deep Learning)

深度学习历史

深度学习三步骤

  1. 定义一个模型
  2. 衡量函式的好坏
  3. 找到最好的函式

步骤一:定义一个模型

  • 类神经网路(Neural Network)

可以使用不同的方法来连接Neural Network,就可以得到不同的结构,而将所有的weights跟bias集合起来就是这个Network的参数 https://chart.googleapis.com/chart?cht=tx&chl=%5Ctheta。接下来我会介绍连接这些神经元(Neuron)的方法。

全连接前馈网路(Fully Connect Feedforward Network)

是最常见的一种连接方式,做法是把Neuron排成一排一排,下图中有6个Neuron,就两个两个一排,然後每一个Neuron都会根据训练资料找出一组weight跟bias。经过计算蓝色的Neuron的输出如下所示。

如果我们今天都知道一个Neural Network里面的参数,它就等於是一个function,它的输入是一个vector,输出是另外一个vector。而如果我们还不知道参数,只是决定好结构,就等於是在定义一个function set,也就是定义一个模型了。

下图为整个Network的架构,这个架构layer跟layer之间,每个Neuron两两间都有连接,因此称为全连接(Fully Connected),而这个架构是从 layer 1 到 2,2 到 3 由前往後传递,所以称为前馈网路(Feedforward Network)
输入的地方称为Input Layer,输出的地方称为Output Layer,而其他地方我们则称为Hidden Layer。

什麽是Deep?

  • 有很多Hidden layer

至於几层才算Deep,每个人都有不同的定义。

矩阵运算

我们把Neuron的function称之为Activation function,它不一定要是Sigmoid function,可以替换成其他function,现在Sigmoid function已经很少在做使用。

因此可以将整个Neural Network的运算表示成下图所示。通常会使用矩阵去运算,因为这样可以让我们使用GPU加速矩阵的运算。

Output Layer

我们可以把Output layer之前的部分看做是一个特徵提取器(Feature Extractor),它就可以取代我们之前在做的特徵转换(Feature transformation),所以在最後一个Hidden layer的输出就可以当作我们新的Feature。
而Output layer就是一个Multi-calss的分类器(Classifier),所以我们会在最後一个Layer加上Softmax。

应用范例

  • 输入一张手写数字的图片,输出这个图片对应的数字。

假设输入是一个解析度 https://chart.googleapis.com/chart?cht=tx&chl=16%20%5Ctimes%2016 的图片,总共有256个pixel,对机器来说它就是一个256维的vector,每一个pixel对应到一个维度,可以假设有涂黑的地方就是 1,没有涂黑的就是 0。而输出代表了一个机率分布(Probability Distribution),总共有10维,就可以看成是输出对应到每一个数字的机率。

而整个辨识手写数字的架构就如下图所示,你需要自己决定你的Layer跟Neuron数量。

FAQ

步骤二:衡量函式的好坏

假设有一张图片跟它的Label,我们就可以知道它的目标vector,而我们将那张图片当作输入,得出一个结果,接着就跟之前我们在做Multi-calss Classification一样,去计算预测跟实际的交叉熵(Cross entropy),那我们就是要让Cross entropy越小越好。

於是我们将每一笔训练资料的Cross entropy加起来,就会得到Total Loss,所以我们就是要找一个function让Loss最小,或是找一组参数可以让Loss最小。

步骤三:找到最好的函式

  • 梯度下降法(Gradient Descent)

梯度下降法在前面几篇文章都有介绍过,这边就不再赘述。


参考资料

李宏毅老师 - ML Lecture 6


<<:  实用的 each_cons 方法,Ruby 30 天刷题修行篇第十二话

>>:  下拉式选单更新 Day 23

该如何证明资料曾经存在?

第一次发言, 请各路大神关照. 公司需要定期作资料库备份, 备份用的电脑OS为Win 7及Win 1...

30天零负担轻松学会制作APP介面及设计【DAY 26】

大家好,我是YIYI,今天我要来检讨一下目前的问题~ 问题 第一个部分是页面,我认为可以再增加一些页...

Day30 阿里云30後结语

结语: 嗨大家,这30天的铁人赛就在今天要画上结尾了。今天就来跟各位聊聊这30天挑战的一些想法跟可以...

第六天:首次启动设定

若是您选择以软件包或 Docker 这种 On Premises 的安装方式安装在本机电脑的话,那首...

[Day 6] 非监督式学习 K-means 分群

非监督式学习 K-means 分群 今日学习目标 非监督式学习 何谓非监督式学习? 集群分析? 分群...