[AI] 머신러닝이란?
- -
머신러닝이란?
머신러닝에 대해 알아보기 전에 먼저 인공지능에 대한 정의와 크게 어떤 분류로 나뉘어 있는지부터 확인해 보자. 인공지능(AI, Artificial Intelligence)은 인간의 학습과 의사 결정을 모방하거나 수행하는 시스템 또는 프로그램으로, 인간의 지능을 기계에 구현한 것을 의미한다.
인공지능은 주로 기계학습(Machine Learning)과 규칙기반(Rule-Based) 시스템으로 나눌 수 있다. 이 두 가지 접근 방식은 각기 다른 방식으로 작동하며, 다양한 문제에 대한 해결에 활용한다. 그럼 이 두 가지 방법에 대해 간단하게 살펴보자.
기계학습(Machine Learning)
기계학습은 데이터에서 패턴을 학습하여 모델을 구축하고, 이 모델을 사용하여 새로운 데이터에 대한 예측이나 결정을 내리는 방법이다. 알고리즘이 데이터에서 특징(feature)을 추출하고, 이를 이용해 모델을 훈련시킨다. 훈련된 모델은 새로운 데이터를 입력받아 예측이나 분류를 수행한다. 주로 지도학습, 비지도학습, 강화학습 등이 있으며, 활용되는 분야는 음성 인식, 이미지 분류, 자연어 처리, 예측 분석, 추천 시스템 등이 있다.
📢 기계학습은 데이터를 통하여 학습하기 때문에 학습할 데이터가 반드시 필요!
규칙기반 시스템(Rule-Based System)
규칙기반 시스템은 사람이나 전문가가 정의한 규칙(rule)에 따라 의사 결정을 내리는 방식이다. 규칙은 "만약(if) 조건이 성립하면, (then) 이렇게 실행"과 같은 형태를 가지며, 이 규칙들이 모여 전체 시스템의 동작을 결정한다. 사전에 정의된 규칙에 따라 입력 데이터에 대한 처리가 이루어지고, 규칙은 순차적으로 또는 조건에 따라 선택적으로 적용된다. 활용되는 분야는 전문 시스템, 의사 결정 지원 시스템, 비즈니스 규칙 관리 시스템 등이 있다.
📢 규칙기반 시스템은 사람의 지식에 의존하기 때문에 데이터가 필요하지 않음!
그럼 이제 본격적으로 머신러닝에 대해 알아보자, 위에서 언급했듯이 머신러닝에는 크게 지도학습, 비지도학습, 강화학습이 있다. 각 학습 방법에 대해 하나씩 차례대로 살펴보자.
지도학습(Supervised Learning)
지도학습은 머신러닝의 한 유형으로, 모델을 훈련시키기 위해 입력 데이터와 해당 데이터에 대한 정답(라벨 또는 타깃)을 사용하는 학습 방법이다. 지도학습에서 모델은 입력과 출력 간의 관계를 학습하여 새로운 입력에 대한 정확한 출력을 예측하도록 설계된다. 여기서 모델은 일종의 함수를 의미한다.(ex : y = f(x))
지도학습에서 모델을 훈련하기 위해서는 입력값(x)과 그에 해당하는 정답 또는 라벨값(y)을 함께 제공해줘야 한다. 이것은 훈련 데이터라고 부른다. 훈련 데이터는 모델이 학습하는 데 사용되는 데이터 세트로, 각각의 입력값에 대응하는 정답이나 라벨이 제공된다. 모델은 훈련 데이터를 기반으로 입력값과 라벨 간의 관계 또는 패턴을 학습하게 된다.
예를 들어, 손글씨 숫자를 인식하는 모델을 훈련한다고 가정해 보자. 훈련 데이터로는 여러 손글씨 이미지가 주어지고, 각 이미지에 해당하는 숫자(라벨)가 함께 제공된다. 모델은 이 이미지와 숫자의 관계를 학습하여 새로운 손글씨 이미지에 대한 숫자를 예측할 수 있도록 훈련한다.
이렇게 입력값과 라벨값이 함께 제공되면, 모델은 입력과 출력 간의 관계를 예측하는 방법을 학습하게 된다. 학습이 완료된 모델은 새로운 입력값에 대한 정확한 출력을 예측할 수 있게 된다.
위의 이미지처럼 x값에 해당하는 강아지와 고양이 사진을 제공하고, 정답(혹은 라벨)에 해당하는 값을 y에 값으로 함께 제공해줘야 한다. 기계가 학습하는 단계에서 정답을 함께 알려줘야 하기 때문에 지도학습이라고 불리게 되었다. 기계는 라벨이 된(y) 사진(x)들을 제공받아 해당 데이터들을 토대로 학습을 진행한다.
정리하자면 위의 이미지를 기준으로 제공되는 학습 데이터는 x이고 그에 해당되는 정답(y)은 dog, cat과 같은 이름들이다. 그래서 기계가 학습하기 전에 각각의 사진이 cat인지 dog인지 라벨링을 해줘야 한다. 기계에게 정답을 알려줄 때, 실제로는 기계가 인식할 수 있도록 라벨링은 숫자(0과 1)로 돼있어야 한다.(예 : dog는 0, cat은 1)
📢 라벨이 되지 않은 사진들로는 지도학습을 할 수 없다!
훈련이 끝난 모델은 처음 보는 데이터 x 값을 입력하여 라벨 y 값을 예측하는 데 사용된다. 만약 개와 고양이를 구분하는 모델을 훈련했다면, 학습할 때 사용한 사진이 아닌 새로운 사진을 입력하여 개와 고양이를 구분하는 예측을 하게 한다. 따라서 학습이 진행될수록 정확도는 높아질 것이다.
Data
머신러닝 모델은 일반적으로 숫자로 된 데이터를 입력으로 받는다. 이는 머신러닝 모델이 수학적인 연산을 수행하여 학습하고 예측하는 과정에서 숫자를 다루기 때문이다. 따라서 이미지, 음성, 텍스트 등의 다양한 데이터를 모델에 입력하려면 해당 데이터를 숫자로 변환해야 한다.
- 이미지 데이터 - 흔히 사용되는 방법은 각 픽셀의 밝기 값을 나타내는 숫자로 이미지를 변환하는 것이다. 컬러 이미지의 경우 각 픽셀의 RGB 값이나 다른 색 공간의 값으로 표현된다.
- 음성 데이터 - 오디오 신호는 시간에 따른 파형으로 표현된다. 일반적으로 파형을 작은 시간 간격으로 나누어서 각 시간 단계에서의 파형의 특징을 추출하고, 이러한 특징을 숫자로 나타낸다.
- 텍스트 데이터 - 텍스트 데이터는 일반적으로 단어 또는 문자의 인덱스로 표현된다. 단어 또는 문자를 임베딩하여 숫자로 변환되거나, 원-핫 인코딩 등의 방법을 사용하여 텍스트를 숫자로 변환할 수 있다.
Probability
개와 고양이를 분류하기 위해 학습시킬 때, 라벨링을 개는 0, 고양이는 1로 분류하는 이진 분류(Binary classification) 모델을 예로 한 번 들어보자. 모델의 출력은 보통 0과 1 사이의 값으로 나타난다. 이 값은 모델이 해당 클래스에 속할 확률을 나타내며, 보통 로지스틱 함수를 사용하여 0과 1 사이의 범위로 제한된다.
출력이 0.5보다 크면, 모델은 해당 클래스에 대해 긍정적인 예측을 한 것으로 간주한다. 따라서 0.5보다 크면 고양이로 분류할 수 있다. 반대로 0.5보다 작으면, 모델은 해당 클래스에 대해 부정적인 예측을 한 것으로 간주한다. 따라서, 0.5보다 작으면 개로 분류할 수 있다. 출력 값이 0에 가까울수록 모델은 개로 더 강하게 예측한 것이고, 1에 가까울수록 고양이로 더 강하게 예측한 것이라고 할 수 있다.
이렇게 모델의 출력을 기준으로 분류 결정을 내린다. 하지만 이 규칙은 특정한 모델 아키텍처나 손실 함수에 따라 달라질 수 있다.
지도학습의 단점
지도학습의 주요 단점 중 하나는 라벨링 된 데이터가 필요하다는 것이다. 라벨링은 각 입력 데이터에 대해 정확한 출력값 또는 클래스를 부여하는 작업을 의미한다. 이는 주로 사람이 직접 수행해야 한다.
판단이 필요한 경우가 많아 사람 간의 의견 차이가 발생할 수 있다. 또한, 일부 작업은 전문적인 지식이 필요할 수 있어 전문가의 참여가 필요할 수 있다.
이러한 라벨링의 어려움으로 인해 데이터셋이 부족하거나 라벨링이 잘못되었을 경우 모델의 성능이 저하될 수 있다. 또한, 새로운 클래스나 현상에 대응하기 위해 새로운 데이터를 라벨링 하는 작업은 번거롭고 비용이 많이 들 수 있다. 이러한 단점을 극복하기 위해 자동화된 라벨링 기술이나 준지도학습(semi-supervised learning), 자가지도학습(self-supervised learning) 등과 같은 방법들이 연구되고 있다.
강화학습(Reinforcement Learning)
강화학습의 목적은 주어진 환경에서 에이전트가 최적의 행동을 학습하여 누적된 보상을 최대화하는 것이다. 에이전트는 현재의 상태(state)를 기반으로 어떤 행동(action)을 선택할지 결정하고, 이를 통해 보상(reward)을 받는다.
강화학습의 핵심은 최적의 정책(policy)을 찾아가는 것으로, 정책은 주어진 상태에서 어떤 행동을 선택할지를 결정하는 전략이다. 모델은 주어진 상태를 입력으로 받아서 어떤 행동을 취할지를 출력으로 내놓는 함수인 정책(policy)을 학습하게 된다. 이렇게 학습된 정책은 높은 보상을 받을 수 있는 효과적인 행동을 선택하는 데 사용된다.
이때, 학습 과정에서 에이전트는 탐험(Exploration)과 활용(Exploitation)의 균형을 유지해야 한다. 탐험은 새로운 행동을 시도하며 미지의 영역을 탐험하는 것이며, 활용은 이미 알려진 효과가 좋은 행동을 선택하는 것이다. 이 균형을 잘 맞추어 최적의 정책을 찾아가는 것이 강화학습의 과제 중 하나이다.
Training
강화학습에서 모델을 훈련시키려면 특정 상태(state)에서의 행동(action)에 해당하는 보상(reward)을 제공해줘야 한다. 모델은 이러한 보상을 기반으로 주어진 상태에서 높은 보상을 얻을 수 있는 행동을 선택하는 함수 A = f(S)를 학습하게 된다.
훈련 과정에서 모델은 경험을 통해 최적의 정책(policy)을 찾아가며, 보상이 큰 행동을 더 자주 선택하도록 학습된다. 이러한 강화학습은 모델이 주어진 상태에서 최적의 행동을 선택하는 능력을 향상하는 과정을 포함하며, A = f(S)는 모델이 주어진 상태에서 어떤 행동을 선택하는 함수를 나타낸다.
Predict
훈련이 끝난 강화학습 모델은 처음 보는 데이터의 상태(state) 값을 입력으로 받아서 보상이 클 것으로 예상되는 행동(action)을 예측하는 데 사용된다. 훈련된 모델은 학습한 경험을 토대로 주어진 상태에서 최적의 행동을 선택할 수 있는 능력을 획득하게 된다. 이 모델은 일반화(generalization) 능력을 갖추고, 훈련에 사용되지 않은 새로운 데이터에 대해 유용한 예측을 수행할 수 있다.
따라서 처음 보는 상태에 대해 모델은 훈련된 지식을 활용하여 해당 상태에서 가장 보상이 큰 행동을 선택하는 데 도움을 줄 수 있다. 이는 강화학습 모델의 실제 활용 가능성과 적응력을 나타내는 중요한 특성 중 하나이다.
강화학습의 단점
강화학습의 단점으로써 불안정성이 있을 수 있다. 이는 작은 하이퍼파리미터 조정이나 초기화의 차이로 모델의 성능에 큰 영향을 미치는 현상을 의미한다. 모델의 훈련에 사용되는 하이퍼파라미터나 초기 상태의 선택이 모델의 수렴 여부와 최적 정책에 중대한 영향을 끼칠 수 있어, 성능 향상을 위해 신중한 실험과 조정이 필요하다. 이러한 어려움은 강화학습 모델의 훈련을 더 복잡하게 만들고, 모델의 성능을 예측하기 어렵게 하는 요인 중 하나이다.
비지도 학습(Unsupervised Learning)
비지도 학습은 머신러닝의 한 종류로, 모델에게 명시적인 출력 레이블이나 지도가 제공되지 않는 상태에서 데이터에서 패턴이나 구조를 찾도록 한다. 즉, 모델은 입력 데이터의 구조나 패턴을 스스로 학습하고 발견하려고 노력한다. 비지도 학습은 데이터 내의 숨겨진 구조를 파악하거나 데이터를 그룹으로 나누는 데 사용된다. 지도학습과 강화학습은 예측모델을 만드는 것이 주요 목적이지만 비지도 학습은 데이터를 분석하고 특징을 추출해 내는 것이 주된 목적이다.
비지도 학습의 주요 두 가지 유형은 다음과 같다.
- 군집(Clustering) - 비지도 학습의 한 예로, 군집 알고리즘이 데이터를 유사한 특성을 가진 그룹이나 클러스터로 나눈다. 데이터 간의 유사성에 기초하여 패턴을 찾는 것이 목표이다. k-평균 군집, 계층적 군집, DBSCAN 등이 일반적인 군집 알고리즘이다.
- 차원 축소(Dimensionality Reduction) - 차원 축소는 고차원의 데이터를 저차원으로 변환하여 데이터의 복잡성을 감소시키는 기술이다. 이를 통해 중요한 특성을 추출하거나 데이터의 시각화를 편리하게 할 수 있다. 대표적인 차원 축소 알고리즘으로는 주성분 분석(PCA), t-SNE 등이 있다.
비지도 학습은 데이터에서 의미 있는 구조를 발견하거나, 특징을 추출하거나, 이상치를 탐지하는 등의 다양한 응용 분야에서 사용된다. 예를 들어, 군집을 사용하여 소설 미디어에서 유사한 관심사를 가진 사용자를 그룹화하거나, 차원 축소를 사용하여 이미지나 텍스트 데이터의 특징을 추출할 수 있다.
또한, 비지도 학습은 주어진 데이터에서 패턴이나 구조를 학습하고, 이를 통해 새로운 데이터를 생성하는 데에도 사용될 수 있다. 이러한 생성 모델을 훈련시키기 위해 사용되는 주요 비지도 학습 기술 중 하나는 생성 모델(Generative Models)이다.
생성 모델(Generative Models)
생성 모델은 훈련 데이터에서 학습한 확률 분포를 기반으로 새로운 데이터를 생성하는 모델이다. 이러한 모델은 훈련 데이터의 분포를 모방하여 새로운 샘플을 생성할 수 있다. 가장 널리 사용되는 생성 모델 중 몇 가지는 다음과 같다.
- Variational Autoencoder(VAE) - 오토인코더의 확장으로, 데이터의 특징을 학습하고 새로운 데이터를 생성할 수 있다.
- Generative Adversarial Network(GAN) - 생성자와 판별자라는 두 부분으로 구성되며, 생성자는 실제와 구별할 수 없는 가짜 데이터를 생성하고, 판별자는 그것들을 구별하도록 훈련된다.
- Boltzmann Machines 및 Restricted Boltzmann Machines(RBM) - 확률적인 에너지 모델을 사용하여 데이터의 확률 분포를 모델링하고, 이를 기반으로 새로운 데이터를 생성할 수 있다.
데이터 생성 및 변형
또한, 비지도 학습의 일부 기술은 데이터를 생성하거나 변형하는 데 직접 사용될 수 있다. 예를 들어, 특정 확률 분포를 기반으로 한 샘플링을 통해 새로운 데이터를 생성하거나, 입력 데이터를 변형하여 다양한 형태의 데이터를 생성할 수 있다. 이러한 생성적인 측면은 예측 모델링이나 분류 작업 이상으로, 새로운 데이터를 생성하거나 변형함으로써 창의적이고 다양한 결과물을 얻을 수 있는 잠재력을 제공한다.
'AI > Machine Learning' 카테고리의 다른 글
[AI] 하이퍼파라미터의 원리와 이해 (1) | 2024.01.28 |
---|---|
[AI] 기계는 어떻게 학습할까? (0) | 2024.01.15 |
소중한 공감 감사합니다