ML 1장

2023. 8. 11. 21:24ML

머신러닝
머신러닝이란?

컴퓨터가 데이터를 이용한 학습으로 지식을 추출하여 경험을 통해 개선되는 프로그래밍 기술

  • 훈련 세트 : 모델 학습시 사용하는 샘플
  • 훈련 사례 혹은 샘플 : 훈련 데이터
  • 훈련 데이터 : 경험
  • 정확도 : 성능 측정

 

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

스팸을 예시로 들어보자.
신용카드, 무료, 대출 등..이 많이 나타나는 경향이 있다
혹은 보낸이의 이름이나 메일 주소, 이름 등 다른 요소에서 다른 패턴을 감지할 수도 있다.
발견한 각 패턴 감지 알고리즘을 작성한 후 프로그램이 이러한 패턴을 발견했을 시 그 메일을 스팸으로 분류하게 한다.
프로그램을 테스트한 후 충분한 성능이 나올 때까지 위 과정을 반복한다.
 
하지만 위와 같은 경우 규칙이 점점 길고 복잡해지며 너무 많은 경우의 수가 있기에 유지보수가 힘듭니다. 
예를 들면 대출을 ㄷㅐ추ㄹ 이라던지 4U를 For U라고 바꾼다던지 등.. 
 
위의 문제점을 머신러닝을 통해 해결한다면?
스팸 데이터셋을 토대로 모델을 학습시킨 후 정확도를 높인다면 자동적으로 여러가지 변형된 스팸메일까지 차단할 수 있을 것이다.
 

데이터 마이닝

머신러닝 알고리즘을 통해 학습된 모델로 스팸을 예측하는데 가장 좋은 단어와 단어의 조합등을 확인할 수 있다.
이를 통해 가끔 예상하지 못한 연관 관계나 새로운 추세가 발견되기도 하는데 해당 문제를 더 잘이해하도록 도와준다.
즉 ML기술을 기반으로 대용량 데이터를 분석하면 겉으로는 보이지 않던 패턴을 발견할 수 있다. 
이를 데이터 마이닝이라고 한다.
 
 

ML이 뛰어난 분야
  • 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제
  • 전통적인 방식으로는 해결 방법이 없는 복잡한 문제
  • 유동적인 환경
  • 복잡한 문제와 대량의 데이터에서 통찰 얻기

 

ML 활용 사례
  • 생산 라인에서 제품 이미지를 분석한 후 자동 분류
  • 뇌를 스캔하여 종양 진단
  • 자동 뉴스 기사 분류
  • 챗봇 혹은 개인 비서 시스템
  • 음성 명령에 반응하는 앱
  • 신용 카드 부정 거래 감지하기
  • 고차원의 복잡한 데이터셋을 명확하고 의미있는 그래프로 표현하기 
  • 과거 구매 이력을 기반으로 고객이 관심을 가질 수 있는 상품 추천

 

