learning rate 为0.1,loss达到最小时的结果、loss随epoch, iteration, batchsize的变化趋势:
0.1 lr w: [[1.99854936]] b: [[3.00973446]] batchsize=5, epoch=27, iteration=40, loss=0.196999 w: [[1.99322693]] b: [[3.00426234]] batchsize=10, epoch=37, iteration=20, loss=0.098183 w: [[1.99197605]] b: [[3.0102479]] batchsize=15, epoch=46, iteration=13, loss=0.063790learning rate 为0.01,loss达到最小时的结果、loss随epoch, iteration, batchsize的变化趋势:
0.01 lr w: [[1.90823943]] b: [[3.05213545]] batchsize=5, epoch=49, iteration=40, loss=0.209842 w: [[1.82458827]] b: [[3.09514729]] batchsize=10, epoch=49, iteration=20, loss=0.123555 w: [[1.78029477]] b: [[3.11700018]] batchsize=15, epoch=49, iteration=13, loss=0.0896763. 思考题
loss_2d:
为什么是椭圆而不是圆?如何把这个图变成一个圆?
直观上是因为\(w\)与\(b\)在损失函数中的系数不同。本质原因是它们在正向传播中的地位不同,类似两个正交的特征向量,对应着不同的特征值。损失函数 \(J(w,b)=\frac{1}{m}\sum_{i=1}^m(wx_i+b_i-y_i)^2\)。\(w\)的系数是\(b\)的系数的\(\frac{1}{m}\sum_{i=1}^mx_i^2\)倍,当\(\sum_{i=1}^mx_i^2\)不等于1时,满足椭圆型方程\(\frac{x^2}{a^2}+\frac{y^2}{b^2}=1\)。强制\(\sum_{i=1}^mx_i^2==1\)可以把这个图变成一个圆。如,令\(x\)的均值为0,模长为m。
为什么中心是个椭圆区域而不是一个点?
loss最小的点应该是唯一取得的。中心不是一个点而是一个椭圆区域是因为无法连续对w,b进行取值,只能用离散的形式逼近,中心点附近的loss取值相似的地方构成这个椭圆区域。