AI - 다양한 딥러닝 기술: CNN, RNN, 디퓨전 모델


우리가 인공지능(AI)이라고 부르는 기술의 근간에는 인공 신경망(ANN, Artificial Neural Network)이 있다.
인간의 뇌 신경망에서 영감을 얻은 이 수학적 모델은 AI 발전의 핵심적인 역할을 담당해왔다.
그리고 이 인공 신경망의 층을 깊게 쌓아올려 더욱 복잡한 문제를 해결할 수 있도록 만든 것이 바로 심층 신경망(DNN, Deep Neural Network)이며, 이 DNN을 효과적으로 학습시키는 과정이 딥러닝(Deep Learning)이다.

결국, 우리가 앞으로 살펴볼 합성곱 신경망(CNN), 순환 신경망(RNN) 등 다양한 딥러닝 모델들은 모두 인공 신경망을 어떤 구조로 설계했는가에 따라 구분된다.
따라서 모든 것의 시작점인 인공 신경망의 기본 동작 원리를 이해하는 것이 무엇보다 중요하다.

가장 직관적인 예로 AI가 숫자 ‘0’ 이미지를 인식하는 과정을 알아보자.

우리 눈에는 단순한 숫자 ‘0’이지만, 컴퓨터는 이를 픽셀의 집합으로 받아들인다.
각 픽셀은 0(검은색)부터 255(흰색) 사이의 숫자로 표현된 밝기 값을 가진다. 예를 들어 아래의 4x4 크기의 이미지는 총 16개의 픽셀, 즉 16개의 숫자 데이터로 구성된다.

4x4 이미지를 1x16 형태로 변경

이 숫자 데이터를 AI 모델에 학습시키려면 어떻게 해야할까?
가장 기본적인 방법은 이미지를 한 줄로 길게 펼쳐 16개의 숫자 배열을 만드는 것이다. 이 1차원 배열이 인공 신경망의 입력이 된다.

16개의 숫자가 신경망에 입력되면, 모델은 내부의 가중치(Weight)와 편향(Bias)을 이용해 복잡한 연산을 수행하고 에측 결과를 출력한다.
우리는 이 결과가 ‘0’이라는 정답을 알려주고, 모델은 예측이 정답과 가까워지도록 스스로 내부의 가중치와 편향을 미세하게 조정하는 과정을 수없이 반복한다. 이 과정이 학습이다.

16개의 숫자를 인공 신경망에 넣어 학습한 후 정답 도출

이처럼 단순한 원리에서 출발한 인공 신경망은 그 구조를 어떻게 설계하느냐에 따라 이미지의 특징을 추출하거나(CNN), 순서가 있는 데이터를 처리하거나(RNN), 심지어 세상에 없던 새로운 데이터를 만들어내는(생성 모델) 등 무궁무진한 능력을 발휘하게 된다.

이제부터 인공 신경망의 대표적인 아키텍처들을 하나씩 살펴보자.

추후 손글씨 데이터셋인 MNIST 데이터셋을 사용하여 숫자 인식 인공지능을 만들어 볼 예정입니다. (p. 87)


목차


머신러닝의 학습 방법 vs 머신러닝의 알고리즘

딥러닝을 깊이 알아보기 전에, 머신러닝의 큰 그림 속에서 딥러닝이 어디에 위치하는지 짚고 넘어갈 필요가 있다.
종종 ‘학습 방법’과 ‘알고리즘’이 혼용되곤 하는데 이 둘은 명확히 다른 개념이다.

  • 머신러닝의 학습 방법
  • 머신러닝의 알고리즘
    • 특정 문제를 해결하기 위한 ‘도구’‘모델’
    • 의사결정 트리(Decision Tree), 서포트 벡터 머신(SVM), 그리고 딥러닝이 있다.

즉, 딥러닝은 인공 신경망을 사용하는 머신러닝의 알고리즘의 한 종류이다. 그리고 이 딥러닝이라는 알고리즘은 3가지 학습 방법을 모두 활용할 수 있다.

  • 지도 학습 딥러닝
    • 입력과 정답이 명확한 데이터를 학습한다.
    • 이미지 분류, 음성 인식 등 많은 딥러닝이 여기에 속한다.
    • 추후 지도 학습의 딥러닝인 기본적인 인공 신경망(ANN)을 만들어 볼 예정입니다. (p. 88)

  • 비지도 학습 딥러닝
    • 정답 없는 데이터에서 스스로 패턴이나 구조를 찾아낸다.
    • 대표적으로 데이터의 특징을 압축하고 복원하는 오토인코더(Autoencoder)나, 세상에 없던 데이터를 만들어내는 생성적 적대 신경망(GAN, Generative Adversarial Network) 등이 있다.
    • 추후 비지도 학습 방법의 딥러닝인 GAN을 만들어 볼 예정입니다. (p. 88)

  • 강화 학습 딥러닝
    • 에이전트가 특정 환경에서 보상을 최대로 얻는 행동을 학습한다.
    • 알파고로 유명해진 심층 Q-Network(DQN, Deep Q-Network)가 대표적인 예이다.

