
源率攀里应用的是随机梯度降低(Stochastic Gradient Descent,简称 SGD),道理与梯度降低类似,不合的是随机梯度降低算法每次迭代只取数据集一一部分的样本来更新 w 和 b 的值,速度比梯度降低快,然则,它不必定会收敛到局部极小值,可能会在局部极小值邻近彷徨。
- def SGD(self, training_data, epochs, mini_batch_size, eta,
- test_data=http://mdsa.51cto.com/art/201707/None):
- """
- 随机梯度降低
- :param training_data: 输入的练习集
- :param epochs: 迭代次数
- :param mini_batch_size: 小样本数量
- :param eta: 进修率
- :param test_data: 测试数据集
- """
- if test_data: n_test = len(test_data)
- n = len(training_data)
- for j in xrange(epochs):
- # 搅乱练习集,让其排次序序产生变更
- random.shuffle(training_data)
- # 按照小样本数量划分练习集
- mini_batches = [
- training_data[k:k+mini_batch_size]
- for k in xrange(0, n, mini_batch_size)]
- for mini_batch in mini_batches:
- # 根据每个小样本来更新 w 和 b,代码鄙人一段
推荐阅读
发个牢骚,搞大年夜数据的也得扶植数据仓库吧。并且不管是传统行业照样如今的互联网公司,都须要对数据仓库有必定的看重,而不是谈一句本身是搞大年夜数据的就很厉害了。数据仓库更多代表>>>详细阅读
本文标题:一文详解神经网络 BP 算法原理及 Python 实现
地址:http://www.17bianji.com/lsqh/36072.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示