Salp 그룹 알고리즘(예측 적용)을 기반으로 최적화된 BP 신경망 - 코드 포함

Salp 그룹 알고리즘(예측 적용)을 기반으로 최적화된 BP 신경망 - 코드 포함


개요: 이 글에서는 Salp 그룹 알고리즘을 사용하여 BP 신경망을 최적화하고 예측에 적용하는 방법을 주로 소개합니다.

1. 데이터 소개

이 경우에는 2000개의 데이터 세트가 있으며 그 중 1900개 세트는 훈련에 사용되고 100개 세트는 테스트에 사용됩니다. 데이터의 입력은 2차원 데이터이고 예측 출력은 1차원 데이터입니다.

2. Salp 그룹 최적화 BP 신경망

2.1 BP 신경망 매개변수 설정

신경망 매개변수는 다음과 같습니다.

%% 构造网络结构
%创建神经网络
inputnum = 2;     %inputnum  输入层节点数 2维特征
hiddennum = 10;     %hiddennum  隐含层节点数
outputnum = 1;     %outputnum  隐含层节点数

2.2 살프 떼 알고리즘의 적용

Salp 그룹 알고리즘의 원리를 참조하세요: https://blog.csdn.net/u011835903/article/details/107767869

salp swarm 알고리즘의 매개변수는 다음과 같이 설정됩니다.

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. 테스트 결과:

Salp swarm 알고리즘의 수렴 곡선에서 전체 오류가 지속적으로 감소하는 것을 볼 수 있으며 이는 salp swarm 알고리즘이 최적화된 역할을 했음을 나타냅니다.

여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입

5. Matlab 코드

추천

출처blog.csdn.net/u011835903/article/details/132416855