정리하자면, 이 포스트에서 볼 합성곱 신경망(CNN)이나 순환 신경망(RNN) 등은 모두 ‘딥러닝’이라는 큰 틀 안에 있는 구체적인 알고리즘(모델 아키텍처)들이다.
이 모델들은 해결하고자 하는 문제와 데이터 종류에 따라 적절한 ‘학습 방법’과 결합하여 사용된다.

  • 순환 신경망(RNN)
    • 문장이나 시계열 데이터처럼 연속된 값으로 특정 값을 예측할 때 강력한 성능을 보임
    • 추후 순환 신경망(RNN)을 만들어 볼 예정입니다. (p. 88)

  • 생성적 적대 신경망(GAN)
    • 진짜 같은 가짜 이미지나 텍스트를 만들어내는 생성 모델의 한 종류

1. 합성곱 신경망(CNN, Convolutional Neural Network): 이미지를 ‘보는’ 인공지능

딥러닝을 이용해 이미지 인식 AI를 개발할 때 표준처럼 사용되는 모델이 바로 합성곱 신경망(CNN)이다. 인공 신경망(ANN)이 인간의 뇌 신경을 모방했다면, CNN은 사물을 인식하는 인간의 시각 처리 방식에서 영감을 얻어 만들어졌다.


기본 신경망의 한계

앞에서 이미지를 한 줄로 길게 펼쳐 학습시키는 기본 인공 신경망을 살펴보았다. 이 방법은 간단하지만 치명적인 단점이 있다. 똑바로 서 있는 숫자 ‘0’을 완벽하게 학습한 모델이라도, 살짝 기울어진 ‘0’은 전혀 다른 데이터로 인식하여 정답을 맞히지 못할 가능성이 크다. 픽셀을 한 줄로 펼치는 순간, 픽셀 간의 공간적/위치적 정보가 대부분 사라지기 때문이다.

하지만 우리 눈은 이미지가 기울어지거나 위치가 바뀌어도 그것이 ‘0’이라는 사실을 쉽게 인지한다. 이는 우리 시각 시스템이 이미지의 부분적인 특징(Local Feature)들을 먼저 파악하고, 이 특징들의 조합을 통해 전체 패턴(Global Pattern)을 인식하는 계층적 구조를 가지고 있기 때문이다.
CNN은 바로 이 원리에 착안하여 개발되었다.


CNN의 접근법: 특징을 ‘추출’하여 학습

CNN은 이미지를 한 줄로 펴는 대신, 원본 이미지의 2차원 구조를 그대로 유지한 채 작은 영역별로 특징을 추출하는 방식을 사용한다.
예를 들면, 4x4 크기의 이미지를 2x2 크기의 영역으로 나누어 각 부분의 특징을 먼저 살펴보는 것이다.

4x4 이미지를 2x2 형태로 추출

이렇게 이미지의 각 부분에서 찾아낸 특징 정보를 바탕으로 전체를 이해하는 것이 CNN의 핵심 아이디어이다.

전체와 부분을 학습하는 CNN

물론 실제 구현은 단순히 영역을 나누는 것보다 조금 더 정교한 과정을 거친다. 여기서 등장하는 것이 바로 필터(Filter)합성곱(Convolution) 연산이다.

CNN은 ‘필터’라고 불리는 작은 행렬을 사용하여 이미지의 각 영역과 곱하는 합성곱 연산을 수행한다.
이 연산을 통해 필터가 찾고자 하는 특정 패턴(예: 수직선, 곡선, 특정 색상 조합 등)이 이미지의 어느 위치에 있는지를 나타내는 특징 맵(Feature Map)을 만들어낸다.

신경망의 이름에 ‘합성곱’이 들어간 이유도 바로 이 때문이다. 합성곱 연산을 통해 이미지의 위치 변화에도 비교적 강인하며, 중요한 공간적 특징을 효과적으로 학습할 수 있게 되는 것이다.
이를 통해 CNN은 이미지의 기울어짐, 크기 변화, 위치 이동에도 강인한 인식 성능을 보여준다.


