데이터 청년 캠퍼스/머신러닝 기초 및 실습
인공지능과 머신러닝(1): 머신러닝의 개요와 데이터 학습
뚱뚜루뚱
2022. 7. 13. 02:33
개요
- 인공지능 Artifical Intelligence: 인간의 지적 능력을 컴퓨터를 통해 구현하는 기술의 총칭
- 머신러닝 Machine Learning: 입력된 데이터를 기반으로 컴퓨터가 스스로 학습하여 인공지능의 성능을 향상시키는 기술의 방법 (회귀분석, SVM, 결정트리, 군집화)
- 딥러닝 Deep Learning: 인간의 뉴런과 비슷한 인공신경망 방식으로 컴퓨터가 스스로 학습하고 문제를 해결하는 방법 (CNN, RNN, NN)
인공지능의 역사
- 퍼셉트론(프랑크 로젠블라트, 1957): 다수의 입력을 받아 하나의 결과를 내보내는 알고리즘
- 퍼셉트론으로는 XOR 문제를 해결할 수 없음(마빈 민스키, 1969)
- 다층 퍼셉트론(P.J.Werbos, 1981): 퍼셉트론을 여러 층으로 구성하고 역전파 Back Propagation하여 XOR 문제 해결
- 결정트리(Decision Tree, 1986)
- SVM(Support Vector Machine, 1995)
- 앙상블(AdaBoost, Gradient Boosting 1997, Random Forest 2001, ...)
- ANI(Artificial Narrow Intelligence): 특정 업무를 잘 수행할 수 있는 인공지능
- AGI(Artificial General Intelligence): 여러 문제를 복합적으로 잘 수행할 수 있는 인공지능
- ASI(Artificial Super Intelligence): 모든 면에서 사람보다 뛰어난 인공지능
머신러닝의 정의
머신 러닝은 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야이다
- Arthur Samuel, 1959
어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다
- Tom Mitchell, 1997
프로그래밍 방식의 차이점
- 일반 프로그램: 사람이 주어진 문제를 풀기 위한 알고리즘을 설계하고 구현
- 머신러닝 프로그램: 컴퓨터에게 머신러닝 알고리즘과 데이터를 입력하면, 컴퓨터가 입력데이터에 맞는 정답을 찾는 알고리즘 생성
머신러닝의 종류
- 지도학습: Label이 있는 Training Data Set을 이용하여 문제와 정답을 모두 알려주고 학습. 레이블 중 하나를 예측하는 분류 Classification와 연속된 값을 예측하는 회귀 Regression가 있다.
- 비지도학습: Label이 없는 Training Data Set을 이용하여 정답을 알려주지 않고 학습. 입력된 데이터들이 어떤 형태로 그룹을 형성하는지 파악하는 분류 Classification과 군집 Clustering이 있다.
- 강화학습: 상과 벌이라는 보상을 통해 보상을 최대화하는 방향으로 행위를 강화하는 학습. Agent는 환경으로부터 상태를 관측하고 이에 따른 적절한 행동을 하면 이 행동을 기준으로 환경으로부터 보상을 받는다. 관측-행동-보상의 상호작용 과정, 경험 Experience을 반복하면서 보상을 최대화한다. 시행착오를 거쳐 학습해 사람의 학습과정과 유사하다.
머신러닝 알고리즘들
- Deep Learning
- Ensemble
- Neural Networks
- Regularization
- Rule System
- Regression
- Bayesian
- Decision Tree
- Dimensionality Reduction
- Instance Based
- Clustering
머신러닝의 과정
- 머신러닝 모델 개발 단계: 데이터 수집 - 데이터 가공 - 데이터 학습[데이터 학습 방법 선택 - 매개변수 조정 - 머신러닝 모델 학습] - 머신러닝 모델 개발
- 머신러닝 모델 활용 단계: 실제 데이터를 이요한 머신러닝 모델 실행 - 분류/결과값/예측결과 도출
머신러닝이 잘 동작할 수 있는 조건
- 멋진 알고리즘
- 많은 데이터
- 좋은 컴퓨터: 컴퓨터의 사양 증가=Scale Up, 컴퓨터의 개수 증가=Scale Out
머신러닝의 주요 도전 과제
- 충분하지 않은 양의 훈련 데이터: 충분한 데이터가 주어지면 복잡한 자연어 중의성이 해소 가능하다(Michele Banko & Eric Brill, 2001)
- 대표성 없는 데이터: 예) 1936 미국 대선
- 낮은 품질의 데이터: Garbage in Garbage out | Error, Outlier, Noise - 데이터 정제(전처리) / 특성 공학 - 데이터 품질 향상
- 과대적합 Overfitting: 학습 데이터셋을 지나치게 정교하게 학습하여 모델의 일반화 성능이 떨어지게 되는 문제. 머신러닝의 목적인 미래의 데이터 예측 정확도 향상에 어긋난다. 이를 해결하기 위해 (1) 고품질의 데이터를 다량 확보하고, (2) 모델 개발 시 자체 검증 과정을 도힙하며(교차 검증), (3) 파라미터 규제화를 통해 모델의 복잡도를 낮추어 모델을 최적화하고, (4) 모델을 변경하는 등의 방법을 시도할 수 있다.
No Free Lunch 이론
어떤 알고리즘도 모든 문제에 대해 다른 알고리즘보다 항상 좋을 수 없다 (D.Wolperts, 1996)
배치학습
- 가용한 데이터를 모두 사용하여 훈련
- 시간과 자원을 많이 소모해 보통 오프라인에서 수행
- 기훈련된 학습 결과를 시스템에 적용만 하고 업데이트 하지 않는다
온라인 학습
- 데이터를 한 개씩 또는 미니배치 단위로 입력받아 훈련
- 매 학습 단게가 빠르고 비용이 적게 든다
데이터 수집
- Open Data: 공공의 목적으로 누구나 접근 가능한 데이터
- Crawling: 웹페이지의 내용을 해석하여 원하는 정보 취득
- Automated Data: 자체 서비스로부터 생성되는 사용자 로그, 센서 데이터 등
애플리케이션 로그 수집
- 로그 데이터 포맷 정의: 수집할 데이터 형태를 결정하는 단계. 데이터 확보를 위해 가장 중요한 단계로 활용가능한 모든 정보를 수집하는 것이 좋다
- 코드 수정: 정해진 포맷에 맞게 로그가 수집되도록 애플리케이션 코드 수정
- 검증 및 배포
- 사용자 로그 수집
데이터 저장
분산저장소 (HDFS 등)
대부분 원본 데이터를 바로 분석하지 않고 분석 목적에 맞게 가공된 데이터를 미리 생성해놓는다. 원본 데이터를 시간 단위, 지역 단위 등로 집계한다. 원본 데이터가 수집될 때마다 주기적으로 배치 작업을 통해 수행한다.
모델 평가 - 에러의 종류
- True Positive: 참을 참으로 판단
- False Negative (Type 2 Error): 거짓을 참으로 판단
- False Positive (Type 1 Error): 참을 거짓으로 판단
- True Negative: 거짓을 거짓으로 판단
FN이 중요한 분야에서는 재현율을, FP가 중요한 분야에서는 정밀도를 고려한다
- 정확도 Accuracy = (TP + TN) / (TP + FN + FP + TN) 전체 정답률
- 정밀도 Precision = TP / (TP + FP) 참이라고 판정한 것 중 진짜 참인 데이터 비율
- 재현율 Recall = TP / (TP + FN) 진짜 참인 데이터를 참이라고 판정한 비율
둘 다 고려해야하는 경우 f1 score를 이용한다
ROC Curve (Receiver Operation Characteristics Curve): 이진 분류의 예측 성능 측정에 활용
AUC (Area Under Curve): ROC Curve 아래쪽 면적으로 값이 클수록 예측 성능이 좋음을 의미한다