수달이네 기술 블로그

8. 머신러닝 기초 본문

AI공부/머신러닝

8. 머신러닝 기초

슬픈 수달이 2025. 12. 10. 22:55

인공지능

컴퓨터, 기계가 인간처럼 생각, 학습하여 문제를 해결하는 능력을 갖추도록 만든 기술로, 데이터를 활용해 의사결정을 내리거나 예측하는 시스템을 개발하는 것을 목표로 함.

규칙 기반 알고리즘(Rule-based algorithms)

명시적으로 정의된 규칙(If-Then-Else문법)을 사용해 문제를 해결

  • 사람이 적용한 논리 조건으로 작동

머신러닝

인공지능의 한 분야, 컴퓨터가 명시적으로 프로그래밍되지 않아도 데이터에서 패턴을 학습하고, 데이터를 예측하고 결정한다.

  • AI의 핵심 기술로, 우리가 사용하는 많은 기술과 서비스의 기초가 된다.

딥러닝

머신러닝의 한분야로 인공신경망을 사용하여 데이터를 학습하고 복잡한 문제를 해결하는 기술

  • 대량의 데이터와 고성능 컴퓨팅 자원을 활용하여 성능을 발휘

무조건 딥러닝만 공부하면 되는거 아니야?

아니다, 머신러닝을 익혀야 딥러닝 모델의 작동원리나 결과를 해석하기 쉽다.

또한, 작고 단순한 문제에선 머신러닝이 효과적이다.

머신러닝으로 하는 일

분류 (Classification) - 스팸 메일 분류
- 암 진단 (양성/악성)
- 고객 이탈 예측
- 고장 여부 판단
회귀 (Regression) - 주택 가격 예측
- 주가 예측
- 광고 클릭률 예측
- 날씨 온도 예측
군집화 (Clustering) - 고객 세그먼트 분류
- 상품 자동 그룹화
- 이상 거래 탐지
- 문서 주제 군집화
추천 시스템 - 영화, 음악, 상품 추천
- 사용자 맞춤 콘텐츠 제공
자연어 처리 (NLP) - 문장 감정 분석
- 뉴스 기사 분류
- 챗봇 응답 생성
- 기계 번역
이미지 처리 (Computer Vision) - 얼굴 인식
- 객체 탐지
- 자율주행 자동차 인식
- X-ray 진단 보조
이상 탐지 (Anomaly Detection) - 금융 사기 탐지
- 네트워크 이상 징후 감지
- 공정 불량 탐지
강화 학습 (Reinforcement Learning) - 게임 AI (알파고 등)
- 로봇 제어
- 스마트 팩토리 자동 제어
시계열 분석 - 수요 예측
- 재고 관리
- 에너지 사용량 예측
음성 인식 및 합성 - 음성 명령 인식
- AI 스피커
- 텍스트 음성 변환 (TTS)

머신러닝 학습 방법

학습을 할때 각자 개별적으로 다른 것이 아닌, 여러개를 한번에 할 수도 있다.

1. 지도학습(Supervised Learning)

  • 입력 데이터와 해당 데이터의 정답(레이블)이 제공되는 학습 방식이다.
  • 주어진 입력에 대해 올바른 출력(레이블)을 예측하는 모델을 학습한다.
    데이터 1 데이터 2 예측해야할 값
    1 2 1
    3 1 0
    2 1 1
  • 즉, 위의 테이블로 학습하고, 예측해야할 값이 없는 것을 예측한다.

2. 비지도학습(Unsupervised Learning)

  • 입력 데이터에는 레이블(정답)이 없으며, 데이터 자체의 구조나 패턴을 학습한다.
  • 데이터 내에서 숨겨진 구조를 찾거나 그룹화를 수행한다.

3. 클러스터링(Clustering) - 비지도 학습에 포함됨.

  • 데이터를 비슷한 그룹으로 묶는다.
  • 데이터를 더 작은 차원으로 변환하여 시각화하거나 연산 효율성을 높인다.
    • 차원축소: 적은 데이터를 가진 데이터를 삭제하기도 한다.

