AI - 수학 없이 이해하는 딥러닝, 인공 신경망의 기본 원리


딥러닝의 화려한 성과 뒤에는 복잡한 ‘수학’이라는 뼈대가 숨어 있다.
우리가 사용하는 거의 모든 딥러닝 모델은 본질적으로 거대한 수식 계산의 결과물이며, 오늘날 인공지능이 이토록 발전할 수 있었던 것도 결국은 이 계산을 뒷받침하는 컴퓨터의 연산 성능이 향상되었기 때문이다.

그렇기에 ‘수학 없이 딥러닝을 설명한다’는 말은 어쩌면 모순처럼 들릴 수 있다. 핵심을 배제하고 겉모습만 이야기하다 보면, 자칫 개념이 왜곡되거나 피상적인 이해에 그칠 위험이 있기 때문이다.

하지만 이 포스트의 목표는 당장 복잡한 수식을 증명하고 모든 세부 사항을 파악하는 것이 아니다.
대신, 딥러닝 작동 원리에 대한 ‘직관적인 이해’와 ‘큰 그림’을 얻는 것을 목표로 한다.

여기서는 수학이라는 부담을 잠시 내려놓고, AI 가 어떻게 세상을 보고 배우는지에 대해 알아본다.


목차


1. 딥러닝과 인공 신경망(ANN, Artificial Neural Network)

딥러닝(Deep Learning)은 수많은 데이터 속에서 컴퓨터가 스스로 패턴을 학습하여 인간처럼 생각하고 판단하게 만드는 인공지능 기술이다.
이 기술의 핵심은 인간의 뇌가 정보를 처리하는 방식을 모방하여 설계된 인공 신경망(Artificial Neural Network)에 있다.

인공지능을 구현하는 방법은 다양하지만, 딥러닝은 그중에서도 가장 혁신적인 접근법 중 하나이다. 그 아이디어는 우리 뇌의 동작 원리에서 시작된다.
사람의 뇌는 뉴런(Neuron)이라는 수많은 신경 세포가 복잡하게 얽힌 신경망(Neural Network)을 통해 학습하고 추론한다.

인공 신경망(ANN)은 바로 이 구조를 인공적으로 모델링한 것이다.
즉, 컴퓨터가 데이터를 학습할 수 있도록 뇌의 신경망과 유사한 구조를 만든 것이다.

인공 신경망은 입력층, 은닉층, 출력층으로 구성된다.

인공 신경망은 신경망의 최소 구성 단위인 뉴런들이 서로 연결된 모습을 레이어라는 개념으로 표현한다. 가장 기본적인 인공 신경망은 아래 3가지 레이어로 구성된다.

입력층, 은닉층, 출력층으로 구성된 인공 신경망

  • 입력층
    • 학습할 데이터를 처음으로 받아들이는 부분
    • 예) 사진 속 동물이 고양이인지 개인지 구분하고 싶다면, 사진의 픽셀 값 하나하나가 입력층으로 들어감
  • 은닉층
    • 입력층에서 들어온 데이터는 눈에 보이지 않는 은닉층을 거치며 특정 패턴이나 특징으로 변환됨
    • 마치 우리 뇌의 뉴런들이 신호를 주고받으며 정보를 처리하는 것처럼, 데이터는 여러 은닉층의 뉴런을 지나면서 신호의 세기가 바뀌고 점차 정답을 찾기 좋은 형태로 가공됨
  • 출력층
    • 은닉층에서 처리된 최종 신호를 바탕으로 예측값을 내놓는 부분
    • ‘남자/여자’를 구분하는 모델이라면 출력층은 ‘남자’, ‘여자’ 2개의 값으로, ‘0~9’ 사이의 숫자를 인식하는 모델이라면 10개의 값으로 구성됨

