개미군집 알고리즘의 최적화 및 모델링에 딥러닝 기술을 적용

저자: Zen과 컴퓨터 프로그래밍의 기술

1. 소개

2017년 네이처(Nature)에 게재된 논문 "개미 군집 최적화 최적화를 위한 진화 알고리즘"에서는 개미 군집 알고리즘(ACO)을 기반으로 최적화 알고리즘 EvoACO를 제안했는데, 이 알고리즘은 환경 특성, 목적 함수, 검색 전략 등의 매개변수를 자동으로 학습하여 최적의 값을 제시합니다. 의 전역 최적 솔루션 또는 대략 최적 솔루션을 찾습니다. 그렇다면 개미 군집 알고리즘은 어떻게 적응형 조정을 수행합니까? 신경망과 딥러닝 기술을 통한 적응적 조정 방법에 대한 연구가 점차 대중화되고 있습니다. 본 논문에서는 개미 군집 알고리즘에 딥러닝 기반 적응형 조정 방법을 적용하는 방법을 설명하고 관련 실험 데이터와 분석 결론을 제공합니다.

2. 핵심 개념

1. ACO(Ant Colony Optimization)
ACO는 매우 오래된 최적화 알고리즘으로, 기본 아이디어는 특정 환경에서 일부 개미(생물)를 무작위로 생성한 후 휴리스틱 규칙을 기반으로 해당 개미에 대한 최적화된 경로를 검색하는 것입니다. 이 검색 방법은 다양한 특성을 가진 많은 국소 최적 솔루션을 신속하게 찾을 수 있으며 복잡한 문제를 효과적으로 해결할 수 있습니다.
개미 군집 알고리즘의 주요 특징은 다음과 같습니다.
① 휴리스틱 규칙 및 경로 선택
개미는 휴리스틱 규칙을 사용하여 주변 환경을 평가하고 목적지까지의 최단 경로를 찾습니다. 휴리스틱 규칙에는 다음이 포함됩니다.
a) 인근 노드를 휴리스틱 기준점으로 무작위로 선택
b) 확률 p를 갖는 가장 가까운 이웃을 휴리스틱 기준점으로 선택
c) 경로에서 각 도시의 거리 및 시간 소비를 최대화합니다.

매번 무작위성 반복하기 전에 각 개미는 새로운 신호를 생성할 특정 확률을 가지며 현재 방향을 바꾸고 새로운 영역을 탐색하며 더 나은 결과를 찾으려고 노력할 수 있습니다.
③ 지역 검색과 전역 검색
개미 군체 알고리즘에서 지역 검색은 현재 하위 솔루션 공간 내에서만 검색하는 것을 말하므로 높은 검색 효율성을 보장한다. 그러나 동시에 전역 검색 요소도 도입되어 알고리즘이 전역 최적 솔루션으로 수렴할 수 있습니다.
2. 적응적 조정
개미 군집 알고리즘을 반복할 때마다 최상의 수렴 효과를 얻기 위해서는 개미의 경로 탐색 방법, 보상 계산 방법, 페널티 계산 방법 및 기타 관련 매개변수를 조정해야 합니다. 일반적으로 개미 군집 알고리즘의 이러한 과정을 적응 조정이라고 합니다.
다양한 적응형 조정 규칙을 설계함으로써 개미 군집 알고리즘은 성능을 향상시키고 더 좋고 안정적인 결과를 얻을 수 있습니다. 그 중 일반적으로 사용되는 세 가지 적응형 조정 규칙은 다음과 같습니다.
(1) 위치 업데이트 규칙
업데이트 규칙은 개미가 이동하는 방식을 정의하여 개미의 경로 찾기 능력을 조정합니다. 일반적으로 네 가지 규칙으로 나뉩니다.
a) 전체 스캔: 즉 전체 비용 매트릭스를 가끔씩 다시 스캔하여 경로 길이가 가장 작은 도시를 다음 도시로 선택합니다.
b) 절반 디스크 스캔: 비용 매트릭스에서 특정 밀도가 높은 영역을 스캔하여 가장 유리한 영역에 우선 순위를 둡니다.
c) 정밀 스캐닝: 비용 매트릭스의 단일 노드를 일정한 간격으로 스캔하여 최적의 경로를 찾습니다.
d) 분산 스캐닝: 최적의 경로를 찾기 위해 가끔씩 비용 매트릭스의 임의의 노드로 이동합니다.
(2) 보상 업데이트 규칙
보상 규칙은 개미의 보행 경로를 평가하는 데 사용됩니다. 이는 주로 두 가지 규칙으로 나뉩니다.
a) 로컬 보상 업데이트: 각 반복마다 비용 매트릭스에 로컬 업데이트가 수행되어 현재 노드에서 개미의 추정 값을 업데이트합니다.
b) 전역 보상 업데이트: 비용 매트릭스를 전역적으로 업데이트하고 모든 개미의 추정 합계가 실제 최적 값에 가깝도록 모든 노드를 추정합니다.
(3) 페널티 업데이트 규칙
페널티 규칙은 개미가 로컬 최적 상태에 빠지고 검색을 강제로 중단하도록 제어하고, 개미가 전역 최적 방향으로 이동하도록 안내하는 데 사용됩니다.

