首先,老规矩:

未经允许禁止转载(防止某些人乱转,转着转着就到蛮牛之类的地方去了)

B站:Heskey0

Deep Learning

机器学习的作用

  • regression
  • classification

1. 机器学习的步骤

1.1 Training

1.1.1 Function

(机器学习)DeepLearning - 图1 : 昨天的数据,(机器学习)DeepLearning - 图2 : 今天的数据

feature : (机器学习)DeepLearning - 图3 已知的数据

weight : (机器学习)DeepLearning - 图4

bias : (机器学习)DeepLearning - 图5

Model : (机器学习)DeepLearning - 图6 用于训练的模型

domain knowledge : 设计Model所需要的知识

1.1.2 Define Loss from Training Data

Loss function : (机器学习)DeepLearning - 图7#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 (机器学习)DeepLearning - 图8: Error surface上的点沿着Gradient移动的距离

(机器学习)DeepLearning - 图9%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 (机器学习)DeepLearning - 图10 太过简单,需要定义一个灵活的model

1.2.1 sigmoid function

sigmoid function是activation function 的一种

sigmoid function : S形曲线

(机器学习)DeepLearning - 图11%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)

此时,

  • (机器学习)DeepLearning - 图12 changes slopes

  • (机器学习)DeepLearning - 图13 changes shift

  • (机器学习)DeepLearning - 图14 changes height

可以使用sigmoid function来逼近任意函数:

(机器学习)DeepLearning - 图15%0A#card=math&code=y%3Db%2B%5Csum_ic_i%5Ccdot%20sigmoid%28b_i%2Bw_ix_1%29%0A)

可以使用多个 feature 进行预测:

(机器学习)DeepLearning - 图16%0A#card=math&code=y%3Db%2B%5Csumic_i%5Ccdot%20sigmoid%28b_i%2B%5Csum_jw%7Bij%7Dx_j%29%0A)

矩阵形式:

(机器学习)DeepLearning - 图17%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越深,越宽(向量维度越高),可逼近的函数越复杂.

多层神经元:

(机器学习)DeepLearning - 图18%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为:

(机器学习)DeepLearning - 图19%3D%5Chat%20y%5En-y%5En%0A#card=math&code=C%5En%28%5Ctheta%29%3D%5Chat%20y%5En-y%5En%0A)

则总的Loss可以表示为:

(机器学习)DeepLearning - 图20%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的梯度,两边对(机器学习)DeepLearning - 图21求偏微分:

(机器学习)DeepLearning - 图22%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

根据链式求导法则可得:

(机器学习)DeepLearning - 图23

其中z是activation function的input: (机器学习)DeepLearning - 图24

forward pass :

(机器学习)DeepLearning - 图25

backward pass :

(机器学习)DeepLearning - 图26

2.2 Algorithm overview

consider (机器学习)DeepLearning - 图27#card=math&code=a%3D%5Csigma%28z%29)

backward pass :

(机器学习)DeepLearning - 图28

所以,如果知道了这个Neural后面的activation function的input(机器学习)DeepLearning - 图29(机器学习)DeepLearning - 图30,那么就能计算出前面的(机器学习)DeepLearning - 图31

back propagation : 先把后面的z计算出来,就能计算出前面的z,所以可建一个反向的Neural Network,就可以把每一个(机器学习)DeepLearning - 图32计算出来