4. 강화학습(Reinforcement Learning)

  • 에이전트(Agent)가 환경(Environment)과 상호작용하며 보상(Reward)을 최대화하는 행동을 학습한다.
  • 잘하면 보상모델이 좋은 값, 못하면 나쁜값을 줌.

5. 반지도학습(Semi-Supervised Learning)

  • 데이터의 일부에만 레이블이 있고, 나머지는 레이블이 없는 상태에서 학습합니다.
  • 레이블링된 데이터가 적을 때 유용합니다.

6. 자기 지도 학습(Self-Supervised Learning)

  • 데이터에서 레이블 없이 일부 정보를 예측하도록 학습합니다.
  • 데이터를 활용하여 자체적으로 레이블 생성합니다.

7. 온라인 학습(Online Learning)

  • 데이터를 순차적으로 제공하며, 실시간으로 학습하는 방식입니다.
  • 데이터가 점진적으로 들어오는 환경에 적합합니다

8. 트랜스퍼 러닝(Transfer Learning)(전이학습)

  • 사전 학습된 모델의 지식을 새로운 문제에 적용합니다.
  • 학습 시간이 단축되며, 적은 데이터로 성능 향상을 할 수 있습니다.

모델이란?

주어진 데이터를 학습해서 패턴, 규칙을 찾아내고, 새로운 데이터에 대해 예측및 결정을 내리는 수학적 구조, 알고리즘 모델.

  • 데이터, 수학적 함수 조합으로 구성된 모델은 학습 과정으로 최적의 매개변수(가중치, 편향)등을 찾아간다.
  • 모델은 데이터를 보고 문제를 해결하는 AI의 두뇌 역할을 한다.

학습은?

주어진 데이터로부터 패턴과 규칙을 찾아내어, 모델의 매개변수(가중치, 편향 등)를 최적화하는 과정이다.

  • 이 과정에서 모델은 입력 데이터와 정답(레이블)을 비교하여 오류(오차)를 계산하고, 이를 최소화하기 위해 역전파(Backpropagation)와 최적화 알고리즘을 사용해 매개변수를 반복적으로 조정한다.
  • 학습은 모델이 더 정확한 예측이나 결정을 내릴 수 있도록 스스로 개선한다.

머신러닝 프로세스

머신러닝 프로젝트는 일반적으문제 정의부터 모델 배포 및 운영에 이르는 일련의 단계로 구성된다. 아래는 핵심적인 4단계이다.

1. 문제 정의 및 목표 설정

이 단계는 프로젝트의 방향을 결정짓는 핵심 과정이다.

  • 문제 유형 구체화: 해결하고자 하는 문제를 분류(Classification), 회귀(Regression), 군집화(Clustering) 등 머신러닝 문제 유형으로 명확히 정의한다.
  • 변수 정의: 예측할 대상인 타깃(Target/Label)과 입력 변수인 피처(Feature)를 정의한다.
  • 성과 지표(KPI) 설정: 비즈니스 목적에 부합하는 정량적 평가 지표 (예: 정확도 90% 이상, 특정 오차 이하 등)를 설정하여 목표를 명확히 한다.
  • 전략 설계: 데이터 확보 가능성, 도메인 특성, 기술적/비즈니스적 제약사항 등을 종합적으로 고려하여 전체적인 목표와 전략을 수립한다.

2. 데이터 수집 및 전처리 (Preprocessing)

모델 성능을 결정하는 매우 중요한 단계이다. 원시 데이터를 모델이 학습할 수 있도록 정제하고 가공한다.

  • 데이터 수집 및 통합: 정의된 문제 해결에 필요한 데이터를 확보하고 하나로 통합한다.
  • 데이터 품질 개선:
    • 결측치 처리: 누락된 값(NaN)을 제거하거나 대체(평균, 중앙값 등)한다.
    • 이상치 제거**:** 데이터의 패턴에서 크게 벗어나는 값(Outlier)을 식별하고 처리한다.
  • 데이터 가공 및 변환:
    • 인코딩: 범주형 데이터를 원-핫 인코딩(One-Hot Encoding) 등 수치형으로 변환한다.
    • 스케일링: 피처 간의 값 범위 차이를 조정하기 위해 정규화(Normalization)나 표준화(Standardization)를 적용한다.
    • 피처 엔지니어링 (Feature Engineering): 기존 피처를 조합하거나 변형하여 새로운 유의미한 피처를 생성한다.
  • 데이터 분리: 모델 훈련을 위해 데이터를 학습용(Training), 검증용(Validation), 테스트용(Test) 데이터셋으로 적절히 분리한다.