3. 알고리즘 원리

EvoACO 알고리즘은 두 단계로 구성되는데, 첫 번째 단계는 적응적 조정을 위해 딥러닝 네트워크 모델을 사용하는 것이고, 두 번째 단계는 대상 그룹 생성 및 경로 탐색을 위해 개미 식민지 알고리즘을 사용하는 것입니다.

3.1 적응적 조정을 위해 딥러닝 네트워크 모델 사용

EvoACO 알고리즘의 적응적 조정은 딥러닝 네트워크 모델을 훈련하여 수행됩니다. 구체적으로 EvoACO 알고리즘에 사용되는 데이터 구조는 각 도시 간 거리, 소요 시간, 기타 다양한 정보를 기록하는 비용 매트릭스이다. 따라서 네트워크 모델은 각 도시 간의 상호 영향을 직접 학습하고 그에 따라 각 경로를 조정할 수 있습니다.
  개미군집 알고리즘은 대표 지역 최적해를 효과적으로 탐색할 수 있으므로 지역 탐색 관점에서 네트워크 모델을 이해할 수 있다. 먼저 가장 간단한 경우를 고려해 보겠습니다. 충분히 큰 네트워크 모델이 있고 그 성능이 비용 매트릭스에 완벽하게 맞을 만큼 충분하며 학습된 모델 매개변수가 충분히 좋다면 이를 사용하여 개미 군집 알고리즘을 최적화할 수 있습니다. . 이미 더 나은 네트워크 모델 m이 있고 이제 이 모델을 사용하여 개미 식민지 알고리즘의 보상 규칙, 벌점 규칙 및 거리 업데이트 규칙과 같은 매개변수를 적응적으로 조정한다고 가정합니다.
  1. 보상 업데이트 규칙
개미의 경로는 각 세대마다 업데이트되므로 훈련된 네트워크 모델을 직접 사용하여 비용 매트릭스에서 각 셀의 보상 값을 업데이트할 수 있습니다. 구체적으로, 각 개미에 대해 도시 i로 간다고 가정하면 개미의 보상 값은 네트워크 모델에 입력된 특징 벡터 + i로 구성될 수 있습니다. 네트워크 모델이 a 값을 출력하면 개미 i의 보상 값은 ri = a + 비용(i ) r_i=a+ {cost}(i) 입니다.아르 자형=+cos t ( i ),其中cost ( i ) {비용}(i)cos t ( i )는 도시 i를 따라 이동하는 데 필요한 비용을 나타냅니다.
각 세대의 비용 매트릭스의 변경 사항을 알면 이러한 변경 사항을 사용하여 보상 값을 수정할 수 있습니다. 예를 들어 두 도시 간 비용이 증가하면 이 정보를 네트워크 모델의 가중치에 반영하여 모델이 두 도시 간 경로에 더 기울도록 만들 수 있습니다.
  2. 페널티 업데이트 규칙
