본문 바로가기

3학년/심층학습

[심층학습 2주차] 머신러닝의 기초 정리

 

 

[학습 목표]

  • 머신러닝과 전통적인 프로그래밍의 차이를 이해한다
  • 머신러닝의 과정을 이해한다
  • 머신러닝의 성능 측정 척도를 살펴본다

 

1. 머신러닝과 전통적인 프로그래밍과의 차이점

  • 전통적인 접근 방식:  원하는 절차를 "프로그래밍"하는 것.  즉 인간이 프로그램에게 적절한
    문제 해결 알고리즘(구체적인 명령어)를 만들어서 건네주어야 한다.
  • 머신러닝: 많은  수의 동물 사진을 머신러닝 시스템에 제공하고, 어떤 사진이 강아지인지만 알려준다.
    이런 식으로 훈련이 진행되면 머신러닝 시스템이 스스로 사진에서 강아지를 인식할 수 있다.

1-1. 강아지  구별 문제

  • 강아지와 고양이, 북극여우, 늑대 중 강아지를 구별하는 규칙을 만들 때 문제 발생
    - 털이 복실하고, 귀가 세모 모양인 것만으로는 넷을 구별할 수 없다.
    • 규칙사항의 단점: 예외 발생 시 어떻게 해야할 지 알 수 없다.