2. 순환 신경망(RNN, Recurrent Neural Network): 시간의 흐름과 맥락을 기억하는 모델

이미지에 CNN이 있다면, 연속된 데이터(Sequential Data)에는 순환 신경망(RNN)이 있다.
이름에서 알 수 있듯이 RNN은 이전의 결과를 다음 계산에 순환적으로 이용하는 독특한 구조를 가진다. 그래서 순환 신경망을 재귀 신경망이라고도 한다.


RNN의 핵심: ‘기억’하는 순환 구조

일반적인 인공 신경망이나 CNN에서 데이터는 입력층에서 출력층으로 한 방향으로만 흐른다. 하지만 RNN에는 ‘되돌아오는’ 경로, 즉 순환하는 루프가 존재한다.

이 구조 덕분에 RNN은 이전에 처리했던 정보의 일부를 기억하고, 이 기억을 다음 데이터에 처리할 때 함께 사용한다. 마치 우리가 책을 읽을 때 앞서 읽은 단어와 문장을 기억하며 다음 내용을 이해하는 것과 같은 원리이다.
이 ‘기억’ 또는 ‘상태(state)’가 바로 RNN이 전후 관계, 즉 문맥(context)을 학습할 수 있는 비결이다.


문맥을 이해하는 능력

RNN의 진가는 문맥 파악이 중요한 작업에서 드러난다. 예를 들어 ‘Hot dog’ 라는 문장을 번역한다고 생각해보자.
단어 각각의 의미만 아는 AI 라면 ‘뜨거운 개’라는 어색한 번역을 내놓을 것이다. 하지만 RNN은 ‘Hot’이란 단어를 처리한 후, 그 정보를 기억한 상태에서 ‘dog’를 만난다. 이 문맥 속에서 모델은 ‘Hot dog’가 우리가 먹는 ‘핫도그’를 의미할 확률이 높다고 판단하여 훨씬 자연스러운 결과를 제공한다.

이처럼 RNN은 언어 번역, 챗봇, 주가 예측, 음악 작곡 등 데이터의 ‘순서’가 중요한 모든 분야에서 핵심적인 역할을 한다.

추후 순환 신경망(RNN)을 만들어 볼 예정입니다. (p. 88)


3. 스케치 RNN으로 순환 신경망 체험

순서와 관계를 파악하는 RNN을 직접 체험해 볼 수 있는 도구가 있다. 바로 구글에서 만든 스케치 RNN이다.

여기서 사용하는 데이터는 Quick! Draw 게임을 통해 수집된 전 세계 사람들의 그림 데이터셋이다. 이 데이터셋의 특별한 점은 완성된 그림뿐 아니라, 사람들이 ‘어떤 순서로’ 그림을 그렸는지에 대한 정보까지 포함하고 있다는 것이다.

예를 들어, 대부분의 사람은 ‘개’를 그릴 때 얼굴 외곽선 → 귀 → 눈/코/입 과 같은 비슷한 순서와 패턴을 따른다.
스케치 RNN은 바로 이 연속된 그리기 순서를 학습했다.

그 결과, 사용자가 그림의 일부(예: 개의 얼굴)을 그리기 시작하면, 스케치 RNN은 이전에 학습한 수많은 ‘개 그리기’ 패턴을 바탕으로 다음에 이어질 획을 예측하여 자동으로 그려준다.

스케치 RNN 에 접속해서 직접 해볼 수 있다.


4. 생성 신경망(Generative Neural Network): AI의 창의성

위의 합성곱 신경망(CNN)과 순환 신경망(RNN)은 주어진 데이터를 판별(Classification)하거나 예측하는 데 사용되었다. 즉, ‘정답을 맞히는 AI’였다.
하지만 이제 인공지능의 패러다임은 ‘새로운 것을 창조하는 AI’로 확장되고 있다.

궁금하다면 지금 바로 https://www.whichfaceisreal.com/ 에 방문해보길 바란다. 2개의 얼굴 사진 중 어떤 것이 AI 가 만들어낸 가짜 얼굴인지 맞춰보는 사이트이다. 놀랍도록 사실적인 가짜 이미지들은 생성 신경망 기술이 얼마나 발전했는지를 명확히 보여준다.

이처럼 AI가 어떻게 세상에 없던 새로운 것을 만들어낼 수 있게 되었을까? 그 중심에는 생성적 적대 신경망(GAN, Generative Adversarial Network)디퓨전 모델(Diffusion Model)이라는 두 가지 핵심 기술이 있다.


