[머신러닝] 01_한눈에 보는 머신러닝

밍키·2020년 6월 3일
0

머신러닝 햝기

목록 보기
1/1

한눈에 보려고 노력했으나, 볼 수 없기에 일단 큰 단위로 개념만 정리한다.

머신러닝이란?

머신러닝은 데이터에서부터 학습하도록 컴퓨터를 프로그래밍하는 과학 또는 예술입니다.
이 말이 제일 마음에 들었다.

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

데이터 마이닝 : 머신러닝 기술을 적용해서 대용량의 데이터를 분석하면 겉으로는 보이지 않던 패턴을 발견할 수 있다.

이유는 다음과 같다.

  • 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제를 하나의 머신러닝 모델이 코드를 간단하게 만들어 전통적인 방법보다 더 잘 수해오디도록 할 수 있다.
  • 전통적인 방식으로는 해결 방법이 없는 복잡한 문제를 가장 뛰어난 머신러닝 기법으로 해결 방법을 찾을 수 있다.
  • 머신러닝 시스템은 유동적인 환경, 새로운 데이터에 적응할 수 있다.
  • 복잡한 문제와 대량의 데이터에서 통찰을 얻을 수 있다. 이걸 데이터 마이닝이라고 하는듯.

머신러닝 시스템의 종류

넓은 범주에서 분류하면 다음과 같다.

  • 사람의 감독하에 훈련하는지 아닌지 : 지도, 비지도, 준지도, 강화학습
  • 실시간으로 점직적인 학습을 하는지 아닌지 : 온라인 학습과 배치학습
  • 단순하게 알고 있는 데이터 포인트와 새 데이터 포인트를 비교하는 것인지 : 사례 기반 학습
  • 과학자들이 하는 것처럼 훈련 데이터셋에서 패턴을 발견하여 예측 모델을 만드는지 : 모델 기반 학습

지도 학습과 비 지도 학습

학습하는 동안의 감독 형태나 정보량에 따라 분류.

지도 학습

지도 학습에는 알고리즘에 주입하는 훈련 데이터에 레이블이라는 원하는 답이 포함된다.

분류가 전형적인 지도 학습 작업. 스팸 필터가 좋은 예.

또 다른 전형적인 작업은 예측 변수라 부르는 특성(주행거리, 연식, 브랜드 등)을 사용해 중고차 가격같은 타깃 수치를 예측하는 것. 이런 종류의 작업을 회귀라고 함. 시스템을 훈련하려면 예측 변수와 레이블(중고차 가격)이 포함된 중고차 데이터가 많이 필요하다.

지도 학습 알고리즘들 나중에 볼 친구들이니까 얼굴 익혀두자.

  • k-최근접 이웃
  • 선형 회귀
  • 로지스틱 회귀
  • 서포트 벡터 머신
  • 결정 트리와 랜덤 포레스트
  • 신경망

비지도 학습

비지도 학습에는 말 그대로 훈련 데이터에 레이블이 없다. 시스템이 아무런 도움 없이 학습해야 한다. 흙수저라고 할 수 있음.

비지도 학습 알고리즘들. 얼굴이나 익혀둬.

  • 군집
    - k-평균
    - DBSCAN
    - 계층 군집 분석
    - 이상치 탐지와 특이치 탐지
    - 원-클래스
    - 아이솔레이션 포레스트
    -시각화와 차원 축소
    - 주성분 분석
    - 커널
    - 지역적 선형 임베딩
    - t-SNE
  • 연관 규칙 학습
    - 어프라이어리
    • 이클렛

예를 들어 블로그 방문자에 대한 데이터가 많이 있다. 비슷한 방문자들을 그룹으로 묶기 위해 군집 알고리즘을 적용하려 함. 알고리즘이 스스로 방문자 사이의 연결고리를 찾는다. 계층 군집 알고리즘을 사용하면 각 그룹을 더 작은 그룹으로 세분화 할 수 있다. 이것을 통해 그룹에 맞춰 블로그 글을 쓸 수 있음. 만약 이걸 통해 고객을 세분화 할 수 있다면 맞춤 마케팅도 가능하다.

시각화 알고리즘도 비지도 학습 알고리즘의 대표적인 예. 레이블이 없는 대규모의 고차원 데이터를 넣으면 도식화가 가능한 2D나 3D 표현으로 만들어 줌. 데이터가 어떻게 조직되어 있는지 이해할 수 있고 예상하지 못한 패턴을 발견할 수도 있다. (이것이 데이터 마이닝인가?)

