感知机更新规则 python
来源:互联网 发布:python ui 编辑:程序博客网 时间:2024/06/07 13:55
其中需要注意的一点事感知机的更新规则
的计算公式
# ----------## In this exercise, you will update the perceptron class so that it can update# its weights.## Finish writing the update() method so that it updates the weights according# to the perceptron update rule. Updates should be performed online, revising# the weights after each data point.## YOUR CODE WILL GO IN LINES 51 AND 59.# ----------import numpy as npclass Perceptron: """ This class models an artificial neuron with step activation function. """ def __init__(self, weights = np.array([1]), threshold = 0): """ Initialize weights and threshold based on input arguments. Note that no type-checking is being performed here for simplicity. """ self.weights = weights.astype(float) self.threshold = threshold def activate(self, values): """ Takes in @param values, a list of numbers equal to length of weights. @return the output of a threshold perceptron with given inputs based on perceptron weights and threshold. """ # First calculate the strength with which the perceptron fires strength = np.dot(values,self.weights) # Then return 0 or 1 depending on strength compared to threshold return int(strength > self.threshold) def update(self, values, train, eta=.1): """ Takes in a 2D array @param values consisting of a LIST of inputs and a 1D array @param train, consisting of a corresponding list of expected outputs. Updates internal weights according to the perceptron training rule using these values and an optional learning rate, @param eta. """ # For each data point: for data_point in xrange(len(values)): # TODO: Obtain the neuron's prediction for the data_point --> values[data_point] prediction = self.activate(values[data_point]) print values[0] # Get the prediction accuracy calculated as (expected value - predicted value) # expected value = train[data_point], predicted value = prediction error = train[data_point] - prediction # TODO: update self.weights based on the multiplication of: # - prediction accuracy(error) # - learning rate(eta) # - input value(values[data_point]) weight_update = error * eta * values[data_point] self.weights += weight_updatedef test(): """ A few tests to make sure that the perceptron class performs as expected. Nothing should show up in the output if all the assertions pass. """ def sum_almost_equal(array1, array2, tol = 1e-6): return sum(abs(array1 - array2)) < tol p1 = Perceptron(np.array([1,1,1]),0) p1.update(np.array([[2,0,-3]]), np.array([1])) assert sum_almost_equal(p1.weights, np.array([1.2, 1, 0.7])) p2 = Perceptron(np.array([1,2,3]),0) p2.update(np.array([[3,2,1],[4,0,-1]]),np.array([0,0])) assert sum_almost_equal(p2.weights, np.array([0.7, 1.8, 2.9])) p3 = Perceptron(np.array([3,0,2]),0) p3.update(np.array([[2,-2,4],[-1,-3,2],[0,2,1]]),np.array([0,1,0])) assert sum_almost_equal(p3.weights, np.array([2.7, -0.3, 1.7]))if __name__ == "__main__": test()
阅读全文
0 0
- 感知机更新规则 python
- 课程5:神经网络迷你项目-练习6 感知机更新规则
- Python感知机算法
- 感知机Python实现
- 感知机实现Python
- 感知机 Python代码
- 创建感知机 python
- 感知机 @ Python
- python感知机实现
- (单层)感知机学习规则
- 感知机的 python 实现
- #感知机的Python实现
- 感知机算法python实现
- 从双层感知机到BP神经网络的Delta规则
- 机器学习之感知机&&python实践
- 机器学习-感知机python实现
- 感知机相关概念及Python实现
- 感知机原理及python实现
- EOJ 3260 大学生程序设计邀请赛(华东师范大学)-C 袋鼠妈妈找孩子
- Ubuntu 14.04下CUDA8.0 + cuDNN v5 安装配置过程
- 用cnavas绘制五角星
- struts2文件上传细节
- Nginx代理功能与负载均衡详解
- 感知机更新规则 python
- Swap Nodes in Pairs
- 剑指offer 面试题3 二维数组中的查找
- PHP程序员要想在北京买房你得狠
- Spring 注入 null
- CodeSmith 7.01破解下载
- 红黑树
- C#中获取计算机当前日期时间等的不同格式
- PHP学习路线图