📌 Modualr DNN의 주요 특징
1. 모듈화(Modularity)
- 각 모듈은 독립적으로 작동, 서로 다른 기능 수행 가능
- 특정 문제에 맞게 각 모듈을 교체, 재사용, 수정 가능 → 유연성이 높음
2. 병렬 처리(Parallel Processing)
- 여러 모듈이 병렬로 동시에 작업 가능 → 복잡한 문제를 효율적으로 처리
3. 분할 정복( Drive-and-Conquer) 전략
- 문제를 작은 부분 문제로 나누고, 이를 각각의 모듈이 처리
- 각 모듈은 특정 기능에 전문화(Specialization)될 수 있다.
📌 Modular DNN의 구조
1. 입력 레이어(Input Layer)
- 데이터를 각 모듈로 분배하는 역할
2. 여러 모듈(Module)
- 각 모듈 → 특정한 하위 작업을 수행하는 서브 네트워크
- 예: 이미지의 특정 부분을 인식 / 텍스트의 특정 의미를 추출하는 모듈
3. 통합 레이어(Integration Layer)
- 각 모듈의 출력을 합쳐 최종 결과를 도출하는 레이어
📌 Modular DNN의 장점
1. 유연성
- 특정 모듈을 교체하거나 추가하여 네트워크를 쉽게 확장 가능
2. 전문화
- 각 모듈이 특정한 서브태스크에 대해 전문화될 수 있음.
3. 재사용성
- 이미 학습된 모듈을 다른 네트워크에서도 재사용할 수 있음
4. 병렬 처리 가능
- 여러 모듈이 병렬로 동시에 작업하여 속도를 향상시킬 수 있음
📌 Modular DNN의 단점
1. 복잡성 증가
- 모듈 간의 통신과 조정이 필요하여 네트워크가 복잡해질 수 있음.
2. 훈련 어려움
- 모듈들이 개별적으로 훈련되어야 하므로, 전체 네트워크 훈련이 어려울 수 있음.
3. 의존성 문제
- 모듈 간 의존성이 높을 경우, 한 모듈의 성능 저하가 전체 네트워크 성능에 영향을 줄 수 있음.
📌 Modular DNN의 예시
- Natural Language Processing(자연어 처리)
- 모듈 1 : 문장 분류
- 모듈 2 : 감정 분석
- 모듈 3 : 개체명 인식(NER)
- 모듈 4 : 문맥 기반 번역
📌 Modular DNN과 일반 DNN의 차이
| 특징 | 일반 DNN | Modular DNN |
| 구조 | 단일 네트워크로 구성 | 여러 개의 독립 모듈로 구성 |
| 유연성 | 유연성이 낮음 | 모듈을 추가/교체 가능 |
| 병렬 처리 | 병렬 처리 제한적 | 모듈 병렬 처리 가능 |
| 훈련 방식 | 전체 네트워크를 한 번에 훈련 | 각 모듈을 개별적으로 훈련 |
| 재사용성 | 재사용이 어려움 | 모듈을 다른 네트워크에서 재사용 가능 |