Deep Learning 深度学习 (一)
在 Deep Learning (简称 DL) 中,我们经常会提到一个叫做 Model
的东西,其实他就是一个函数的集合 (function set)。
Model 就是 function set
Model 就是 function set
Model 就是 function set
那这个函数的集合有什么用呢,我们先来说下 DL 的三个步骤。在说 DL 三个步骤之前,我们先来说下 ML 研究解决的是什么问题。简单来说,机器学习,就让机器学习到一些东西,然后去解决一些问题。那机器学习又是研究的是什么呢?
我们有一个 Model,其实就是一个 function set,每个 function 都有一个 input 和 output,例如下图。
第一个 function 输入一段声波( input ),然后输出一个识别后的英文字符串 How are you (output)
第二个 function 类似,输入一个猫的图像,然后识别它是猫,等等。

然后 ML 要做的事情,就是找出一个比较好的 fucntion 来帮我们解决问题,那要怎么找出这个 function 呢,我们下面就来了解下 DL 的三个步骤。

例如上图,有多个 function,但是有的 function 的输出是我们想要的,有的不是,我们要找出比较正确的 function。

如上图,step 1 是一个 Model, step 我们输入一些 Training Data(训练数据),然后得到结果反馈,然后根据结果,得到最好的 function, 整个框架分为两部分
- Training (训练)
- Testing (测试,拿其他数据,去测试我们得到的结果 function)
首先来简述下三个步骤,第一步我们有一个 Model,就是 function set,第二步,我们要怎么那些 function 是好的 function,那些是不好的,第三步就是,挑选一个最好的 function
step 1 define a set of function:
其实就是一个 Neural Network
(神经网络),一个 Neural Network
就是一个 function set
拿人脑做些类比,人脑就是有神经元构成的,经过连接,然后就使人,变得有学习能力

Neural Network
也和人脑很相似,它的基本单位是 Neuron
(神经元),可以把人认为是一个非常简单的 function,这个 simple function 的 input 是一个 vector,例如下图 a1,a2 ... ak,它的 output 就是一个数值,如下图 a,它的运算是怎么样的呢,就是把 a1, a2 ... ak 当做输入,然后乘上 w1, w2 ... wk 最好相加,再加上 b,得到结果 a。
w 称作为 weights
w 称作为 weights
w 称作为 weights
b 称作为 bias
b 称作为 bias
b 称作为 bias

把这些 Neuron 连接起来,就成了一个 Neural Network,那怎么连接起来的,有一些 Neuron 的
output,可以当成另一个 Neuron 的 input

一个连接方法 Fully Connect Feedforward Network
,其实就是某一个输出,当做某一个输入

输入的地方,我们称为 Input Layer
输出的地方,我们称为 Output Layer
其余部分呢,我们称为 Hidden Layers
Deep Learning 的 Deep,其实是指有很多 hidden layers

step 2 goodness of function:
第二步,我们来明辨是非,怎么样的 function 是好的 function,怎么样是不好的 function

准备一下训练数据,例如下图,那些图片是 "5", "0" 等等,我们用什么方法告诉机器那个 function 是比较好的呢?

假如有一张图片,当初输入,下图 Input 1,输出 y1,当 y1 值比较大的时候,才认为它是一个好的 function

或者我们用下面的图举例,我们先拿出一个 function, 下面我们假定参数已经设置上去了,我们已经知道训练数据的结果了,它的 target 如下图,然后我们输入数字图片 1,得到 y1,y2 ... ,y10,计算和 target 的 loss。就知道这个 function 的好坏了。

计算 Total Loss,把训练数据都通过 function 进行计算,然后通过每一次的结果和实际的结果进行对比,然后累加,得到 Total Loss,找到最小的 total loss,那个 function,最后得到 network parameters

step 3 pick the best function:
我们来到最后一个阶段,怎么找一个最好的 function。通过 Gradient Descent
,通过 w 的变化,找到最小的 Total Loss

网友评论