
因为不会用LateX的原因里面的数学公式都很不清晰..之后我会慢慢修改这篇回答的让讲解变得清楚的。
完整代码在最后,推荐直接对照着文章看完整代码,完整代码里我写了详细的注释。
先上公式:y = w1*x1 + w2*x2 + w3*x3 +... wn*xn + b
算法基本上有如下几步:
初始化权重
正向传播
反向传播
更新参数
1.初始化权重
假设每个样本有n个特征,用向量表示就是[x1, x2, x3... xn],即它的维数是1 x N。那么m个样本用向量表示就是
[[x11, x12, x13,... x1n],
[x21, x22, x23,... x2n],
...
[xm1, xm2, xm3,... xmn]]
即它有M x N维,相应的x1~xn每个特征都要对应一个权重w。所以权重应该初始化成[w1, w2, w3... wn],即1 x N维,同时还有一个偏项b。
2.正向传播
就是把对应每个样本的预测值和损失函数算出来。
公式:
- y^ = w1*x1 + w2*x2 + w3*x3 +... wn*xn + b
- a = 1 / (1 + e**(-z))
- cost = ylog(y^) + (1-y)*log(1-y^)