본문 바로가기
프로그래밍/AI

[인공지능 쌩기초] 지도학습, 비지도학습, 강화학습

by Homo_Viator 2024. 9. 10.

이 글은 인공지능을 배울 때 가장 기초가 되는 개념을 가장 쉽게 풀어쓰기 위해 제작된 글입니다. 인공지능을 시작할 때 알아두면 추후에 어려운 개념을 배울 때도 도움이 되는 내용에 대해 다룹니다.

 

인공지능은 어떻게 학습시킬까?

우리가 일일이 프로그래밍하지 않고, 데이터를 줘서 배우게 하면 어떨까?

 

이러한 궁금증은 인간의 정신 능력을 모방하는 인공지능이라는 개념의 시초가 되었습니다.

간단히 말해서 인공지능은 데이터를 보고 배워서 어떤 패턴과 특징을 찾아내는 것을 목적으로 합니다.

 

그렇다면 컴퓨터에게 어떻게 가르칠까?

학습을 시키기 위해서는 데이터를 컴퓨터에게 줘야 합니다.

그런데, 이때 데이터를 어떻게 주냐에 따라서 방법이 크게 3가지로 나눠지게 됩니다.

 

- 지도학습

- 비지도학습

- 강화학습

 

각각에 대해 가볍게 살펴보죠.

 

지도학습(Supervised Learning)

지도 학습은 정답이 있는 데이터를 줘서 학습시키는 것입니다. (이를 레이블이 있는 데이터라고 부르기도 합니다.)

즉, 어떤 문제를 보여주고 바로 정답지까지 보여주는 학습 방법입니다.

문제와 답을 함께 학습함으로써 특징을 파악하고, 미래에 어떤 문제가 주어졌을 때 그 답을 예측할 수 있게 되는 것입니다.

지도학습의 대표적인 예로는 회귀와 분류 문제가 있습니다.


  • 회귀

회귀는 주어진 데이터(X)를 바탕으로 정답(Y)을 잘 맞추는 함수를 찾는 문제입니다

회귀는 주로 그래프를 예측하는 문제로 어떤 경향을 예측할 때 사용됩니다.

뭔가 0과 1로 딱딱 구분되는 것이 아니라, 어떤 수로 예측됩니다.

출처 : 위키백과

 

예를 들어서 다음과 같은 데이터를 줄 수 있겠죠

공부 시간(x) 시험 점수(y)
3 30
5 50
7 70

공부 시간(x)은 문제이고 시험 점수(y)는 답입니다.

'x값이 이거일 때 y값은 이거네?' 라고 모델은 학습합니다.

 

그리고 이제 제가 모델한테 물어보는 겁니다.

"공부 시간이 9시간이면 시험 점수가 몇 점이 나올까?"

 

그러면 모델은 이 새로운 문제에 대해 시험 점수를 예측할 수 있게 되는 것입니다.

"90점?"


  • 분류

분류는 주어진 데이터가 어떤 카테고리에 속하는지를 찾는 문제입니다.

이때, 카테고리는 학습시켰던 데이터의 정답 중 하나이어야 합니다.

개와 고양이 사진에 대해 학습시켰는데 코끼리라고 대답할 수 없다는 뜻입니다. 

분류는 (맞다, 아니다)와 같은 이진 분류 문제뿐만 아니라 여러 카테고리 중 하나를 선택하는 다중 분류 문제로도 나눌 수 있습니다. 예를 들어, 이메일을 "스팸" 또는 "스팸 아님"으로 분류하는 것은 이진 분류 문제에 해당하지만

손글씨 숫자 인식을 위한 모델이 숫자 0부터 9까지 중 하나로 분류하는 것은 다중 분류 문제입니다.

 

출처 : https://ellun.tistory.com/103#google_vignette

고양이 사진을 잔뜩 주고, 이게 고양이라고 알려줍니다.

또, 개 사진을 잔뜩 주고, 이게 개라고 알려줍니다.

그러면 고양이와 개의 특징에 대해 학습한 모델이 만들어질 것입니다.

 

이제 제가 새로운 사진(입력)을 주고 물어봅니다.

출처 : 나무위키

나 : "얘는 고양이냐 개냐?"

모델 : "특징을 보니까 고양이다"

 

비지도 학습(Unsupervised Learning)

비지도 학습은 데이터에 정답(레이블)이 없는 상태에서 학습하는 방법입니다.

즉, 컴퓨터가 데이터에서 스스로 패턴을 찾도록 하는 것이죠.

