본문 바로가기
Artificial Intelligence/Basic

[ AI 기초 ] 1. Introduction for Artificial intelligence

by SuperMemi 2022. 4. 20.
반응형

[ AI 기초 ] 1. Introduction for Artificial intelligence

 


1. Ai, Machine Learning, Deep Learning?

 

인공지능(Artificial Intelligence)은 인간의 지능을 모방하는 모든 기술을 총 망라합니다.

 

머신러닝(Machine Learning)은 인공지능을 구현하기 위한 하나의 방식입니다.

 

구체적으로 설명하면, 컴퓨터가 데이터에서 어떠한 패턴 또는 특징들을 스스로 학습하고 기억할 수 있게 하는 기술을 말합니다.

이렇게 머신러닝이 데이터로 부터의 추출한 정보를 inductive bias 라고 합니다.

 

즉, 입력으로 학습데이터를 주면 학습을 통해 모델이 해당 데이터에 대해 전문가가 되는 과정을 머신러닝이라고 합니다.

 

그렇다면 딥러닝(Deep Learning)은 무엇일까요?

 

딥러닝은 머신러닝의 방법 중 하나입니다.

인공 신경망을 neural network라고 부르는데, 이 network를 아주 깊게(deep)하게 쌓은 심층 인공신경망(deep neural network)을 통해 데이터로 부터 의미 있는정보를 학습하여 인공지능을 구현하는 방식이라고 이해하시면 됩니다.

 

출처 https://levity.ai/blog/difference-machine-learning-deep-learning

 

사람은 어떻게 학습할까요?

 

인공지능은 사람의 지능을 모방합니다.

컴퓨터는 사람의 지능을 모방하기 위해 머신러닝, 딥러닝 같이 학습의 방법을 사용합니다.

 

어찌보면 당연하지요.

 

아무리 똑똑한 아인슈타인일지라도 태어날때 부터 미분방정식을 풀지는 않았을 테니까요 ㅎㅎ

사람은 성장하면서 학습을 통해 지능을 습득합니다.

 

그런데 사람은 몇 번만 설명하고 예시를 보여주면 바로 알아챕니다. 

(TMI... 제가 심리학과 컴퓨터 공학을 복수전공했는데요, 심리학에서도 인간의 학습에 대해서 참 많이 배웠습니다.장기기억, 강화학습, 그래프.. 전부다 뇌인지심리 수업시간에 배웠던 건데요 인공지능에서도 그 개념이 그대로 구현됩니다. 신기하지 않나요? ㅎㅎ)

 

LTM (Long-Term-Memory;장기기억) : Encoding(입력), Retrieval(출력) , Consolidation(저장) - 1

[이미지 출처 : LG블로그] 장기기억 : 입력, 출력에 대하여.  Encoding (입력) : 정보를 획득하고 기억으로 만드는 과정  Retrieval (출력) : LTM에 저장된 기억을 다시 Working memory(작업기억)으로 가지고..

supermemi.tistory.com

 

반대로, 딥러닝 모델이 개와 고양이를 구별하는 아주 간단한 능력을 가지기 위해서는 최소 수천장의 개와 고양이의 사진이 필요합니다. 

(참고, few-shot learning 이라는 연구 분야는 인간처럼 딥러닝 모델에게 몇개의 예시만 주고 학습을 시키는 것을 연구합니다!)

 

 

엄청난 수의 데이터와 컴퓨터 계산이 필요하게 됩니다. 이러한 이유로 오랫동안 발전되지 못하고 있었습니다.

 

 

딥러닝의 부흥

출처 엔비디아

 

게임 그래픽 연산을 위해 만들어진 엔비디아 GPU를 딥러닝을 위한 병렬 연산 가속화에 사용할 수 있게 되었고,

컴퓨터의 기본적인 연산능력과 저장능력의 발전으로 대규모 데이터셋들이 발표되면서

딥러닝 연구가 다시 한 번 꽃피우기 시작했습니다.

 

