Brief Introduction of Deep Learning(P12)
Neural Network
把多个Logistic Regression前后connect在一起,然后把一个Logistic Regression称之为neuron,整个称之为neural network
Fully Connect Feedforward Network(全连接前馈网络)
神经网络的连接需要自己手动设计,Fully Connect Feedforward Network(全连接前馈网络)是最常见的连接方式。
如果一个neural network的参数weight和bias已知的话,它就是一个function,它的input是一个vector,output是另一个vector,这个vector里面放的是样本点的feature,vector的dimension就是feature的个数
神经网络的运作过程:用矩阵运算表示
下图中,每一排表示一个layer,每个layer里面的每一个球都代表一个neuron
layer和layer之间neuron是两两互相连接的,layer 1的neuron output会连接给layer 2的每一个neuron作为input
对整个neural network来说,它需要一个input,这个input就是一个feature的vector,而对layer 1的每一个neuron来说,它的input就是input layer的每一个dimension
最后那个layer L,由于它后面没有接其它东西了,所以它的output就是整个network的output
这里每一个layer都是有名字的
- input的地方,叫做input layer,输入层(严格来说input layer其实不是一个layer,它跟其他layer不一样,不是由neuron所组成的)
- output的地方,叫做output layer,输出层(output layer做的事情,其实就是把它当做一个Multi-class classifier,所以我们会在最后一个layer加上softmax)
- 其余的地方,叫做hidden layer,隐藏层
- 每一个neuron里面的sigmoid function,在Deep Learning中被称为activation function(激励函数),事实上它不见得一定是sigmoid function,还可以是其他function(sigmoid function是从Logistic Regression迁移过来的,现在已经较少在Deep learning里使用了)
有很多层layers的neural network,被称为DNN(Deep Neural Network)
Step 1:Neural Network
定义模型集合
注1:图中每一个圆圈,就是一个neuron(神经元),即上一章的一个Logistic Regression,但其中不一定是sigmoid函数,还可能是其它的激活函数(Activation Function)
注2:x所在层(最左侧)是Input Layer,但并不是严格意义上的layer,只是一个输入;y所在层是Output Layer;中间的即为Hidden layer(隐藏层)
Step 2:Goodness of function
Step 3:Pick the best function
接下来就去调整参数,让这个cross entropy越小越好,当然整个training data里面不会只有一笔data,你需要把所有data的cross entropy都sum起来,得到一个total loss ,得到loss function之后你要做的事情是找一组network的parameters:,它可以minimize这个total loss,这组parameter对应的function就是我们最终训练好的model
Backpropagation(P13)
Backpropagation并不是一个和gradient descent不同的training的方法,它就是gradient descent,它只是一个比较有效率的算法,让你在计算这个gradient的vector的时候更有效率
Chain Rule
Backpropagation里面并没有什么高深的数学,你唯一需要记得的就只有Chain Rule(链式法则)
对整个neural network,我们定义了一个loss function,它等于所有training data的loss之和
反向传播算法(Backpropogation)中前向传播(Forward Pass)和后向传播(Backward Pass)