Week02_머신러닝
※ 머신러닝은 어떤 분야에 적용될까?
→ 데이터가 있고, 환경의 변화가 있는 모든 분야에 적용된다.
→ 데이터의 패턴을 파악하여 기존에 해결하지 못했던 문제를 해결하는 것이 목적
※ 머신러닝이 적용된 대표적인 사례
→ 주차장 차량 번호판 인식
▶ 머신러닝 프로세스
→ 모델을 학습시키는 과정
▷ 현실 세계
→ 현실 세계의 문제점이 시작점
ex) 사진에 있는 동물이 새인지 강아지인지,,, 등등
▷ 데이터 수집
→ 컴퓨터를 학습시키기 위해서는 많은 양의 데이터가 필요함
1) 이미 수집된 데이터가 있는 경우
★ 데이터가 많다고 다 쓸 수 있는 것은 아니다.
2) 완전히 새로 수집해야 하는 경우
→ 한 번도 보지 못한 데이터를 얼마나 정확하게 판단할 수 있는지가 최종 목표
→ 지속적으로 데이터를 수집하는 것이 중요
※ 데이터 수집 시 고려사항
① 얼마나 많은 데이터가 필요한가?
② 어떤 특성을 포함해야 하는가?
③ 훈련 데이터가 충분히 대표성을 띄는가?
④ 데이터는 어떤 형식으로 가져올 수 있는가?
▷ 데이터 전처리
→ 모델의 성능을 평가할 수 있는 가장 중요한 단계
→ 컴퓨터에게 정확한 답을 알려주어야 함
→ 데이터 시각화와 함께 진행
※ 데이터를 그대로 특징으로 사용할 수 있는 경우
① 형식화 : 분석 목적에 맞는 적절한 데이터 형식으로 변환
② 정제 : 문제 해결에 도움이 되지 않는 데이터는 제거, 누락된 데이터 처리
③ 정규화 : 개별 특징이 동일한 숫자 범위 안에 들어가도록 변환
④ 분해 : 하나의 특징이 복잡한 여러 개념을 포함하는 경우 분리 or 선택
⑤ 결합 : 두 가지를 모두 고려했을 때 더 큰 의미를 가지는 특징은 결합
▷ 특징 추출
→ 모은 데이터를 준비하고 다듬고 정리하는 과정
★ 특징 공학
→ 머신러닝의 성공을 결정하는 핵심
1) 어떤 데이터를 얼마나 모았는가
2) 그 데이터에서 고유한 속성을 어떻게 뽑았는가
※ 특징
→ 관찰 대상에서 발견한 개별적이고 측정 가능한 경험적 속성
ex) 사진에서 동물이 강아지인지 새인지 구분하는 방법 : 날개의 유무, 날개와 털의 색상이 같은지
★ 어떤 기준, 즉 어떤 특징을 사용할지 결정하는 것이 중요
※ 특징 선택 방법
① 전진 선택 : 특징이 없는 상태에서 하나씩 추가하면서 찾는 방법
② 후진 제거 : 전체 특징에서 시작해 하나씩 제거하면서 찾는 방법
③ 차원 축소 : 정보의 양을 주 성분 특징으로 모아주는 방법
▷ 모델 구축
→ 실제로 모델을 만들고 학습시킴
★ 제대로 된 모델을 구축하기 위해서는 1) 문제가 명확해야 하고, 2) 문제에 필요한 데이터를 수집을 잘 해야 하고, 3) 적절한 처리를 거친 후에 정확한 기준을 마련해야 하고, 4) 데이터에서 기준에 해당하는 특징을 뽑아놓은 상태여야 함
1) 단일 모델 사용
- 데이터 특성에 맞는 모델을 찾는 것이 중요
- 모델링을 했다 : 선택한 모델 * 모델 매개변수 * 특징 조합 * 교차 검증 = ?
2) 다중 모델 사용
- 앙상블(ensemble) / 스태킹(stacking)
- 여러 개의 모델을 연결해 하나의 모델처럼 만들기
- 모델 판단 결과를 새로운 특징으로 사용하기
※ 데이터의 속성
1) 정적 데이터
- 일반적인 모델링
- 모델링과 테스트가 동일한 데이터
→ 대부분의 보안 위협들은 정적 데이터 방식으로 모델링
2) 시계열 데이터
- 어떻게, 언제, 얼마나 판단할지 직접 결정
- 특정 범위에서 얼마나 벗어났는지를 통해 판단하는 이상 탐지
→ 네트워크 기반의 데이터, 로그 분석 등은 시계열 데이터 방식으로 모델링
▷ 모델 평가
→ 학습이 제대로 되었는지 평가
▷ 모델 최적화
→ 원하는 성능이 안나왔을 경우 재학습하거나 옵션 조정을 통한 최적화
→ 모델 최적화는 사실상 모델 평가를 의미
→ 모델링 시점의 최고 모델 vs 운영 시점의 최고 모델
※ 모델 배치
1) Offline러닝
- 한 번 만든 모델을 영구적으로 사용
- 대부분의 모델이 해당
- 주기적으로 모델을 업데이트
2) Online러닝
- 모델을 실시간으로 업데이트 하는 방식
- 매번 학습 시마다 모델을 새롭게 생성