2. 머신러닝 방법

  1. 학습 자료는 인간이 만들어주어야한다. (Data Labeling or Data Annotation(주석)) 데이터 확보
    • AI가 스스로 학습 자료를 수집해서 스스로 학습할 수는 없음
    • 이건 강아지, 이거는 강아지가 아님. 이라고 말해주는 것. data labeling
  2. 머신러닝 시스템이 학습하도록 프로그램을 작성해야 함 (Machin Learning Programming
    • 프로그램은 인간이  작성. 앞으로 ai  엔지니어로서 해야할 일.

3.  전통적인 프로그래밍과 머신러닝을 비교

  • 머신러닝 특징
    • 인간이 직접 규칙을 만들어서 주지 않음
    • 머신러닝 알고리즘이 스스로 규칙을 발견 해 내도록 설계

  • 전통적 프로그래밍 예시:  바나나 vs 사과 판별기
    • 입력 데이터 (Data):  색상, 경도, 모양 (사람이 입력)
    • 입력 규칙 (Rules): 노랗고, 무르고, 길면 or 붉고, 딱딱하고, 둥글면  (알고리즘)
    • 출력 해답 (Answers): 바나나 or 사과
  • 머신러닝의 예시:  바나나 vs 사과 판별기 (딥러닝도 동일하다)  
    • 입력  데이터 (Data):  색상, 경도, 모양
    • 입력 해답 (Answers): 바나나 or 사과
    • 출력 규칙 (Rules): 노랗고, 무르고, 길면 or 붉고, 딱딱하고, 둥글면
    • 딥러닝: 신경망
      머신러닝: 여러 모델

4. 머신러닝

  • 머신러닝은 입력 (x)을 받아서 출력 (y)를 구할 수 있는 f(x)를 학습한다고 생각할 수 있다. (함수 근사)
  • 분류의 문제라면, 함수의 출력값은 해당 클래스로 분류될 확률이 된다.

머신러닝 (machine learning) == 함수 근사 (function approximation)

5. 머신러닝의 종류

 

  • 딥러닝: 무거움
    머신러닝: 가벼움
  • 지도 학습/비지도 학습/강화 학습의 차이
    1. 지도 학습 (Supervised  Learning)
      • 입력 데이터의 답을 가지고 있는 경우
      • 주어진 예제(샘플)과 정답(레이블)을 제공받는다
      • 일반적인 규칙(함수, 패턴)을 학습하는 것
    2. 비지도 학습 (Unsupervised Learning)
      • 답지가 없는 경우
      • 외부에서 정답(레이블)이 주어지지 않고 학습 알고리즘이 스스로 입력 데이터에서
        어떠한 패턴을 발견하는 학습
    3. 강화 학습 (reinforcement Learning) (간단히 설명)
      • 보상 및 처벌의 형태로 학습 데이터가 주어진다.
      • 동적인 환경에서 프로그램의 행동에 대한 피드백만 제공됨.
      • 알파고 느낌
  • 지도학습
    • 회귀:  입력 데이터를 원하면 결과값을 줌 (어떠한 값이 나옴)
    • 분류:  분류도 회귀처럼 다룰 수  있음 (분류를 함)

 

  • 회귀(regression)
    주어진 입력-출력(답) 쌍을 학습한 후에 새로운 입력값이 들어왔을 때, 합리적인 출력값을 예측하는 것.
    • 입력(x)값과 출력(답)(y)이 주어질 때, 입력에서 출력으로의 매핑 함수를 학습하는 것이라 할 수 있다.
    • f(x)의 값이 y가 될 수 있도록 (최대한 가깝도록) 학습하는 것 (나중에는 전략적으로)
    • 회귀에서는 입력과 출력이 모두 실수이다.
  • 분류
    앞에 나왔던 식 y = f(x)에서 출력 y가 이산적(discrete)인 경우에 이것을 분류 문제(또는 인식 문제)라고 부른다.
    • 분류에서는 입력을 2개 이상의 클래스(분류)로 나누는 것
    • 사진을 보고 강아지, 고양이로 분류하는 것도 분류 문제이다.
    •  

  • 분류 예시
    • 많은 과일로 채워진 과일 바구니를 보고, 프로그램이 바나나, 오렌지와 같은 올바른 레이블을 예측
    • 크기, 색상, 모양 = 입력 특징값 (feature)
    • 과일 이름 = 출력값 (답지, 레이블(label))

  • 비지도 학습
    • 비지도 학습 (unsupervised Learning)은 "교사"없이 컴퓨터가 스스로 입력들을 분류함
    • 입력 데이터는 있으나 답이 없음
    • 입력 x에 일대일로 대응하는 레이블 y가 주어지지 않는 것. (supervise가 없다)
    • 데이터들의 상관도를 분석하여 유사한 데이터를 모을 수는 있다.
    • 데이터의 유사도를 성능이라고 했을 때,
      학습이 진행되면 성능이 높아지는 방향으로 그룹이 생기는 것을 알 수 있다.
    • 성능을 나타낼 지표만 있으면 답이 없어도 가능하다.
      즉 정답이 없기 때문에 답을 대신해 성능이 될 기준이 필요하다.

 

6.  머신러닝의 과정 

  • Machin Learning  Programming은 아래의 순서로 진행되는 프로그램을 작성하는 일임
  • 지도학습에 초점을 둬서 수업함 
  • 머신러닝의 과정
    1. 학습 데이터 모으기
    2. 학습 데이터 정제하기 (훈련데이터와 테스트 데이터로. 훈련 데이터 양> 학습 데이터 양)
    3. 모델 학습하기 (Train, Traning)(모델 훈련)
    4. 평가 (Test, Testing, Inference)
    5. 예측

7. 머신러닝의 예

  • 모델(model): 음료수가 콜라인지 주스인지를 판별하는 시스템을 만들어달라고 요청
  • 훈련(train): 훈련이라는 과정을 통해 모델이 생성

 

8. 데이터 수집 (1번 단계)

  • 데이터만 보고도 지도학습인지 비지도 학습인지 구분할 수 있어야 한다.

지도 학습 데이터
비지도 학습 데이터

9. 훈련 데이터와 테스트 데이터 (2번 단계)

  • 머신러닝에는 항상 훈련 데이터 (Training Data)와 테스트 데이터 (Testing Data)가 있어야 한다. 
    (서로 다른 데이터야 함)-> 보편타당하게 적용된다. (정석 방법을 알아야만)
  • 훈련 데이터는 연습문제, 테스트 데이터느 ㄴ시험 문제
  • 테스트 데이터로 성능을 평가함 (훈련 결과에 대한 최종 성능)
  • 왜 이렇게?
    = 훈련데이터로 세상의 모든 데이터를 대표할 수 없기 때문에
    = Training과 Testing 단계로 구분하고, 서로 다른 데이터를 사용함으로써, 일반화 능력을 검증할 수 있다.
       (훈련되지 않았어도 어느정도 가능하다.)

10.  모델 선택 (3-1 번 단계)

  • 다음 단계는 머신러닝 모델을 선택하는 것이다.
  • 많은 연구자들이 수년에 걸쳐 만든 많은 모델 (훈련 대상)이 있따
  • 여기서는 간단한 선형 모델 사용.

 

11. 선형 모델

12. 훈련 (Training) (3-2번 단계)

  • 맨 처음에는 W와 b를 임의의 값을 초기화하고 입력값으로 출력을 예측해본다.
  • 이 출력값을 정확한 값과 비교하여 더 정확한 예측을 갖도록 W 및 b의 값을 조정 
    -> 성능이 높아지는 방향
  • "더 정확한 예측"을 판별할 값이 필요함, 보통 정답과의 비교를 통해서 구함
    (ex. 오답의 개수가 적거나 정답의 개수가 많거나)

13. 평가 (Testing) (4번 단계)

  • 학습이 완료되면 모델을 평가하여 모델이 좋은지 나쁜지를 확인해야 한다.
  • 테스트 데이터 사용
  • 일반적인 훈련 데이터와 테스트 데이터의 비율은 80:20 또는 70:30이다.
  • 영어로 Testing 또는 Inference의 용어를 사용
  • 아까 사용하지 않았던 Test Data를 사용한다. 

 

14. 예측 (=러닝을 하는 이유) (5번 단계)

  • 훈련 & 평가를 마치고 나면 성능을 알 수 있는 함수 f(x) (ex. 코로나 자가진단 테스트기)가 구해진다.
    : 보통 여기까지가 개발자가 하는 일
  • 예를 들어서 색상이 600mm이고 산성도가 1.5인 음료가 무엇인지를 머신러닝 시스템에 물어볼 수 있다
  • 머신러닝 시스템은 훈련된 대로 색상과 산성도를 고려하여 주어진 음료가 콜라인지 주스인지 예측할 수 있다.

 

15. 머신러닝 알고리즘의 성능평가