4.1. 이미지 생성 인공지능의 시작: 생성적 적대 신경망(GAN)

GAN은 두 개의 신경망이 서로 경쟁하며 학습하는 독특한 구조를 가진다.

  • 생성자(Generator): 위조지폐범처럼 진짜 같은 가짜 데이터를 만들어내는 신경망
  • 판별자(Discriminator): 경찰처럼 생성자가 만든 데이터가 진짜인지 가짜인지 판별하는 신경망

생성자는 판별자를 속이기 위해 점점 더 정교한 가짜를 만들고, 판별자는 속지 않기 위해 진짜와 가짜를 구별하는 능력을 계속해서 발전시킨다. 이 치열한 경쟁이 반복되다 보면, 결국 생성자는 실제와 거의 구별이 불가능한 수준의 결과물을 만들어내게 된다.

이러한 GAN의 능력은 사람의 얼굴을 합성하는 딥페이크 기술, 저화질 사진을 고화질로 바꾸는 이미지 복원, 새로운 스타일의 예술 작품 창작 등 다양한 분야에서 강력한 성능을 발휘한다.

하지만 생성자가 비슷한 패턴의 결과물만 반복해서 만들어내거나, 다양한 스타일을 표현하는 데 한계가 있다는 단점도 존재한다.


4.2. 이미지 생성의 새로운 지평을 열다: 디퓨전 모델

GAN의 한계를 극복하며 등장한 새로운 기술이 바로 디퓨전 모델이다. 디퓨전 모델은 GAN과는 전혀 다른 철학으로 이미지 생성을 접근한다.
비유하자면, 깨끗한 이미지에 노이즈를 잔뜩 섞어 완전히 망가뜨린 뒤, 이 망가진 상태에서 원본을 복원하는 방법을 배우는 것과 같다.

  • 순방향 과정
    • 원본 이미지에 단계적으로 노이즈를 추가하여 마지막에는 순수한 노이즈만 남도록 만듦
  • 역방향 과정
    • 이 과정을 거꾸로 학습함
    • 즉, 순수한 노이즈에서 시작하여 점진적으로 노이즈를 제거해나가며 깨끗하고 의미 있는 이미지를 만들어내는 방법을 배움

수만 번의 학습을 통해 이 ‘노이즈 제거 기술’을 완벽하게 터득한 모델은 이제 무작위 노이즈만 주어도 세상에 없던 완전히 새로운 고품질 이미지를 창조해낼 수 있게 된다.


4.3. GAN vs 디퓨전 모델

두 모델 모두 이미지를 생성하지만, 핵심적인 차이가 있다.

 GAN디퓨전 모델
학습 방식생성자 vs 판별자의 경쟁노이즈 추가 후 점진적 복원
생성 속도한 번의 연산으로 생성(빠름)여러 단계를 걸쳐 생성(느림)
결과물빠르지만 때로 유사한 패턴 반복느리지만 다양하고 자연스러움
주요 활용딥페이크, 이미지 변환Midjourney, Stable Diffusion 등 텍스트-이미지 생성

4.4. 기술 발전과 윤리적 고민

생성 모델은 AI가 인간의 고유 영역이라 여겨졌던 ‘창의성’의 분야에 들어왔음을 의미한다. 이는 놀라운 발전이지만, 동시에 중요한 윤리적 문제를 제기한다.
딥페이크를 악용한 범죄, 가짜 뉴스 확산, 저작권 침해, 불법 콘텐츠 생성 등 사회적 혼란을 야기할 가능성이 존재한다.

따라서 우리는 이 강력한 기술을 어떻게 책임감 있게 사용하고 발전시켜 나갈 것인지에 대한 사회적 합의와 윤리적 고민을 함께 해야 한다.


5. 디퓨전 모델 체험

디퓨전 모델을 체험하는 것은 매우 간단하다. 구글의 Gemini와 같은 최신 AI 도구들은 대부분 디퓨전 기술을 기반으로 이미지를 생성한다.

지금 바로 Gemini에 접속하여 ‘즐겁게 뛰어노는 강아지를 그려줘’라고 원하는 그림을 텍스트로 요청하면 AI가 그림을 그려주는 것을 확인할 수 있다.


참고 사이트 & 함께 보면 좋은 사이트

본 포스트는 이영호 저자의 모두의 인공지능 with 파이썬을 기반으로 스터디하며 정리한 내용들입니다.






© 2020.08. by assu10

Powered by assu10