시간 흐름을 반영하는 모델: 순환 신경망(RNN)
구조를 완전히 바꾸다: 트랜스포머와 셀프 어텐션(Self-Attention)
우리가 요즘 뉴스나 인터넷에서 자주 듣는 인공지능(AI, Artificial Intelligence) 기술들은 모두 특별한 한 가지 구조에서 시작되었습니다. 그 구조의 이름은 바로 인공신경망(Artificial Neural Network), 줄여서 ANN이라고 부릅니다. 이름을 보면 어렵게 느껴질 수도 있지만, 사실 인공신경망은 인간의 뇌를 따라 만든 기술입니다. 사람의 뇌 속에서는 수많은 신경 세포(Neuron, 뉴런)가 연결되어 끊임없이 정보를 주고받습니다. 우리가 친구와 대화하거나, 책을 읽거나, 음악을 들으면서 자연스럽게 정보를 받아들이고 생각을 하는 것도 모두 뇌 속 뉴런들이 협력하고 있기 때문입니다. 인공신경망도 이처럼 데이터가 여러 개의 층을 통과하며 점점 더 복잡한 문제를 해결하도록 만들어졌습니다.
이번 장에서는 이 인공신경망이 무엇이고, 어떻게 작동하는지 쉽고 천천히 살펴보겠습니다. 특히, 왜 많은 인공지능이 인공신경망을 중심으로 발전하고 있는지, 그리고 이 구조가 딥러닝(Deep Learning)의 핵심이 된 이유는 무엇인지를 차근차근 알아볼 것입니다.
가장 먼저, 인공신경망의 출발점인 선형 회귀(Linear Regression)라는 간단한 방법부터 살펴보겠습니다. ‘선형 회귀’라는 말이 조금 어렵게 들릴 수도 있지만, 쉽게 말하면 데이터를 보고 간단한 규칙을 찾는 방법이라고 생각하면 됩니다. 예를 들어, 여러분이 시험 점수를 예상할 때, 공부 시간을 많이 할수록 점수가 잘 나올 것이라고 생각하듯이, 어떤 데이터를 보고 일정한 규칙을 찾아내는 것입니다.
하지만 실제 세상의 문제들은 이렇게 간단한 규칙만으로는 잘 해결되지 않을 때가 많습니다. 그래서 ‘비선형성(Non-Linearity)’이라는 개념이 등장합니다. 선형이 아니라는 뜻의 비선형성은 조금 더 복잡한 관계를 찾는다는 의미입니다. 예를 들어 친구와의 친밀도가 단순히 만난 시간에 비례하는 것이 아니라, 어느 시점을 넘으면 갑자기 매우 친해지듯, 데이터 사이에 복잡하고 미묘한 관계가 생기는 경우입니다. 인공신경망에서는 이런 복잡한 관계를 효과적으로 이해하기 위해 다양한 방법을 사용합니다. 이러한 장치들 덕분에, 인공지능이 훨씬 복잡하고 실제에 가까운 문제를 해결할 수 있게 되었습니다.
이어서 우리는 딥러닝을 구성하는 여러 인공신경망 구조들에 대해서도 하나씩 자세히 알아볼 것입니다. 가장 먼저 소개할 것은 완전 연결 신경망(Multi-Layer Perceptron, MLP)입니다. 이것은 쉽게 말해 모든 뉴런들이 서로 밀접하게 연결된 구조로, 마치 모든 친구와 직접 연락하는 활발한 사람과 같습니다.
다음으로는 합성곱 신경망(Convolutional Neural Network, CNN)을 알아볼 텐데요. 이것은 특히 이미지처럼 시각적인 데이터를 다룰 때 아주 뛰어난 능력을 발휘하는 신경망입니다. 마치 우리가 사진에서 친구 얼굴을 한눈에 알아보듯, CNN도 이미지에서 필요한 정보를 효과적으로 찾아냅니다.
세 번째로는 순환 신경망(Recurrent Neural Network, RNN)을 배울 것입니다. 이것은 과거의 정보를 기억하며 새로운 정보를 다루는 신경망입니다. 마치 드라마를 볼 때 이전의 줄거리를 기억하면서 다음 이야기를 이해하는 것과 비슷합니다. 그래서 언어나 음악처럼 순서가 중요한 데이터를 다룰 때 많이 사용됩니다.
마지막으로는 최근 가장 많이 쓰이고 있는 트랜스포머(Transformer)라는 구조에 대해서도 설명하겠습니다. 트랜스포머는 사람이 중요한 정보에 집중하는 방식처럼, 수많은 데이터 중 중요한 부분을 찾아 집중적으로 처리할 수 있는 신경망입니다. 특히 최근 등장한 ChatGPT와 같은 챗봇 기술들이 이 트랜스포머를 사용하고 있어 많은 관심을 받고 있습니다.
이렇게 하나씩 인공신경망의 여러 구조들을 함께 알아가다 보면, 인공지능이 얼마나 흥미로운 방식으로 발전하고 있는지 자연스럽게 느낄 수 있을 것입니다. 지금까지 인공신경망이 무엇인지, 그리고 왜 그것이 인공지능 기술의 핵심이 되었는지를 간략히 소개했습니다. 이제 본격적으로 각 개념을 천천히 살펴보면서 인공신경망의 세계로 함께 들어가 보겠습니다.
시작은 선형 회귀로부터
우리가 처음으로 알아볼 가장 간단한 형태의 머신러닝(Machine Learning) 모델은 바로 선형 회귀(Linear Regression)입니다. 이 단어를 처음 들으면 조금 어렵게 느껴질 수도 있지만, 사실 간단하게 표현하면 ‘직선(linear) 하나로 데이터를 설명하려는 방법’이라고 이해하면 쉽습니다.
선형 회귀가 하는 일은 이렇습니다. 우리가 어떤 결과를 예측할 때는 항상 여러 가지 정보, 즉 입력값들이 있습니다. 이 입력값들에 각각 ’가중치(weight)’라는 숫자를 곱한 뒤, 모두 합쳐줍니다. 그리고 마지막으로 ‘절편(bias)’이라는 숫자를 한 번 더 더하면 우리가 원하는 결과값을 얻게 됩니다.
이 과정은 마치 시험 점수를 예측할 때를 생각해 보면 이해가 쉽습니다. 예를 들어 여러분이 시험 성적을 예상한다고 가정해 봅시다. 공부한 시간, 수업에 집중한 정도, 수면 시간 같은 다양한 정보들이 있겠죠. 공부 시간에는 점수를 크게 높이는 가중치를 주고, 수면 시간에는 조금 더 작은 가중치를 준다면, 각각의 숫자에 가중치를 곱한 후 합쳐서 시험 점수를 예측할 수 있습니다. 여기에 더해 ‘절편’은 마치 기본 점수처럼 작용하는 값입니다. 즉, 공부를 전혀 하지 않았어도 기본적으로 나올 수 있는 점수를 의미합니다.
다른 예로는 키, 몸무게, 나이와 같은 정보를 가지고 어떤 사람의 건강 지수를 예측한다고 해봅시다. 키에는 조금 작은 가중치를, 몸무게는 중간 정도, 나이는 가장 큰 가중치를 주었다고 가정해 보겠습니다. 이 가중치를 입력값들에 각각 곱해서 합치면, 선형 회귀 모델이 예측한 건강 지수가 나오게 됩니다.
선형 회귀의 가장 큰 장점은 계산이 쉽고 구조가 간단하다는 점입니다. 수학적으로도 간편하게 설명할 수 있어서, 대부분의 사람들이 처음 머신러닝을 배울 때 가장 먼저 배우는 모델이기도 합니다.
그런데 현실에서 만나는 문제들은 이렇게 간단한 방법으로는 잘 풀리지 않을 때가 많습니다. 세상에 존재하는 데이터는 훨씬 더 복잡하기 때문입니다. 간단한 직선 하나로는 설명할 수 없는 복잡한 관계들이 데이터 속에 숨어 있습니다. 우리는 이것을 ‘비선형적(Non-linear)’ 관계라고 부릅니다.
예를 들어, 나이에 따른 건강 지수를 생각해 보세요. 나이가 어릴 때는 건강 지수가 점점 올라가다가, 어느 순간부터는 일정해지거나 오히려 떨어지기도 합니다. 또는 운동량과 건강의 관계에서도 일정 수준 이상으로 운동을 많이 하면 오히려 건강이 나빠질 수 있습니다. 이렇게 간단한 직선 하나로는 표현할 수 없는 미묘한 변화들이 있습니다. 바로 이처럼 데이터가 가진 복잡한 관계를 선형 회귀 하나로 설명하기는 어렵습니다.
그래서 과학자들은 고민하기 시작했습니다. “이렇게 단순한 모델로는 부족하다면 어떻게 해야 더 복잡한 데이터들을 설명할 수 있을까?” 이런 고민 끝에 나온 아이디어가 바로 여러 개의 직선을 겹겹이 쌓고, 그 중간 중간에 약간의 변화를 주어 비선형성을 추가하는 것이었습니다. 이렇게 직선으로는 표현하기 어려웠던 관계도 잘 포착할 수 있게 됩니다.
이러한 생각이 바로 지금 우리가 배우고자 하는 ‘인공신경망(Artificial Neural Network)’ 구조의 출발점이 되었습니다. 이제부터는 이 단순한 모델을 바탕으로 조금 더 복잡한 구조를 만들어 가면서, 인공지능이 점점 발전해 온 과정을 차근차근 따라가 보겠습니다.
쌓기만 한다고 똑똑해지진 않는다
그럼 선형 회귀(Linear Regression) 같은 간단한 계산을 여러 번 반복하거나 쌓아올리면 더 복잡한 문제를 해결할 수 있을까요? 언뜻 생각하면 간단한 계산도 여러 번 반복하면 더 똑똑해질 것 같지만, 실제로는 그렇지 않습니다. 선형 계산을 아무리 여러 번 반복해도 결국엔 단 하나의 선형 계산으로 간단히 합쳐져 버리기 때문입니다.
이걸 쉽게 설명해볼까요? 종이를 여러 장 겹쳐서 붙인다고 생각해보겠습니다. 이 종이들이 모두 완벽히 평평한 상태라면, 아무리 많이 겹쳐도 결국에는 두꺼운 하나의 평평한 종이가 되는 것과 같습니다. 다시 말해, 처음에 가지고 있던 종이의 모양(직선의 형태)이 전혀 바뀌지 않고 그대로 유지되는 것이죠. 마찬가지로 선형 계산도 아무리 쌓아도 새로운 형태의 복잡한 관계를 만들지 못하고, 결국엔 단순한 선(linear)으로만 표현할 수 있는 수준에 머무르게 됩니다.
그렇다면 복잡한 관계를 어떻게 만들어낼 수 있을까요? 여기서 등장하는 중요한 개념이 바로 ‘비선형성(Non-linearity)’입니다. ‘비선형성’이라는 말이 조금 어렵게 들릴 수 있지만, 쉽게 말하면 직선이 아닌 곡선이나 꺾인 선, 혹은 불규칙한 모양을 표현할 수 있는 능력을 뜻합니다. 세상에는 직선 하나로 깔끔하게 해결할 수 없는 문제들이 많습니다. 그래서 우리는 곡선이나 복잡한 패턴을 표현할 수 있는 방법이 필요합니다.
바로 이 능력을 신경망 구조에 부여하는 장치가 ’활성화 함수(Activation Function)’라는 것입니다. 활성화 함수는 층과 층 사이에 위치하면서 각 층에서 계산된 결과에 변화를 주는 역할을 합니다. 이것은 마치 평평한 종이 사이에 중간중간 종이를 구부리거나 접어 넣어 모양을 바꾸는 것과 같습니다. 이로 인해 쌓인 종이들은 더 이상 하나의 평범한 종이가 아니라 훨씬 복잡한 형태를 만들어 낼 수 있게 됩니다.
이 활성화 함수 덕분에 신경망은 단순한 더하기와 곱하기 계산을 넘어 더욱 복잡하고 다양한 상황을 이해할 수 있습니다. 예를 들어, 어느 입력값에서는 갑자기 크게 반응하고, 다른 입력값에서는 거의 반응하지 않는 식의 ‘유연한 대응’이 가능해집니다. 이렇게 입력값에 따라 달라지는 반응을 통해 현실의 복잡한 문제들을 더욱 정확히 표현할 수 있는 것입니다.
결국, 신경망이 복잡한 문제를 해결할 수 있게 된 가장 중요한 비결은, 단순히 층을 여러 개 쌓는 것이 아니라 그 층들 사이사이에 비선형성을 추가해주는 활성화 함수를 넣었기 때문입니다. 지금부터 함께 이 활성화 함수에 대해 조금 더 자세히 알아보도록 하겠습니다.
활성화 함수: 신경망에 생명을 불어넣다
신경망이 단순한 계산에서 벗어나 복잡한 문제를 풀 수 있도록 돕는 중요한 장치가 바로 활성화 함수(Activation Function)입니다. 활성화 함수는 쉽게 말해, 신경망의 각 층에서 계산한 결과에 작은 변화를 주어서 단순한 직선이 아닌 곡선이나 좀 더 복잡한 형태로 만들어주는 역할을 합니다. 즉, 활성화 함수 덕분에 신경망은 데이터에 따라 다양한 반응을 보이며, 훨씬 더 똑똑한 판단을 내릴 수 있게 됩니다.
초기에는 주로 ‘시그모이드(Sigmoid)’와 ‘하이퍼볼릭 탄젠트(Tanh)’라는 활성화 함수가 많이 사용되었습니다. 이름이 어렵게 느껴질 수 있지만, 그 원리는 의외로 간단합니다. 두 함수 모두 입력되는 값이 아무리 크거나 작아도 항상 일정 범위 안에서만 결과값을 내주는 특징이 있습니다. 예를 들어 시그모이드는 입력값이 어떤 숫자든 항상 0과 1 사이의 값을, Tanh는 항상 -1과 1 사이의 값을 내놓습니다. 이렇게 되면 계산된 값들이 너무 커지거나 너무 작아지는 일이 없기 때문에, 신경망이 비교적 안정적으로 작동할 수 있게 되는 장점이 있었습니다.
하지만 이 함수들에도 치명적인 약점이 있었습니다. 그것은 바로 ‘기울기 소실(Vanishing Gradient)’이라는 문제입니다. 이 문제를 쉽게 설명하자면, 신경망은 학습 과정에서 실수를 발견하면 그 실수를 거슬러 올라가서 조금씩 고쳐나가는 방식을 사용하는데, 이때 ‘미분(derivative)’이라는 수학적인 방법이 쓰입니다. 문제는 시그모이드나 Tanh 함수가 입력값이 너무 크거나 작아지면, 그래프가 거의 평평해져서 미분값이 0에 가까워지게 됩니다. 쉽게 말해서, 신경망이 실수를 발견했어도 “얼마나 틀렸는지 잘 모르겠다”고 느끼게 되는 상황입니다. 그렇게 되면 앞쪽의 층으로 갈수록 신경망은 실수를 잘 고치지 못하게 되고, 결국 배우는 것을 포기해 버리는 현상이 발생합니다. 이 문제는 층이 많아질수록 더 심해지기 때문에, 초기의 활성화 함수들은 층이 많은 딥러닝 모델에는 적합하지 않았습니다.
이 문제를 극복하기 위해 새롭게 등장한 활성화 함수가 바로 ‘렐루(ReLU, Rectified Linear Unit)’라는 함수입니다. 이름이 특이하지만 그 원리는 놀랍도록 단순합니다. ReLU는 입력값이 0보다 작으면 그냥 0을 내놓고, 0보다 크면 그대로 그 입력값을 내놓습니다. 예를 들어, -3이라는 값이 들어오면 결과는 0이고, 10이 들어오면 결과는 10이 되는 아주 간단한 함수입니다.
이 간단한 변화만으로도 신경망은 큰 힘을 얻었습니다. 왜냐하면, 0보다 큰 입력값에서는 항상 일정한 기울기(미분값 1)를 유지하기 때문에, 신경망이 실수를 훨씬 더 쉽게 알아채고 빠르게 배울 수 있게 되었기 때문입니다. ReLU 덕분에 딥러닝 기술은 빠르게 발전했고, 이전에 겪었던 기울기 소실 문제도 크게 개선되었습니다.
최근에는 이 ReLU를 더 발전시킨 다양한 활성화 함수들이 등장해서 사용되고 있습니다. 그 중 하나가 ‘리키 렐루(Leaky ReLU)’라는 함수입니다. 이것은 ReLU의 단점을 보완한 것으로, 0보다 작은 입력값에도 아주 작은 기울기를 부여합니다. 예를 들어, 작은 음수값에서도 신경망이 완전히 ‘멈추지 않고’ 약간의 반응을 보이게 함으로써 더 효율적으로 학습할 수 있게 합니다.
또한 최근에는 ‘스위시(Swish)’나 ‘ELU(Exponential Linear Unit)’ 같은 활성화 함수들도 등장했는데요. 이 함수들은 조금 더 부드럽게 곡선을 만들어 주어서, 신경망이 더욱 안정적으로 배울 수 있도록 도와줍니다.
이처럼 활성화 함수는 단순히 작은 변화를 주는 것 같지만, 실제로는 신경망에 ‘생명을 불어넣는’ 아주 중요한 장치입니다. 활성화 함수 덕분에 인공지능은 단순한 계산기를 넘어서, 사람처럼 복잡하고 다양한 문제를 더 잘 해결할 수 있는 능력을 갖추게 되었습니다. 이제 다음으로 넘어가서, 실제 신경망들이 어떤 구조로 이루어져 있고 어떻게 작동하는지 더 자세히 알아보도록 하겠습니다.
모든 걸 연결하다 보니 생기는 문제들
앞에서 우리는 신경망을 만들 때 단순한 층을 쌓는 것만으로는 부족하고, 중간중간에 활성화 함수(Activation Function)를 넣어줘야 더 복잡한 문제를 풀 수 있다고 배웠습니다. 이렇게 여러 층과 활성화 함수를 결합한 구조를 우리는 ‘다층 퍼셉트론(Multi-Layer Perceptron, MLP)’이라고 부릅니다.
MLP는 신경망에서 가장 기본적인 형태이며, 입력 데이터를 받아서 원하는 결과를 만들어내기까지 여러 개의 층이 있는 구조입니다. 여기서 층은 크게 세 가지로 구분할 수 있습니다. 처음 데이터를 받는 입력층(input layer), 최종적으로 답을 내놓는 출력층(output layer), 그리고 그 사이에 데이터를 처리하며 복잡한 계산을 해주는 은닉층(hidden layer)으로 구성되어 있습니다. 은닉층이라는 이름은 ‘겉에서 보이지 않고 중간에서 중요한 계산을 담당한다’는 의미로 이해하면 쉽습니다.
이 다층 퍼셉트론(MLP)은 이론적으로 매우 강력한 구조입니다. 무슨 뜻이냐 하면, 층과 층 사이에 충분히 많은 뉴런을 연결해 놓으면 아무리 복잡한 계산이나 문제라도 거의 비슷하게 흉내낼 수 있다는 것이 수학적으로 증명되어 있습니다. 이러한 능력을 ‘범용 근사 정리(Universal Approximation Theorem)’라고 부릅니다. 쉽게 설명하자면, 충분히 크고 잘 만들어진 MLP라면 거의 모든 종류의 문제를 해결할 수 있는 잠재력을 가지고 있다는 것입니다.
하지만 현실에서는 문제가 간단하지 않습니다. 이론과는 다르게 실제로 MLP를 사용하려고 하면 큰 문제가 나타나는데, 그것은 바로 ‘파라미터 폭발(parameter explosion)’입니다. 이 용어가 어렵다면 좀 더 쉽게 생각해 볼까요? MLP에서는 각 층의 모든 뉴런들이 다음 층의 모든 뉴런들과 전부 연결되어 있습니다. 이렇게 모든 것이 연결된 구조를 ‘완전 연결(Fully Connected)’ 구조라고 부릅니다.
예를 들어, 우리가 작은 이미지 하나를 가지고 신경망을 만든다고 생각해봅시다. 이미지는 아주 작은 점(픽셀)들이 모여 만들어진 것으로, 가로세로 크기가 224×224인 컬러 이미지라고 할 때, 각각의 점마다 빨강, 초록, 파랑의 3가지 색깔 정보가 있습니다. 이렇게 계산해 보면 입력으로 들어가는 데이터는 모두 224 × 224 × 3, 즉 약 15만 개 정도가 됩니다. 그런데 이 데이터를 받아서 첫 번째 층에 1,000개의 뉴런을 두었다고 하면 어떻게 될까요? 각 입력 데이터(15만 개)가 각 뉴런(1,000개)과 모두 연결되어야 합니다. 이렇게 되면 연결된 줄(파라미터)이 무려 1억 5천만 개 이상이나 생기게 됩니다.
이렇게 많은 연결선이 생기면 어떤 문제가 발생할까요? 먼저, 신경망이 처리해야 할 정보가 너무 많아지기 때문에 컴퓨터가 이걸 학습하는 데 엄청나게 오래 걸리게 됩니다. 게다가 연결선이 너무 많다 보니 학습 데이터에만 너무 딱 들어맞는 결과를 만들어내고, 새로운 데이터가 들어오면 제대로 대응하지 못하는 문제가 생기기도 합니다. 이것을 ‘과적합(Overfitting)’이라고 부릅니다. 시험 공부로 비유하면, 문제집에서 외운 문제는 잘 풀지만, 새로운 문제를 보면 당황해서 풀지 못하는 경우와 비슷합니다.
그래서 현실적으로 이미지를 다루거나 영상처럼 복잡한 데이터를 처리할 때는 이런 완전 연결 방식의 MLP만으로는 어려움이 많습니다. 모든 것을 다 연결하는 방식이 아니라, 꼭 필요한 부분만 연결하여 더 효율적으로 정보를 처리하는 방식이 필요해졌습니다. 바로 여기에서 다음에 배울 ’합성곱 신경망(Convolutional Neural Network, CNN)’과 같은 더 효율적인 신경망들이 등장하게 되었습니다.
이미지 분석의 해결사, 합성곱 신경망(CNN)
앞서 살펴본 다층 퍼셉트론(MLP)은 모든 픽셀을 한 번에 처리하다 보니, 이미지처럼 픽셀(pixel)이 매우 많은 데이터를 분석할 때는 어려움이 많았습니다. 픽셀 하나하나마다 뉴런이 연결되어 계산해야 하니, 너무 많은 계산이 필요했기 때문입니다. 이 문제를 해결하기 위해 개발된 구조가 바로 합성곱 신경망(Convolutional Neural Network, CNN)입니다.
CNN은 이미지를 처리할 때 모든 픽셀을 동시에 계산하지 않고, 이미지를 여러 개의 작은 영역으로 나누어서 처리합니다. 마치 우리가 커다란 그림을 한눈에 보는 대신, 돋보기를 들고 천천히 작은 부분씩 자세히 살펴보는 것과 비슷합니다. CNN은 이렇게 이미지를 작은 영역으로 나누고, 일정한 크기의 작은 창을 옮겨가면서 부분적으로 데이터를 분석합니다. 예를 들어, 3×3이나 5×5처럼 작은 네모난 창을 만들어 이미지를 천천히 이동시키며 한 부분씩 계산을 하는 방식입니다. 이렇게 하면 이미지 전체를 한꺼번에 처리할 때보다 훨씬 적은 계산량으로 빠르게 분석할 수 있습니다.
CNN의 진짜 비밀은 바로 ‘가중치 공유(weight sharing)’라는 개념에 있습니다. 조금 어려워 보일 수 있지만, 쉽게 말하면 한 개의 작은 창(필터, filter)을 만들어 놓고 이미지 전체에 똑같이 적용한다는 뜻입니다. 이전에 설명한 완전 연결 신경망에서는 픽셀 하나하나가 각기 다른 파라미터(연결선)를 가지고 있어서 계산량이 엄청나게 많았습니다. 하지만 CNN은 이미지 전체를 분석할 때 몇 개의 필터만 만들어서 그 필터들을 반복적으로 사용하는 방식입니다. 이것은 마치 하나의 도장으로 여러 장의 종이에 같은 모양을 계속 찍는 것과 같습니다. 종이가 아무리 많아도 도장 하나면 충분한 것처럼, CNN도 이미지가 아무리 커도 적은 수의 필터만 있으면 효율적으로 처리할 수 있습니다. 그래서 CNN은 완전 연결 신경망보다 훨씬 적은 수의 파라미터로 빠르게 학습할 수 있게 됩니다.
이러한 구조는 또 다른 큰 장점을 가지고 있습니다. 사진 속에 있는 물체가 어느 위치에 있든 쉽게 찾아낼 수 있다는 점입니다. 예를 들어 사진 속 고양이가 왼쪽 위에 있어도, 오른쪽 아래에 있어도 CNN은 같은 필터를 움직이면서 고양이의 눈, 귀, 수염과 같은 특징들을 잘 포착할 수 있습니다. 즉, CNN은 이미지 속 물체의 위치가 달라져도 동일한 방식으로 잘 인식할 수 있다는 것입니다.
CNN에서 또 중요한 개념 하나는 ‘수용 영역(Receptive Field)’입니다. 조금 어렵게 느껴질 수도 있지만, 이것은 쉽게 말해 ‘신경망이 한 번에 볼 수 있는 영역의 크기’를 의미합니다. CNN은 층(layer)이 깊어질수록 이 영역이 점점 더 넓어지는 구조를 가지고 있습니다. 처음에는 작은 필터로 작은 영역만 보지만, 계산된 정보가 위쪽 층으로 올라갈수록 이 정보들이 합쳐지면서 점점 더 큰 영역을 보게 됩니다.
쉽게 설명하자면, 처음엔 이미지를 돋보기로 아주 작은 부분만 봅니다. 그러면 다음 층에서는 이 작은 부분들을 모아서 조금 더 넓은 범위를 볼 수 있게 됩니다. 다시 그 위의 층에서는 더 넓은 범위를 보게 되면서, 이렇게 층이 올라갈수록 하나의 뉴런이 보는 영역은 점점 더 커지게 됩니다. 결국 CNN의 층을 깊게 쌓으면, 마지막 층의 뉴런들은 거의 이미지 전체를 보는 것처럼 많은 정보를 얻게 됩니다. 이런 구조 덕분에 CNN은 작은 특징(예를 들어 고양이의 눈이나 자동차 바퀴 등)부터 시작해서 전체적인 형태(얼굴 전체, 자동차 전체 등)까지 인식할 수 있게 됩니다.
이처럼 CNN은 작은 지역적 특징을 포착하는 데서 그치지 않고, 층이 깊어질수록 이 특징들을 점점 더 복잡한 형태로 조합해 나가면서 이미지 속 물체를 정확하게 이해할 수 있도록 도와줍니다. 이러한 뛰어난 능력 덕분에 CNN은 이미지 분류(Image Classification), 물체 인식(Object Detection), 얼굴 탐지(Face Detection) 같은 컴퓨터 비전 분야에서 현재까지 가장 강력한 방법 중 하나로 널리 사용되고 있습니다.
이렇게 CNN은 이미지 분석 분야에서 중요한 역할을 하고 있습니다. 다음으로는 CNN 외에도 인공지능 분야에서 널리 사용되는 다양한 신경망의 종류와 특징들을 차근차근 살펴보겠습니다.
시간 흐름을 반영하는 모델: 순환 신경망(RNN)
이미지 데이터는 공간적인 구조를 가지고 있어서, 어디에 어떤 물체가 있는지 같은 위치 정보가 중요했습니다. 하지만 우리가 일상생활에서 만나는 데이터 중에는 순서가 중요하게 작용하는 것도 많습니다. 예를 들어 문장에서 단어의 순서가 바뀌면 완전히 다른 뜻이 될 수 있고, 음성의 경우에도 소리의 순서가 조금만 달라져도 전혀 다른 단어로 들리게 됩니다. 음악이나 주식 가격, 날씨 정보 같은 것도 시간이 흐르면서 데이터가 달라지기 때문에 순서가 중요합니다. 이러한 데이터를 효과적으로 다루기 위해 고안된 신경망 구조가 바로 순환 신경망(Recurrent Neural Network, RNN)입니다.
RNN은 한마디로 말해 ‘시간이나 순서를 기억하는 신경망’이라고 할 수 있습니다. 보통의 신경망은 입력된 데이터를 모두 한꺼번에 받아 처리하는 반면, RNN은 데이터를 순서대로 하나씩 입력받으면서 이전 단계의 결과를 다음 단계의 계산에 반영합니다. 마치 우리가 드라마를 볼 때 앞에서 일어난 일을 기억하면서 다음 장면을 이해하는 것과 비슷합니다. 이렇게 하면 신경망이 앞서 들어온 정보를 자연스럽게 기억하면서 다음 정보를 예측하거나 처리할 수 있게 됩니다.
예를 들어, “나는 밥을 ___.“이라는 문장을 생각해 볼까요? 이 빈칸에 들어갈 단어를 맞추려면 앞에 있는 단어들의 의미를 기억해야 합니다. ‘먹었다’, ‘지었다’, ‘주문했다’와 같은 단어들 중 어떤 것이 가장 자연스러운지 알기 위해서는 앞의 문맥을 알고 있어야 하는 것입니다. 순환 신경망은 이렇게 앞서 나온 단어들의 의미와 관계를 기억하고 활용하는 능력을 가지고 있습니다.
이러한 특징 덕분에 RNN은 특히 자연어 처리(Natural Language Processing) 분야에서 큰 활약을 하게 되었습니다. 문장이나 단어가 가진 순서의 의미를 효과적으로 이해할 수 있게 되면서, 글에 담긴 감정을 분석하는 작업이나, 한 언어를 다른 언어로 번역하는 기계 번역, 그리고 음성을 듣고 텍스트로 변환하는 음성 인식 같은 분야에서 널리 쓰였습니다. 이미지 데이터를 잘 다루는 CNN이 문장처럼 시간이나 순서가 중요한 데이터를 처리하는 데는 어려움이 많았던 반면, RNN은 시간 흐름을 자연스럽게 다룰 수 있었기 때문에 다양한 분야에서 새로운 가능성을 열게 된 것입니다.
하지만 순환 신경망도 완벽한 모델은 아니었습니다. 여러 가지 구조적인 한계가 있었기 때문입니다. 가장 큰 문제는 RNN이 데이터를 순서대로 하나씩 처리하기 때문에 계산을 한꺼번에 빠르게 처리하는 것이 어렵다는 점입니다. 마치 수학 문제를 풀 때, 한 문제를 끝내기 전까지는 다음 문제를 풀 수 없는 것과 비슷합니다. 그래서 입력 데이터가 길어질수록 계산 시간이 점점 느려지고, 초반에 입력된 중요한 정보가 뒤로 갈수록 점점 희미해져 잘 전달되지 않는 문제도 있었습니다. 특히 긴 문장에서는 맨 앞에 나온 중요한 단어가 뒤로 갈수록 점점 잊히는 경우가 많았습니다. 이것은 앞에서 다룬 기울기 소실(vanishing gradient) 문제와 깊은 관련이 있습니다.
이런 한계를 극복하기 위해 등장한 것이 바로 LSTM(Long Short-Term Memory)과 GRU(Gated Recurrent Unit)라는 구조입니다. 이름이 복잡해 보일 수 있지만, 쉽게 말하면 ‘어떤 정보를 기억할지, 그리고 어떤 정보는 잊을지’를 결정하는 기능을 추가한 것입니다. 마치 우리가 중요한 일은 오래 기억하고 덜 중요한 일은 쉽게 잊는 것처럼, 모델이 스스로 정보의 중요도를 판단하여 더 효율적으로 기억할 수 있게 만든 것입니다. 이렇게 해서 LSTM이나 GRU는 일반적인 RNN보다 더 길고 복잡한 문장이나 긴 시간 동안의 데이터도 비교적 잘 처리할 수 있게 되었습니다.
하지만 여전히 완전히 해결되지 않은 문제도 남아 있습니다. 데이터를 하나씩 순서대로 처리하는 RNN의 방식 자체가, 여러 작업을 동시에 병렬로 처리하는 데 한계를 가지고 있기 때문입니다. 즉, 긴 데이터를 빠르게 처리하는 데에는 구조적인 어려움이 계속 남아 있는 것입니다.
이러한 한계들을 보완하고자 최근에는 완전히 다른 방식의 신경망들이 등장했는데, 그 중 하나가 바로 트랜스포머(Transformer)라는 구조입니다. 다음으로는 트랜스포머가 어떤 방식으로 시간과 순서의 한계를 극복하고 있는지를 살펴보겠습니다.
구조를 완전히 바꾸다: 트랜스포머와 셀프 어텐션(Self-Attention)
앞에서 설명한 순환 신경망(RNN)은 데이터를 순서대로 하나씩 처리하면서 시간의 흐름을 기억하는 방식이었습니다. 하지만 이 방식은 한 번에 여러 가지를 동시에 처리하는 데 한계가 있었고, 문장이 길어질수록 앞에서 들어온 정보가 점점 흐려지는 문제도 있었습니다. 이런 문제들을 해결하기 위해서, 기존과는 완전히 다른 방식의 신경망 구조가 등장했습니다. 그 주인공이 바로 트랜스포머(Transformer)라는 모델입니다.
트랜스포머가 기존 모델들과 가장 크게 다른 점은, 데이터를 순서대로 하나씩 처리하지 않고 모든 데이터를 동시에 한 번에 처리한다는 점입니다. 이전 방식이 마치 문장을 읽을 때 첫 단어부터 마지막 단어까지 차례차례 읽어가면서 내용을 이해하는 방식이었다면, 트랜스포머는 문장을 한눈에 보고 단어들 간의 관계를 한 번에 파악하는 방식이라고 할 수 있습니다. 이렇게 문장 속의 단어들이 서로 어떤 관계를 맺고 있는지 계산하기 위해 사용된 핵심적인 기술이 바로 셀프 어텐션 메커니즘(Self-Attention mechanism)입니다.
셀프 어텐션을 간단하게 설명하면, 문장 안에 있는 단어 하나가 다른 모든 단어들과 얼마나 밀접한 관련이 있는지를 파악하는 방법입니다. 예를 들어, “나는 친구와 영화를 보고 집에 돌아왔다”라는 문장을 생각해 봅시다. 이 문장에서 ‘집에’라는 단어는 특히 ‘돌아왔다’라는 단어와 밀접하게 연결되어 있습니다. 셀프 어텐션은 이런 관계를 점수로 계산하여, 모델이 중요한 단어에 더 집중할 수 있도록 만들어 줍니다. 덕분에 모델은 단어의 순서에 크게 의존하지 않고도 문장의 의미와 문맥을 자연스럽게 이해할 수 있습니다.
트랜스포머가 가진 또 하나의 큰 장점은 여러 가지 계산을 동시에 할 수 있다는 점입니다. 순환 신경망(RNN)은 앞 단어의 계산이 끝나야만 다음 단어의 계산을 할 수 있었기 때문에, 문장이 길어질수록 처리 속도가 느려지는 문제가 있었습니다. 하지만 트랜스포머는 문장 속의 모든 단어들이 서로 어떤 관련이 있는지를 동시에 계산하기 때문에, 여러 작업을 병렬로 수행할 수 있고, 이 덕분에 긴 문장이나 복잡한 문맥이라도 훨씬 빠르게 처리할 수 있게 되었습니다.
또한 트랜스포머는 정보가 특정 위치에만 갇혀 있지 않고 필요한 단어로 바로 전달될 수 있도록 설계되었습니다. 쉽게 말하면, 문장 안에서 멀리 떨어져 있는 단어들도 서로 자연스럽게 관계를 주고받을 수 있게 된 것입니다. 이전 방식에서는 문장 앞부분에 있는 단어가 뒷부분의 단어와 의미를 주고받기가 어려웠습니다. 하지만 트랜스포머에서는 문장의 길이에 상관없이 멀리 떨어진 단어 사이의 관계도 잘 반영할 수 있게 되었습니다. 이 덕분에 문장이 길어지더라도 처음부터 끝까지 의미를 잘 파악할 수 있는 장점이 생겼습니다.
이처럼 트랜스포머는 기존 신경망의 문제점을 근본적으로 해결한 새로운 방식의 구조로, 최근 들어ChatGPT와 같은 최신 인공지능 기술에서 널리 쓰이며 커다란 성과를 내고 있습니다.
다음으로는 트랜스포머의 이러한 특징이 실제 인공지능 기술에 어떻게 활용되고 있는지를 좀 더 구체적으로 살펴보겠습니다.
하나의 구조로 여러 가지 문제를 해결하는 트랜스포머의 힘
트랜스포머(Transformer)는 원래 한 언어를 다른 언어로 번역해주는 ’기계 번역(machine translation)’을 위해 개발된 신경망 모델이었습니다. 하지만 트랜스포머가 문장을 이해하고 처리하는 능력이 뛰어나다는 것이 알려지면서, 금세 다른 분야에서도 주목을 받기 시작했습니다. 예를 들어, 사람들이 던진 질문에 정확히 답해주는 질문 응답 시스템이나, 긴 문서를 짧고 알기 쉽게 줄여주는 문서 요약, 그리고 글 속에 담긴 사람의 감정을 분석하는 작업에도 트랜스포머가 큰 힘을 발휘하게 되었습니다.
더 나아가 트랜스포머는 사람처럼 자연스러운 글을 쓰는 작업이나, 프로그래밍 언어를 사용한 코드를 만들어주는 작업, 음악을 작곡하거나 사진에 대한 설명을 만들어주는 등 아주 다양한 분야에서도 활약하게 되었습니다. 이제는 자연어 처리(natural language processing)와 관련된 거의 모든 분야에서 트랜스포머가 핵심적인 역할을 하고 있다고 말해도 과장이 아닐 정도입니다.
이렇게 하나의 모델이 여러 가지 다른 작업을 처리할 수 있게 된 것은 매우 큰 기술적 진보입니다. 이전에는 인공지능이 문제마다 각기 다른 구조를 사용해야 했기 때문에, 새로운 문제를 해결할 때마다 데이터도 새롭게 준비하고, 신경망의 구조와 학습 방법도 따로 개발해야 했습니다. 이 과정은 마치 새로운 요리를 할 때마다 전혀 다른 재료와 도구를 다시 준비해야 하는 것과 같았습니다.
하지만 트랜스포머는 마치 요리에서 ‘기본 양념’처럼 입력과 출력의 형태만 조금씩 다르게 바꿔주면, 거의 똑같은 모델 구조로 다양한 문제를 쉽게 해결할 수 있습니다. 이렇게 하면 개발 시간도 크게 줄어들고, 시스템 전체가 단순해지며, 빠르고 효율적으로 문제를 해결할 수 있게 됩니다.
실제로 우리가 요즘 뉴스나 인터넷에서 자주 접하는 ChatGPT, Gemini, Claude와 같은 모델들은 모두 트랜스포머라는 공통된 구조를 가지고 있습니다. 이 모델들은 수십억 개 이상의 다양한 문장들을 미리 읽고 공부하는 ‘사전 학습(pretraining)’ 과정을 거친 뒤에, 조금만 조정(finetuning)해도 다양한 문제를 매우 훌륭하게 처리할 수 있게 됩니다.
이제 트랜스포머는 여러 가지 작업을 잘 수행하는 뛰어난 모델의 수준을 넘어서서, 최근 인공지능 시스템을 만드는 데 필수적인 표준으로 자리 잡고 있습니다. 쉽게 말해서, 예전에는 번역을 잘하는 인공지능을 만들기 위해서는 번역 전용 모델을, 글쓰기를 잘하는 인공지능을 만들기 위해서는 또 별도의 글쓰기 전용 모델을 각각 만들어야 했습니다. 하지만 지금은 트랜스포머라는 하나의 모델로, 번역, 질문 답변, 글쓰기, 감정 분석과 같은 여러 가지 서로 다른 작업들을 한 번에 다룰 수 있게 되었습니다.
구체적인 예를 들어볼까요? ChatGPT라는 서비스가 대표적인 사례입니다. ChatGPT는 기본적으로는 사람과 대화를 나누는 챗봇으로 만들어졌지만, 단순히 대화만 하는 것이 아니라 사용자가 요청하면 이야기를 만들어주기도 하고, 영어로 된 글을 한글로 번역하기도 하며, 긴 글을 짧게 요약하거나 이메일을 대신 작성해주기도 합니다. 이전 같았으면 이러한 작업 각각에 전부 다른 모델을 만들어야 했겠지만, 이제는 트랜스포머 기반의 하나의 모델만으로 이 모든 작업을 처리할 수 있게 된 것입니다.
또 다른 예로는 구글 번역(Google Translate)을 들 수 있습니다. 과거의 구글 번역은 단순히 문장을 한 언어에서 다른 언어로 바꾸는 작업만 가능했지만, 최근의 트랜스포머 기반 모델들은 번역을 할 때 문맥과 상황까지 깊이 이해하고 자연스러운 번역 결과를 만들어냅니다. 심지어 번역뿐 아니라 번역한 결과를 조금 더 다듬거나 자연스러운 문장으로 재구성해 주는 기능까지 가능해졌습니다.
이처럼 트랜스포머라는 하나의 공통된 틀 안에서 여러 문제를 동시에 해결할 수 있게 된 것은, 앞으로 더 다양한 분야에서 인공지능이 손쉽게 활용될 수 있도록 만드는 중요한 원동력이 되고 있습니다. 앞으로 트랜스포머는 단순히 언어나 텍스트뿐 아니라 이미지, 영상, 음성까지 포함한 다양한 영역에서도 더욱 중요한 역할을 하게 될 것입니다.
정답이 필요없는 자기지도학습(Self-Supervised Learning)
트랜스포머가 등장하면서 하나의 모델로 여러 가지 서로 다른 문제를 해결할 수 있게 되었습니다. 하지만 이런 뛰어난 트랜스포머 모델에도 큰 한 가지 어려움이 있었습니다. 바로 모델을 학습시키기 위해서는 ‘정답이 붙은 데이터’, 즉 사람이 직접 답을 만들어 놓은 데이터가 많이 필요하다는 점이었습니다.
현실에서는 이렇게 정답이 달린 데이터를 충분히 모으는 일이 정말 어렵습니다. 인터넷에는 수많은 글과 이미지, 영상들이 있지만, 이 모든 데이터에 사람이 하나하나 정답을 달아주는 일은 엄청난 시간과 비용이 듭니다. 예를 들어 인터넷에서 고양이 사진을 몇 만 장 찾는 일은 쉽지만, 각각의 사진마다 “이건 고양이다”라고 사람이 일일이 표시하는 것은 매우 힘들고 지루한 작업입니다.
이런 문제를 해결하기 위해 처음에는 ’준지도학습(Semi-Supervised Learning)’이라는 방식이 등장했습니다. 준지도학습은 데이터의 일부만 사람이 정답을 달아주고, 나머지 데이터는 정답 없이 함께 사용하는 방식입니다. 하지만 이 방법도 결국 어느 정도 정답 데이터가 필요하다는 점에서 완벽한 해결책은 아니었습니다.
이러한 한계를 극복하고 최근 인공지능 분야에서 매우 주목받게 된 방식이 바로 ’자기지도학습(Self-Supervised Learning)’입니다. 자기지도학습이란 쉽게 말해서, 모델이 스스로 문제를 만들어내고, 스스로 정답을 찾으면서 배우는 방식입니다. 사람이 직접 정답을 제공하지 않아도 모델이 스스로 데이터를 보면서 학습할 수 있는 능력을 가지게 되는 것입니다.
자기지도학습에서 가장 많이 사용하는 방법은 문장 속의 단어를 일부 가리고, 모델이 그 가려진 단어를 맞히게 하는 방식입니다. 이것은 우리가 자주 해보는 ‘빈칸 채우기 문제’와 비슷합니다. 예를 들어, “나는 어제 [빈칸]를 먹었다”라는 문장이 있을 때, 우리는 “[빈칸]” 안에 “밥”, “피자”, “라면” 같은 음식 단어가 들어갈 가능성이 크다는 걸 주변 단어들로부터 자연스럽게 짐작할 수 있습니다. 이렇게 주변 단어들과 문맥을 보고 빈칸을 채우는 연습을 통해, 모델은 스스로 문장의 의미를 학습하게 됩니다. 실제로 이렇게 학습한 대표적인 모델이 바로 BERT입니다. BERT는 위키백과나 뉴스 같은 인터넷에 있는 수많은 문서를 읽으며, 문장 속에서 스스로 빈칸 채우기를 반복하면서 학습했습니다.
이 방법은 텍스트뿐 아니라 이미지에서도 비슷하게 사용됩니다. 예를 들어 어떤 사진의 일부분을 가려놓고, 원래 모습이 무엇인지 맞히게 하거나, 같은 사진을 조금씩 다르게 바꿔놓고 원래 같은 사진에서 왔는지 판단하게 하는 방식입니다. 예를 들어 친구가 사진의 일부를 손가락으로 가리고 “여기에 뭐가 있을까?“라고 물어보면, 주변 모습을 보고 가려진 부분을 추측하는 것과 비슷합니다. 이런 방법을 통해 모델은 사람의 도움 없이 스스로 이미지 속의 중요한 특징과 패턴을 배워 나갑니다.
이러한 자기지도학습 방식이 트랜스포머 모델과 만나면서 다음과 같은 세 가지 큰 장점이 생겼습니다.
첫 번째 장점은 라벨(정답)이 없어도 학습이 가능하기 때문에 엄청난 시간과 비용을 아낄 수 있다는 점입니다. 사람이 일일이 정답을 만들어 줄 필요가 없어지면서, 훨씬 많은 데이터를 빠르게 활용할 수 있게 됩니다. 마치 학생이 선생님의 설명 없이 혼자 빈칸 채우기 문제를 풀면서 공부할 수 있는 것과 비슷합니다.
두 번째 장점은 인터넷이나 뉴스, 소셜 미디어와 같이 끊임없이 생성되는 엄청난 양의 데이터를 거의 제한 없이 활용할 수 있게 되었다는 점입니다. 예전에는 사람이 직접 정답을 붙이지 않은 데이터는 사용할 수 없었지만, 자기지도학습 덕분에 이 모든 데이터를 학습에 자유롭게 사용할 수 있게 되었습니다.
세 번째 장점은 이렇게 학습한 모델이 하나의 작업만 잘하는 게 아니라, 다양한 문제에 폭넓게 잘 적용된다는 점입니다. 대표적인 예로 GPT 모델이 있습니다. GPT는 인터넷에 있는 수십억 개의 문장들을 단지 “다음 단어 맞히기” 연습만으로 학습했습니다. 그런데 놀랍게도 이렇게 학습한 모델이 글쓰기, 번역, 요약, 질문 답변과 같은 다양한 작업에서도 매우 좋은 성능을 발휘합니다. 이것은 마치 여러분이 책을 많이 읽으면 국어뿐 아니라 다른 분야에서도 폭넓게 도움이 되는 것과 비슷한 효과입니다.
이렇게 자기지도학습은 트랜스포머와 결합하여 데이터가 적거나 정답이 없어도 뛰어난 성능을 발휘하는 인공지능 시대를 열고 있습니다. 이제 자기지도학습과 트랜스포머는 점점 더 많은 분야에서 인공지능 기술의 중요한 기준으로 자리 잡고 있으며, 앞으로의 발전에서도 지속적으로 큰 역할을 할 것으로 기대되고 있습니다.
인공지능 구조의 발전을 돌아보며
지금까지 우리는 인공신경망이라는 구조가 어떻게 발전해 왔는지를 함께 살펴보았습니다. 가장 기본적인 형태인 선형 회귀(Linear Regression)에서 출발해서, 단순한 직선만으로는 복잡한 문제를 해결할 수 없다는 점을 깨달았습니다. 그래서 활성화 함수(Activation Function)라는 비선형적인 변화를 추가하고, 여러 개의 층을 쌓아 만든 다층 퍼셉트론(MLP)을 알아보았습니다.
또한, 모든 데이터를 한꺼번에 다루는 완전 연결 신경망의 한계를 해결하기 위해 이미지 분석에 특화된 합성곱 신경망(CNN)을 배웠습니다. CNN은 마치 돋보기로 사진을 조금씩 확대해서 보는 것처럼 작은 필터를 이용해 이미지를 효율적으로 분석하는 방법이었습니다. 그다음으로는 문장이나 음악처럼 순서가 중요한 데이터를 잘 다룰 수 있도록 개발된 순환 신경망(RNN)도 알아보았습니다. RNN은 마치 드라마의 줄거리를 기억하면서 다음 장면을 이해하는 것과 비슷한 방식이었습니다.
그리고 가장 최근에는 이전의 구조와는 전혀 다른 방식으로 작동하는 트랜스포머(Transformer) 모델도 살펴보았습니다. 트랜스포머는 데이터를 하나씩 차례로 처리하지 않고, 문장 전체를 한 번에 보면서 단어들 간의 관계를 직접 파악할 수 있는 강력한 구조였습니다. 트랜스포머 덕분에 인공지능 모델은 이제 한 가지 문제만 잘 해결하는 것이 아니라, 번역, 질문 응답, 글쓰기, 이미지 설명 등 아주 다양한 작업을 동시에 해결할 수 있게 되었습니다.
이 모든 인공지능 구조들이 각자의 목적과 다루는 데이터의 특성에 따라 설계되고 발전했지만, 그 근본에는 한 가지 공통된 목표가 있습니다. 바로 데이터를 통해 의미 있는 규칙과 패턴을 찾아내고, 그것을 새로운 상황에서도 잘 적용할 수 있도록 만드는 것입니다. 결국, 인공지능 기술은 단순히 복잡한 계산만을 하는 것이 아니라, 우리 주변 세상을 더 잘 이해하고 해석하려는 노력에서 출발한 것입니다.
이번 장에서 살펴본 신경망의 다양한 구조들을 바탕으로 우리는 더 정교하고 창의적인 인공지능 시스템을 만들어 나갈 수 있을 것입니다. 이것은 단지 기술의 발전을 의미하는 것이 아니라, 인간의 생각과 상상력을 더 넓게 확장하고, 새로운 가능성으로 가득한 또 하나의 여정을 만들어가는 일이 될지도 모릅니다.
[저작권자ⓒ META-X. 무단전재-재배포 금지]