Deep Learning
Step1: define a set of function
Step2: goodness of function
Step3:pick the best function
DL v.s.ML
这里的function是一个Neurual Network
可以用不同的方法链接不同的Neurual Network
如何连接呢?
Fully Connected Feedforward.
Input layer(其实不是由Neuron所组成的)
Hidden layer
为啥有deep呢?因为有很多hidden layer就叫deep learning.
如何理解Neurual Network?
把一个NeuronNetwork看作 一个function
input是一个vector, Output也是一个vector.
给network不同的参数,决定一个神经网络的架构,可以就有不同的functionSet组成。
Network的运作与matrix Operation
Activation function: Sigmoid function;
(Matrix*input +bias)
得出结果再通过sigmoid(Activation function)
现在有一个Network, input是$[x_1,x_2,…,x_N]^T$
output是$[y_1,y_2,…,Y_M]$
第0层是输入层,第一层是隐藏层1,中间的权重矩阵是$w_1$,bias 是$b^1$,得到output1.通过Activation function
output1是输入层,中间的权重矩阵是$w_2$,bias 是$b^2$,得到outpuy2.再将output2作为输入….通过Activation function
写成矩阵运算的好处是可以使用GPU进行加速。
Feature extractor
hidden layer堪称feature extractor.
Output Layer就是一个Multi-class Classifier,
它使用的feature是从前面的一连串转换中抽出来的。
Multi-class Classifier 通过softmax function,所以output layer也会通过softmax.
MINIST手写识别的例子
Input
一张图,可以看成16*16=256的像素组成,谈后这个$16\times16$的矩阵,被展开成$256\times1$的vector.
Output
在MINIST手写识别的例子中,如果output是十维的,就相当于对应了0-9这10个数字,可以将output通过softmax函数,每一个分量看成对应这个数字的几率。
对于Network来说设计结构是最重要的
Hidden Layer
- 多少layer?
- 每个layer有多少neuron?
此就是决定了functionSet的function是啥。
如何决定layer?和layer的neuron的数目呢?
Trial and Error +Intuition
非DL要做feature transform 但DL虽无需feature,但需要找好的functionSet.
优化目标:
Muti-class classificaiton
MINIST里使用交叉熵损失函数。
Gradient Descent(选定)
Backpropagation:算SGD的一个有效率的方式
可以使用一些框架去算.
为什么我们要使用deep Learning?
Deep is better?
Universality Theorem
一个Hiddenlayer可以表示任何function.
Deep Neural Network -> Fat neural Network.