Univ/2021-2

[인공지능] Genetic Algorithm application_AssembleNet

sssbin 2021. 12. 17. 12:02

AssembleNet

연결 웨이트 러닝을 통해 연결성이 더 좋은 신경 아키텍처를 자동으로 찾아 진화를 유도

 

Genetic Algorithm 이용해서 최적화된 connection 찾음

 

- 인접한 레벨끼리 connection X

    low level -> high level

 

- edge들의 색깔이 다 다름 -> 가중치

   (하나의 블록으로부터 다른 블록까지 얼만큼 내 정보가 전달될지)

 

- 노드 간 연결될 확률, 한 노드에 최대 몇개까지 연결?

    -> 제약 => 행렬로 표현

 

 

 

· Edge

   - 블록들 간의 connection 명시

   - lower level block -> higher level block : avoid forming a cycle

 

· Evolution

   - tournament selection algorithm

   - 'parent' architecture 선택 & mutate -> new 'child' architecture

   - Fitness function: top-1 accuracy (입력을 받아서 action 인식 - 맞는지 틀렸는지)

                                    + top-5 accuracy (5개 중 맞는게 있냐 없냐)

   - child 만들어지면 부모 세대 중 가장 안 좋은 것 빼냄

   * 블록 수는 거의 유지. 블록들 간 연결성 변함.

 

· Generate a child architecture

   1) 'connection-learning-guided evolution' : crossover

   2) mutation operators : diversity

 

· Connection-learning-guided evolution

   - 부모 노드 일부 유지 + 일부 변형

   - 가중치가 높은 connection은 유지하고, 낮은 connection은 대체함.

 

· Mutation operators

   - Merge / Split a block.