首先,老规矩:
未经允许禁止转载(防止某些人乱转,转着转着就到蛮牛之类的地方去了)
B站:Heskey0
Deep Learning
机器学习的作用
- regression
- classification
1. 机器学习的步骤
1.1 Training
1.1.1 Function
: 昨天的数据,
: 今天的数据
feature : 已知的数据
weight :
bias :
Model : 用于训练的模型
domain knowledge : 设计Model所需要的知识
1.1.2 Define Loss from Training Data
Loss function : #card=math&code=L%28b%2Cw%29) 是一个自己定义的函数
Loss function的值域代表how good a set of value is(用当前weight和bias预测的值与正确的值差距有多大)
- Loss越小,越精确
label : 正确的值
Error surface : loss function绘制出来的高度图
1.1.3 Optimization
通过Optimization方法使Loss function收敛到最小值点
Gradient Descent : 一种常用的Optimization方法,收敛到Error surface上Loss小的点
Learning rate : Error surface上的点沿着Gradient移动的距离
%0A%5Ctheta%5E2%3D%5Ctheta%5E1-%5Ceta%5Cnabla%20L(%5Ctheta%5E1)%0A#card=math&code=%5Ctheta%5E1%3D%5Ctheta%5E0-%5Ceta%5Cnabla%20L%28%5Ctheta%5E0%29%0A%5Ctheta%5E2%3D%5Ctheta%5E1-%5Ceta%5Cnabla%20L%28%5Ctheta%5E1%29%0A)
hyperparameters : 机器学习过程中自己设定的参数
global minima : Error surface上Loss最小的点
local minima : Error surface上的极小值点
1.2 Using Nonlinear Model
由于Linear model 太过简单,需要定义一个灵活的model
1.2.1 sigmoid function
sigmoid function是activation function 的一种
sigmoid function : S形曲线
%7D%7D%5C%5C%0A%26%3Dc%5Ccdot%20sigmoid(b%2Bwx_1)%0A%5Cend%7Balign*%7D%0A#card=math&code=%5Cbegin%7Balign%2A%7D%0Ay%20%26%3D%20c%5Cfrac1%7B1%2Be%5E%7B-%28b%2Bwx_1%29%7D%7D%5C%5C%0A%26%3Dc%5Ccdot%20sigmoid%28b%2Bwx_1%29%0A%5Cend%7Balign%2A%7D%0A)
此时,
changes slopes
changes shift
changes height
可以使用sigmoid function来逼近任意函数:
%0A#card=math&code=y%3Db%2B%5Csum_ic_i%5Ccdot%20sigmoid%28b_i%2Bw_ix_1%29%0A)
可以使用多个 feature 进行预测:
%0A#card=math&code=y%3Db%2B%5Csumic_i%5Ccdot%20sigmoid%28b_i%2B%5Csum_jw%7Bij%7Dx_j%29%0A)
矩阵形式:
%0A#card=math&code=y%3Db%2BC%5ET%5Ccdot%20%5Csigma%28B%2BWX%29%0A)
1.2.2 Optimization of New Model
把现有数据分成很多batch,每次计算Loss的时候使用不同的batch做测试数据
update : 更新loss function的参数
epoch : 把所有的batch都使用了一次,叫做一个epoch
Neural:sigmoid
Neural Network : Neural组成的网络
每一排Neural叫做一个Hidden Layer,有很多个Hidden Layer,就叫做Deep Learning.
deep越深,越宽(向量维度越高),可逼近的函数越复杂.
多层神经元:
%5C%5C%0AA%5E%5Cprime%3D%5Csigma(B%5E%5Cprime%2BW%5E%5Cprime%20A)%5C%5C%0AA%5E%7B%5Cprime%5Cprime%7D%3D%5Csigma(B%5E%7B%5Cprime%5Cprime%7D%2BW%5E%7B%5Cprime%5Cprime%7D%20A%5E%5Cprime)%0A#card=math&code=A%3D%5Csigma%28B%2BWX%29%5C%5C%0AA%5E%5Cprime%3D%5Csigma%28B%5E%5Cprime%2BW%5E%5Cprime%20A%29%5C%5C%0AA%5E%7B%5Cprime%5Cprime%7D%3D%5Csigma%28B%5E%7B%5Cprime%5Cprime%7D%2BW%5E%7B%5Cprime%5Cprime%7D%20A%5E%5Cprime%29%0A)
2. Back propagation
back propagation就是gradient descent, 它是一个更有效率的算法
2.1 Basic Concept
定义:某一笔data计算出来的loss为:
%3D%5Chat%20y%5En-y%5En%0A#card=math&code=C%5En%28%5Ctheta%29%3D%5Chat%20y%5En-y%5En%0A)
则总的Loss可以表示为:
%3D%5Csum%5EN%7Bn%3D1%7DC%5En(%5Ctheta)%0A#card=math&code=L%28%5Ctheta%29%3D%5Csum%5EN%7Bn%3D1%7DC%5En%28%5Ctheta%29%0A)
计算Loss function的梯度,两边对求偏微分:
%7D%7B%5Cpart%20w%7D%3D%5Csum%5EN%7Bn%3D1%7D%5Cfrac%7B%5Cpart%20C%5En(%5Ctheta)%7D%7B%5Cpart%20w%7D%0A#card=math&code=%5Cfrac%7B%5Cpart%20L%28%5Ctheta%29%7D%7B%5Cpart%20w%7D%3D%5Csum%5EN%7Bn%3D1%7D%5Cfrac%7B%5Cpart%20C%5En%28%5Ctheta%29%7D%7B%5Cpart%20w%7D%0A)
接下来就可以focus在怎样计算某一笔data的loss的gradient
根据链式求导法则可得:
其中z是activation function的input:
forward pass :
backward pass :
2.2 Algorithm overview
consider #card=math&code=a%3D%5Csigma%28z%29)
backward pass :
所以,如果知道了这个Neural后面的activation function的input和
,那么就能计算出前面的
back propagation : 先把后面的z计算出来,就能计算出前面的z,所以可建一个反向的Neural Network,就可以把每一个计算出来
