-/딥러닝
[딥러닝] 03. 머신러닝 기초
염두리안
2022. 10. 7. 03:26
728x90
반응형
01. 머신러닝이란?
- 머신러닝(machine learning) : 인공지능의 한 분야, 컴퓨터에 학습 기능을 부여하기 위한 연구 분야... 머신러닝이 가능하다면 우리가 명시적으로 프로그램을 작성하지 않아도, 컴퓨터 스스로 데이터에서 학습해 적절한 결정 내릴 수 있음
- 머신러닝과 전통적인 프로그래밍의 차이점
- 전통적인 프로그래밍 : 인간이 컴퓨터에게 적절한 문제해결 알고리즘을 만들어 줘야 함.
- 단점) (강아지와 고양이를 구별하는 문제에서) 인간에겐 쉬운 작업이지만, 알고리즘으로 구성하기에 어려움
- 머신러닝 : 인식하는 프로그램을 작성하지 않음... 어떤 사진이 강아지인지만 알려주면 되고, 이런 식으로 훈련이 진행되면 스스로 사진에서 강아지 인식 가능(스스로 규칙을 발견하도록 설계)
- 예시(강아지와 고양이 판별)
- 전통적인 프로그래밍 : 인간이 컴퓨터에게 적절한 문제해결 알고리즘을 만들어 줘야 함.
전통적인 프로그래밍 | 머신러닝 | |
입력 데이터(Data) | 생김새, 무늬, 기타 특징 | 생김새, 무늬, 기타 특징 |
입력 규칙(Rules) | 무늬가 비교적 단조롭고, 귀가 크면 or 무늬가 비교적 화려하고, 귀가 작으면(서있으면) | 강아지 or 고양이 (규칙X,,, 해답을 넣음) |
출력 해답(Answers) | 강아지 or 고양이 | 무늬가 비교적 단조롭고, 귀가 크면 or 무늬가 비교적 화려하고, 귀가 작으면(서있으면) |
- 머신러닝의 역사
- 1957년:퍼셉트론(Perceptron) → 1985년:역전파 알고리즘 → 1995년:SVM → 1998년:필기체 인식 → 2012:ImageNet에서 우승
- 머신러닝의 종류
- 지도학습(Supervised Learning) : "교사"에 의해 주어진 예제(샘플)과 정답(레이블)을 제공 받음... 지도학습의 목표는 입력을 출력에 매핑하는 일반적인 규칙(함수, 패턴)을 학습하는 것
- 예) 강아지와 고양이를 구분하는 문제 - 강아지와 고양이 사진 제공 후 어떤 사진이 강아지고, 고양인지 알려주는 것
- 비지도학습(Unsuperviesd Learning) : 외부에서 정답(레이블)이 주어지지 않고 학습 알고리즘이 스스로 입력 데이터에서 어떤 패턴을 발견하는 학습
- 예) 이름이 붙어있지 않은 과일을 분류하는 문제 - 이때 우리는 과일의 모양, 색상, 크기 등 특징을 이용해 유사 과일 분류 가능
- 강화학습(reinforcement Learning) : 보상 및 처벌의 형태로 학습 데이터가 주어짐... 주로 차량 운전이나 상대방과의 경기 같은 동적인 환경에서 프로그램의 행동에 대한 피드백만 제공되는 경우에 사용
- 예) 바둑에서 어떤 수를 두어 승리했다면 보상이 주어지는 식 => 보상과 처벌을 통해 학습이 이루어짐.
- 지도학습(Supervised Learning) : "교사"에 의해 주어진 예제(샘플)과 정답(레이블)을 제공 받음... 지도학습의 목표는 입력을 출력에 매핑하는 일반적인 규칙(함수, 패턴)을 학습하는 것
2. 지도학습
- 지도학습? 정답을 알려주는 교사가 존재하는 학습 방법
- 회귀(regression) : 주어진 입력-출력 쌍을 학습한 후에 새로운 입력값이 들어왔을 때, 합리적인 출력값을 예측하는 것... 이때 학습시키는 데이터는 이산적이 아니라 연속적임(입/출력이 모두 실수) / 연속적인 값을 예측... ex) 운동을 하루에 5시간 한다면 그 사람의 예측 수명은?
- 분류(classification) : 입력을 두 개 이상의 레이블(유형)로 분할하는 것으로 학습 시 우리는 레이블을 제공해야 힘 / 학습이 끝나면 학습자가 한번도 보지 못한 입력을 이들 레이블 중의 하나로 분류하는 시스템 / ex) 운동시간을 입력했을 때 '건강함', '질병상태'로 분류 가능
- 회귀 : 주어진 입력-출력(답) 쌍을 학습한 후 새로운 입력값이 들어왔을 때, 합리적인 출력값을 예측 / 입력과 출력이 모두 실수
y = f(x) |
- 분류 : y = f(x)에서 출력 y가 이산적인 경우에 이것을 분류문제라고 함... / 입력을 2개 이상의 클래스로 나누는 것 / 알고리즘으론 신경망, kNN, SVM, 의사 결정 트리 등이 있음.
- (+) 비지도학습 : 교사 없이 컴퓨터가 스스로 입력들을 분류하는 것... 입력 x에 일대일로 대응하는 레이블 y가 주어지지 않는 것 / 데이터들의 상관도를 분석해 유사한 데이터들을 모을 수 있음.
3. 머신러닝의 과정
- 학습데이터 모으기 → 학습 데이터 정제하기 → 모델 학습하기(Training) → 평가(Testing) → 예측
- 주어진 음료가 어떤 음룐지 자동으로 판별하는 시스템을 만들어 달라는 요청을 받았다고 가정하자. 머신러닝에서 이러한 시스템을 모델(model)이라고 하며, 이 모델은 학습(train)을 통해 생성 됨.
- 데이터 수집
- 수집되는 데이터의 품질과 양이 예측 모델이 얼마나 좋은지 결정하기에 매우 중요한 단계
- 훈련 데이터와 테스트 데이터
- 머신러닝에는 항상 훈련데이터와 테스트데이터가 있어야 함.
- 훈련데이터는 연습문제, 테스트데이터는 시험문제
- 때때로 우리가 수집한 데이터는 중복수정, 정규화, 오류 수정 등이 필요한 경우가 많은데, 이는 모두 데이터 준비 단계에서 발생함.
- 모델 선택
- 척척박사님께서 수년에 걸쳐 마든 많은 머신러닝 모델이 있음.
- 데이터 타입에 따라 알맞는 모델 선택하기
- 학습
- 예를 들어, 선형모델을 통해 분류한다면 직선의 식은 y = m * x + b (x : 특징값, m : 직선의 기울기, b : y절편, y : 두 번째 특징값) -> 훈련에 변경할 수 있는 값은 m과 b이고, 머신러닝에서 m을 가중치(weight), b를 바이어스(bias)라고 함.
- 맨 처음에 w와 b를 임의 값으로 초기화하고 입력값으로 출력을 예측 → 출력값을 정확한 값과 비교해 더 정확한 예측을 갖도록 w와 b 값 조정
- 평가(Testing or Inference)
- 테스트데이터 사용
- 일반적으로 훈련데이터와 테스트데이터 비율은 80:20 or 70:30
- 예측
- 훈련&평가를 마치면 성능을 알고 있는 함수 f(x)가 구해짐
P. 120 ~ 129 (코드부분) 생략
6. 머신러닝 알고리즘 평가
- 정확도(accuarcy) = 올바르게 분류한 샘플의 수 / 전체 샘플 수
- (TP+TN) / (TP+FP+FN+TN)
- 혼동행렬
- T(True)는 예측=실제 / F(false)는 예측≠실제
- TP) 참이라고 예측, 맞춤
- FN) 거짓이라 예측, 틀림
- FP) 참이라고 예측, 틀림
- TN) 거짓이라 예측, 맞춤
- T(True)는 예측=실제 / F(false)는 예측≠실제
True Class | |||
Prediceted Class |
Positive | Negative | |
Positive | TP | FP | |
Negative | FN | TN |
- 민감도(sensitivity) : 질병이 있는 사람을 환자라고 올바르게 진단하는 비율
- TP / TP+FN
- 특이도 : 환자가 아닌 사람을 환자가 아니라고 올바르게 진단하는 비율
- TN / TN+FP
- 정밀도(Precision) : 병이 있다고 예측한 사람 중, 실제 병이 있는 사람의 비율
- TP / TP+FP
- 재현율(Recall) : 실제로 병이 있는 사람 중, 병이 있다고 예측한 사람의 비율
- TP / TP+FN
- => 이상적인 분류기라면 정밀도, 재현율, 정확도 모두 1이 되어야 함.
딥러닝 EXPRESS 03. 머신러닝 기초 (p.104 ~ 136)
728x90
반응형