AntLion 최적화(분류 응용) 기반 BP 신경망 - 코드 포함

AntLion 최적화(분류 응용) 기반 BP 신경망 - 코드 포함


개요: 이 기사에서는 개미 사자 알고리즘을 사용하여 BP 신경망을 최적화하는 방법을 주로 소개하고 홍채 데이터를 사용하여 간단한 설명을 제공합니다.

1. 홍채 데이터 소개

이 사례에서는 MATLAB의 공개 붓꽃 붓꽃 데이터를 테스트 데이터로 사용했으며, 붓꽃 데이터는 4차원과 3가지 카테고리를 가지고 있습니다. 데이터 형식은 다음과 같습니다.

특징 1 특징 2 특징 3 범주
단일 세트의 홍채 데이터 5.3 2.1 1.2 1

세 가지 범주는 1, 2, 3으로 표시됩니다.

2. 데이터 세트 구성

붓꽃 데이터에는 총 150개 그룹의 데이터가 포함되어 있으며, 이는 105개 그룹의 훈련 세트와 45개 그룹의 테스트 세트로 나뉩니다. 다음 표에 표시된 대로:

트레이닝 세트(세트) 테스트 세트(그룹) 전체 데이터(그룹)
105 45 150

카테고리 데이터 처리: 원본 데이터 카테고리는 1, 2, 3으로 표현하고, 신경망 훈련을 용이하게 하기 위해 카테고리 1, 2, 3은 1, 0, 0, 0, 1, 0, 0, 각각 0, 1.

데이터 훈련을 수행하면 모든 입력 특성 데이터가 정규화됩니다.

3. Ant Lion은 BP 신경망을 최적화합니다.

3.1 BP 신경망 매개변수 설정

일반적으로 지능형 알고리즘은 일반적으로 BP 신경망의 성능을 향상시키기 위해 BP 신경망의 초기 가중치와 임계값을 최적화하는 데 사용됩니다. 본 사례는 홍채 데이터를 기반으로 한 것으로, 홍채 데이터의 차원이 높지 않기 때문에 간단한 BP 신경망을 사용하였다. 신경망 매개변수는 다음과 같습니다.

신경망 구조

그림 1. 신경망 구조

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

%创建神经网络
inputnum = 4;     %inputnum  输入层节点数 4维特征
hiddennum = 10;     %hiddennum  隐含层节点数
outputnum = 3;     %outputnum  隐含层节点数
net = newff( minmax(input) , [hiddennum outputnum] , {
    
     'logsig' 'purelin' } , 'traingdx' ) ;
%设置训练参数
net.trainparam.show = 50 ;
net.trainparam.epochs = 200 ;
net.trainparam.goal = 0.01 ;
net.trainParam.lr = 0.01 ;

3.2 Ant Lion 알고리즘의 적용

Ant Lion 알고리즘의 원리는 다음을 참조하세요: https://blog.csdn.net/u011835903/article/details/107726004

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

popsize = 10;%种群数量
    Max_iteration = 15;%最大迭代次数
lb = -5;%权值阈值下边界
ub = 5;%权值阈值上边界
%  inputnum * hiddennum + hiddennum*outputnum 为阈值的个数
%  hiddennum + outputnum 为权值的个数
dim =  inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum ;%  inputnum * hiddennum + hiddennum*outputnum维度

여기서 신경망의 임계값 수는 다음과 같이 계산된다는 점에 유의해야 합니다.

이 네트워크에는 2개의 레이어가 있습니다.

첫 번째 레이어의 임계값 수는 4*10 = 40, 즉 inputnum * Hiddennum입니다.

첫 번째 레이어의 가중치 수는 10, 즉 Hiddennum입니다.

두 번째 레이어의 임계값 수는 3*10 = 30, 즉 Hiddennum *outputnum입니다.

두 번째 레이어의 가중치 수는 3입니다.

따라서 우리가 최적화한 차원은 다음과 같습니다. inputnum * Hiddennum + Hiddennum*outputnum + Hiddennum + Outputnum = 83;

피트니스 기능 값 설정:

이 문서에서는 적합성 함수를 다음과 같이 설정합니다.
Fitness = argmin (Train DataErrorRate + TestDataErrorRate) Fitness = argmin(TrainDataErrorRate + TestDataErrorRate)적합성 _ _ _ _=a r g min ( 열차 데이터 오류율 _ _ _ _ _ _ _ _ _ _+테스트 데이터 오류율 ) 여기서 TrainDataErrorRate와 TestDataErrorRate 각각 훈련 세트 와 테스트 세트
오류 분류율 입니다 . 피트니스 함수는 우리가 궁극적으로 원하는 네트워크가 테스트 세트와 훈련 세트 모두에서 더 나은 결과를 얻을 수 있는 네트워크임을 보여줍니다.

4. 테스트 결과:

Ant Lion 알고리즘의 수렴 곡선을 보면 전체 오류가 지속적으로 감소하고 있으며 이는 Ant Lion 알고리즘이 최적화 역할을 한다는 것을 나타냅니다.

여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.

5.매트랩 코드

Supongo que te gusta

Origin blog.csdn.net/u011835903/article/details/133530293
Recomendado
Clasificación