본문 바로가기
study Data

[ML&DL Study] Chapter 1. 인공지능에 대하여

by 쁘뽀유 2020. 6. 25.
728x90
반응형
SMALL

최근 야근이 잦아서 정작 나만의 공부를 할 시간이 없었는데, 주말 약속이 없는 짬을 이용해서 정리하는 인공지능에 대한 글✍🏻✍🏻

보통 딥러닝을 공부하려고 할 때 항상 첫 장을 열면 머신러닝이 무엇인가, 딥러닝이 무엇인가에 대해 이야기를 한다.
항상 그 첫장을 우습게 생각하고 가볍게 넘길 때가 많지만, 제일 첫장인만큼 중요하기도 하고 제일 기본적으로 알고있어야 하는 부분인데 나또한 가볍게 지나갈 때가 많아서 이번 기회에 차근차근 정리해 가보려고 한다.

1. 인공지능과 머신러닝

인공지능의 정의에 대해 정리해보도록 하자. 인공지능이란 무엇일까?

인공지능(Artificial Intelligence, AI)
인간의 사고를 인공적으로 모방한 모든 것

으로 보통 정의를 내리고 있다.
사실 인공지능이란 것은 1950년 이전부터 나왔던 것이고 머신러닝, 딥러닝, 우리가 흔히 많이 들어본 것들이 모두 인공지능에 포함되어 있다. 일반적으로 코딩에서 if, else 를 사용하던 룰베이스 기반의 형태 모두 인공지능에 포함된 것이다.

그렇다면 머신러닝은 무엇인가?

  • 애플리케이션을 수정하지 않고도 데이터를 기반으로 학습하고 결과를 예측하는 알고리즘 기법
  • 데이터를 기반으로 숨겨진 패턴을 인지해 문제를 해결하는 기법

많은 정의들을 봐왔지만 개인적으로 위 정의가 제일 말끔한 것 같다.
초기의 인공지능응 컴퓨터에게 로직을 알려주고 그것으로 학습하도록 했다. 간단한 예시로, "창문이 있고, 바퀴가 4개가 달려있으면 자동차다"라는 자동차의 특징을 컴퓨터에게 알렺는 방법이었다. 그러나 이러한 방법은 로직이 복잡해질수록 그리고 형태가 다양해지면서 새로운 로직이 생성되었을 때 그것을 적용하는 것이 매우 어렵다.
그러나 머신러닝은 초기의 인공지능과는 다르게 사람은 정답만 알려주고, 컴퓨터가 스스로 특징을 찾아가는 방식이다. 사람이 자동차 사진을 1000장을 보여주며 "자, 이사진들이 자동차야"라고 말한다면 자동차는 그 사진들을 보면서 자동차의 특징을 알아가는 것이다. 그렇게 되면 추가로 새로운 자동차가 들어와도 자동차의 특징을 알고있는 컴퓨터는 쉽게 자동차라고 예측할 수 있는 것이다.

그래서 머신러닝을 학습할 때 가장 중요한 요소는 "데이터""모델" 이다. 둘 중 무엇이 더 중요하냐고 물어본다면 우열을 가리기 정말 힘들다. 그렇지만 많은 전문가들은 "데이터가 더 중요하다" 라는 말을 한다. 장점이자 단점이 될 수 있는 이 부분은, 데이터가 정확하고 깔끔하다면 모델의 성능도 어느정도 잘 나오지만, 데이터의 정합성이 의심될 정도라면 모델의 성능도 보장할 수 없다. 그렇기에 GIGO(Garbege In Garbege Out)이라는 단어가 있고 데이터 전처리가 매우 중요한 이유이다.

2. 머신러닝의 종류

머신러닝의 종류를 알기 이전에 먼저 학습이란 것의 정의를 내리고 가는 게 좋을 것 같다. 학습이란 모델에 어떤 데이터를 입력했을 때 원하는 결과가 출력되도록 모델 내부의 변수들을 조금씩 조율하는 과정 을 말한다. 이 때 데이터를 학습하는 방법과 아웃풋에 따라 아래와 같은 분야들로 머신러닝을 나누는 것이다.

머신러닝의 종류

내가 들은 강의 "딥러닝 홀로서기" 에서 정리가 아주 잘 되어 있어서 슬라이드 내용을 발췌해왔다.

머신러닝은 크게 학습법에 따라 지도학습(Supervised Learning), 비지도학습(UnsupervisedㅣLaerning), 강화학습(Reinforcement Learning) 으로 나뉜다. 현재는 머신러닝에 대해 이야기를 하고 있으므로 강화학습에 대해서는 잠시 미루도록 한다.

2.1 지도학습(Supervised Learning)

지도학습은 Label이 있어 사람이 컴퓨터에게 정답지를 부여하는 학습방법이다. 따라서 X변수와 Y 라벨이 있어 기본적으로 f(x) = y 형식을 따라가게 되는것이다.

output의 형태가 범주형(Discrete)이냐, 연속형이냐(Continuous)에 따라서 지도학습은 Classification과 Regression으로 나뉘게 된다. 분류모델은 대표적으로 Tree 모델인 의사결정나무가 있으며, 회귀모델은 대표적으로 Linear Regression이 있다. 최근에는 Tree모형을 아주 잘게 나누어 GBM 또는 XGBoost를 Regression 형태로 결과형태를 내뱉기도 한다.

Classification 예시 (출처 : 딥러닝 홀로서기)
Regression 예시 (출처 : 딥러닝 홀로서기)

2.2 비지도학습(Unsupervised Learning)

비지도학습은 Label이 존재하지 않는다. X 인자를 주면서 학습 시키고, 모델이 스스로 이 X 인자들의 특징을 찾아내는 것이다. 예를 들어 수천만개의 음악 곡들을 컴퓨터에게 학습시키면 컴퓨터는 스스로 X 인자들의 특징을 찾아내 이 곡이 클래식인지, 힙합인지, 발라드인지를 군집화하는 것이다. 다만, 컴퓨터는 힙합과 클래식, 발라드를 구분지을 수는 있지만 그 곡이 "발라드"라는 라벨의 곡인지는 알 수 없다. 우리가 라벨인 Y인자를 주지 않았기 때문에.

비지도 학습 또한 Output 의 결과가 범주형이냐, 연속형이냐에 따라 두가지로 나뉜다. Output이 범주형인경우 군집화(Clustering)을 하고, 연속형인경우 차원축소(Dimensionality Reduction)를 한다. 군집화의 경우 대표적으로 K-means 알고리즘이 있으며 차원축소는 대표적으로 PCA가 있다. 특별히 차원축소는 Output 형태를 그대로 사용하는 것이 아니라 차원축소 된 결과를 Input으로 사용하여 Classification이나 Regression, Clustering에 사용한다. 모델에 사용하는 변수의 개수가 많을 경우 차원이 많아진다고들 하는데, 그런경우 차원의 저주에 빠져 의미없는 값을 도출할 수도 있는 상황이 벌어진다. 이를 막기 위해 많은 차원의 수를 줄이는 차원 축소의 과정을 거치고, 모델링을 진행하는 것이 더 좋은 성능을 낼 수 있다는 것이다.

Clustering 예시 (출처 : 딥러닝 홀로서기)
차원축소 예시 (출처 : 딥러닝 홀로서기)

앞으로는 딥러닝의 종류에 따라 하나씩 공부를 하고, 코드 실습도 진행해 볼 예정이다.

참고자료 :

1. 딥러닝 홀로서기 CH#2

2. [Book] 팽귄브로의 3분 딥러닝 - 파이토치맛

728x90
반응형
LIST

댓글