3. 모델 학습 (Training)

전처리된 데이터를 기반으로 머신러닝 알고리즘을 적용하여 모델을 훈련하는 단계이다.

  • 알고리즘 선택: 문제 유형(지도/비지도)에 따라 적절한 알고리즘(예: 선형 회귀, 랜덤 포레스트, 딥러닝 등)을 선택한다.
  • 모델 훈련: 알고리즘을 사용하여 학습용 데이터의 패턴을 파악하도록 반복적으로 훈련시킨다.
  • 하이퍼파라미터 튜닝: 모델의 성능을 최적화하기 위해 학습률, 트리의 개수 등 하이퍼파라미터(Hyperparameter)를 조정하며 최적의 조합을 탐색한다.

4. 모델 평가 및 개선 (Evaluation & Improvement)

학습된 모델이 실제 환경에서 얼마나 잘 작동하는지 성능을 검증하고 개선한다.

  • 성능 측정: 테스트용 데이터셋을 사용하여 모델의 예측 성능을 측정한다.
  • 평가 지표 활용: 1단계에서 설정한 목표 KPI와 문제 유형에 맞는 지표(예: 분류는 정확도/정밀도/재현율, 회귀는 RMSE/MAE)를 사용하여 평가한다.
  • 과적합(Overfitting) 확인: 모델이 학습 데이터에만 너무 맞춰져 일반화 성능이 떨어지는지 확인하고, 이를 방지하기 위한 조치를 취한다.
  • 반복 및 개선: 평가 결과가 목표에 미치지 못하면, 데이터 전처리, 피처 엔지니어링, 알고리즘 선택, 하이퍼파라미터 튜닝 등의 이전 단계로 돌아가 반복적으로 모델을 개선한다.

머신러닝 공부를 위해 필요한 것.

  • 기초 수학
    • 선형대수: 벡터, 행렬
    • 통계·확률: 평균, 분산, 확률분포
    • 미분: 경사 하강법 이해에 필요
  • 프로그래밍 (Python)
    • 필수 라이브러리: NumPy, Pandas, Matplotlib, Scikit-learn
    • 실습은 주로 Jupyter Notebook 또는 Colab 사용
  • 데이터 전처리 능력
    • 결측치/이상치 처리
    • 범주형 인코딩, 정규화
    • 시각화를 통한 데이터 이해
  • 머신러닝 알고리즘 이해
    • 지도학습: 선형회귀, 로지스틱 회귀, 결정트리, 랜덤포레스트
    • 비지도학습: K-means, PCA 등
  • 실습 경험
    • Kaggle/Dacon 대회 참가
    • 오픈데이터 프로젝트 수행
    • 모델 성능 평가 및 개선 연습
  • 도메인 지식
    • 데이터를 해석하고 모델을 잘 적용하려면 산업별 배경지식이 중요
    • 예: 의료 AI는 의학 지식, 금융 모델은 회계·경제 지식 필요
  • 윤리와 법률
    • 개인정보 보호법, AI 윤리, 알고리즘 편향 등 고려 필수
    • 예: 얼굴 인식 시스템은 사생활 침해 이슈 발생 가능
  • AI 프로젝트 실무 경험
    • 데이터 수집~배포까지의 전체 흐름 이해 필요
    • 협업, 버전관리(Git), 모델 배포(Flask, FastAPI 등) 등 실전 역량
  • 클라우드 & 환경 세팅
    • Google Colab, AWS, GCP 등에서 실습 및 배포 경험이 도움이 됨
    • 대규모 학습이나 GPU 자원이 필요할 때 필수