비슷한 작업으로는 너무 많은 정보를 잃지 않으면서 데이터를 간소화하려는 차원 축소가 있다. 방법은 상관관계가 있는 여러 특성을 하나로 합치는 것. 예를 들어 차의 주행거리와 연식은 강하게 연관되어 있음. 차원 축소 알고리즘으로 두 특성을 차의 마모 정도를 나타내는 하나의 특성으로 합칠 수 있음. 이를 특성 추출이라고 함.

이상치 탐지. 부정 거래 막기 위해 이상한 신용카드 거래를 감지, 제조 결함을 잡아내고, 학습 알고리즘에 주입하기 전에 데이터셋에서 이상한 값을 자동으로 제거. 훈련하는 동안 대부분 정상 샘픔을 만나 이를 인식하도록 훈련. 그 다음 새로운 샘플을 보고 정상 데이터인지 혹은 이상치인지 판단. 매우 비슷한 작업으로 특이치 탐지가 있음. 모든 샘플과 달라 보이는 새로운 샘플을 탐지하는 것이 목적. 알고리즘으로 감지하고 싶은 모든 샘플을 제거한 매우 '깨끗한' 훈련 세트가 필요함. 나는 치와와 싫어함.

대량의 데이터에서 특성 간의 흥미로운 관계를 찾는 연관 규칙 학습. 예를 들어 슈퍼마켓에서 판매 기록에 연관 규칙을 적용하면 비비큐 소스와 감자를 구매한 사람이 스테이크도 구매하는 경향이 있다는 것을 찾을지도 모른다. 그럼 이 상품들을 서로 가까이 진열하고 싶다.

준지도 학습

데이터에 레이블을 다는 것은 일반적으로 시간과 비용이 많이 듦. 그래서 레이블이 없는 샘플이 많고 레이블된 샘플은 적음. 어떤 알고리즘은 일부만 레이블이 있는 데이터를 다룰 수 있다. 이를 준지도 학습이라 함. 금수저도 아니고 흙수저도 아니다. 중간. 동수저.

대부분의 준지도 학습 알고리즘은 지도 학습과 비지도 학습으로 이루어 짐. 예를 들어 심층 신뢰 신경망은 여러 겹으로 쌓은 제한된 볼츠만 머신이라 불리는 비지도 학습에 기초함. 비지도 학습 방식으로 순차적으로 훈련된 다음 전체 시스템이 지도 학습 방식으로 세밀하게 조정됨. 솔직히 모르겠지만 그냥 보고 넘어가 일단.

강화 학습

매우 다른 종류의 알고리즘이다. 학습하는 시스템을 에이전트라고 부르며 환경을 관찰해서 행동을 실행하고 그 결과로 보상(또는 부정적인 보상에 해당하는 벌점)을 받는다. 시간이 지나면서 가장 큰 보상을 얻기 위해 정책이라고 부르는 최상의 전략을 스스로 학습함. 정책은 주어진 상황에서 에이전트가 어떤 행동을 선택해야 할지 정의한다.

이게 바로 알파고다.

배치 학습과 온라인 학습

배치 학습

배치 학습에서는 시스템이 점진적으로 학습할 수 없음. 가용한 데이터를 모두 사용해 훈련시켜야 함. 일반적으로 이 방식은 시간과 자원을 많이 소모하므로 보통 오프라인에서 수행됨. 먼저 시스템을 훈련시키고 그런 다음 제품 시스템에 적용하면 더 이상의 학습 없이 실행됨. 즉 학습한 것을 단지 적용만 한다. 이것을 오프라인 학습이라고 함.

온라인 학습

온라인 학습에서는 데이터를 순차적으로 한 개씩 또는 미니배치라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련시킴. 매 학습 단계가 빠르고 비용이 적게 들어 시스템은 데이터가 도착하는 대로 즉시 학습할 수 있음.

연속적으로 데이터를 받고 빠른 변화에 스스로 적응해야하는 시스템에 적합. 라이크 주식. 컴퓨팅 자원이 제한된 경우에도 좋은 선택. 새로운 데이터 샘플을 학습하면 학습이 끝난 데이터는 더는 필요하지 않으므로 버리면 된다. 많은 공간 절약 가능.