(참고, Moore's law : 컴퓨터 하드웨어의 발전 속도는 2년마다 두배가 된다라는 내용처럼 데이터 또한 해가 갈 수록 미친듯이 증가하고 있습니다.)

 

최근 하드웨어와 데이터의 풍요 속에 인공지능과 머신러닝에 대한 연구가 꽃을 피웠고, 

기초연구를 바탕으로 한 다양한 응용 사례들이 등장하고 있습니다.

 

인공지능 응용 사례

 

  • 의료/생물학 : 질병 예측, 진단, 치료 모든 분야에 인공지능 기술이 적용됩니다. 예시를 들면, 사람의 DNA를 분석하여 질병의 발병률을 예측하거나, X-Ray 나 CT 영상으로만으로 암을 진단하고 암의 크기를 측정하거나 심혈관 질환을 예측 진단합니다. 또는 생리적 세포 영상을 자동으로 분류하거나 영역을 구분해주는 기능도 존재합니다.
  • 아이폰 : face id는 마스크와 안경을 쓰고도 본인인증 됩니다. 신기하지 않나요? 저는 컴퓨터 비전 딥러닝을 전공하는 대학원생이 봐도 어떻게 했는지 참 신기합니다. 가끔 각도에 따라, 야외에서 배경의 영향으로 인식이 잘 안되긴 하지만 이 정도 수준이 되는 것도 참 기술력이 빠르게 발전하는 것 같습니다.
  • 화학 : 알파폴드 같은 모델들은 단백질의 분자구조를 빠르게 파악하여 신약 개발의 시간을 획기적으로 단축하기도 합니다. 
  • 경제/금융 : 요즘 주식하시는 분들이 많은데요, 인공지능이 주식 가격을 예측하여 투자하기도 하고 신용카드 정보를 바탕으로 사람의 행동패턴, 성향 등을 파악하기도 합니다. 
  • 컴퓨터 : 반도체 설계에 인공지능 기술이 사용되고, 단순하게 스팸메일을 자동으로 분류해주기도 합니다. 사람이 쓴 우편번호나 자동차의 번호판을 자동으로 인식하여 다양한 편의를 제공하기도 합니다. 제가 재밌게 본 넷플릭스 다큐멘터리 <라스트 댄스>에서는 옛날 마이클조던의 활약영상을 deep super resolution이라는 기술을 통해 아주 선명한 화질로 볼 수 있었습니다. 
  • 자율주행 : 테슬라의 경우 자율주행에 있어서 카메라만 사용하는데요. 여러대의 카메라를 통해 차선을 인식하고, 주위의 차와 사람 물건에 대한 인식과 더불어 위험을 판단하고 주행을 어떻게 할지 결정하는 과정에 아주 다양한 인공지능 기술들이 적용됩니다.
  • 게임 : 알파고로 유명한 딥마인드 회사의 경우 인공지능으로 아주 유명한데요. 강화학습을 기초로 해서 인간보다 훨씬 게임을 잘하는 모델들도 많아지고 있습니다. 
  • 3차원 인식 : 요즘 메타버스가 유명한데요. 카메라를 통해 자신의 모습이 자동으로 3차원 컴퓨터 세상속에 구현된다면 어떤가요? 움직임을 그대로 랜더링해주는 모션 캡쳐 기술도 개발중입니다.

2. 머신러닝 기본 유형

 

딥러닝은 머신러닝의 한가지 방식이기 때문에 머신러닝의 전체적인 정의를 많이 따라갑니다.

 

머신러닝의 다양한 유형

  • Prediction : Supervised learning, Semi-supervised learning, Active Learning
  • Understanding : Clustering, non-parametric probability distribution estimation, novelty detection
  • Policy (control) : Reinforcement learning

머신러닝 방법으로 크게 3가지로 분류할 수 있습니다. 하나씩 알아봅시다.

 

1. Prediction. 어떤 것을 예측 하는 것을 학습한다고 볼 수 있습니다.

 

supervised learning 의 경우 데이터 셋에 모델의 입력으로 사용되는 데이터와 정답을 알려주는 라벨 데이터가 모두 존재합니다. 

그래서 머신러닝 모델에 input data(고양이 사진)을 넣어줬을때 정답(고양이)을 알려주면서 모델이 학습하도록합니다.

 

그러나 데이터에 모두 정답이 있는 것은 아닙니다. 실제로는 정답 라벨이 없는 데이터가 더 많지요.

 

이럴때는 Semi-supervised learning 을 통해 모델을 학습시킬 수 있습니다. 정답이 있는 학습데이터는 조금밖에 없고, 정답이 없는 학습데이터가 많은 경우를 말합니다.

 

만약에 모든 데이터에 정답이 없는 경우는 어떻게 할까요?

 

2. 이때는 데이터 자체를 학습하는 unsupervised learning을 통해 학습할 수 있습니다. 

 

말 그대로 감독 받지 않은 학습이라고 볼 수 있습니다. 예를들어 나무와 컴퓨터를 구분하는 모델을 만들고자 할때 데이터 셋은 그냥 사진만 존재합니다. 모델은 두 데이터가 뭔지는 모르지만 형태나 질감 색갈 등을 통해 비슷한 것 끼리 모을 수 있는데요. 이를 군집화(clustering)이라고 합니다. supervised learning 보다 훨씬 이미지 자체 표현(image representation)에 대한 이해가 중요하게 됩니다.

 

3. 또다른 학습방법으로는 강화학습 (reinforcement learning)이 있습니다.

 

이는 행동 방식이나 규칙(policy)을 학습하는데 사용됩니다. 심리학에서 보면 강화 학습이라는 것이 있는데요. 행동에 대한 보상을 주어 그 행동을 계속해서 유발하도록 하는 것입니다. 반대로 잘못된 행동을 할 경우는 처벌을 주어 잘못된 행동을 억제하게 됩니다. 머신러닝에서 이러한 방식을 차용한 방식이 바로 강화학습니다.

어떤 로봇이 물건을 쥐는 것을 시도하는데 잘할 경우에는 보상을 주고, 물건을 깨뜨리거나 잘 잡지 못할경우 처벌을 주게 됩니다.

 

참 신기하죠?

 

컴퓨터에게 보상과 처벌, 당근과 채찍이라니..

컴퓨터는 다행히 의식이 없기 때문에 숫자로 보상을 줄 수 있습니다.


3. 머신러닝 구조

 

머신러닝을 위해서는 크게 몇가지 구성요소가 필요합니다. 하나씩 알아 봅시다!

 

DATA SET

 

먼저 데이터입니다.

머신러닝의 정의에서 말했듯, 데이터는 없어서는 안될 중요한 부품입니다.

 

 

기본적으로 데이터 셋은 모델 학습에 사용되는 training set 과 모델 평가에 사용되는 test set 으로 구분됩니다.

이때 test set 의 데이터는 학습에 사용되지 않습니다.

 

머신러닝 모델의 여러가지 목적 과제나 학습 방식에 따라 데이터 셋은 다르게 구성될 수 있습니다.

 

예를들어, 음성인식 과제에서 supervised로 학습하게 된다면

training set, test set은 각각 input 으로 사용되는 사람의 음성(1D array) 데이터와 정답(label)으로 사용되는 문장으로 구성됩니다.

 

Data complexity는 무엇을 의미할까요?

 

데이터의 복잡도는 다음과 같이 간단하게 설명할 수 있습니다.

성능향상을 위해 필요한 데이터의 개수

즉, 복잡한 데이터의 경우 학습하기위해 더많은 데이터를 필요로 하게 됩니다.

 

 

Loss

 

데이터를 모델의 입력값으로 넣고 예측하는 것을 inference 라고 합니다.
노이즈가 있는 training set 을 바탕으로 최적의 모델(theta)을 찾는 것을 estimation 이라고 합니다.
모델의 예측값과 실제 정답 사이의 차이를 평가하는 것을 evaluation 이라고 합니다.
이 차이를 나타내는 함수가 loss function 입니다.

보지 못한 데이터에 대해 낮은 loss를 가지는 능력을 일반화(generalization)이라고 합니다.

 

즉, 보지 못한 데이터에 대해 일반화가 잘될수록 모델이 잘 학습되었다고 할 수 있겠지요.

그래서 학습과정은 다음과 같습니다.

training dataset을 입력값으로 사용하여 모델에서 예측을 실행합니다.

예측과 실제 정답을 비교하는 loss function을 통해 예측값과 정답간의 차이를 구합니다.

차이를 줄이는 방향으로 학습해야 함으로, 오차의 미분을 네트워크에 전달해 줍니다.

이과정을 역전파라고 합니다.

학습은 training loss를 줄이는 방향으로 진행되지만, 모델의 일반화 능력을 평가하기 위해서 test loss를 확인하게 됩니다.

 

그렇다면 우리가 학습하는 데이터는 정확히 무엇일까요?

우리는 세상에 모든 데이터를 모을 수 없습니다. traing/test set 은 진리 데이터 집합 P에서 몇개를 뽑아온 일부 데이터 입니다.
또한 샘플링 과정에서 노이즈(noise)가 추가 됩니다. 똑같은 나무 사진이지만 아이폰으로 찍냐 갤럭시에 따라 찍냐에 따라 조금씩 다른 픽셀값을 가지게 됩니다. 이러한 미세한 차이들을 노이즈라고 합니다.

우리의 모델은 아이폰으로 찍은 사진이든 갤럭시로 찍은 사진이든 무슨 것이든, 나무에 대해 잘 인식하는 모델을 만드는 것이 머신러닝의 목적입니다.

다시말해, 노이즈가 낀 샘플링된 일부 데이터(training set)를 이용하여 진리 집합 P의 모든 데이터에 대해 잘 작동하는 모델을 찾는 것이 우리의 목적이라고 할 수 있습니다.

 

이때 우리가 측정가능한 loss 는 엄밀히 말해 empirical loss(경험적 손실)이라고 할 수 있습니다. 

  • empirical training loss : training set 에서의 모델 평가
  • empirical testing loss : test set 에서의 모델 평가

empirical training loss

n개의 학습데이터를 사용하여 예측값과 실제 정답과의 차이를 합하는 식입니다.

empirical testing loss

진리 집합 P(세상에 모든 데이터 집합)에서 샘플링된 몇개의 테스트 데이터 셋(x,y)에 대한 예측값과 실제 정답과의 차이의 기대값입니다.

그래서 empirical teesting loss는 진리집합에서의 모델 성능을 근사한다고 생각하시면 됩니다. 

 

정리하자면, 머신러닝은 원래 진리 집합(이세상의 모든 완벽한 데이터)를 기반으로 학습했을때 완벽한 모델을 가지게 됩니다.

하지만 불가능하기 때문에 노이즈가 존재하는 일부분의 데이터를 가지고 학습합니다. 이 과정을 empirical loss를 minimize(최소화)하는 과정이라고 할 수 있습니다. 

이렇게 empirical train loss를 작게 함으로써 empirical test loss를 작아지도록 만들기 위해 노력합니다.

우리는 이 empiricial test loss가 진리 집합에서 샘플링한 일부 데이터라고 생각하기 때문에 전제 진리 집합 데이터에 일반화(generalization)하는 것과 큰차이가 없다는 가정하에 학습을 진행하게 됩니다.

 

그래서 데이터가 많고, 다양한 형태를 가질 수록 진리집합 P를 표현하는 다양한 feature 들이 데이터 속에 포함되어 있게 됩니다.

이경우 모델이 다양한 feature를 학습하여 empirical training loss와 empirical testing loss의 차이가 줄어들 수 있는 기회가 생깁니다.

또한 empirical testing set 과 truth set (진리집합)간의 차이도 줄어들 수 있습니다. 즉, 앞에서 말한 가정이 더 확실해 질 수 있는 것이지요.

 

이러한 내용을 정리해보면 데이터가 많을 수록 진리집합에 가까워지고, 일반화 성능이 올라간다는 것을 알 수 있습니다.

즉, 데이터가 많을 수록 짱짱맨이다!!

 

 

Model

 

일반적으로 모델이라고 하면 MLP, CNN, Transformer, LSTM 등 매우 다양합니다.

 

모델들 마다 각각의 특성이 다릅니다.

 

예를들어, CNN의 경우 sliding filter를 이용한 weight sharing을 계층적으로 진행해서 위치에 상관없이 물제를 잘 인식하는 translation invariance가 특징이죠.

 

이렇게 특정 모델별 차이 말고 일반적인 모델 자체에 대해서 한번 얘기해 봅시다.

 

모델이란 어떤 parameter theta로 정의되는 mapping function이라고 할 수 있습니다.

이 모델은 어떠한 input X 를 받아서 output Y 를 출력하는 mapping function 이죠.

 

임의의 mapping function f가 이룰 수 있는 공간을 hypothesis space 라고 합니다.

학습한다는 것은 hypothesis space 속에서 최적의 mapping function f* 를 찾는 것을 말합니다.

 

Hypothesis space가 매우 크고 복잡할 경우 최적의 모델을 찾는 것이 모래사장에서 진주를 찾는 것과 같기 때문에 모델의 학습이 어렵게 됩니다. 

 

 

모델이 아주 복잡하다 즉, Complexity 가 아주 높다면 어떻게 될까요?

 

주어진 데이터 셋을 아주 잘 예측하게 될 것입니다. 대신 주어진 데이터 셋에 너무 과하게 맞춤형으로 되어서 학습 데이터를 제외한 테스트 데이터 셋에 대해 성능이 아주 떨어지게 될 것입니다. 

 

이렇게 학습과정에서 본 데이터에 대해서는 아주 좋은 성능을 보이지만, 학습과정에서 보지않은 데이터에 대해 일반화(generalization)하지 못하는 모델의 경우 과적합(overfitting)되었다고 할 수 있습니다.

 

(참고. 과적합을 해결하기 위한 여러가지 방법이 있습니다. regularizer, data increase, drop out...)

 

반대로 모델이 아주 간단하다 즉, Complexity 가 아주 낮다면 어떻게 될까요?

 

주어진 데이터셋 조차 제대로 예측하지 못할 것입니다. 이 경우 test set의 정확도와 training set의 정확도는 큰 차이가 없고, 모델 성능자체가 낮은 경우를 말합니다.

 

 

 

Occam's Razor

 

너무 복잡한 모델보다 간결한 모델이 더 좋다는 주장입니다. 

실제로 딥러닝의 경우 학습데이터 수가 적으면 쉽게 과적합이 발생합니다. 이 경우 모델은 실제 이미지의 형태나 표현을 학습하는 것이 아닌 노이즈까지 모두 학습하게 되어 제대로 일반화가 되지 않습니다. 차라리 간단한 모델을 통해 제대로된 feature를 간략하게나마 학습하는 것이 더 낫다는 것이죠. 가능하다면 간단한 모델이 항상 최고라는 겁니다.

 

Occam's razor - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Philosophical principle of selecting the solution with the fewest assumptions Occam's razor, Ockham's razor, Ocham's razor (Latin: novacula Occami), also known as the principle of pars

en.wikipedia.org


다음글 : [ AI 기초 ] 2. AI 의 역사

 

[ AI 기초 ] 2. AI 의 역사

[ AI 기초 ] 2. AI 의 역사 이전글 : [ AI 기초 ] 1. Introduction for Artificial intelligence [ AI 기초 ] 1. Introduction for Artificial intelligence [ AI 기초 ] 1. Introduction for Artifi..

supermemi.tistory.com


 

반응형