1. 학습 (Learning)
ㅇ 지속적인 경험이나 훈련의 결과로 생기는 행동 변화
- 자기의 지식 기반을 확장시킬 수 있음
※ `경험(Experience)`,`훈련(Training)`,`학습(Learing)`의 비교
- 경험은, 실제 겪어보고 단편 지식들을 얻게되는 것
- 훈련은, 반복을 통해 동작/행동을 할 수 있게되는 것
- 학습은, 알고 깨달아 지식의 확장이 가능하게되는 것
2. 기계 학습 (Machine Learning) 이란?
ㅇ 일반 정의
- 경험적 학습으로 지식과 성능을 향상시키는 알고리즘 및 시스템의 구축
. 데이터로부터 학습할 수 있는 시스템을 만드는 것
ㅇ 결국, 인간의 학습 능력을, 기계를 통해, 구현하는 것
- 외부 환경 정보를 이용하여, 시스템 내부에 지식을 저장하고 형성시키는 과정
. 기계 스스로 학습을 통해 지식의 체계적인 수집,축적,구조화시키는 과정
ㅇ 주요 응용
- 언어 처리, 영상 처리 등
3. 기계학습의 구현
ㅇ 구현 목표
- 데이터들로부터, 규칙,지식,알고리즘,프로그램 등을 자동으로 추출
ㅇ 구현 핵심
- 데이터를 보고, 미리 정해지지 않은 패턴을 추리해내도록 하는 것
4. 기계학습에서, 시스템 구현 (문제 해결) 과정
ㅇ 모델 정하기 (모델링)
- 데이터에 대한 관점과 기대되는 바에 대한 수학적 모델링
. 데이터 패턴을 추출하여, 이로부터 굳어진 가정(믿음)에 의해,
. 생성 가능한 함수들의 집합을 나타내는 꼴을 정하는 것
. 어떤 모델을 쓸 것인지를 정하는 것
ㅇ 모델 수식화 (손실함수 산정)
- 데이터를 얼마나 바르게 표현했는지를 수학적으로 표현해내는 것
. 例) 손실함수 or 비용함수/목적함수 (벗어나는 정도), 우도 (들어맞는 정도) 등
ㅇ 모델 학습하기 (최적화)
- 정해진 모델이 표현하는 함수 집합 중 가장 데이터에 적합한 함수를 고르는 과정
. 손실함수의 결과값을 최소화하려고 하는 등
. 例) 경사하강법 등
ㅇ 모델 평가 (일반화)
- 과적합 방지 등
5. 기계학습에서, `학습법 (학습 시나리오)`의 구분
※ (학습을 위한 `정답 제공` 및 `피드백 제공` 유무에 따른 구분)
ㅇ 지도 학습 (Supervised Learning) : 미지의 값 예측
- 문제 및 정답의 쌍을 주고, 이를 통해 일반화 능력을 키우는 방식
. 입력 및 이에 대해 기대되는 출력을 학습 데이터로 제시하고, (입출력 데이터 쌍 필요)
. 기대되는 출력과 같아지도록 (예측토록),
. 시스템을 변화시키는 과정
- 문제 유형
. (연속적) : 회귀 문제
. (이산적) : 분류, 랭킹/추천 문제
- 학습 알고리즘 例
. 선형 회귀, 로지스틱 회귀, 정규화, SVM 등
* 단, 과적합 방지 필요 (일반화 성능 고려)
. 학습 데이터에서 만 과적합(Overfitting) 됨을 방지하기 위해,
. 학습 데이터(학습용)와 테스트 데이터(검증용)를 구분하여, 추정과 검증을 구분토록 됨
ㅇ 비 지도 학습/자율 학습 (Unsupervised Learning) : 패턴 추출
- 정답이 없는 상태에서 모델을 구축하는 것
- 입력 데이터 집합에 내재하는 숨은 구조/성질을 찾는 과정 (패턴 추출)
- 문제 유형
. 군집화, 이상 검출, 토픽 모델링, 밀도(데이터 분포) 추정, 차원 축소 등
- 학습 알고리즘 例
. 주성분 분석 등
ㅇ 강화 학습 (Reinforcement Learning) : 상호작용에 의한 시스템 구축
- 평가 후 보상을 통해 학습
. 장기적인 이득을 최대화시킨다는 원칙을 갖고,
. 환경과의 계속된 상호작용(선택과 피드백의 반복)에 의해,
. 다음 행동을 결정하는 시스템을 구축
- 즉, 일련의 시행착오를 통해, 다음 행동을 정하는 알고리즘의 학습
6. 기계학습에서, `접근법 (학습 모델)`의 구분
ㅇ 통계 기반 기계학습
- 통계학적으로 대규모 데이터에 내재된 패턴을 찾아내는 학습 모델
* 크게, 빈도주의 통계법(기존)과 베이즈 통계법으로 구분 가능
ㅇ 인공 신경망 (Artificial Neutral Network,ANN)
- 인간의 뇌 구조에 착안하여 만든 학습 모델
. 적응적 학습과 병렬 처리 등이 가능함
* 딥러닝 (Deep Learning)
. 기존의 신경망 보다 훨씬 복잡하고 깊이가 깊은 심층/다층 신경망을 사용
.. 신경망을 층층히 쌓아서 문제를 해결하는 기법
. 데이터량에 의존하는 기법
.. 데이터에 대한 가정은 적으나, 다양한 패턴,경우에 유연하게 대응하는 구조를 만들어서,
.. 많은 데이터(빅데이터)를 이용하여 학습시켜, 모델의 성능을 향상시킴
ㅇ 유전 알고리즘 (Genetic Algorithm) 등