인공지능이란 인간의 지능을 모방하여 문제해결을 위해 인간처럼 학습하고 이해하는 기계를 만드는 연구분야이다. 인공지능은 기계의 지능 구현 수준에 따라 약인공지능(weak AI)과 강인공지능(strong AI)으로 구분된다.
인공지능 관련 개념들의 포함관계를 쉽게 정리하면 다음과 같다.
인공지능 ⊃ 기계학습 ⊃ 인공신경망 ⊃ 딥 러닝
위의 관계대로 인공지능이 가장 넓은 의미로 쓰이며 기계학습이나 딥 러닝은 인공지능에 포함된다. 기계학습은 인공신경망과 딥 러닝을 모두 포함하는 개념으로 쓰일 때도 있고 구분하여 사용되는 경우도 있으므로 주의해야 한다.
인공지능 연구의 두 가지 주요한 접근 방식으로는 기호주의와 연결주의가 있다. 이들은 인공지능 시스템이 어떻게 지식을 표현하고 처리하는지에 대해 서로 다른 관점과 방법론을 제시한다.
기호주의는 인간의 사고 과정을 논리적 규칙과 기호 조작을 통해 모방하려는 접근 방식이다. 이 접근 방식은 지식을 명시적이고 기호적 표현으로 나타내고, 이 기호들 간의 조작을 통해 문제를 해결하거나 추론을 수행한다.
기호주의는 지식이 명시적이고 구조화된 기호로 표현된다고 가정한다. 예를 들어, "고양이는 동물이다"라는 문장은 기호로 표현되어 논리적으로 처리될 수 있다. 기호주의에서는 주로 규칙 기반 시스템이나 논리 프로그래밍이 사용되며, 대표적인 예로는 전통적인 전문가 시스템이나 결정 트리가 있다.
기호주의는 복잡한 논리적 문제를 다루는 데 유용하며 지식 표현이 명확하기 때문에 특정 영역의 전문가 시스템의 기반이 될 수 있다. 그러나 기호주의적인 접근으로는 비정형적이거나 모호한 데이터를 처리하기 어려우며, 대규모의 비구조적 데이터를 다룰 때 확장성이 떨어질 수 있다.
연결주의는 지식이 연결된 뉴런들의 집합에 분산되어 있고, 이들 간의 상호작용을 통해 지식이 표현되고 처리된다는 관점이다. 즉, 두뇌의 신경망 구조를 모방하여 인공지능을 구현하려는 접근 방식이라 할 수 있다.
연결주의의 대표적인 방법은 인공 신경망(Artificial Neural Networks, ANN)이다. 딥러닝 또한 인공 신경망을 기반으로 하며, 대규모의 데이터에서 패턴을 학습하는 데 강력한 성능을 발휘할 수 있다.
연결주의는 패턴 인식, 자연어 처리, 이미지 인식 등에서 탁월한 성능을 보이며, 데이터에서 자동으로 특징을 학습할 수 있다. 또한, 비정형적 데이터나 노이즈가 포함된 데이터에서도 좋은 성과를 내고 있다.
그러나 신경망의 내부 동작이 블랙박스처럼 작동하여, 왜 이러한 결과가 도출되었는지 설명하기 어려울 수 있다. 또한, 학습에 많은 데이터와 계산 자원이 필요하다.
머신 러닝(기계학습)이란 인공지능의 한 분야로서, 현실세계에서 수집한 데이터를 토대로 주어진 문제를 해결하는 알고리즘을 구축하는 기법을 다룬다. 머신 러닝의 목표는 명시적인 프로그래밍 없이 데이터를 기반으로 스스로 규칙과 지식을 찾아 문제를 해결하는 것이다. 따라서 머신 러닝을 효과적으로 활용하려면 적절한 학습 알고리즘과 대량의 데이터를 처리할 수 있는 컴퓨팅 파워가 필요하다.
머신 러닝은 IBM의 아더 새뮤얼이 1959년에 처음 제안한 용어로, 실제로 기계가 학습한다는 의미라기 보다는 마케팅적인 의도에 의해 만들어진 용어이다. 머신 러닝이나 딥 러닝 모두 학습이라는 말 때문에 컴퓨터가 사람처럼 지식을 습득하여 문제를 해결한다고 생각하기 쉬우나 사실 컴퓨터는 사람처럼 학습할 수 없다.
대부분의 머신 러닝 알고리즘은 주어진 입력에 대해 특정한 수학적 절차를 따라 필요한 수치들을 찾아서 마치 정답을 얻은 것처럼 출력하는 과정일 뿐이다. 비록 컴퓨터가 인간과 같은 방식으로 학습할 수는 없지만 인간과 비슷하게 주어진 데이터를 통해 해답을 찾아나가므로 이러한 과정을 '학습'이라고 비유한 것이다.
딥 러닝(심층 학습)이란 심층 신경망(deep neural network)을 이용하여 학습하는 방식에 초점을 두는 머신러닝의 하위 분야이다. 심층 신경망이란 문제를 해결하기 위해 여러 층의 인공 신경망 네트워크를 구축한 것을 말한다. 인공 신경망은 데이터를 학습하기 위해 인간의 신경세포를 모방하여 만든 인공지능 모델이다. 이러한 신경망으로 문제를 해결하기 위해선 상당히 깊고 복잡한 신경망들의 네트워크를 구성해야 하기 때문에 이를 심층 신경망이라고 부른다.
심층 신경망은 보통 입력층-은닉층-출력층의 단계로 구성되는데, 은닉층을 3층 이상 쌓은 신경망으로 학습하거나, 최신 알고리즘과 수학 기법에 의한 인공 신경망 학습 기법을 딥 러닝이라 부른다. 인공 신경망은 딥 러닝의 상위 개념이지만, 과거 기반 기술이 충분히 성숙하지 않았던 시기에는 많은 실패를 겪었다. 이러한 인공 신경망이란 용어에 대한 부정적인 평가로 인해 최근에는 인공 신경망보다는 딥 러닝이라는 용어가 더 흔하게 쓰이고 있다.
머신 러닝과 딥 러닝의 학습 데이터는 크게 행과 열의 형식으로 나타낼 수 있는 정형 데이터와 이미지, 음성, 텍스트 등 행과 열로 나타내기 어려운 비정형 데이터로 나눌 수 있다. 정형 데이터에 대해서는 머신러닝과 딥러닝이 모두 활용되고 있지만 비정형 데이터에 대해서는 기존의 머신러닝 기법들보다 딥 러닝 기법들이 탁월한 성과를 내고 있기 때문에 최근엔 주로 딥 러닝 기법들이 연구되고 있다.
머신 러닝이 딥 러닝의 상위 개념이지만 두 분야는 서로 공유하는 개념과 기반 기술이 많아 학계와 실무 현장에서도 두 용어를 엄밀하게 구분하지 않고 사용하는 경우가 많다. 머신 러닝이 딥 러닝을 포함하는 개념으로 쓰이기도 하고, 별도로 구분해서 쓰이기도 한다.
일반적으로 머신 러닝이나 딥 러닝 모두에 공통적인 기반 기술 또는 심층 신경망과 관계가 없는 학습 알고리즘에 대해 다루는 경우 머신 러닝이 사용되며, 심층 신경망에 기반한 학습 알고리즘에 대해 다루는 경우 머신 러닝과 딥 러닝이 모두 사용되고 있다.
머신 러닝의 접근 방식은 데이터의 성격에 따라 달라진다. 모든 문제에 대해 적용할 수 있는 학습 방식은 아직 존재하지 않으며 각각의 학습 방식은 장단점이 있기 때문에 해결하고자 하는 문제에 대해 적합한 학습 방식을 선택하거나 여러 방식을 조합해야 한다.
머신러닝의 학습 유형은 주로 지도 학습, 비지도 학습, 강화 학습의 세 가지로 구분되지만 이 세 가지 유형에 포함되지 않는 다른 학습 방식들도 있다. 또한 머신러닝은 딥 러닝을 포함하는 상위 개념이므로 이러한 학습 유형 구분은 딥 러닝에서도 마찬가지로 적용된다.
지도 학습이란 학습 데이터에서 주어진 입력에 대해 기대하는 출력을 함께 제공하는 학습 방식이다. 이 기대하는 출력을 만들기 위해 인간의 개입이 필요하기 때문에 인간이 기계를 올바른 방향으로 지도한다는 의미로 지도 학습이라 한다.
지도 학습을 위한 데이터셋은 어떤 객체를 표현하는 속성인 특징(또는 특성, feature)들과 이 객체가 속하는 클래스 값인 레이블(label)로 구성된다. 예를 들어 어떤 사람의 키와 몸무게로 그 사람의 성별을 맞추는 문제의 경우 키와 몸무게는 특징이 되고 레이블은 성별 값이 된다.
지도 학습의 목표는 주어진 데이터셋을 이용해 입력된 특징 벡터로부터 레이블을 추론(출력)하는 모델을 구축하는 것이다. 지도 학습은 회귀, 분류, 능동 학습(active learning), 유사성 학습(similarity learning)등의 문제에 대해 적합한 방식이다.
지도 학습은 확실한 정답(레이블)을 가지고 학습하므로, 레이블이 있는 데이터를 충분히 확보할 수 있고 적절한 학습 알고리즘을 적용할 경우 좋은 성능을 낼 수 있어서 현재 가장 많이 활용되는 학습 방식이다. 하지만 현실 세계에서 수집되는 대부분의 데이터는 사람이 직접 레이블을 부여해줘야 하므로 대규모 데이터에 대해 레이블을 부여하려면 막대한 비용과 시간이 필요하다는 단점도 있다. 이러한 문제를 해결하기 위해 준지도 학습이나 자기지도학습 등의 대안이 제시되었다.
비지도 학습이란 지도 학습과는 다르게 학습 데이터에 기대하는 출력에 대한 정보가 제공되지 않는 학습 방식이다. 비지도 학습의 목표는 주어진 문제를 해결하기 위해 기존의 특징 벡터를 다른 형태의 벡터나 값으로 적절하게 변환하는 모델을 구축하는 것이다. 정답이 없는 데이터로 학습하므로 분류나 회귀 같은 문제에 대해 적용하기는 어렵지만 군집화, 차원 축소, 이상치 탐지 등의 문제에 대해서는 적합한 학습 방식이다.
준지도 학습이란 레이블이 있는 데이터와 없는 데이터를 모두 사용하는 학습 방식으로 반지도 학습이라고도 부른다. 준지도 학습의 목표는 지도 학습과 같지만, 더 좋은 모델을 만들기 위해 레이블이 없는 데이터도 활용한다는 차이점이 있다. 준지도 학습과 비슷한 방식으로는 부정확한 레이블도 활용하는 약지도 학습(weakly supervised learning), 학습 데이터에 레이블을 자동으로 부여하는 자기지도 학습(self-supervised learning) 등이 있다.
강화 학습이란 기계가 어떤 환경 안에서 실제로 작동하면서 그 환경의 상태(state)를 인식해 각 상태마다 적절한 동작(action)을 수행하도록 학습하는 기법이다. 이 때 환경의 상태가 특징 벡터로 입력된다. 수행하는 동작마다 적절한 보상(reward)을 주며 학습해나가기 때문에 강화 학습이라고 한다.
강화 학습의 목표는 정책(policy)을 학습하는 것이다. 여기서 정책이란 입력받은 상태를 토대로 그 상태에서 할 수 있는 최적의 동작을 출력하는 함수를 말한다. 최적의 동작은 평균 기대 보상(expected average reward)을 극대화하는 동작이다.
강화 학습은 게임, 로보틱스, 자원 관리, 로지스틱처럼 의사 결정이 순차적이고 장기간에 걸쳐 이뤄지는 문제에 적합하다.
앙상블 학습이란 단일한 학습 알고리즘을 적용하는 것보다 더 나은 예측 성능을 얻기 위해 여러 가지의 학습 알고리즘을 적용하는 학습 방식이다. 집단 지성 또는 큰수의 법칙 같은 아이디어에 의한 학습 방식이라 할 수 있다. 보팅(voting), 배깅(bootstrap aggregating), 스태킹(stacking), 부스팅(boosting)등의 다양한 앙상블 학습 기법이 있으며 실제 성능 또한 뛰어난 편이다.
특징 학습 또는 표현(representation) 학습이란 기계가 데이터의 핵심 정보를 자동으로 추출할 수 있도록 학습하는 과정이다. 특성 학습은 지도, 비지도, 자기지도 학습 등 다양한 학습 유형에 공통적으로 적용할 수 있다.
특성 학습과 관련이 있는 학습 알고리즘으로는 K-평균 군집화, 주성분 분석(PCA), 오토인코더(autoencoder) 등이 있다.
회귀(Regression)
회귀는 데이터를 분석하여 연속적인 값을 예측하는 문제이다. 예를 들면 오늘 까지의 기상 데이터를 분석하여 내일의 기온을 예측하거나 부동산 데이터를 통해 주택의 가격를 예측하는 문제가 바로 회귀이다. 대표적인 알고리즘으로는 선형 회귀, 다항 회귀 등이 있다.
분류(Classification)
분류는 주어진 데이터가 어떤 카테고리에 속하는지 예측하는 문제이다. 예를 들면 스팸 메일 분류, 식물 품종 분류, 개와 고양이 분류, 질병 진단 등의 문제가 바로 분류 문제이다. 대표적인 알고리즘으로는 로지스틱 회귀, 결정 트리, 랜덤 포레스트 등이 있다.
군집화(Clustering)
군집화는 데이터 개체들을 유사한 특성을 가진 그룹으로 묶는 비지도 학습 문제로, 고객 세분화, 이미지 분할 등의 문제가 군집화에 해당된다. 대표적인 알고리즘으로는 K-평균 군집화, 계층적 군집화, DBSCAN 등이 있다.
차원 축소(Dimensionality Reduction)
차원 축소는 데이터의 특성 수를 줄이면서 중요한 정보를 보존하는 기법으로, 데이터 시각화, 노이즈 제거, 모델 효율성 향상 등에 사용된다. PCA, t-SNE, UMAP 등이 대표적인 기법이다.
이상치 탐지(Anomaly Detection)
이상치 탐지는 데이터에서 정상 패턴과 다른 비정상적인 데이터를 식별하는 문제로, 금융 사기 탐지, 시스템 장애 예측 등의 문제가 해당된다. 통계적 방법, 머신러닝 기반 방법, 규칙 기반 방법 등의 다양한 관련 알고리즘이 있다.
데이터 전처리(data preprocessing)
데이터 전처리는 원시 데이터를 머신러닝 모델에 적합하게 정리하고 변환하는 과정이다. 이 과정은 결측값 처리, 이상치 제거, 데이터 정규화, 원-핫 인코딩 등이 포함된다.
훈련 데이터와 검증 또는 테스트 데이터의 분리
전체 학습 데이터를 용도에 맞게 훈련 데이터와 검증 또는 테스트 데이터로 나누어 모델을 학습시키고 평가하는 과정이다. 훈련 데이터는 모델 학습에 사용되고, 검증 데이터는 모델의 평가와 하이퍼 파라미터 튜닝을 위해 사용되며, 테스트 데이터는 모델의 일반화 성능을 평가하는 데 사용되는 데이터이다. 시험의 예를 들면 교재나 강의가 훈련 데이터, 모의고사는 검증 데이터, 실제 시험은 테스트 데이터라 할 수 있다.
이렇게 학습 데이터를 용도에 맞게 분리하지 않으면 학습 과정은 마치 시험의 정답을 알고 있는 상태에서 시험을 보는 것과 같으므로 모델의 일반화 오차가 전혀 없다는 결과가 나오게 된다. 따라서 훈련 데이터와 테스트 데이터는 반드시 분리되어야 하며 테스트 데이터로 훈련하지 않도록 주의해야한다.
교차 검증(cross validation)
교차 검증이란 데이터를 여러 폴드로 나눠 각 폴드마다 훈련과 검증을 반복해 평균 성능을 평가하는 방법으로, 모델의 일반화 성능을 안정적으로 추정할 수 있는 방법이다.
특성(feature)
특성은 모델이 학습에 사용하는 데이터의 개별 속성을 의미한다. 예를 들어, 주택 가격 예측에서는 면적, 방 수, 위치 등이 특성이라 할 수 있다. 보통 간단하게 X라고 코딩하기도 한다.
레이블(label) 또는 클래스(class)
머신러닝에서 레이블 또는 클래스는 모델이 예측하거나 분류하는 대상을 말한다. 이는 모델이 학습하는 데이터에 대한 정답(truth)이라 할 수 있다. 모델은 입력 데이터를 받아서 특정 클래스나 레이블을 예측하도록 학습된다. 보통 레이블 또는 클래스를 간단하게 y라고 코딩하기도 한다.
레이블은 개별 데이터 포인트에 할당된 정답을 의미한다. 예를 들어, 이미지 분류 문제에서 고양이 사진에 '고양이'라는 정답을 붙이는 것 레이블이다.
클래스는 레이블의 집합으로, 분류 문제에서 모델이 선택할 수 있는 모든 가능한 카테고리를 의미한다.
예를 들어, 동물 이미지 분류 문제에선 '고양이', '개', '새' 등이 클래스이다.
특성 공학(feature engineering)
특성 공학은 데이터에서 모델 학습에 유용한 특성을 선택하고 생성하는 과정이다. 특성 공학을 통해 머신러닝 모델의 성능을 크게 향상시킬 수 있다. 특성 공학은 데이터 분석기법, 도메인 지식, 창의력 등을 결합하여 모델이 더 나은 예측을 할 수 있도록 돕는다.
모델(model)
모델이란 데이터를 통해 패턴을 학습하고 이를 바탕으로 예측을 수행하는 전체적인 알고리즘을 말한다. 훈련된 모델은 아직 학습되지 않은 새로운 데이터에 대한 예측을 수행할 수 있다.
훈련(train)
훈련이란 머신러닝 모델이 훈련 데이터를 사용하여 최적의 파라미터를 찾고, 패턴을 학습하는 과정을 의미한다.
정확도(accuracy)
정확도는 모델이 예측을 얼마나 잘 수행하는지를 나타내는 성능 지표로, 전체 예측 중 올바르게 예측된 비율을 의미한다.
과대적합(overfitting)과 과소적합(underfitting)
과대적합은 모델이 훈련 데이터에 너무 잘 맞아 새로운 데이터에 대해서는 예측을 잘 하지 못하는 상태를 의미한다. 과소적합은 모델이 훈련 데이터의 패턴을 충분히 학습하지 못해 성능이 저조한 상태를 의미한다. 과대적합과 과소적합은 머신러닝에 있어서 매우 중요한 문제이며 이를 해결하기 위해 다양한 기법을 활용한다.
하이퍼 파라미터(hyper parameter)
하이퍼 파라미터는 모델의 학습 과정에서 설정해야 하는 매개변수로, 모델 구조나 학습 속도 등을 제어한다. 대부분의 하이퍼 파라미터는 학습 데이터로부터 학습할 수 없으며, 교차 검증과 같은 별도의 절차를 통해 최적의 값을 찾아야 한다. 모델의 최적의 하이퍼 파라미터를 찾는 과정을 하이퍼 파라미터 튜닝이라고 한다.
확률과 통계
확률과 통계는 데이터 분석과 모델링의 기반이며 머신러닝 모델의 성능 평가, 불확실성 추정, 가설 검정 등의 기반이 되는 분야이다. 또한 베이즈 정리(Bayes' theorem)에 기반한 여러 통계적 접근 방식들을 활용한다.
선형대수학
선형대수학은 데이터 표현과 변환, 신경망의 가중치와 그래디언트 계산 등 데이터를 처리하는데 있어 매우 중요한 분야이다. 벡터와 행렬의 연산, 특이값 분해(SVD), 주성분 분석(PCA) 등은 선형대수에 기반한 머신러닝 알고리즘의 핵심 요소이다.
미적분학
미적분학은 모델의 학습 과정, 특히 경사하강법과 같은 최적화 알고리즘의 기반이 되는 분야이다. 함수의 극값을 찾고, 손실 함수의 최소화를 통해 모델의 파라미터를 조정하는 데 미적분학이 필요하다. 또한 신경망의 역전파 알고리즘에서도 필수적인 역할을 한다.
최적화 이론
최적화 이론은 모델의 학습에서 손실 함수를 최소화하거나 성능 함수를 최대화하는 데 사용되는 이론적 기반이다. 최적화 이론에 기반하는 경사하강법, 확률적 경사하강법(SGD), Adam 등의 최적화 알고리즘은 딥러닝 모델의 학습에서 핵심적인 역할을 한다.
해석 기하학
해석 기하학은 머신러닝에서는 고차원 공간에서 데이터의 분포와 관계를 분석하고, 차원 축소 기법(PCA, t-SNE 등)을 통해 데이터의 구조적 특성을 파악하는 파악하는 데 중요한 이론적 기반이다.