컴퓨터 한 대의 메인 메모리에 들어갈 수 없는 아주 큰 데이터셋을 학습하는 시스템에도 온라인 학습 알고리즘을 사용할 수 있음. 이를 외부 메모리 학습이라고 함.

외부 메모리 학습은 보통 오프라인으로 실행됨. 실시간 시스템에서 수행되는 것이 아님. 점진적 학습이라고 생각하면 됨.

온라인 학습 시스템에서 중요한 파라미터 하나는 변화하는 데이터에 얼마나 빠르게 적응할 것인지. 이를 학습률이라고 한다. 학습률을 높게하면 시스템이 데이터에 빠르게 적응하지만 예전 데이터를 금방 잊어버림. 반대로 학습률이 낮으면 시스템 관성이 커져 더 느리게 학습되지만, 새로운 데이터에 있는 잡음이나 대표성 없는 데이터 포인트에 덜 민감해짐.

가장 큰 문제점은 시스템에 나쁜 데이터가 주입되었을 때 시스템 성능이 점진적으로 감소한다는 점.

사례 기반 학습과 모델 기반 학습

어떻게 일반화 되는가에 따라 분류할 수도 있음. 훈련 데이터에서 높은 성능을 내는 것이 좋지만 그게 전부는 아니다. 진짜 목표는 새로운 샘플에 잘 적동하는 모델이다.

사례 기반 학습

스팸 메일과 동일한 메일을 스팸이라고 지정하는 대신 스팸 메일과 유사한 메일을 구반하ㄴ도록 스팸필터를 프로그래밍할 수 있다. 이렇게 하려면 두 메일 사이의 유사도측정해아 함. 두 메일 사이의 매우 간단한 유사도 측정 방법은 공통으로 포함된 단어의 수를 세는 것. 스팸 메일과 공통으로 가지는 단어가 많으면 스팸으로 분류.

모델 기반 학습

샘플들의 모델을 만들어 예측에 사용하는 것. 이를 모델 기반 학습.

여기는 나중에 다시 읽어보자. 좀 어렵네 이 친구. 다가가기 어려운 친구.

머신러닝의 주요 도전 과제

나쁜 알고리즘과 나쁜 데이터

충분하지 않은 양의 훈련 데이터

알고리즘이 중요하냐 데이터가 중요하냐. 뭐가 더 효율적인지.

대표성 없는 훈련 데이터

샘플이 작으면 샘플링 잡음(즉, 우연에 의한 대표성 없는 데이터)이 생기고, 매우 큰 샘플도 표본 추출 방법이 잘못되면 대표성을 띠지 못할 수도 있음. 이를 샘플링 편향이라 함.

낮은 품질의 데이터

훈련 데이터 정제는 굉장히 중요하다.

훈련 데이터 정제가 필요한 경우

  • 일부 샘플이 이상치라는 게 명확한 경우
  • 일부 샘플에 특성 몇 개가 빠져있는 경우

관련 없는 특성

엉터리가 들어가면 엉터리가 나온다. 성공적인 머신러닝 프로젝트의 핵심 요소는 훈련에 사용할 좋은 특성들을 찾는 것. 이 과정을 특성 공학이라 하며 다음과 같은 작업이다.

  • 특성 선택 : 가지고 있는 특성 중에서 훈련에 가장 유용한 특성을 선택한다.
  • 특성 추출 : 특성을 결합하여 더 유용한 특성을 만든다. 차원 축소 알고리즘이 도움이 될 수 있음.
  • 새로운 데이터를 수집해 새 특성을 만든다.

훈련 데이터 과대적합

해외여행 중 택시운전사가 내 물건을 훔쳤다고 가정. 아마도 그 나라의 모든 택시 운전사를 도둑이라고 생각할 수 있음. 사람은 종종 과도하게 일반화를 하지만 주의하지 않으면 기계도 똑같은 함정에 빠질 수 있음. 머신러닝에서는 이를 과대적합이라 함.

그냥 일반화의 오류

훈련 데이터 과소적합

과소적합은 과대적합의 반대. 이는 모델이 너무 단순해서 데이터의 내재된 구조를 학습하지 못할 때 일어남.

해결방법은 다음과 같다.

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

이 책은 첫 장부터 장난질이다. 한눈에 본다고 했지만 절대 한눈에 볼 수 없었다.

profile
대한민국 4차 산업의 역군을 꿈꾸며.

0개의 댓글