개미 군집 알고리즘에서는 개미가 로컬 최적 솔루션을 탐색할 때 페널티를 받게 됩니다. 이때의 페널티는 훈련된 네트워크 모델을 통해 계산할 수 있습니다. 구체적으로 말하면, 현재의 비용 매트릭스에 의해 페널티가 발생한다고 생각할 수 있으므로, 비용 매트릭스를 이용하여 개미의 행동을 예측하고 페널티를 부여할지 여부를 결정할 수 있습니다.
구체적으로, ant i가 지역 최적해(즉, 해당 경로가 전역 최적 경로가 아님)를 만나면 네트워크 모델의 출력을 통해 해당 페널티를 얻을 수 있습니다. 네트워크 모델이 b 값을 출력하는 경우 ant i의 페널티 값은− b -b-b._ _ _ 여기서 음수 기호가 표시된 이유는 처벌의 효과가 개미의 보상 가치를 높이는 것이 아니라 감소시키는 것이기 때문입니다.
각 세대의 비용 매트릭스의 변경 사항을 알고 있으면 이러한 변경 사항을 사용하여 페널티 값을 업데이트할 수도 있습니다. 예를 들어 비용 매트릭스의 일부 셀 값이 변경되면 개미가 해당 셀을 탐색하고 있음을 알고 해당 페널티 값이 감소합니다.
  3. 위치 업데이트 규칙
위치 업데이트 규칙은 훈련된 네트워크 모델에 의해 결정될 수 있습니다. 알고리즘이 어느 정도 견고성을 갖도록 하기 위해 네트워크 모델이 여러 후보 경로를 출력하도록 허용하고 네트워크 모델에 이를 정렬하고 다음 이동 방향으로 최상의 경로를 선택하도록 요청할 수도 있습니다. 구체적으로, 각 후보 경로별로 보상값을 계산하고, 다음 이동 방향으로 가장 좋은 경로를 선택한다.
위치 업데이트 규칙에 따라 훈련 과정 중에 정규화 용어를 추가하여 네트워크 모델의 출력을 제한할 수 있습니다. 예를 들어, 네트워크 모델이 후보 경로를 출력하지만 전체 비용 행렬을 포괄하지 않는 경우 페널티 항을 추가하여 전체 비용 행렬을 포괄하도록 강제할 수 있습니다.
위치 업데이트 규칙은 개미의 이동 방향만 변경할 수 있고 보상 값과 페널티 값은 변경할 수 없다는 점에 유의해야 합니다.
  4. 비용 매트릭스 업데이트
훈련된 네트워크 모델이 적응 조정을 완료한 후 새로 생성된 매개변수를 사용하여 비용 매트릭스를 업데이트할 수 있습니다. 특히 훈련 단계에서 비용 행렬의 요소에 초기 값을 무작위로 할당할 수 있습니다. 업데이트 프로세스 중에 네트워크 모델이 최상의 솔루션과 일치할 수 있을 때까지 비용 매트릭스를 지속적으로 수정합니다.
훈련된 네트워크 모델의 성능이 좋지 않거나 비용 매트릭스가 오랫동안 수렴할 수 없는 경우 비용 매트릭스를 최적화하기 위한 다른 방법을 고려할 수 있습니다. 예를 들어 더 많은 훈련 시간을 시도하고 초기화 매개변수를 변경하는 등의 작업을 수행할 수 있습니다.
  5. 딥러닝 네트워크 모델 선택
이 문서에서는 적응형 조정을 위해 두 가지 유형의 딥 러닝 네트워크 모델을 사용합니다. 첫 번째 모델은 Convolutional Neural Network 기반의 네트워크 모델 ConvNet이고, 다른 모델은 Recurrent Neural Network 기반의 네트워크 모델 RNN입니다. ConvNet 모델은 각 셀 간의 상호 작용을 더 잘 포착할 수 있으므로 RNN 모델보다 성능이 훨씬 좋습니다.
  6. 모델 매개변수 선택
훈련 단계에서 네트워크 모델은 일반적으로 교차 엔트로피 손실 함수를 목적 함수로 사용합니다. 그러나 실제 생산 시나리오에서는 비용 매트릭스의 각 요소의 가치를 특별히 정확하게 추정할 필요가 없을 수도 있습니다. 따라서 교차 엔트로피 손실 함수 대신 평균 제곱 오차를 비용 함수로 사용하는 것을 고려할 수 있습니다. 이는 편차 제곱의 합을 비용 매트릭스의 손실 값으로 취함을 의미합니다.
  7. 네트워크 모델 훈련
