본문 바로가기

Study/AI

머신러닝 공부 #1

'파이썬을 이용한 머신러닝, 딥러닝 실전 개발 입문' 책으로 공부

 

04. 머신러닝

  • 4-1. 머신러닝이란?
  • 4-2. 머신러닝 첫걸음
  • 4-3. 이미지 내부의 문자 인식
  • 4-4. 외국어 문장 판별하기
  • 4-5. 서포트 벡터 머신(SVM)
  • 4-6. 랜덤 포레스트
  • 4-7. 데이터를 검증하는 방법

 

4-1. 머신러닝이란?

머신러닝을 간단하게 설명하면 "수많은 데이터를 학습시켜 거기에 있는 패턴을 찾아내는 것"이라고 할 수 있습니다.

일단 패턴을 찾으면 그러한 패턴을 기반으로 데이터를 분류하거나 미래를 예측할 수 있습니다.

 

머신러닝 개요

머신러닝(machine learning)이란 인공지능 연구 과제 중 하나, 인간의 뇌가 자연스럽게 수행하는 "학습"이라는 능력을 컴퓨터로 구현하는 방법입니다.

 

어느 정도 규모가 있는 샘플 데이터를 입력으로 넣어 분석시킵니다.

그리고 이때 데이터에서 일정한 규칙을 찾아냅니다. 그리고 찾아낸 규칙을 기반으로 다른 데이터를 분류하거나 미래를 예측하는 것입니다.

(sample data -> Input -> analyst -> find Rule -> other data prediction)

 

머신러닝에서는 벡터라는 것이 굉장히 중요합니다.

벡터(vector): 공간에서 크기와 방향을 가진 것을 의미

특징량: 어떤 요소가 모여있는 것을 의미

 

머신러닝은 이처럼 계산을 통해 구분선을 찾아내는 것입니다.

구분선을 찾을 때는 점과 점 사이의 거리를 구합니다. 그리고 이러한 거리가 가까우면 비슷한 데이터라고 판정합니다.

 

특징 추출

특징 추출: 데이터가 어떤 특징을 가지고 있는지 찾고 벡터로 만드는 변환 처리

 

일반적으로 사용되는 머신러닝 프레임워크는 범용적인 용도의 것이며, 내가 원하는 특징을 추출해주는 기능은 없습니다.

어떤 특징을 추출할지는 프로그래머가 결정해야 하며, 이것이 머신러닝의 포인트라고 할 수 있습니다.

 

학습을 기반으로 분류 등을 하는 시스템을 "학습 기계"라고 부르며 "분류/식별기(classifier)", "학습기(learner)"라고 부르는 경우도 있습니다.

 

회귀 분석이란?

회귀 분석(regression analysis): 통계 용어인데, Y가 연속된 값 일 때 Y = f(x)와 같은 모델로 나타내는 것

 

가장 기본적인 모델은 선형 회귀 Y = aX + b

Y: 연속 측정의 종속 변수(목표 변수)

X: 독립 변수(설명 변수)

 

- 단순 회귀: X가 1차원

- 다중 회귀: X가 2차원 이상

 

머신러닝의 종류

종류 설명
지도 학습 데이터와 함께 답을 입력합니다.
다른 데이터의 답을 예측합니다.
비지도 학습 데이터는 입력하지만 답은 입력하지 않습니다.
다른 데이터의 규칙성을 찾습니다.
강화 학습 부분적으로 답을 입력합니다.
데이터를 기반으로 최적의 답을 찾아냅니다.

 

 

지도 학습

지도 학습(Supervised learning): 데이터를 입력할 때 레이블(답)을 함께 입력함

선생님(교사)이 옆에서 문제를 주고, 답을 알려주는 것과 같은 학습 방법입니다.

 

비지도 학습

비지도 학습(Unsupervised learning): "최종적으로 내야 하는 답"이 정해져 있지 않다는 것이 지도 학습과 다른 부분임

예) 클러스터 분석(Cluster analysis), 주성분 분석(Principal component analysis), 벡터 양자화(Vector quantization), 자기 조직화(Self organization) 등

 

강화 학습

강화 학습: 지도 학습과 비슷하지만 완전한 답을 제공하지 않는다는 것이 다름

 

"행동의 주체"와 "환경(상황 또는 상태)"행동의 주체: 환경을 관찰하고, 이를 기반으로 의사결정을 내려 행동함

환경이 변화하면서 행동의 주체가 어떤 보상을 받게 됨

이를 기반으로 행동의 주체는 더 많은 보상을 얻을 수 있는 방향으로 행동을 학습하게 됨

 

행동의 주체 - 관찰 ->  환경

                      <-행동 - 

           ↑                           

             | - - - - - - - - - - - - |

 

 

머신러닝의 흐름

  1. 데이터 수집
  2. 데이터 가공
  3. 데이터 학습3-1. 학습 방법 선택
    3-2. 매개변수 조정
    3-3. 모델 학습
  4. 모델 평가
  5. 정밀도가 제대로 나오는가? -> YES 6 / NO 3
  6. 성공

3-1. 학습 방법 선택

어떤 방법(알고리즘)을 사용해 학습을 시킬지 생각해야 합니다.머신러닝에는 여러 가지 알고리즘이 있습니다.

상황에 따라 적절한 알고리즘을 선택해야 합니다.

SVM, 랜덤포레스트(Random Forest), K-means 등의 알고리즘이 있습니다.

이어서 3-2에서 데이터와 알고리즘에 맞게 매개변수를 지정

 

머신러닝의 응용 분야

  1. 클래스 분류(Classification)특정 데이터에 레이블을 붙여 분류할 수 있습니다.
    예) 스팸 메일 분류, 필기 인식, 증권 사기 등
  2. 클러스터링 - 그룹 나누기(Clustering)
    값의 유상성을 기반으로 데이터를 여러 그룹으로 나눌 수 있습니다.
    예) 사용자의 취향을 그룹으로 묶어 사용자 취향에 맞는 광고에 제공하는 경우
  3. 추천(Recommendation)
    특정 데이터를 기반으로 다른 데이터를 추천하는 것입니다.
    예) 사용자가 인터넷 서점에서 구매한 책들을 기반으로 다른 책을 추천하는 경우
  4. 회귀(Regression)
    과거의 데이터를 기반으로 미래의 데이터를 예측하는 것입니다.
    예) 판매 예측, 추가 변동 등을 예측하는 경우
  5. 차원 축소(Dimensionality Reduction)
    데이터의 특성을 유지하면서 데이터의 양을 줄이는 것입니다.
    어렵게 말하면 "특성을 유지한 상태로 고차원의 데이터를 저 차원의 데이터로 변환하는 것"입니다.
    데이터를 시각화하거나 구조를 추출해서 용량을 줄여 계산을 빠르게 하거나 메모리를 절약할 때 사용함

초과 학습(초과 적합)

초과학습(Overfitting): 훈련 전용 데이터가 학습돼 있지만 학습되지 않은 새로운 데이터에 대해 제대로 된 예측을 못하는 상태를 의미

배운 것밖에 해결하지 못하는 상황을 의미

 

- 데이터가 너무 적은 경우

- 모델에 비해 문제가 너무 복잡한 경우