ABOUT ME

Today
Yesterday
Total
  • MachineLearning_Basic
    AI/MachineLearning 2022. 8. 21. 14:33

    ML의 목표?! - 새로운 샘플에 잘 작동하는 모델을 만들자

    머신러닝 정의

    • 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야
    • 어떤 작업 T에 대한 컴퓨터 프로그램 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것

    왜 머신러닝을 사용하는가?!

    • 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제: 하나의 머신러닝 모델이 코드를 간단하게 만들고, 전통적인 방법보다 더 잘 수행되도록 할 수 있다.
    • 전통적인 방식으로는 너무 복잡하거나 알려진 알고리즘이 없는 문제
    • 유동적인 환경==> 머신러닝 시스템은 새로운 데이터에 적응 할 수 있음
    • 복잡한 문제와 대량의 데이터에서 통찰 얻기

    머신러닝 시스템의 종류

    1.사람의 감독하에 훈련하는 것인지 그렇지 않은 것인지(지도, 비지도, 준지도, 강화학습)

    1-1) 지도학습 => 훈련 데이터에 레이블이라는 값도 포함
    ex) 분류(classification), 회귀(regression)

    회귀: 예측 변수(predictor vars), 즉 특성(feature)을 사용해 target 수치를 예측 하는 것.

    대표적인 알고리즘: k-최근접 이웃(K-nearest neightbor), 선형회귀(linear regression), 로지스틱 회귀(logistic regression), 서포트 벡터 머신(SVM),
    결정 트리(decision tree)와 랜덤 포레스트(random forest), 신경망(neural networks)

    1-2) 비지도학습 => 훈련 데이터에 레이블값이 없음
    ex) 군집, 이상치 탐지 & 특이치 탐지, 시각화와 & 차원축소 , 연관규칙 학습

    1-3) 준지도학습 => 일부만 레이블이 있는 데이터 (지도 학습 + 비지도 학습 조합)

    1-4) 강화학습 => 학습하는 시스템을 agent라고 부르며 환경을 관찰해서 행동을 실행하고 그 결과로 보상 또는 벌점을 받는다.

    2.입력 데이터의 스트림으로부터, 즉, 실시간으로 점진적인 학습을 하는지 아닌지(온라인 학습, 배치학습)

    2-1) 배치학습

    2-2) 온라인학습
    데이터를 순차적으로 한 개씩 또는 미니배치(mini batch)라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련. 새로운 데이터가 들어오면 계속 학습
    변화하는 데이터에 얼마나 빠르게 적응할 것인지? (학습률)
    학습률을 높게하면? 낮게 하면?!

    3.훈련데이터셋에서 패턴을 발견하여 모델을 만드는 것인지?!

    단순하게 알고 있는 데이터 포인트와 새 데이터 포인트를 비교하는 것인지

    3-1. 사례기반 학습 => 시스템이 훈련 샘플을 기억함으로써 학습, 그리고 유사도 측정을 사용해 새로운 데이터 데이터와 학습한 샘플을 비교하는 시으로 일반화

    3-2. 모델기반 학습 => 샘플들의 모델을 만들어 예측에 사용하는 것

    ML의 주요 과제?!

    => 알맞은 알고리즘을 사용하여 알맞은 데이터를 훈련시키는 것. 따라서 나쁜 알고리즘과 나쁜 데이터를 be careful 해야 한다

    1. 나쁜 데이터
      1-1) 충분하지 않은 양으 훈련 데이터

    1-2) 대표성 없는 훈련 데이터

    1-3) 낮음 품질의 데이터

    1-4) 관련 없는 특성 (garbage in, garbage out)
    ==> 훈련 데이터에 관련없는 특성이 적고, 관련이 있는 특성이 충분해야 한다.
    ==> 특성 선택(feature selection): 가지고 있는 특성 중에서 훈련에 가장 유용한 특성을 선택
    ==> 특성 추출(feature extraction): 특성을 결합하여 더 유용한 특성을 만든다.

    1-5) 훈련 데이터 과대 적합
    ==> 모델이 훈련 데이터에 너무 잘 맞으면 일반성이 떨어질 수 있다.
    ==> 과대 적합의 위험을 감소시키기 위해 모델에 제약을 가하는 것을 규제(regulzation)이라고 한다.
    ==> 학습하는 동안 규제의 양은 하이퍼파라미터(hyperparameter)가 결정한다.

    cf. 하이퍼파라미터란?!

    • 모델이 아니라 학습 알고리즘 파라미터. 그래서 학습 알고리즘으로부터 영향을 받지 않으며 훈련 전에 미리 지정되고 훈련하는 동안에는 상수로 남아 있다.
      만약 하이퍼 파라미터를 크게(=기울기,0) 하면은 거의 평편한 모델을 얻게 된다.
      그러면 overfitting 될 가능성은 거의 없지만, 좋은 모델을 찾지 못하게 된다.

    1-6) 훈련 데이터 과소 적합

    • 과대적합의 반대말. 모델이 너무 단순해서 데이터의 내재된 구조를 학습하지 못할 때 일어넌더,

    cf. how to solve it?!

    • 모델 파라미터가 더 많은 강력한 모델을 선택
    • 학습 알고리즘에 더 좋은 특성을 제공
    • 모델의 제약을 줄인다(예를 들어, 규제 하이퍼파라미터를 감소시킨다)
    1. 나쁜 알고리즘

    ============================================================================

    테스트와 검증

    • 모델을 학습시켰다 해서 새로운 샘플에 일반화되길 그냥 바라기만 해서는 안된다. 모델을 평가하고, 필요하면 상세하게 튜닝해야 한다.

    1) 새로운 데이터에 얼마나 잘 일반화될지는 실제로 적용해 보는 것이다.
    2) 또는 훈련 데이터를 훈련 세트와 테스트 세트 두 개로 나누어, 훈련 데이터로 training을 하고 테스트 데이터로 test를 한다..
    ** 새로운 샘플에 대한 오류 비율을 일반화 오차(generalization error)라 한다.
    ================================================================

    하이퍼파라미터 튜닝과 모델 선택

    • 모델 평가는 is simple! => 테스트 세트를 사용.
    • 그런데 training, test과 나누고 모델을 test 용도에 여러번 하다보면은,
      모델과 하이퍼 파라미터가 테스트 세트에 최적화된 모델을을 만든다. 결국엔, 과대적합(overfitting)한 모델이 되고 새로운 데이터에 잘 작동되지 않는다.

    cf. How to solve it?!

    • 일반적인 해결방법은 홀드아웃 검증(Holdout 검증)이다.

    LETS'S START THE PROJECT

    1. 문제 정의
    • 비즈니스의 목적이 정확히 무엇인가요?
      (모델을 어떻게 사용해 이익을 얻으려고 할까?!)
    • 솔루션이 있다면, 현재 솔루션은 어떻게 구성되어 있나요?!

    cf. 파이프라인?!

    ex) 레이블이 된 훈련 샘플(지도학습), 값을 예측(회귀문제), 예측에 사용할 특성이 여러개 (다중회귀, multiple regression), 각 구역마다 하나의 값을 예측(단변량 회귀, univarie regression), 만약 각 구역마다 여러개의 갮을 예측(다변량 회귀, multivariate regression)

    1. 성능지표선택
    • 평균제곱근오차(RSME, root mean squre error)
    • 평균절대오차(MAE, mean absolute error)

    'AI > MachineLearning' 카테고리의 다른 글

    댓글

Designed by Tistory.