만일 은닉층이 단 하나가 아니라 여러 개로 깊게 쌓여있다면 더 복잡하고 정교한 특징을 학습할 수 있게 되어 예측 정확도가 향상된다.
이처럼 은닉층이 여러 개인, 즉 깊은(Deep) 층으로 구성된 인공 신경망심층 신경망(DNN, Deep Neural Network)이라고 한다.
그리고 이 심층 신경망(DNN)을 사용하여 데이터를 학습시키는 전 과정딥러닝이라고 한다.


2. 인공 신경망 원리

인공 신경망은 대량의 데이터 속에서 스스로 규칙과 패턴을 찾아내어 특정 문제를 해결하는 머신러닝 방법론이다. 주로 정답이 있는 데이터를 학습하여 새로운 데이터에 대한 예측을 수행하는 지도 학습 분야에서 강력한 성능을 발휘하며, 크게 분류(Classification)와 회귀(Regression) 문제를 해결하는데 사용된다.

인공 신경망이 실세계에서 어떤 종류의 문제를 해결할 수 있는지 3가지 대표적인 상황을 통해 알아보자.

상황 1: 이진 분류(Binary Classification)

문제: 사진을 보고 남자와 여자를 구분하는 인공지능 만들기

이처럼 주어진 데이터를 ‘A’ 또는 ‘B’와 같이 둘 중 하나의 정답으로 구분하는 문제를 이진 분류라고 한다.
스팸 메일 필터링(스팸/정상), 신용카드 사기 탐지(사기/정상) 등이 대표적인 예시이다.

상황 2: 다중 분류(Multi-class Classification)

문제: 사진을 보고 10대, 20대 등 나이대를 구분하는 인공지능 만들기

이진 분류와 달리, 여러 선택지 중에서 하나의 정답을 고르는 문제이다. 손으로 쓴 숫자를 0~9까지 인식하거나, 사진 속 동물이 개, 고양이, 코끼리 중 무엇인지 맞추는 것처럼 여러 개의 클래스(범주)로 데이터를 분류한다.

상황 3: 회귀(Regression)

문제: 사진을 보고 정확한 나이를 예측하는 인공지능 만들기

분류 문제처럼 특정 범주를 고르는 것이 아니라, 연속된 수치 값을 예측하는 문제이다. 집의 크기, 위치 등의 데이터로 집값을 예측하거나, 과거 판매량 데이터로 미래의 매출을 예측하는 경우가 회귀 문제에 해당한다.

3가지 상황 모두 지도 학습의 대표적인 문제 유형이며, 인공 신경망은 이러한 문제들을 해결하는 데 매우 효과적인 도구이다.


3. 인공 신경망의 재료: 피처가 풍부한 데이터

인공 신경망을 비롯한 모든 머신러닝 모델을 학습시키는 데 필요한 필수 재료는 바로 데이터이다.
특히 단편적인 정보가 아닌 여러 관점의 정보를 담고 있는, 즉 다양한 피처(특징)를 가진 데이터가 모델의 성능을 결정하는 핵심 요소가 된다.

하나의 정보만으로는 부족하다.

다시 ‘남녀를 구분하는 인공지능’ 예시로 돌아가보자.
만약 우리가 ‘키’라는 단 하나의 특징만으로 남녀를 구분한다면 어떻게 될까?
‘남자는 키가 크고, 여자는 키가 작다’는 일반적인 경향성은 있지만, 키가 작은 남자가 키가 큰 여자도 얼마든지 존재한다.
이처럼 한정된 정보에만 의존하면 정확한 판단을 내리기 어렵다.

‘여러’ 피처가 정확도를 높인다.

하지만 여기에 ‘머리카락 길이’, ‘몸무게’, ‘골격’ 등 더 많은 피처가 추가된다면 어떻게 될까?
여러 특징을 종합적으로 고려할수록 인공지능은 훨씬 더 정교하고 정확하게 남녀를 구분할 수 있게 된다.