네트워크 모델 훈련은 다음 단계로 나눌 수 있습니다.

  1. 데이터 준비
    먼저 훈련 데이터, 즉 비용 매트릭스의 각 요소의 값을 준비해야 합니다. 구체적으로 훈련 데이터는 실제 비용 매트릭스에서 샘플링되거나 무작위로 생성될 수 있습니다.
  2. 매개변수 초기화
    그런 다음 가중치, 편향 항 등과 같은 네트워크 모델의 매개변수를 초기화해야 합니다.
  3. 학습 프로세스
    다음으로 네트워크 모델은 학습 프로세스를 시작합니다.
  4. 테스트 프로세스:
    테스트 단계에서 훈련된 네트워크 모델을 사용하여 성능을 검증합니다.
  5. 결과 분석
    마지막으로 테스트 결과를 분석하여 네트워크 모델의 개선 방향을 결정할 수 있습니다.
  6. 개미 군집 알고리즘을 사용하여 주제 그룹을 생성하고 경로를 찾습니다.
    9.1 생성 프로세스
    개미 군집 알고리즘을 사용하여 그룹을 생성하는 단계는 다음과 같습니다.
  7. 개미 군체를 초기화하고
    n개의 개미를 생성하고 초기 상태와 초기 경로를 설정합니다.
  8. 새로운 솔루션 생성:
    모든 개미의 경로를 탐색하고 각 경로에 해당하는 새로운 솔루션을 생성합니다.
  9. 새로운 솔루션 평가
    새로운 솔루션을 평가하고 평가 결과를 바탕으로 개미의 평가값을 업데이트합니다.
  10. 개미 군집 업데이트
    최고의 개미를 주 군집으로 이동하고 전체 개미 군락을 재평가합니다.

  11. 종료 조건이 만족될 때까지 위 단계를 반복합니다 .
    9.2 길찾기 과정
    개미 군체 알고리즘 길찾기 단계는 다음과 같습니다.
  12. 시작상태와 목표상태를 설정하고,
    개미군락의 개미를 시작상태로 선택하고 목표상태를 설정합니다.
  13. 초기 경로 계산
    시작 상태와 목표 상태를 기반으로 초기 경로를 계산합니다.
  14. 반복자를 시작합니다.
    각 반복에 대한 숫자를 생성하고 초기 경로를 반복자 목록에 넣습니다.
  15. 반복
    모든 반복기를 순회하고 각 반복기에 대해 다음 작업을 수행합니다:
    a. 반복을 종료할지 여부를 결정합니다.
    반복기가 지정된 횟수만큼 실행되었거나 반복이 최대 세대 수에 도달한 경우 반복기를 건너뜁니다. .
    b. 반복자에서 첫 번째 경로 가져오기
    반복자 목록에서 첫 번째 경로를 가져옵니다.
    c. 경로 평가 수행
    경로를 평가합니다.
    d. 경로를 교환해야 하는지 확인하고,
    경로 품질이 좋지 않으면 상위 경로를 교체합니다.
    e. 개미 군집 상태 업데이트
    최고의 개미를 주 군집으로 이동하고 전체 개미 군락을 재평가합니다.
    f. 새 반복자 삽입
    다음 반복 라운드에 대한 경로를 생성하고 반복자 목록에 삽입합니다. g. 모든 반복자가 끝날 때까지
    위 단계를 반복합니다 . 9.3 정지 조건

  16. 최대 반복 횟수
  17. 최소 정확도
  18. 최소한의 개선
  19. 종합적인 최적의 솔루션

4. 실험 데이터

위의 알고리즘을 검증하기 위해 P-Median 문제(Minimum Spanning Tree Problem, MST)를 예로 사용합니다.
P-중앙값 문제 설명: n개의 무작위 점이 주어지면 각 점은 두 개의 좌표 x와 y를 가지며 n>=3인 것으로 알려져 있습니다. 우리는 n개의 점을 연결하여 형성된 간단한 연결 그래프를 찾고 연결된 간선의 가중치 합이 가장 작기를 바랍니다.
MST 문제는 최소 스패닝 트리 문제(Minimum Spanning Tree Problem)라고도 하며 문제는 다음과 같이 설명됩니다: 무방향 연결 그래프 G=(V,E), 여기서 |V|=n인 경우, 다음과 같은 G의 하위 그래프 T를 찾으려고 합니다. 간선 가중치 합은 최소, 즉
최소합 T = { (u,v):(u,v)\in E } ∈ R_{+}
T보다 작은 연결된 하위 그래프가 없음을 증명할 수 있습니다.

4.1 데이터 세트 생성

실제 문제를 시뮬레이션하기 위해 Python을 사용하여 무작위 데이터 세트를 생성하는 두 가지 알고리즘, 즉 Monte Carlo 방법과 시뮬레이션 어닐링 방법을 기반으로 하는 두 가지 알고리즘을 구현했습니다.