ML 종류
  • 사람의 감독하에 훈련하는 것인지 그렇지 않은 것인지
    • 지도 학습 : 훈련 데이터에 레이블 혹은 타겟이라는 정답이 제공되며 컴퓨터는 이를 기반으로 입출력 사이의 관계를 학습한다. 즉 분류가 전형적인 지도 학습 작업이다. 또한 예측 변수라고 부르는 특성을 사용해 중고차 가격 같은 타깃 수치를 예측하는 것이다. 회귀라고 불리기도 한다.
      예를 들면 개와 고양이를 구분할 때 각 이미지에 대해 개인지 고양이인지에 대한 레이블(입력 데이터에 대한 정답)이 필요
    • 비지도 학습 : 레이블 없이 입력 데이터만 제공한다. 이 때 모델은 데이터 패턴 혹은 구조를 발견하거나 클러스터(유사한 특성을 가진 데이터 포인트들의 그룹을 나타냄)를 형성하는 등의 작업을 수행함. 즉 시각화 알고리즘이 비지도 학습의 좋은 예이다. 비슷한 예시로 차원 축소 개념이 있다.
      또한 이상치 탐지에 용이하며 비슷한 작업으로 특이치 탐지가 있다. 
      예를 들어 고객들의 구매 이력을 비지도 학습으로 분석하여 유사 구매 패턴을 찾을 수 있음
    • 준지도 학습 : 일부 데이터는 레이블이 있고 나머지는 레이블이 없는 상태에서 모델을 학습시킴
      이런 경우에도 레이블 없는 데이터를 활용해 더 나은 일반화 성능을 얻을 수 있다.
    • 강화 학습 : 행동 선택문제를 주로 다루며 시행착오를 통해 최적의 행동을 학습하고 보상을 최대화 하려는 전략을 개발하는 방식이다.
      학습 시스템을 에이전트라고 부르며 환경을 관찰하여 행동을 실행하고 그 결과로 보상 혹은 부정적인 보상에 해당하는 벌점을 받는다. 시간이 지나며 가장 큰 보상을 얻기 위해 정책이라고 부르는 최상의 전략을 스스로 학습한다. 정책은 주어진 상황에서 에이전트가 어떤 행동을 해야할지 정의한다.
      예시로 보행 로봇을 만들기 위해 강화 학습 알고리즘을 많이 사용한다.
  • 실시간으로 점진적인 학습을 하는지 아닌지
    • 온라인 학습 : 순차적으로 데이터가 한개 혹은 미니배치라고 부르는 작은 묶음 단위로 도착하며 모델이 점진적으로 학습되는 방식이다. 매 학습 단계가 빠르고 비용이 적게 든다. 배치 학습에 비해 상대적으로 좋아보일 수 있는데 온라인 학습에서 가장 중요한 파라미터는 변화하는 데이터에 얼마나 빠르게 적응할 것인지인데 이것을 학습률이라고 한다. 학습률이 높으면 빨리 적응하지만 이전 데이터를 금방 잊어버리며 학습률이 낮다면 느리게 학습되지만 새로운 데이터에 있는 잡음이나 대표성 없는 데이터 포인트에 덜 민감해진다.
      또한 시스템에 나쁜 데이터가 주입되었을 때 시스템 성능이 점진적으로 감소한다는 것을 주의해야한다.
      데이터가 도착할 때마다 모델이 업데이트 되므로 실시간 예측 혹은 변화에 빠르게 적응해야 하는 상황에 유용
    • 배치 학습 : 전체 훈련 데이터를 한 번에 모아서 모델을 학습 시키는 방식이다. 계산량이 많을 수 있지만 한번의 학습과정으로 모델을 업데이트 할 수 있다. 보통 시간과 자원을 많이 소모하므로 오프라인에서 수행되는데 시스템 훈련 후 제품 시스템에 적용하면 더이상의 학습 없이 실행된다. 즉 학습한 것을 단지 적용만 하기에 이를 오프라인 학습이라고 한다.
  • 단순하게 알고 있는 데이터 포인트와 새 데이터를 비교하는 것인지 아니면 과학자들이 하는 것처럼 훈련 데이터셋에서 패턴을 발견하여 예측 모델을 만드는지
    •  사례 기반 학습 : 단순히 알려진 데이터 포인트와 새 데이터 포인트를 비교해 유사성을 판단한 후 예측하는 방식이다.
      예를 들어 사용자가 스팸이라고 지정한 메일과 동일한 메일을 앞으로 스팸으로 분류한다. 두 메일간 간단한 유사도 측정을 통해 판단한다.
    • 모델 기반 학습 : 훈련 데이터셋에서 패턴을 발견하고 이를 기반으로 예측 모델을 만드는 방식이다. 이 모델을 새로운 입력 데이터에 대해 예측을 수행할 수 있다. 
      예시로 돈이 사람을 행복하게 만드는지 알아본다고 가정하자. 결과적으로 보면 삶의 만족도는 국가의 1인당 GDP가 증가할수록 선형으로 같이 올라간다. 그러므로 1인당 GDP의 선형 함수로 삶의 만족도를 모델링 한다면?

'ML' 카테고리의 다른 글

M1 맥북 GPU에서 tensor flow 실행하는 방법  (0) 2023.09.06