지도 학습이 문제와 정답지를 함께 보여줬다면 비지도학습은 문제지만 잔뜩 주고 스스로 답(특징)을 찾게 하는 것입니다.

데이터 자체만으로 컴퓨터가 학습해야 하기 때문에 데이터의 특성을 발견하고 분석할 수 있어 데이터 수집 과정에서 레이블을 붙이는 비용과 시간을 절약할 수 있다는 장점이 있습니다.

 

비지도 학습의 대표적인 예로는 군집화와 차원 축소가 있습니다.


  • 군집화

군집화는 비슷한 특성을 가진 데이터를 그룹으로 묶는 과정입니다.

비슷한 데이터를 그룹화함으로써 데이터의 구조를 이해하고 각 그룹의 특징을 분석할 수 있습니다.

예를 들어, 고객의 구매 데이터를 기반으로 유사한 행동을 보이는 고객들을 그룹화할 수 있겠죠.

이런 방식으로 서로 유사한 데이터끼리 묶어 새로운 패턴을 찾아낼 수 있습니다.


  • 차원 축소

차원 축소는 고차원 데이터를 더 작은 차원으로 변환하기 위해 차원(변수의 수)을 줄이는 방법을 의미합니다.

차원이 크면 시각화도 어렵고, 계산 비용도 크기 때문에 이 같은 과정이 필요하며

데이터의 중요한 특성은 유지할 수 있다는 특징이 있습니다.

 

강화학습

강화학습은 컴퓨터가 특정 환경에서 행동을 학습해 최대한의 보상을 얻는 것을 목표로 합니다.

강화 학습은 사람이 시행착오를 겪는 것과 유사하게 작동합니다.

사람이 어떤 일을 한 후, 벌을 받거나 칭찬을 받는 것처럼,

프로그램은 특정 행동을 취한 후 환경으로부터 피드백을 받습니다.

https://kr.mathworks.com/discovery/reinforcement-learning.html

강화학습의 목적은 가능한 한 많은 보상을 받기 위해 최적의 행동을 선택하는 것입니다.

관찰-행동-보상의 순서로 강화학습이 이루어지며, 받은 보상을 토대로 프로그램은 더 많은 보상을 얻기 위한 방향으로 행동을 학습할 것입니다.

  지도 학습 비지도 학습 강화 학습
목적 입력 데이터에 대해 정확한 출력을 예측하자 정답이 없는 데이터에서 패턴이나 구조를 발견하자 최대의 누적 보상으 얻도록 최적의 행동을 학습하자
과정 입력 데이터와 출력을 비교해
오차를 줄이도록 학습
자체적으로 데이터의 분포, 패턴 분석하며 학습 다양한 행동을 통해 보상을 얻고, 최적의 행동 선택하는 정책 학습
데이터 레이블된 데이터 레이블이 없는 데이터 정해져 있지 않고,
환경과 상호작용하며 데이터가 생성됨.
평가 정답과 예측 간의 차이를 통해 숨겨진 구조를 얼마나 잘 발견했는지를 통해(ex. 밀집도) 에이전트가 장기적으로 얼마나 많은 보상을 얻었는지를 통해

 

강화학습은 이렇게 지도 학습/비지도 학습과 차이점을 가지고 있고 게임 AI, 로봇 제어, 자율 주행, 드론, 추천 시스템 등 다양한 분야에서 적용됩니다.

 


심화 알고리즘들

지도 학습

- 회귀 - 선형 회귀 / 다항 회귀 / 릿지 회귀 / 서포트 벡터 회귀 등

- 분류 - 로지스틱 회귀 / 서포트 벡터 머신 / 결정 트리 / 랜덤 포레스트 / k-NN 등

 

비지도 학습

- 군집화 - k-평균 군집화 / 계층적 군집화 / DBSCAN 등

- 차원 축소 - 주성분 분석(PCA) / T-sne / UMAP 등

 

강화학습

https://velog.io/@kjb0531/%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5-%EA%B0%9C%EB%85%90%EC%A0%95%EB%A6%AC3

 


이렇게 지도 학습, 비지도 학습, 강화 학습에 대해 아주 간단한 설명을 해보았습니다.

이건 간단한 개념만 다룬 것이기 때문에 이를 실제로 실습, 더 심화적으로 공부하고 싶으시다면 인터넷상에 다양한 자료가 나와있으니 살펴보시는 것도 좋을 것 같습니다.

 

728x90