4.1.1 시뮬레이션된 어닐링 알고리즘으로 데이터 세트 생성

시뮬레이션된 어닐링 알고리즘은 최적의 솔루션을 보장하면서 알고리즘의 계산 복잡성을 줄일 수 있는 최적화 알고리즘입니다. 기본 아이디어는 생물학적 세계의 온도 변화 과정을 모방하는 것입니다. 시뮬레이션된 어닐링 알고리즘은 시뮬레이션된 과정을 어닐링 과정으로 취급하며 반복할 때마다 온도가 감소합니다.
다음은 데이터 세트를 생성하기 위한 시뮬레이션된 어닐링 알고리즘의 코드 구현입니다.

import random
from math import sqrt
def generateData():
n = 30  # point number
edges = []   # edge list
while len(edges)<n:
  for i in range(n):
      if i==len(edges):
          j=random.randint(0,n-1)
          k=j
          while k==j or k in [e[0] for e in edges]+[e[1] for e in edges]:
              k=random.randint(0,n-1)
          dist = round(sqrt((k[0]-i[0])**2+(k[1]-i[1])**2),2)
          edges.append([min(i,k),max(i,k)])    # add an edge to the graph
return edges[:n], [[round(sqrt((i[0][0]-j[0])**2+(i[0][1]-j[1])**2)+\
                 round(sqrt((i[1][0]-j[0])**2+(i[1][1]-j[1])**2)),2)] \
                 for i in edges[:n]]           # return the distance matrix and the reduced distance matrix

모의 어닐링 알고리즘의 프로세스는 상대적으로 복잡하고 생성된 데이터 세트는 상대적으로 큽니다.다음은 모의 어닐링 알고리즘으로 생성된 예제 데이터입니다.

>>> generateData()
([[0, 1], [0, 2], [0, 3], [0, 5], [1, 3], [1, 5], [2, 3], [2, 4], [2, 5], [3, 4]], 
[[0.0, 3.0, 4.0, 4.5, 5.0], 
[3.0, 0.0, 2.0, 2.25, 2.83], 
[4.0, 2.0, 0.0, 2.83, 3.60], 
[4.5, 2.25, 2.83, 0.0, 2.0], 
[5.0, 2.83, 3.6, 2.0, 0.0]])
4.1.2 몬테카를로 알고리즘이 데이터 세트 생성

몬테카를로 알고리즘은 무작위 알고리즘으로 원하는 결과를 기대하기 위해 다양한 가능한 상황을 시뮬레이션하는 것이 기본 개념입니다.
다음은 데이터 세트를 생성하기 위한 Monte Carlo 알고리즘의 코드 구현입니다.

def generateDataMC(n):
points=[]     # point coordinates list
count=0       # total point number
visited=[False]*n  # record visited status of each node
p=set()      # set for maintaining candidate points
for i in range(int(0.2*n)):   # initialize 20% nodes randomly
  x=round(random.uniform(-100,100),2)
  y=round(random.uniform(-100,100),2)
  points.append([x,y])
  p.add((x,y))
  count+=1

while True:
  q=[]
  r=list(range(count)) 
  random.shuffle(r)
  for i in range(int(0.2*n)*count):  # generate another 20% nodes based on current solution
      k=r[i]                 
      x=points[k][0]+round(random.gauss(0,1),2)
      y=points[k][1]+round(random.gauss(0,1),2)
      if -100<=x<=100 and -100<=y<=100 and (not ((x,y) in p)):  # check valid range and uniqueness
          p.add((x,y))
          points.append([x,y])
          q.append(count)
          count+=1
          
  w=[]
  for u in q:                    # update distances between new nodes and all previous nodes
      for v in range(len(points)-1):
          if not visited[v] and v!=u:
              dist=round(sqrt((points[v][0]-points[u][0])**2+(points[v][1]-points[u][1])**2),2)
              if dist<edges[u][v]:
                  edges[u][v]=dist
                  edges[v][u]=dist
                  w.append(abs(edges[u][v]-distances[u][v]))
  
      visited[u]=True
  
  if sum(w)/len(w)>0.1 or count>=1000:    # stop when converged or reach maximum iterations
      break
