CNN(Lenet-5) 설계 프로젝트 #1 CNN 개념

Yonghee·2023년 9월 17일

Lenet-5(CNN) 알고리즘이란?

LeNet-5는 Convolutional Neural Network (CNN) 중 하나로, 컴퓨터 비전 분야에서 이미지 인식 및 분류 작업을 위해 개발된 초기의 중요한 CNN 아키텍처 중 하나입니다. LeNet-5는 기본적으로 손으로 쓴 숫자를 인식하기 위한 용도로 개발되었으며, 주로 숫자를 분류하는 데 사용되었습니다.

Lenet-5은 총 7개의 layer로 2번의 Convolution layer, 2번의 Max pooling layer, 그리고 3번의 full connection layer로 구성됩니다.

Convolution 연산과 Full connection 연산에서는 ReLU 함수라는 활성 함수(activation function)가 사용되어 양수인 값만 추출합니다.

weight와 bias의 매개변수를 사용하며, 곱셈과 덧셈의 연산을 수행해 최종 layer7의 연산 단계에서는 10개의 출력값이 도출됩니다. Lenet-5 알고리즘을 통해 입력된 숫자 데이터가 0부터 9까지의 어떤 숫자인지 확인할 수 있습니다.

Lenet-5 Verilog HDL 설계

CNN처럼 인공지능 알고리즘을 구현하는 방법은 여러 가지 있습니다. C나 Python, Matlab 등등.. 그중에 베릴로그로 설계하는 이유는 병렬처리을 구현하기 위해서입니다.

인공지능 알고리즘은 반복되는 많은 곱셈과 덧셈의 연산을 빠르게 처리하는 능력이 중요합니다. 만약, 인공지능 알고리즘을 소프트웨어로 구현할 경우 연산 자체가 순차적으로 진행되기 때문에 연산 속도가 다소 느린 부분이 있습니다. 하지만 하드웨어에서 알고리즘을 구현할 경우 같은 곱셈과 덧셈의 연산을 동시에 수행할 수 있고 그래서 연산 처리 가속기라고도 불립니다.

CNN 알고리즘 설계 프로젝트는 제가 ETRI 실무 교육할 때 진행했던 프로젝트로 겸사겸사 정리하면서 어떻게 병렬처리를 구현했는지 기록해 보겠습니다.

profile
SoC 설계 엔지니어 성장 기록

0개의 댓글