HectorSin / CV_lightening

CV model lightening study work

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CV_lightening

CV model lightening study work


Deep Neural Network 경량화를 위한 연구폴더입니다.

  • 모델 경량화 - 비슷한 수준의 성능을 유지한채 더 적은 파라미터 수와 연산량을 가지는 모델을 만드는 것

CNN을 통한 경량 딥러닝 알고리즘을 다루고 있습니다.

  • 경량 딥러닝 알고리즘 - 알고리즘 자체를 적은 연산과 효율적인 구조로 설계하여, 기존 모델 대비 효율을 극대화
  1. 모델 구조 변경
  • 단일 층별 연산에서 그치지 않고 잔여 블록, 병목구조, 밀집 블록 등과 같은 형태를 반복적으로 쌓아 신경망으로 구성하는 다양한 신규 계층 구조를 이용하여 파라미터 축소 및 모델 성능을 개선하는 연구가 진행되고 있습니다.

  • ResNet

    잔여 블록을 사용하여 신경망을 구성하는 모델입니다. ResNet은 "Residual Network"의 약자로, 잔차 연결(residual connections) 또는 스킵 연결(skip connections)을 도입하여 깊은 네트워크에서 발생하는 그래디언트 소실(vanishing gradient) 문제를 해결하려고 합니다. 이는 네트워크의 입력을 출력에 직접 더하는 방식으로 이루어집니다. 이러한 접근 방식은 네트워크가 깊어질수록 성능이 향상되는 것을 가능하게 하였습니다.

  • DenseNet

    기존 피쳐맵을 더해주는 것이 아닌 쌓아가는 과정을 거치며 모델의 성능을 높이는 모델입니다. DenseNet은 "Densely Connected Network"의 약자로, 모든 층이 서로 연결되어 있습니다. 이는 각 층이 이전 모든 층의 출력을 입력으로 받고, 자신의 출력을 모든 후속 층에 전달하는 구조를 가집니다. 이러한 밀집 연결(dense connection)은 정보의 흐름을 강화하고, 파라미터의 수를 줄이는 효과가 있습니다.

  • SqueezeNet

기본적으로 사용하는 합성곱 필터인 3X3 필터를 1X1 필터로 대체하여 9배 적은 파라미터를 가지는 모델입니다. SqueezeNet은 모델의 크기를 줄이는 데 초점을 맞춘 네트워크입니다. 이는 1x1 합성곱을 사용하여 채널 수를 줄이고, 그 다음에 3x3 합성곱을 적용하는 방식으로 이루어집니다. 이러한 접근 방식은 파라미터의 수를 크게 줄이면서도 AlexNet과 같은 성능을 유지할 수 있게 하였습니다.

  • VGGNet

VGGNet은 합성곱 계층과 완전 연결 계층으로 구성된 딥러닝 모델입니다. 이 모델은 주로 3x3 크기의 작은 필터를 사용하는 합성곱 계층을 많이 사용하여 깊은 네트워크를 구성합니다. 이러한 구조는 네트워크의 깊이에 따른 성능 변화를 쉽게 관찰할 수 있게 하였습니다. [ResNet -> VGGNet]

  • GoogleNet

GoogleNet은 인셉션 모듈이라는 복잡한 계층 구조를 사용하는 딥러닝 모델입니다. 인셉션 모듈은 여러 크기의 필터와 풀링 계층을 병렬로 연결하여 네트워크의 너비를 늘리는 방식을 사용합니다. 이러한 구조는 네트워크가 다양한 크기의 특징을 동시에 학습할 수 있게 하였습니다. [ResNet -> VGGNet -> GoogleNet]

  • EfficientNet

EfficientNet은 네트워크의 깊이, 너비, 그리고 입력 이미지의 해상도를 동시에 조정하는 복합적인 스케일링 방법을 사용하는 딥러닝 모델입니다. 이러한 구조는 네트워크의 크기와 성능 사이의 균형을 잘 유지하면서 높은 성능을 달성할 수 있게 하였습니다.

  • CapsNet

CapsNet은 캡슐 네트워크라는 새로운 형태의 딥러닝 모델입니다. 이 모델은 캡슐이라는 작은 그룹의 뉴런을 사용하여 데이터의 복잡한 내재 구조를 학습합니다. 이러한 구조는 네트워크가 데이터의 공간적인 계층 구조를 더 잘 이해할 수 있게 하였습니다.

EfficientDet은 객체 탐지를 위한 모델로, 컴퓨터 비전에서 모델 효율성이 점점 중요해지고 있습니다. 이 모델은 객체 탐지를 위한 신경망 구조 설계에 대해 체계적으로 연구하고, 효율성을 향상시키기 위한 몇 가지 핵심 최적화를 제안합니다.

Transformer는 기존의 순차적인 모델 구조를 대체하는 새로운 아키텍처를 제안했습니다. 이는 '어텐션(Attention)' 메커니즘에 중점을 두고 있으며, 이를 통해 입력 데이터의 모든 부분 간의 상호 작용을 캡처할 수 있습니다. Transformer는 크게 두 부분, 즉 '인코더(Encoder)'와 '디코더(Decoder)'로 구성되어 있습니다. 인코더는 입력 데이터를 고차원의 표현으로 변환하고, 디코더는 이 표현을 사용하여 최종 출력을 생성합니다.

  1. 합성곱 필터 변경

이 기술에 대한 연구가 주로 이루어지고 있다고 합니다.

합성곱 신경망의 가장 큰 계산량을 요구하는 합성곱 필터의 연산을 효율적으로 줄이는 연구입니다.

모델 구조를 변경하는 다양한 경량 딥러닝 기법은 점차 채널을 분리하여 학습시키면서 연산량과 변수의 개수를 줄일 수 있는 연구로 확장되었습니다. 일반적인 합성곱은 채널 방향으로 모두 연산을 수행하여 하나의 특징을 추출하는 데 반해, 채널별(Depthwise)로 합성곱을 수행하고, 다시 점별(Pointwise)로 연산을 나누어 전체 파라미터를 줄이는 것과 같이 다양한 합성곱 필터를 설계하기 시작하였습니다.

기존의 합성곱 필터를 채널 단위로 먼저 합성곱(Depthwise Convolution)을 하고, 그 결과를 하나의 픽셀(Point)에 대하여 진행하는 합성곱(Pointwise Convolution)으로 나눔으로써 한 예로, 필터의 가로, 세로 길이를 3이라고 할때, 약 8~9배의 이득이 있게 한 네트워크입니다. MobileNet은 경량화된 딥러닝 모델로, 합성곱 계층을 깊이별 합성곱과 점별 합성곱으로 분리하는 방식을 사용합니다. 이러한 구조는 모델의 크기와 연산량을 크게 줄이면서도 높은 성능을 유지할 수 있게 하였습니다.

  • ShuffleNet

점별 합성곱(Pointwise convolution)시 특정 영역의 채널에 대해서만 연산을 취하는 형태로 설계하면 연산량을 매우 줄일 수 있을 것이란 아이디어에서 출발하였습니다.

  1. 자동 모델 탐색

기존 알고리즘의 불필요한 파라미터를 제거하거나, 파라미터의 공통된 값을 가지고 공유하거나, 파라미터의 표현력을 잃지 않으면서 기존 모델의 크기를 줄이는 연구 분야입니다.

  • NetAdapt

강화 학습을 통해 최적 모델을 자동 탐색하는 연구입니다.

  • MnasNet

특정 요소(지연시간, 에너지 소모 등)가 주어진 경우, 강화 학습을 통해 최적 모델을 자동 탐색하는 연구입니다.

  • 추후 연구를 계속하면서 새로운 모델 추가하도록 하겠습니다.

<참고자료>


[딥러닝 모델 경량화] 딥러닝 경량화 기술 동향

더 효율적이고 경량화된 Convolution Neural Network 설계 기법

About

CV model lightening study work


Languages

Language:Python 100.0%