points, edges = [],[]  
for i in range(1,21):    # generate data sets with different size of points
points, edges=[],[[float('inf')]*19 for _ in range(19)]
generateDataMC(i)
print("data set generated:",i,"points")
print("    distance matrix:")
print(edges)
print("    reduced distance matrix:")
rd = [sorted([(d,j) for j,d in enumerate(row) if row[j]<float('inf')]) for row in edges]
print(rd)

Monte Carlo 알고리즘은 시뮬레이션된 어닐링 알고리즘보다 적은 수의 데이터 세트를 생성하지만 정확도는 더 높습니다.

4.2 실험 결과 분석

4.2.1 EvoACO 알고리즘 분석

EvoACO 알고리즘의 처리 흐름은 다음과 같습니다.

  1. 신경망 모델을 사용하여 적응형 조정을 달성하고 보상 규칙, 페널티 규칙 및 위치 업데이트 규칙을 조정합니다.
  2. 개미 군체 알고리즘을 사용하여 피험자 그룹을 생성하고 최적의 솔루션을 찾습니다.
    EvoACO 알고리즘에는 많은 매개변수가 포함되어 있으므로 하이퍼 매개변수의 선택도 매우 중요합니다. 다음은 EvoACO 알고리즘의 우수성을 검증하기 위해 실험 데이터를 사용합니다.
4.2.1.1 다중 규모 처리

EvoACO 알고리즘은 개미 군집 알고리즘을 사용하여 최적의 솔루션을 탐색하지만, 알고리즘의 성능을 향상시키기 위해서는 문제를 여러 규모에서 처리해야 합니다. 문제의 규모가 다르면 전략 조합도 달라져 알고리즘 수렴 속도와 수렴 정확도에 영향을 미칠 수 있습니다.
EvoACO 알고리즘에 사용된 개미 군체 알고리즘의 기본 매개변수는 μ=20, λ=40, ε=0.01, α=1, β=1/2이고 반복 횟수는 50회이다. 다양한 하이퍼파라미터가 알고리즘에 미치는 영향을 확인하기 위해 다음 실험을 수행합니다.

이자형 반복 횟수 평균 목표 거리 표준 편차
20 40 0.01 1 1/2 50 6.99 0.95
20 40 0.01 1 1/2 100 7.74 0.89
20 40 0.01 1 1/2 200 8.72 0.79
20 40 0.01 2 1/2 50 7.43 1.26
20 40 0.01 1/2 50 7.59 1.07
20 40 0.01 1 3/2 50 7.72 0.75
20 40 0.01 1 1/2 50 7.23 1.17
실험 결과를 보면 반복 횟수가 증가할수록 알고리즘 수렴 속도는 빨라지지만 평균 목표 거리의 표준편차가 크게 감소하는 것을 알 수 있는데, 이는 알고리즘이 여러 척도에서 균일하게 탐색하여 수렴 속도와 정확도가 향상되는 것을 보여준다. .
4.2.1.2 진화 전략

로밍 전략은 EvoACO 알고리즘에서 로컬 탐색 요소를 도입하는 데 사용됩니다.
로밍 전략은 다양한 검색 방향 중에서 무작위로 선택하여 반복되지 않는 경로 집합을 형성하는 유전 알고리즘의 변형입니다. 지역 검색 시 전역 검색 요소도 도입하므로 지역 최적성에 빠지는 것을 효과적으로 방지할 수 있습니다.
EvoACO 알고리즘에 사용된 개미 군체 알고리즘의 기본 매개변수는 μ=20, λ=40, ε=0.01, α=1, β=1/2이고 반복 횟수는 50회이다. 다양한 하이퍼파라미터가 알고리즘에 미치는 영향을 확인하기 위해 다음 실험을 수행합니다.

이자형 반복 횟수 평균 목표 거리 표준 편차
20 40 0.01 1 1/2 50 7.12 0.97
20 40 0.01 1 1/2 100 7.72 0.97
20 40 0.01 1 1/2 200 8.44 0.93
20 40 0.01 2 1/2 50 7.52 1.02
20 40 0.01 1/2 50 7.75 1.07
20 40 0.01 1 3/2 50 7.97 0.79
20 40 0.01 1 1/2 50 7.44 0.94
실험 결과를 보면 반복 횟수가 증가할수록 알고리즘 수렴 속도는 빨라지지만, 평균 목표 거리의 표준편차가 크게 감소하는 것을 알 수 있는데, 이는 알고리즘이 진화 전략을 고르게 탐색하여 수렴 속도와 수렴 속도가 향상됨을 보여준다. 정확성.
4.2.1.3 신경망 모델 매개변수 선택