이처럼 머신러닝 모델을 만들 때는 다양하고 유의미한 피처가 포함된 데이터를 준비하는 것이 무엇보다 중요하다.
데이터에 담긴 특징이 풍부할수록 모델은 더 복잡한 패턴을 학습하고, 결과적으로 더 높은 성능을 발휘하게 된다.


4. 인공 신경망 작동 과정

인공 신경망은 학습된 패턴을 기반으로, 새로운 데이터가 입력되었을 때 각 피처의 중요도에 따라 신호의 세기를 조절한다.
이 신호들이 여러 레이어를 통과하며 최종적으로 가장 확률이 높은 값으로 결과를 추론한다. 그리고 이 추론의 정확도를 높이기 위해 신호의 세기(가중치)를 끊임없이 미세 조정하는 과정을 학습(Training)이라고 한다.

머신러닝 모델은 종종 블랙박스에 비유된다. 학습이 완료된 인공 신경망에 새로운 데이터를 넣으면, 복잡한 내부 연산을 거쳐 결과를 출력해준다.

인공 신경망의 추론 과정은 아래와 같다.

  • 데이터 입력
    • ‘키’, ‘머리카락 길이’와 같은 피처 데이터를 입력층에 넣음
  • 신호 전달
    • 입력된 데이터는 각각의 신호가 되어 은닉층으로 전달됨
    • 이 때 각 신호는 뉴런을 지날 때마다 특정 세기(중요도)로 조절됨
  • 결과 도출
    • 여러 레이어를 거치며 가공된 신호들은 최종적으로 출력층에 도달함
    • ‘남자’와 ‘여자’를 구분하는 모델이라면, ‘남자’로 향하는 최종 신호와 ‘여자’로 향하는 신호의 총합을 비교하여 더 신호가 강한 쪽을 예측 결과로 내놓음

인공 신경망의 추론 과정

위 그림을 보면 특징 데이터 중 3개(키, 머리카락 길이, 얼굴 길이)를 넣으니 최종적으로 남자 쪽으로 가는 신호가 여자 쪽으로 가는 신호보다 큰 것을 확인할 수 있다.


학습 과정: 더 똑똑한 모델 만들기

그렇다면 인공 신경망은 어떻게 신호를 어느 쪽으로 더 강하게 보낼지 알 수 있는 것일까?
바로 학습을 통해서이다.

인공 신경망의 학습 과정이란, 정확한 출력값으로 신호를 보낼 수 있도록 신호의 세기를 조정하는 과정이다.
모델이 예측한 값과 실제 정답을 비교하여, 만약 예측이 틀렸다면 “어떤 연결 신호를 조절해야 정답에 더 가까워질까?”를 계산하여 거꾸로 거슬러 올라가며 각 연결의 신호 세기를 아주 조금씩 수정한다.

이 과정을 수만, 수백만 개의 데이터에 대해 반복하면, 모델은 점차 어떤 특징이 어떤 결과에 더 큰 영향을 미치는지 스스로 학습하게 된다.
결국 새로운 데이터를 받았을 때 매우 높은 정확도로 정답을 예측할 수 있는 똑똑한 인공 신경망 모델이 완성되는 것이다.


정리하며..

  • 딥러닝은 인간의 뇌를 모방한 인공 신경망(ANN), 특히 깊은 층을 가진 심층 신경망(DNN)을 통해 컴퓨터를 학습시키는 기술이다.
  • 인공 신경망은 입력층, 은닉층, 출력층으로 구성되며, 분류(Classification)회귀(Regression)와 같은 다양한 문제를 해결할 수 있다.
  • 모델의 성능은 학습 데이터의 품질, 특히 얼마나 다양하고 유의미한 피처를 포함하고 있는지에 크게 좌우된다.
  • 인공 신경망은 새로운 데이터가 들어왔을 때 각 피처의 신호 세기를 조절하여 결과를 추론하며, 정답과의 오차를 줄여나가는 방향으로 신호 세기를 업데이트하는 학습 과정을 통해 점점 더 정교해진다.

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

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






© 2020.08. by assu10

Powered by assu10