(Review cs231n) Optimized Methods
Mini-batch SGD的步骤: 1.Sample a batch of data 2.Forward prop it through the graph,get loss 3.backprop to calculate the gradient 4. updata the parameters using the gradient The initialization of weights is important. 如果 初始化过小, 经过激活后网络中权值的update就会 趋于0;如果过大,就可能出现梯度爆炸;尝试xavier initialization main loop: while True: data_batch = dataset.sample_data_batch() loss = network.forward(data_batch) loss = network.backward() x += -learning_rate * dx 不同的参数更新方案有不同的优化途径和优化速度,SGD方法是所有方法中最慢的。 The problems of SGD and why SGD is slow? 假设一个损失函数空间,损失函数的垂直方向非常陡峭,水平方向非常shallow 水平方向上的梯度非常小,垂直方向上梯度很大。 更新方式如上,补救的一种方式是 动量更新: