• 검색 결과가 없습니다.

AI 네트워크 모듈별 가상화모델 개발

o CNN 모듈 가상화 모델링

- HW의 특성을 고려한 설계 가능

 레지스터를 이용한 제어 방법, 인터럽트, 메모리 매핑 등 - 모델링한 CNN 모듈을 조합하여 새로운 CNN 아키텍처 개발 가능

- SoC 가상화 플랫폼에서 CNN의 각 모듈의 기능을 검증하기 위한 가상화 모델 개발

 실질적인 HW 없이, 운영체제, 디바이스 드라이버, 애플리케이션 등 개발 가능 o CNN은 다양한 레이어의 연결로 구성

- 각 레이어는 서로 다른 특징을 갖는 모듈 포함

그림 25. CNN 가속기를 포함하는 SoC 가상화 플랫폼 구조 생성

가. Convolution 모델 개발

o 학습된 파라미터와 입력 데이터를 convolution 연산하여 출력 데이터 생성 o convolution 연산에 사용하는 필터의 크기는 다양

- 필터 크기에 따라 convolution의 형태가 바뀌도록 구현

o stride를 포함하지 않는 convolution 연산을 수행할 때마다 데이터의 크기 감소

o [그림 30]은 convolution 모듈의 설계에 사용한 소스 코드와 convolution 연산 과정을 보 여줌

- convolution 연산은 필터 크기에 따라 연산 범위가 달라짐 - 함수 호출 과정에서 num_size을 사용

- 3x3, 4x4 … nxn 등과 같이 사용자가 원하는 크기의 필터 적용 가능 그림 26. 다양한 레이어의 연결로 구성되어 있는 CNN 모델 예시

나. Fully Connected 모델 개발

o convolution과 sub-sampling 과정을 통해 데이터 크기는 작아지면서 전체를 대표할 수 있 는 특징만 남음

o Fully connected를 이용하여 이러한 특징을 모두 연결하여, 최적의 결과 도출

- I/O feature map을 구성하는 모든 데이터가 서로 연결되어 있어, 연산에 필요한 파라미 터 크기가 증가

- 파라미터 크기 감소를 위하여 fully connected를 적용하지 않는 CNN 모델 존재

다. Max/Average Pooling모델 개발

o pooling 과정은 추출한 이미지의 특징을 모으고 강화하는 용도로 사용 - 간단하면서 높은 성능을 만족하는 Max-pooling이 주로 사용

- 구현 과정에서는 max pooling과 average pooling의 차이가 크지 않음 o pooling 범위가 넓을수록 더 넓은 범위에서 하나의 특징을 추출

- CNN 연산에 필요한 데이터 크기는 감소하지만, 손실되는 데이터가 많아지면서 추론 정 그림 28. 가상화 Fully-connected 모듈 개발

라. Activation(Sigmoid/ReLU) 모델 개발

o 각 뉴런을 activation할 것인지 결정하기 위한 용도로 사용 - 입력 데이터들에 대한 activation 조건을 기능적으로 표현 o 여러 종류의 activation 함수가 존재

- sigmoid function, tanh function, absolute function, ReLU function o SoC 가상화 플랫폼에 적용하기 위하여 sigmoid function과 ReLU function 구현

그림 29. 가상화 Pooling 모듈 개발

마. Quantization 모델 개발

o CNN에서의 학습은 파라미터를 생성하는 과정

- 파라미터는 가중치(weight)와 편향(bias)를 의미 - 파라미터의 크기는 CNN 모델에 따라 천차만별

 240KB의 LeNet-5부터 240MB의 AlexNet

- 최근에는 CNN의 정확도 향상과 더불어 파라미터의 크기를 최적화하는 것이 중요 o 파라미터의 크기를 최적화하기 위해 파라미터 양자화 기술 적용

- 다양한 값으로 구성되어 있는 파라미터를 유한 집합에 매핑

- 단일 정밀도 실수형으로 표현된 파라미터를 8비트 or 4비트로 줄여도 대략 0.4% 정도인 식률이 감소*

o 트레이드-오프를 고려한 파라미터 양자화 기술 적용 필요

- 양자화 비트 개수 ↓(감소)  파라미터의 크기 ↓(감소) CNN 인식 정확도 ↓(감소) o CNN의 파라미터는 기본적으로 32bit float 형태로 저장

o 파라미터는 정규화를 통하여 -1 ~ +1 사이의 값으로 변환 가능

- 사용하는 비트 개수에 따라 구간을 나누어, 해당 구간에 포함되는 파라미터 값을 특정 그림 31. 가상화 ReLU 모듈 개발

바. 파라미터 양자화 방식에 따른 추론 정확도 비교

o 파라미터 양자화 방식에 따른 추론 정확도 비교

- 각 레이어에 다른 개수의 비트로 양자화하는 방법 (Optimization) - 각 레이어에 동일한 개수의 비트로 양자화하는 방법 (Simple)

o 각 레이어의 특성에 맞게 비트를 할당하기 위하여 Darryl D. Lin et al이 제안한 기법 적 용

- 𝛽𝛽𝑖𝑖− 𝛽𝛽𝑗𝑗=10log (

𝜌𝜌𝑗𝑗 𝜌𝜌𝑖𝑖) 𝜅𝜅

 𝜌𝜌𝑖𝑖 : the scaling factor at quantization step i

 𝛽𝛽𝑖𝑖 : the quantizer bit-width

 κ : the quantization efficiency (3db/bit 가정)

그림 32. 비트 개수에 따른 파라미터 양자화 비교

관련 문서