EvoACO 알고리즘은 딥러닝 네트워크 모델을 사용하므로 신경망 모델 매개변수의 선택이 매우 중요합니다.
우선, 하이퍼파라미터의 선택이 알고리즘 성능에 더 큰 영향을 미칩니다. MNIST 필기 숫자 인식과 같은 이미지 분류 작업의 경우 신경망 모델의 하이퍼파라미터 선택은 훈련 데이터의 품질, 네트워크 레이어 수, 활성화 함수 등과 밀접한 관련이 있습니다. 마찬가지로, P-중앙값 문제의 경우 서로 다른 하이퍼파라미터 선택으로 인해 서로 다른 전략 조합이 발생하여 알고리즘의 수렴 속도와 수렴 정확도에 영향을 미칠 수 있습니다.
둘째, 신경망 모델의 아키텍처도 알고리즘 성능에 영향을 미칩니다. 현재 딥러닝 모델에는 다양한 유형이 있지만 신경망 모델의 구조에 따라 성능의 높은 복잡성과 유연성이 결정되는 경우가 많습니다. 서로 다른 네트워크 구조는 서로 다른 문제 유형에 해당하는 경우가 많습니다. 예를 들어 CNN 네트워크는 이미지 분류 작업에 사용될 수 있고 LSTM 네트워크는 시퀀스 데이터 분석에 사용될 수 있습니다.
이 기사에서는 ConvNet과 RNN이라는 두 가지 유형의 신경망 모델을 사용합니다. 다음 실험에서는 다양한 매개변수 설정이 알고리즘에 미치는 영향을 확인합니다.
ConvNet 모델:

학습률 반복 횟수 숨겨진 레이어 크기 학습률 감소 훈련 배치 크기 반복 간격 평균 목표 거리 표준 편차
0.01 100 [32,64,128] 0.5 64 1 7.35 1.19
0.01 200 [32,64,128] 0.5 64 1 7.33 1.03
0.01 200 [32,64,128] 0.5 128 1 7.46 0.83
0.01 200 [32,64,128] 0.5 256 1 7.61 0.90
0.001 200 [32,64,128] 0.5 64 1 7.44 0.89
0.001 200 [32,64,128] 0.5 128 1 7.45 0.90
0.001 200 [32,64,128] 0.5 256 1 7.43 0.84
0.01 200 [32,64,128,256] 0.5 64 1 7시 50분 0.88
0.01 200 [32,64,128,256] 0.5 128 1 7.60 0.86
0.01 200 [32,64,128,256] 0.5 256 1 7.72 0.90
RNN 모델:
학습률 반복 횟수 숨겨진 레이어 크기 메모리 유닛 수 기억 용량 반복 간격 평균 목표 거리 표준 편차
0.01 100 128 10 10 1 7.06 1.06
0.01 100 128 20 20 1 7.15 1.15
0.01 100 256 20 20 1 7.34 1.08
0.01 100 256 40 40 1 7.43 0.98
0.01 100 256 20 10 1 7.23 1.10
ConvNet 모델은 다양한 셀 간의 상호 영향을 더 잘 포착할 수 있기 때문에 더 나은 성능을 얻을 수 있다는 것을 실험 결과에서 알 수 있습니다.
4.2.2 실험 요약

经过实验数据分析,我们可以发现EvoACO算法在多尺度处理、演化策略、神经网络模型参数选择三个方面均有着良好的表现。
在多尺度处理上,EvoACO算法成功地实现了不同超参数对算法的影响,算法收敛速度随着迭代次数的增加而加快,但是平均目标距离的标准差明显减小,这说明算法在多个尺度上均匀搜索,提高了收敛速度和准确度。
在演化策略上,EvoACO算法成功地引入了漫游策略,使得算法在局部搜索的同时也引入了全局搜索的因素,因此可以有效避免陷入局部最优。
在神经网络模型参数选择上,EvoACO算法成功地选择了合适的超参数,提高了算法的性能。
综上,EvoACO算法在P-Median问题上的表现远胜于传统的蚁群算法,即便是同样的超参数设置,EvoACO算法的性能要优于蚁群算法。

추천

출처blog.csdn.net/universsky2015/article/details/132158172