ABSTRACT
① 딥러닝은 많은 최신 소프트웨어에 사용되고 있다.
② 일반적으로 DNN(Deep Neural Network)은 훈련 데이터를 이용해 신경망을 학습 시킨 후 예측에 사용한다.
③ 모델의 레이어를 관측할 수 있지만, 딥러닝 모델은 하나의 유기적인 요소로 다뤄진다.
④ 모델에 적용된 로직을 변경하기 위해서는 몇 가지 과정이 필요하다.
㉠ 학습 데이터의 변경 요구 : 어떤 로직을 추가/제거하기 위해서는 특정 클래스에 속한 훈련 데이터를 추가/제거해야 한다.
㉡ 모델의 재학습 요구: 모델이 변경된 학습 데이터를 다시 학습해야 하기 때문에 계산 리소스와 시간이 많이 요구된다.
⑤ 이 논문에서는 DNN 모델을 DNN 모듈로 분해하는 방법을 제안한다.
㉠ MNIST, EMNIST, FMNIST, KMNIST의 멀티 클래스 데이터를 활용해 DNN 모듈의 분해 방법을 살펴볼 것이다.
㉡ 재학습 없이 DNN 모듈을 교체로 새로운 DNN 모델을 만들 것이다.
INTRODUCTION
① 딥러닝 알고리즘은 변환 함수로 이루어진 다중 레이어를 사용해 입력을 출력으로 변환시킨다.
㉠ 입력 데이터는 각 레이어를 거쳐 더 높은 수준의 추상화를 학습하게 된다.
㉡ 딥러닝 알고리즘은 복잡하기 때문에 정확한 작동 과정에 대해서 파악하지는 못했지만, 상용 소프트웨어로 널리 활용되고 있다.
기존의 모델 교체
① 훈련된 모델을 구축하는 과정은 다음과 같다.
㉠ 재학습
ⓐ 필요한 데이터셋를 가져온다.
ⓑ 생성한 모델에 데이터를 입력하여 훈련시킨다.
ⓒ 훈련이 끝난 모델을 예측에 사용한다.
ⓓ 이미 훈련이 끝난 모델에서 변경점이 생기면 재훈련이 필요하며, 계산 비용과 시간이 많이 요구된다.
㉡ 전이 학습(Transfer Learning)
ⓐ 사전 학습: 원래의 문제에서 모델을 학습하며, 다양한 특성과 패턴을 학습
ⓑ 미세 조정(Fine-tuning): 학습된 모델을 새로운 문제에 적용한다. 모델의 일부 레이어는 새로운 문제에 적합하도록 추가적인 학습을 진행한다.
ⓒ 모델을 재사용성할 수 있는 장점이 있지만, 상당히 제한적이고, 전문 지식이 요구된다.
소프트웨어 모듈화
① 단일 구조의 소프트웨어는 구성 요소나 부품이 없는 코드 조각이고, 모듈로 분해된 소프트웨어는 독립적으로 활용할 수 있는 구성 요소가 존재한다는 특징이 있다.
② 소프트웨어를 모듈로 분해하는 것은 코드의 재사용을 가능하게 한다.
③ 소프트웨어를 모듈로 분해하는 것은 독립적으로 특정 구성 요소만을 선택해서 다른 구성 요소로 교체할 수 있다는 장점이 있다.
Why Decompose A DNN INTO MODULES?
① DNN Model을 모듈로 만든다는 것은 다음과 같은 가정에 기반한다.
㉠ 0~9 의 손글씨를 인식하는 DNN 모델에서 특정 숫자의 레이블에 반응하는 모듈을 10개의 모듈로 분해할 수 있다.
㉡A~K의 손글씨를 인식하는 DNN 모델에서 특정 문자의 레이블에 반응하는 모듈을 10개의 모듈로 분해할 수 있다.
㉢ 분해된 모듈을 가지고 재학습 없이 0, 1만을 분류하는 새로운 이진 분류 모델을 생성할 수 있다.
㉣ 분해된 모듈을 가지고 재학습 없이 0~9, A, B를 분류하는 새로운 12진수 분류 모델을 생성할 수 있다.
㉤ 분해된 모듈을 제거하고, 결함 있는 모듈을 보다 성능이 좋은 모듈을 교체해서 0~9를 분류하는 10진수 분류 모델을 생성할 수 있다.
Decomposing A DNN INTO MODULES
① Concern은 딥 뉴럴 네트워크의 특정 부분이나 기능을 지칭하며, 특정 Concern은 특정 기능 또는 분류 작업과 관련된 네트워크의 일부분을 일컫는다.
② Concern은 다른 Concern과 꼬이거나 얽힐 수 있으며, 세 가지 과정으로 특정 Concern을 분해할 수 있다.
③ 모노리식 모델(Monolithic) 모델은 하나의 거대한 코드 베이스나 구조에서 여러 기능과 요소들이 결합된 소프트웨어나 시스템을 말한다.
㉠ 딥 러닝 혹은 인공지능 분야에서 해당 단어는 딥 뉴럴 네트워크(DNN) 내에서 처리되고 통합되는 모델을 지칭한다.
③ DNN 분해는 세가지 과정을 거친다.
㉠ Concern identification, Tangling Identification, Concern Modularization이 존재한다.
④ Concern Identification은 모노리식(Monolithic) 모델에서 특 기능 또는 단일 모델의 해당 문제에 관련이 있는 일부분을 식별하는 과정이다.
㉠ 특정 concern을 분류하는 데 사용되며, 비지배적 concern(non-dominant concern)을 숨길 수도 있다.
⑤ Tangling identification은 여러 Concern이 얽히는 부분을 인식하고, 이를 분리하여 각 Concern이 독립적으로 기능할 수 있도록 하는 과정이다.
㉠ 이 과정만으로는 네트워크를 완전히 분리할 수 없고, 추가적인 조정이 필요하다.
⑥ Concern Modularization은 Concern을 식별 및 분리 후 각 Concern을 독립적인 DNN 모델로 모듈화하는 과정이다.
㉠ 이를 통해 각 모듈이 효과적으로 기능할 수 있도록 한다.
㉡ Concern에 비해 상대적으로 덜 중요한 비지배적 concern들이 모델의 전반적인 성능과 효율성에 미치는 영향을 최소화하기 위해 해당 concern들을 단순화하거나 추상화할 수 있다.
'All about Machine-Learning > 논문 리뷰' 카테고리의 다른 글
Decomposing Convolutional Neural Networks into Reusableand Replaceable Modules 리뷰 (0) | 2023.12.20 |
---|