Machine Learning 基础公式

Model and Representation

sample 表示第i个样本

xfeature 表示第i个样本中,x的n个特征

theta 表示模型的参数

hypothesis 表示hypothesis对样本的预测结果

error 表示对第i个样本的预测值与实际结果的误差,h与y都为一数值,二分类 非0即1

cost 表示预测结果与实际结果的cost,为数值

derivation 表示对第j个参数求导,直到收敛;用上一周期的参数,一次性更行所有参数,非用最新值更新本次参数

derivation_theta 表示对cost function的theta计算

Logical Regression

logistic_hypothesis 表示对logistic regression的hypothesis公式,输出一个数值(0或1)

cost_logistic 表示对不同的y时,cost的表示

logistic_regression 表示统一的logistic regression cost function,y{i}为{0,1},y{i}<1x1>,thetaT<1xn>,x{i},thetaT<1xn>*x{i}=h_theta<1x1>

Multiclass classification

multi_hypothesis 表示对特定的x与theta,对样本分类,预测样本属于i类的概率

Regularization

regularization 表示对theta1-thetan进行限制,不包括theta0

Regularized linear regression

regularization 表示线性回归的正则化的使用

theta0 表示求梯度时,对theta0求导,由于其不使用正则化,因此保持不变

linear_gradient 表示线性回归求导,其中x{j}(i)表示第i个样本中,第j维特征,不包含正则化

regularization_gradient 表示用正则化后的J,求导

thetaj 表示首项中,thetaj参数<1,则thetaj变小,其影响值也小,而第二项与上式一致,则降低了thetaj,使某些thetaj不起作用

Regularized logistic regression

regularization_logistic 表示逻辑回归中,正则化对Cost的约束

theta0 表示求梯度时,对theta0求导,由于其不使用正则化,因此保持不变

linear_gradient 表示逻辑 回归求导,其中x{j}(i)表示第i个样本中,第j维特征,不包含正则化

regularization_gradient 表示用正则化后的J,求导。上述三个相似,但是由于hypothesis_logistic,这为主要不同之处

Neural Network

activation 表示第j层,第 i 个神经元的输入激励

Theta 表示weights矩阵,从 j 到 j+1 层的隐射关系 ThetaSize

Thetaij 表示从 j 层所有神经元到 j+1 层的第 i 个神经元,对应的参数;即Theta 中第i行为 j 层到 j+1 层的第 i 个神经元,需要的 s{j}+1 个参数,j+1层总共有 s{j+1}个神经元

connection 表示 j+1 层与 j 层之间的连接关系

a21

a22

a22

a31

x <4x1>

z2 <3x1>

a2 <3x1>

z2_computation <3x4> x <4x1> = <3x1>

a2_computation <3x1> = <3x1>

z3 <1x4> x <1+3x1> = <1x1>

a3 <1x1>

nncost 其中h(x),h(x){i}表示输出的第i个输出值;对K的求和,表示k个输出单元的求和;yi{k}表示第i个样本的第k个值,为数值(0或1),h{xi}{k}表示第i个样本,在输出层的第k个神经元的输出,为数值(0或1);sum{k}表示一个样本在输出层上的误差

nnJ 表示neural network中,加了正则项的cost function

delta 表示第 l 层上第 j 个节点的误差error

NN example

nn 表示四层neural network

Theta_lij 表示正向pass中,在 l 层上,第 j 个神经元对应,l+1层上,第 i 个神经元的权值系数

Theta_lijT 表示反向pass中,在 l+1 层上,第 i 个神经元对应,l 层上第 j 个神经元

a_1 <4X1>

z_2 Theta1<5x4> a1<4x1> = z2<5x1>

a_2 a2<6x1> 增加a2{0}

z_3 Theta2<5x6> a2<6x1> = z3<5x1>

a_3 a3<6x1> 增加a3{0}

z_4 Theta3<4x6> a3<6x1> = z4<4x1>

a_4 a4<6x1>

deltaj

delta4 <4x1>

delta3<6x1> Theta3{T}<6x4> delta4<4x1> a3<6x1> (1-a3) <6x1> (根据连接关系,反向推导delta3,参考Week5 Cost Function and Backpropagation) (上述公式与下面矩阵就J(Theta)公式相似,只不过增加了对激励函数求导的计算)

delta2<6x1> Theta2{T}<6x5> delta3<5x1> (由于delta3计算了bias,但是bias只被计算,不参加反向。因此delta3由<6x1>变为<5x1>) a3<6x1> (1-a3) <6x1>

第一层为输入层,只是观察使用,不使用误差计算

partial <s{j+1} x s{j}+1> delta{l+1}<(s{j+1}) x 1> a{l}<1 x s{j}+1>

Delta <s{l+1} x s{l}+1> 这里一个Delata代表一个样本,相加表示对所有m个样本计算总梯度

Dij <s{l+1} x s{l}+1> 这里Delta除以m,表示求m个样本的平均梯度,lambda表示正则项的约束

(对于单个样本,且不计算正则化的情况下,网络梯度为singlesample

partial_3 <4x6> delta4<4x1> a3T<1x6> (可用矩阵行列乘法,理解其计算意义)

D_3 <4x6> 3到4层连接的样本平均梯度(可忽略正则项)

partial_2 <5x6> delta3<5x1>(bias不参与反向传播,减1个) a2T<1x6>

D_2 <5x6> 2到3层连接的样本平均梯度

partial_1 <5x4> delta2<5x1>(bias不参与反向传播,减1个) a1T<1x4>

D_1 <5x4> 1到2层连接的样本平均梯度

ThetaD 最终i梯度计算结果的表示

update 更新连接weights计算

comparision 先计算delta,计算误差<s{l} x 1>;再计算D梯度,使用之前计算的delta<s{l+1} x s{l}+1>

CNN example

c_xjl 表示第 l 层上第 j 个feature map

卷积层前向:

c_xjl_f 表示经过convolution,第 l 层上第 j 个feature map由 l-1 层计算得到,其中k{l}表示 l-1 层到 l 层的连接卷积权值,与之前的表示形式不一样

Subsampling层后向:

p_xjl 表示经过subsampling,第 l 层上第 j 个feature map由 l-1 层计算得到,这里feature map的个数不变,都是 j 个,down()表示对像素点进行相加求和

卷积层后向误差:

cb_djl 表示经过 l+1 层的delta{l+1}反向传播到 l 层得到delta{l},其中up表示将 1x1 像素拓展为 NxN 像素

subsampling层后向误差:

pb_djl 表示经过 l+1 层的delta{l+1}反向传播到 l 层得到delta{l}

卷积层梯度求导:

d_c

d_c1

d_c2

subsampling梯度求导:

d_c2

d_p1