第14节--神经网络算法(python实现)
来源:互联网 发布:戛纳电影节 知乎 编辑:程序博客网 时间:2024/05/22 11:36
1. 关于非线性转化方程(non-linear transformation function)
sigmoid函数(S 曲线)用来作为activation function:
1.1 双曲函数(tanh)
1.2 逻辑函数(logistic function)
2. 实现一个简单的神经网络算法
import numpy as npdef tanh(x): return np.tanh(x)def tanh_deriv(x): return 1.0-np.tanh(x)*np.tanh(x)def logistic(x): return 1/(1+np.exp(-x))def logistic_derivative(x): return logistic(x)*(1-logistic(x))class NeuralNetwork: def __init__(self,layers,activation='tanh'): if activation == 'logistic': self.activation = logistic self.activation_deriv = logistic_derivative elif activation == 'tanh': self.activation = tanh self.activation_deriv = tanh_deriv self.weights = [] for i in range(1,len(layers)-1): self.weights.append((2*np.random.random((layers[i-1]+1,layers[i]+1))-1)*0.25) self.weights.append((2*np.random.random((layers[i]+1,layers[i+1]))-1)*0.25) def fit(self,X,y,learning_rate=0.2,epochs=10000): X = np.atleast_2d(X) temp = np.ones([X.shape[0],X.shape[1]+1]) temp[:,0:-1] = X X = temp y = np.array(y) for k in range(epochs): i = np.random.randint(X.shape[0]) a = [X[i]] for l in range(len(self.weights)): a.append(self.activation(np.dot(a[l],self.weights[l]))) error = y[i] - a[-1] deltas = [error*self.activation_deriv(a[-1])] for l in range(len(a)-2,0,-1): deltas.append(deltas[-1].dot(self.weights[l].T)*self.activation_deriv(a[l])) deltas.reverse() for i in range(len(self.weights)): layer = np.atleast_2d(a[i]) delta = np.atleast_2d(deltas[i]) self.weights[i] += learning_rate*layer.T.dot(delta) def predict(self,x): x = np.array(x) temp = np.ones(x.shape[0]+1) temp[0:-1] = x a = temp for l in range(0,len(self.weights)): a = self.activation(np.dot(a,self.weights[l])) return a
0 0
- 第14节--神经网络算法(python实现)
- 神经网络算法(python实现)
- 神经网络算法的python实现
- python实现简单神经网络算法
- python实现简单神经网络算法
- 第13节--神经网络算法
- Python实现人工神经网络(反向传播算法)
- Python 实现神经网络逆向传播算法(含详细注释)
- 神经网络之BP神经网络(Python实现)
- 6.2神经网络算法实现--python机器学习
- 神经网络算法应用举例【Python实现】
- 神经网络-感知器算法python代码实现
- 神经网络与深度学习笔记(三)python 实现反向传播算法
- 机器学习算法练习之(二):Python和Tensorflow分别实现简单的神经网络
- [Deep Learning]学习记录1-Python实现神经网络BP算法
- [Deep Learning]学习记录1-Python实现神经网络BP算法
- 三层神经网络简单实现(Python版)
- python实现BP神经网络(详细参数)
- 降级论
- NodeJs安装及配置环境变量的问题及解决办法
- 关于Android图片资源瘦身的奇思妙想
- Spring MVC
- tomcat8虚拟文件路径
- 第14节--神经网络算法(python实现)
- 【LeetCode】413. Arithmetic Slices
- C++中的异或运算符^
- 第九周等比数列
- Linux下靠谱的获取本机IP地址的C代码实现
- 上台阶
- Codeforces 733C Epidemic in Monstropolis
- Ubuntu下JDK安装与第一次运行JAVA程序
- 汇编语言实现跑马灯 8051单片机