粒子群算法优化BP神经网络
来源:互联网 发布:linux 监听端口 编辑:程序博客网 时间:2024/05/17 03:14
刚学粒子群算法,然后用粒子群算法优化神经网络的隐藏节点数,代码写的不是太好,如果代码有问题,请大家多多指教。第一次写博客,多多包涵。
本文的粒子群算法用的是标准粒子群算法,权重更新采用线性递减策略。
这是SSE图
import numpy as npimport random import matplotlib.pyplot as pltimport neurolab as nltrain_x =[]d=[]samplescount=1000myrndsmp=np.random.rand(samplescount)for yb_i in xrange(0,samplescount): train_x.append([myrndsmp[yb_i]*4*np.pi-2*np.pi])for yb_i in xrange(0,samplescount): d.append(np.sin(train_x[yb_i])*0.5+np.cos(train_x[yb_i])*0.5)myinput=np.array(train_x) mytarget=np.array(d)#PSO参数设置class PSO(): def __init__(self,max_iter): #self.w = 0.8 self.c1 = 2 self.c2 = 2 self.pN =10 #粒子数量 self.dim = 1 #搜索维度 self.max_iter = max_iter #迭代次数 self.X = np.ones((self.pN,self.dim)) #所有粒子的位置和速度 self.V = np.zeros((self.pN,self.dim)) self.pbest = np.zeros((self.pN,self.dim)) #个体经历的最佳位置和全局最佳位置 self.gbest = np.zeros((1,self.dim)) self.p_fit = np.zeros(self.pN) #每个个体的历史最佳适应值 self.fit = 1e10 #全局最佳适应值 self.wmax=0.9 self.wmin=0.4#目标函数 def fun(self,err): fitness=err return fitness#初始化种群 def init_Population(self): for i in range(self.pN): for j in range(self.dim): self.X[i][j] = random.uniform(1,20) self.V[i][j] = random.uniform(0,2) self.pbest[i] = self.X[i] for x in self.pbest[i]: return x bpnet = nl.net.newff([[-2*np.pi, 2*np.pi]], [int(x)+1, 1]) err = bpnet.train(myinput, mytarget, epochs=800, show=100, goal=0.02) #out=net.sim(input) tmp = self.fun(err) self.p_fit[i] = tmp if(tmp < self.fit): self.fit = tmp self.gbest = self.X[i] #更新粒子位置 def iterator(self): fitness = [] for t in range(self.max_iter): w=self.wmax-(self.wmax-self.wmin)*(float(t)/self.max_iter) for i in range(self.pN): for x in self.pbest[i]: return x print x bpnet = nl.net.newff([[-2*np.pi, 2*np.pi]], [int(x)+1, 1]) err = bpnet.train(myinput, mytarget, epochs=800, show=100, goal=0.02) temp = self.fun(err) if(temp
阅读全文
1 0
- 粒子群算法优化BP神经网络
- 遗传算法优化BP神经网络
- 遗传算法优化BP神经网络
- 遗传算法优化BP神经网络
- 遗传算法优化的BP神经网络建模
- 遗传算法优化BP神经网络续
- 遗传算法优化的BP神经网络建模
- 粒子群优化算法
- 粒子群优化算法
- 粒子群优化算法
- 粒子群优化算法
- 粒子群优化算法
- 粒子群优化算法
- 粒子群优化算法
- 粒子群优化算法
- 基于遗传算法的BP神经网络优化算法
- BP 神经网络算法
- BP神经网络算法学习
- vb.net SQL语句 太长用Append
- row_number() 函数
- (亿图绘制)软件升级调度流程
- bootstrap学习27---带有响应式特性的嵌入式内容
- 牛客网专项练习基础概念总结(一)
- 粒子群算法优化BP神经网络
- Corba的学习笔记(二)
- Redis键值对数据库学习笔记
- java关于兔子问题
- 人机界面HMI 迅为7寸人机界面 操作简单 工业平板电脑触摸屏
- 移动端样式小技巧
- Java高并发,如何解决,什么方式解决
- 关于Aop切面中的@Before @Around等操作顺序的说明
- 2.1 离散傅里叶变换 (DFT)