什么是感知器学习算法?
What is the perceptron learning algorithm?
在感知器中,一层的神经网络,更新权重和偏差的算法是什么?我知道有多种算法,但是否有一种易于在代码中实现的标准算法?
标准算法是gradient descent using back-propagation。算法是这样的:
- 猜猜初始权重和偏差。
- 计算 "forward pass",其中您使用权重和偏差计算估计值
y_hat
。
- 计算损失,即真实值
y
与您从第 2 步计算出的估计值 y_hat
之间的差值。
- 计算关于每个权重和偏差的损失梯度。该梯度将采用小浮点数的形式。此步骤称为 "backward pass" 并将名称命名为 "back propagation",其中损失的梯度向后推。
- 通过添加梯度更新权重和偏差。
在您重复步骤 2 到 5 一定次数(称为时期)后,您将有望获得最佳权重和偏差。
感知器是一个线性的二元分类器。它通常使用增量规则进行训练:
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
我认为,我应该提供一些 material 您可以从中开始并快速端到端地理解算法的内容,而不是仅仅在这里陈述算法。
考虑这本书:Neural Networks: A Systematic Introduction,但 Raúl Rojas。
Perceptron Learning,参考Section 4.2
对于执行学习的 space 的非常好的概述、意图、算法、收敛和可视化。我建议先看第三章再看第四章
在感知器中,一层的神经网络,更新权重和偏差的算法是什么?我知道有多种算法,但是否有一种易于在代码中实现的标准算法?
标准算法是gradient descent using back-propagation。算法是这样的:
- 猜猜初始权重和偏差。
- 计算 "forward pass",其中您使用权重和偏差计算估计值
y_hat
。 - 计算损失,即真实值
y
与您从第 2 步计算出的估计值y_hat
之间的差值。 - 计算关于每个权重和偏差的损失梯度。该梯度将采用小浮点数的形式。此步骤称为 "backward pass" 并将名称命名为 "back propagation",其中损失的梯度向后推。
- 通过添加梯度更新权重和偏差。
在您重复步骤 2 到 5 一定次数(称为时期)后,您将有望获得最佳权重和偏差。
感知器是一个线性的二元分类器。它通常使用增量规则进行训练:
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
我认为,我应该提供一些 material 您可以从中开始并快速端到端地理解算法的内容,而不是仅仅在这里陈述算法。
考虑这本书:Neural Networks: A Systematic Introduction,但 Raúl Rojas。
Perceptron Learning,参考Section 4.2
对于执行学习的 space 的非常好的概述、意图、算法、收敛和可视化。我建议先看第三章再看第四章