Osprey 알고리즘(예측 응용)을 기반으로 최적화된 BP 신경망 - 코드 포함
기사 디렉토리
개요: 이 기사에서는 Osprey 알고리즘을 사용하여 BP 신경망을 최적화하고 예측에 적용하는 방법을 주로 소개합니다.
1. 데이터 소개
이 경우에는 2000개의 데이터 세트가 있으며 그 중 1900개 세트는 훈련에 사용되고 100개 세트는 테스트에 사용됩니다. 데이터의 입력은 2차원 데이터이고 예측 출력은 1차원 데이터입니다.
2. Osprey는 BP 신경망을 최적화합니다.
2.1 BP 신경망 매개변수 설정
신경망 매개변수는 다음과 같습니다.
%% 构造网络结构
%创建神经网络
inputnum = 2; %inputnum 输入层节点数 2维特征
hiddennum = 10; %hiddennum 隐含层节点数
outputnum = 1; %outputnum 隐含层节点数
2.2 Osprey 알고리즘의 적용
Osprey 알고리즘의 원리는 다음을 참조하세요: https://blog.csdn.net/u011835903/article/details/130542706
Osprey 알고리즘의 매개변수는 다음과 같이 설정됩니다.
popsize = 20;%种群数量
Max_iteration = 20;%最大迭代次数
lb = -5;%权值阈值下边界
ub = 5;%权值阈值上边界
% inputnum * hiddennum + hiddennum*outputnum 为阈值的个数
% hiddennum + outputnum 为权值的个数
dim = inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum ;% inputnum * hiddennum + hiddennum*outputnum维度
여기서 신경망의 임계값 수는 다음과 같이 계산된다는 점에 유의해야 합니다.
이 네트워크에는 2개의 레이어가 있습니다.
첫 번째 레이어의 임계값 수는 2*10 = 20, 즉 inputnum * Hiddennum;
첫 번째 레이어의 가중치 수는 10, 즉 Hiddennum입니다.
두 번째 레이어의 임계값 수는 10*1 = 10, 즉 Hiddennum *outputnum입니다.
두 번째 레이어의 가중치 수는 1, 즉 출력 번호입니다.
따라서 최적화된 차원은 다음과 같습니다. inputnum * Hiddennum + Hiddennum*outputnum + Hiddennum + Outputnum = 41;
피트니스 기능 값 설정:
본 논문에서는 피트니스 함수를 다음과 같이 설정한다:
Fitness = argmin ( mse ( T rain Data Error ) + mes ( T est Data Error ) ) Fitness = argmin(mse(TrainDataError) + mes(TestDataError))적합성 _ _ _ _=a r g min ( m se ( 훈련 데이터 오류 ) _ _ _ _ _ _+m es ( T es t Data Error )) 여기서 TrainDataError 및 TestDataError는 각각 훈련
세트와 테스트 세트의 예측 오류 입니다 . mse는 평균 제곱 오차 함수를 찾는 것이며, 피트니스 함수는 우리가 최종적으로 원하는 네트워크가 테스트 세트와 훈련 세트 모두에서 더 나은 결과를 얻을 수 있는 네트워크임을 보여줍니다.
4. 테스트 결과:
Osprey 알고리즘의 수렴 곡선에서 전체 오류가 지속적으로 감소하는 것을 볼 수 있으며 이는 Osprey 알고리즘이 최적화된 역할을 수행했음을 나타냅니다.