머신러닝은 데이터에서 학습하도록 컴퓨터를 프로그래밍하는 과학(또는 예술)입니다.
일반적인 정의
공학적인 정의
T
에 대한 컴퓨터 프로그램의 성능을 P
로 측정했을 때 경험 E
로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T
와 성능 측정 P
에 대해 E
로 학습한 것이다. - Tom Mitchell, 1997즉, 경험으로 학습한다는 것을 의미하기도 한다.
훈련세트 (Training Set)
훈련세트는 머신러닝 모델을 학습시키기 위해 사용하는 데이터의 집합입니다.
이 데이터는 입력(feature)과 정답(label)으로 구성되어 있으며, 모델이 패턴을 학습하고 일반화할 수 있도록 돕습니다.
훈련세트는 전체 데이터의 일부로, 나머지 데이터는 일반적으로 검증(validation) 및 테스트(test) 목적으로 사용됩니다.
훈련사례 (Training Example)
훈련사례는 훈련세트에 포함된 개별 데이터 포인트를 의미합니다.
각 훈련사례는 입력(feature)과 그에 상응하는 정답(label)로 구성됩니다.
예를 들어, 이미지 분류 문제에서 하나의 훈련사례는 특정 이미지와 그 이미지에 대한 올바른 레이블(예: '고양이' 또는 '개')로 이루어질 수 있습니다.
모델 (Model)
모델은 데이터를 기반으로 예측이나 결정을 내리기 위해 설계된 수학적 구조입니다.
머신러닝 모델은 훈련 데이터를 통해 학습하며, 새로운 데이터에 대해 예측을 수행할 수 있도록 조정됩니다.
모델의 종류에는 선형 회귀, 의사결정 나무, 신경망 등 다양한 유형이 있습니다.
훈련데이터 (Training Data)
훈련데이터는 훈련세트와 같은 의미로 사용되며, 모델을 학습시키기 위해 사용되는 데이터입니다.
이 데이터는 모델이 입력과 출력 간의 관계를 학습할 수 있도록 충분한 정보를 제공해야 합니다.
Tom Mitchell의 머신러닝 정의와 스팸메일 예시
이 사례는 스팸메일 분류라는 구체적인 예를 통해 머신러닝의 원리를 설명한 것입니다. Tom Mitchell의 정의는 이미지 분류, 음성 인식 등 다양한 사례에도 적용될 수 있습니다.
작업 (T)
: 주어진 이메일이 스팸인지 아닌지를 분류하는 작업.
성능 측정 (P)
: 알고리즘이 이메일을 정확히 분류한 비율(성능).
성능 지표에는 정확도, 정밀도(Precision), 재현율(Recall) 등이 포함될 수 있다.
예를 들어: 알고리즘이 100개의 이메일 중 95개를 정확히 분류하면, 정확도는 95%.
경험 (E)
: 스팸 분류에서 사용하는 라벨링된 이메일 데이터.
라벨링된 데이터는 이메일과 각 이메일이 "스팸"인지 "비스팸"인지를 나타내는 정보가 포함된 데이터이다.
예:
"지금 바로 크레딧 점수를 확인하세요!" → 스팸
"회의가 3시에 열립니다." → 비스팸
Tom Mitchell 정의 적용
어떤 컴퓨터 프로그램이 이메일을 스팸/비스팸으로 분류하는 "작업 T
"를 수행하고,
학습 데이터(라벨링된 이메일 데이터)를 통해 "경험 E
"를 얻으며,
테스트 데이터에서의 분류 정확도(성능 P
)가 향상된다면,
이 컴퓨터 프로그램은 "작업 T
와 성능 P
"에 대해 "경험 E
"로 학습했다고 할 수 있다.
전통적인 접근 방식
발견한 패턴을 감지하는 알고리즘을 작성하여 프로그램이 이런 패턴을 발견했을 때 그 메일을 스팸으로 분류
머신러닝 접근 방법
스팸에 자주 나타나는 패턴을 감지하여 어떤 단어와 구절이 스팸 메일을 판단하는 데 좋은 기준인지 자동으로 학습
머신러닝이 유용한 또 다른 분야는 전통적인 방식으로는 너무 복잡하거나 알려진 알고리즘이 없는 문제
데이터 마이닝(Data Mining)은 대량의 데이터 속에서 유용한 정보를 추출하고 패턴을 발견하는 과정입니다.
이는 다양한 분야에서 의사결정을 지원하고, 비즈니스 인사이트를 제공하며, 데이터 기반의 전략을 수립하는 데 중요한 역할을 합니다.
데이터 마이닝은 여러 가지 기술과 방법론을 사용하여 데이터를 분석하고 해석합니다.
주요 특징과 과정
데이터 준비
데이터 마이닝의 첫 단계는 데이터를 수집하고 준비하는 것입니다.
이는 데이터 정제, 통합, 변환 등의 과정을 포함하며, 분석에 적합한 형태로 데이터를 준비합니다.
패턴 발견
데이터 마이닝의 핵심은 데이터에서 유의미한 패턴이나 규칙을 발견하는 것입니다.
이는 연관 규칙 학습, 군집화, 분류, 회귀 분석 등의 기법을 통해 이루어집니다.
모델링
데이터를 기반으로 예측 모델을 구축합니다.
이는 머신러닝 알고리즘을 사용하여 데이터를 학습하고, 새로운 데이터에 대한 예측을 수행할 수 있는 모델을 만드는 과정입니다.
평가
발견된 패턴이나 모델의 유효성을 평가합니다.
이는 모델의 정확도, 신뢰성, 일반화 능력을 검증하는 과정으로, 교차 검증이나 테스트 세트를 사용하여 수행됩니다.
지식 표현
최종적으로 발견된 패턴이나 모델을 이해하기 쉽게 표현하고, 이를 통해 의사결정에 활용할 수 있도록 합니다.
이는 시각화 도구나 보고서를 통해 이루어질 수 있습니다.
데이터 마이닝은 다양한 분야에서 활용됩니다.
요약하면 머신러닝은 다음 분야에 뛰어납니다.
기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제
전통적인 방식으로는 전혀 해결 방법이 없는 복잡한 문제
유동적인 환경
복잡한 문제와 대량의 데이터에서 통찰 얻기
CNN (Convolutional Neural Network)
제품 이미지 자동 분류: 생산 라인에서 제품 이미지를 분석하여 자동으로 분류.
뇌 스캔 이미지 분석: 뇌를 스캔하여 중요 부위를 판단하는 작업.
NLP (Natural Language Processing)
뉴스 기사 자동 분류: 자연어 처리 기법을 이용하여 뉴스 기사를 자동으로 분류.
부정적 댓글 자동 감지: 토론 포럼에서 부정적인 코멘트를 자동으로 감지하는 작업.
문서 요약: 긴 문서를 자동으로 요약하는 작업.
챗봇 또는 개인 비서: 자연어 이해를 통해 챗봇이나 개인 비서를 개발하는 작업.
Regression (회귀 분석)
Clustering (군집 분석)
기타
음성 명령 인식 앱 개발: 음성 명령을 인식하여 반응하는 애플리케이션 개발.
신용카드 부정 거래 감지: 부정 거래를 감지하는 이상치 탐지 작업.
추천 시스템: 고객 구매 이력을 바탕으로 관심 상품을 추천하는 시스템 개발.
다음을 기준으로 넓은 범주에서 분류하면 도움이 됩니다.
사람의 감독 하에 훈련하는 것인지 그렇지 않은 것인지(지도, 비지도, 준지도, 강화 학습)
실시간으로 점진적인 학습을 하는지 아닌지(온라인 학습과 배치 학습)
단순하게 알고 있는 데이터 포인트와 새 데이터 포인트를 비교하는 것인지 아니면 훈련 데이터셋에서 과학자들처럼 패턴을 발견하여 예측 모델을 만드는지(사례 기반 학습과 모델 기반 학습)
이 범주들은 서로 배타적이지 않으며 원하는 대로 연결할 수 있습니다.
예를 들어 최첨단 스팸 필터가 심층 신경망 모델을 사용해 스팸과 스팸이 아닌 메일로부터 실시간으로 학습할 지도 모릅니다.
분류(classification)가 전형적인 지도 학습 작업이며, 스팸 필터가 좋은 예입니다.
또 다른 전형적인 작업은 예측 변수(predictor variable)라 부르는 특성(feature) (주행거리, 연식, 브랜드 등)을 사용해 중고차 가격 같은 타깃 수치를 예측하는 것입니다.
이런 종류의 작업을 회귀(regression)라고 부릅니다.
- 속성(attribute)
- 데이터 타입(예를 들면 주행거리)을 말합니다.
- 특성
- 문맥에 따라 여러 의미를 갖지만 일반적으로 속성과 값이 합쳐진 것을 의미합니다(예를 들면 주행거리=15,000).
- 하지만 많은 사람이 속성과 특성을 구분하지 않고 사용합니다.
일부 회귀 알고리즘은 분류에 사용할 수도 있고 또 반대의 경우도 있습니다.
주요 지도 학습 알고리즘
k-최근접 이웃(k-Nearest Neighbors)
선형 회귀(Linear Regression)
로지스틱 회귀(Logistic Regression)
서포트 벡터 머신(Support Vector Machines , SVM)
결정 트리(Decision Tree)와 랜덤 포레스트(Random Forests)
신경망(Neural networks)
주요 지도 학습 알고리즘
군집(clustering) : 데이터를 비슷한 특성을 가진 그룹으로 묶는 비지도 학습 기법.
k-평균(k-Means): 데이터를 k개의 군집으로 분류하며, 중심점(centroid)과의 거리 차이를 최소화하는 알고리즘.
계층 군집 분석(Hierarchical Cluster Analysis, HCA): 데이터를 계층적 트리 구조(Dendrogram) 형태로 군집화하여 분석.
기댓값 최대화(Expectation Maximization): 군집에 속할 확률을 계산해 데이터를 할당하는 알고리즘. 혼합 모델 기반(예: 가우시안 혼합).
시각화(visualization)와 차원 축소(dimensionality reduction) : 고차원 데이터를 저차원으로 축소해 이해와 시각화를 돕는 기술.
주성분 분석(Principal Component Analysis, PCA) : 데이터의 주요 변동성을 보존하는 선형 변환으로 차원 축소.
커널(kernel) PCA : 비선형 데이터에 PCA를 확장 적용해 차원을 줄이는 방법.
지역적 선형 임베딩(Locally-Linear Embedding, LLE) : 데이터의 지역적 선형 관계를 보존하며 저차원으로 변환.
t-SNE(t-distributed Stochastic Neighbor Embedding) : 데이터의 고차원 밀집 구조를 저차원 공간에서 효과적으로 시각화. 군집 구조 파악에 유리.
연관 규칙 학습(Association rule learning) : 데이터 항목 간의 연관성과 규칙을 발견하는 기법.
어프라이어리(Apriori) : 빈도가 높은 항목 집합을 기반으로 연관 규칙을 도출.
이클렛(Eclat): 빈도 계산을 집합 간 교집합 방식으로 수행하여 효율성을 높인 알고리즘.
군집 알고리즘의 활용 예: 블로그 방문자 분석
문제-상황
블로그 방문자 데이터를 기반으로, 비슷한 성향을 가진 방문자들을 그룹으로 분류하고자 함.
방문자들이 어떤 그룹에 속하는지 기본적인 정보를 제공할 수 없기 때문에 비지도-학습을 적용.
군집-알고리즘의-역할
알고리즘이 방문자들의 데이터에서 스스로 유사성을 찾아 그룹화 수행.
예시
40%: 만화책을 좋아하며 저녁에 블로그를 방문하는 남성 그룹.
20%: 공상 과학을 좋아하며 주말에 주로 방문하는 젊은 그룹.
계층-군집(Hierarchical-Clustering)의-적용
계층-군집-알고리즘을 사용하여 그룹을 더 작은 하위-그룹으로 세분화 가능.
그룹별 방문자 성향을 바탕으로 맞춤형 컨텐츠 제공 가능.
활용-예시
만화책 남성 그룹: 저녁 시간에 만화 관련 글 게시.
공상 과학 젊은 그룹: 주말에 공상 과학 관련 트렌드 소개.
결과
시각화(Visualization) 알고리즘
비지도 학습의 좋은 예로, 레이블이 없는 고차원 데이터를 2D나 3D로 도식화 가능.
장점
입력 공간의 구조를 최대한 보존
데이터가 어떻게 조직되어 있는지 이해할 수 있음.
예상하지 못한 패턴 발견 가능.
차원 축소(Dimensionality Reduction)
데이터의 특성을 간소화하면서 중요한 정보는 그대로 유지.
활용 방법
특성 간 통합
예: 자동차의 주행거리와 연식 등 상관관계가 높은 두 특성을 하나로 합침.
결과: 두 특성을 "차량 마모 정도"라는 하나의 특성으로 표현.
이를 "특성 추출(Feature Extraction)"이라 부름.
차원 축소의 실용적 이점
머신러닝 알고리즘에 활용 가능
차원 축소를 통해 훈련 데이터의 차원을 줄이면 다음과 같은 효과를 얻음.
실행 속도 향상: 연산 및 학습 시간 단축.
공간 효율성: 디스크와 메모리 사용량 감소.
성능 향상: 과적합 방지 및 알고리즘 성능이 개선될 가능성.
이상치 탐지(Anomaly Detection)
정상 샘플과 다른 특성을 가진 데이터를 찾아냄.
활용 사례
신용카드 부정 거래 탐지: 이상한 거래를 감지하여 부정 행위를 방지.
제조 결함 탐지: 생산 과정에서 발생하는 결함을 식별.
데이터 정제: 학습 알고리즘에 주입하기 전, 데이터셋에서 이상치 값 제거.
작동 방식
연관 규칙 학습(Association Rule Learning)
데이터셋 내에서 특성 간의 흥미로운 관계를 찾아내는 기법.
활용 사례
대량의 데이터에서 특성 간 관계를 분석해 유용한 패턴 발견.
예: 슈퍼마켓 판매 분석.
의의: 사용자의 행동 패턴을 이해하여 맞춤형 마케팅 전략 개발 가능.
준지도 학습은 레이블이 일부만 있는 데이터로 학습하는 알고리즘입니다.
일반적으로 레이블이 없는 데이터가 많고, 레이블이 있는 데이터는 적습니다.
지도 학습과 비지도 학습의 조합으로 이루어져 있습니다.
예시
구글 포토
가족사진을 업로드하면 서비스가 클러스터링(군집화)하여 사진 속 인물들을 분류합니다. (비지도 학습)
시스템에 사람들의 이름(레이블)을 제공하면 나머지 사진에서 모든 사람의 이름을 알아내고 사진을 분류합니다. (지도 학습 활용)
알고리즘
심층 신뢰 신경망 (Deep Belief Network, DBN)
여러 층으로 쌓은 제한된 볼츠만 머신 (Restricted Boltzmann Machine, RBM)으로 구성.
RBM은 비지도 학습 방식으로 순차적으로 학습.
이후 전체 모델은 지도 학습 방식으로 세밀하게 조정합니다.
강화 학습은 에이전트(Agent)가 환경(Environment)을 관찰하고 행동(Action)을 실행하며 보상(Reward) 또는 벌점(Penalty)을 받습니다.
최종 목표는 가장 큰 보상을 얻기 위한 최적의 정책(Policy)을 학습하는 것입니다.
정책(Policy)은 주어진 상황에서 에이전트가 어떤 행동을 해야 할지 정의합니다.
예시
보행 로봇
딥마인드(DeepMind)의 알파고(AlphaGo)
수백만 개의 게임을 분석하며 승리를 위한 전략을 학습.
자기 자신과 대결하며 경험을 축적.
실제 경기에서는 학습을 중단하고 학습된 전략만 적용.
(예: 2017년 바둑 세계 챔피언 커제 선수와의 경기에서 승리한 사례.)