본문 바로가기
  • AI와 함께 세상을 아름답게
인공지능(AI)이란? - 기초 개념 및 이론

딥러닝(Deep Learning) (1) - 합성곱 신경망(Convolutional Neural Network)

by neo-Lee 2023. 5. 23.

이제부터는 심층학습 또는 딥러닝(Deep Learning)이라 불리는 머신러닝(Machine Learning)에 대해 공부하고자 합니다. 

1. 딥러닝(Deep Learning; DL)이란

    딥러닝(Deep Learning)은 신경망을 이용한 머신러닝의 일종입니다. 딥러닝의 학습대상인 신경망은 일반 신경망과 비교해 대규모이며 복잡하다는 특징을 가지고 있습니다. 딥러닝 기술을 활용하면 신경망을 이용한 대규모 학습이 가능해집니다. 

    딥러닝은 이번 세기에 들어 엄청난 발전을 이루었습니다. 딥러닝이 발전하게 된 여러 가지 배경들을 정리하면 아래 (표 1)와 같습니다.

          

                                        (표 1)  딥러닝의 발전 배경

항       목 설           명
하드웨어 기술의 발전 CPU의 고속화와 멀티코어화, GPU를 일반 계산처리에 이용하는 GPGPU 기술의 발전, 메모리의 대용량화 등
대규모 데이터(빅데이터)의 이용 가능성 인터넷의 발전 및 보급, IoT 기술의 발전
신경망의 학습 기술의 향상 출력함수의 연구와 오차평가법의 개선 등으로 학습기술 향상
신경망의 구상과 연구의 발전 합성곱 신경망이나 자기부호화기 또는 LSTM이나 GAN이라는 신경망의 구조를 연구, 발전시킨 네트워크의 확대

 

    첫 번째하드웨어 기술의 발전딥러닝을 가능하게 한 중요한 조건입니다. 딥러닝에서는 대규모 데이터를 메모리에 배치해서 처리해야 하므로 신경망 학습에 필요한 계산 비용이 방대해집니다. 따라서 CPU의 발전에 따른 고속화나 멀티코어(*하나의 CPU칩 내부에 여러 개의 CPU 코어를 탑재한 것)를 도입하여 CPU의 고성능 병렬화가 가능해지고, 이에 따른 처리능력의 대폭적인 향상은 딥러닝이 가능하게 한 가장 큰 요인입니다. CPU 성능 향상과 더불어 주기억장치인 메모리의 대용량화도 머신러닝 성립에 중요한 요소입니다. 나아가 영상정보 처리장치인 GPU(Graphic Processing Unit)를 병렬계산에 응용한 GPCPU(General Purpose computing on GPU) 기술 덕분에 신경망 학습에 서 자주 등장하는 단순 계산을 병렬 처리를 이용해 고속으로 실시할 수 있게 되면서 딥러닝이 실용 수준에 이르게 됩니다.

    두 번째대규모 데이터(빅데이터: Big Data)의 이용 가능성이란 딥러닝이 대상으로 하는 대규모의 복잡한 데이터가 이용 가능해졌음을 의미합니다. 21세기 들어 폭발적으로 발전한 인터넷이나 IoT 기술의 보급으로, 엄청난 데이터 소스로부터 다양한 분야의 데이터가 수집, 관리가 가능하게 되고 있습니다. 

    세 번째 요인으로는 신경망의 여러 가지 학습의 개선, 예를 들면 출력함수 선택 방법 및 오차 평가법의 개선등에 따른 학습기술의 향상을 들 수 있습니다.

    네 번째 요인으로는 신경망 구조에 관한 연구를 들 수 있겠습니다. 합성곱 신경망이나 자기 부호화기(auto encoder)와 같은 전결합 계층형 신경망과는 다른 구조를 가진 네트워크를 이용하여 학습에서 발생하는 문제를 해결하려는 노력입니다. 

    이제부터는 딥러닝에 자주 사용되는 합성곱 신경망(Convolutional Neural Network), 자기 부호화기(auto encoder), LSTM, GAN 등을 각각의 특징들 중심으로 공부해 봅니다.

2. 합성곱 신경망(CNN; Convolutional Neural Network)

    합성곱 신경망(CNN; Convolutional Neural Network)이란 심층 신경망(DNN: Deep Neural Network)의 한 종류로 하나 또는 여러 개의 합성곱층(convolutional layer)과 풀링층(pooling layer), 완전하게 연결된 전결합층(fully connected layer)들로 구성된 신경망으로 인간의 시각 신경계의 구조에서 힌트를 얻은 신경망입니다. 합성곱 신경망은 이미지 인식 분야에서 유용성이 인정된 후에 다른 분야에서도 응용되고 있습니다. 다층적이고 대규모의 신경망에서도 학습이 가능하기 때문에 딥러닝의 구현 방법으로 도입되고 있습니다.

 

(그림1) 합성곱 신경망의 구조

    상기 그림 1은 합성곱 신경망의 구조를 표현한 것으로, 2차원적 이미지를 입력으로 받아 그 식별 결과를 출력하는 신경망을 나타내는 것입니다. 그림 1처럼 합성곱 신경망합성곱층과  풀링층이 교차로 처리하는 구조를 가진 다계층의 신경망입니다.

    합성곱층은 이미지 처리에서 이미지 필터의 움직임을 신경망으로 구현한 정보처리기구입니다. 합성곱층에서는 앞에서 주어진 2차원의 데이터에 대해 합성곱(convolution)을 실시하여 입력된 이미지의 특징을 추출한 이미지를 만들어냅니다. 

    풀링층에서는 이미지가 있는 소영역에 대한 대푯값을 구하고 소영역을 움직이면서 이미지 전체의 값을 구해 이것을 출력 이미지로 합니다. 풀링층의 기능은 입력 이미지의 작은 위치 변화나 회전과 같은 영향을 배제하는 것입니다. 풀링층을 도입하면 이미지 인식의 일반화 능력을 향상해 성능이 더 뛰어난 인식 능력을 획득할 수 있습니다.

    합성곱 신경망의 마지막 단에는 전결합층이 배치됩니다. 네트워크의 출력에서 이미지 인식의 경우에는 입력 이미지가 어떤 이미지인지를 출력합니다. 이 경우에 이미지 인식의 대상 범주가 1,000종류라면 각 범주에 대응하는 1,000개의 출력을 가진 신경망이 배치됩니다.

 

    이처럼 합성곱 신경망은 이미지 인식의 응용을 염두에 둔 구조를 가지고 있지만, 입력 데이터에 포함된 특징을 추출한다는 의미에서 이미지가 아닌 데이터에도 적용될 수 있습니다. 예를 들어 앞서 소개한 바둑 프로그램인 알파고에서는 바둑판의 해석에 합성곱 신경망을 이용하고 있습니다. 다른 예로는 자연어처리에서 단순 연쇄의 특징을 추출할 목적으로 합성곱 신경망을 사용하는 경우도 있습니다. 그리고 시계열 데이터 처리에서도 시계열 데이터를 2차원 그래프로 표현해서 합성곱 신경망으로 특징을 추출하기도 합니다.

 

(딥러닝은 다음 편에도 계속됩니다)

 

 인공지능(AI; Artificial Intelligence)] - 인공지능(AI)과 인공 신경망(Artificial Neural Network) (3)

 

728x90

댓글