【发布时间】:2017-04-01 16:47:16
【问题描述】:
在感知器(一层神经网络)中,更新权重和偏差的算法是什么?我知道有多种算法,但是是否有一种易于在代码中实现的标准算法?
【问题讨论】:
-
那么你在维基百科学到了什么?
标签: machine-learning neural-network perceptron
在感知器(一层神经网络)中,更新权重和偏差的算法是什么?我知道有多种算法,但是是否有一种易于在代码中实现的标准算法?
【问题讨论】:
标签: machine-learning neural-network perceptron
标准算法是gradient descent using back-propagation。算法是这样的:
y_hat。y 与您从第 2 步计算的估计值 y_hat 之间的差。在您多次重复步骤 2 到 5 之后(称为 epoch),您有望获得最佳权重和偏差。
【讨论】:
感知器是一个线性的二元分类器。它通常使用 delta 规则进行训练:
w <- initialize randomly (e.g. uniformly in [-1, 1])
learning_rate <- 0.42 # something in (0, 1)
for epoch in range(42):
y <- perceptron_classification(x)
w <- w - learning_rate * (y - target) * x
如果您想查看一个有效的(经过测试的)最小实现,请查看我的存储库:https://github.com/MartinThoma/algorithms/tree/master/perceptron
【讨论】:
我认为,我应该提供一些材料,您可以从中开始并快速了解端到端的算法。
考虑这本书:Neural Networks: A Systematic Introduction,但 Raúl Rojas。
关于感知器学习,请参阅第 4.2 节
对于执行学习的空间的非常好的概述、意图、算法、收敛和可视化。我建议先阅读第 3 章,然后阅读第 4 章。
【讨论】: