使用神经网络进行样本训练,要实现随机梯度下降算法。这里我根据麦子学院彭亮老师的讲解,总结如下,(神经网络的结构在另一篇博客中已经定义):
def SGD(self, training_data, epochs, mini_batch_size, eta, test_data=None):
if test_data:
n_test = len(test_data)#有多少个测试集
n = len(training_data)
for j in xrange(epoch
梯度下降
梯度下降算法是一种最为常用的解决优化问题的方法,该方法每次下降的方向均为当前位置的负梯度方向,以此保证下降速度最快,从而使损失函数迅速达到最小化。
为了简化问题, 首先假设 m=1 , 对 J(θ) 求 θj 的偏导数:
考虑整个 θ , 以及全部 xi for i in range(m)
python实现
import numpy as np
import matplotlib.pyplot as plt
data = np.loadtxt('linear_regressio