Ch 01. Deep Learning Overview
Part.2 Generalization (좋은 인공지능이란?)
- x가 주어졌을 때, y를 반환하는 함수
- y = f (x)
- 파라미터(weight parameter)란
- f 가 동작하는 방식 (x가 들어왔을 때, 어떤 y를 뱉어낼 것인가?)을 결정
- 학습이란?
- x와 y의 쌍으로 이루어진 데이터가 주어졌을 때, x로부터 y로 가는 관계를 배우는 것
- x와 y를 통해 적절한 파라미터를 찾아내는 것
- 모델이란?
- 상황에 따라 알고리즘 자체를 이르거나, 파라미터를 이룬다.
좋은 인공지능 모델은?
- 일반화(Generalization)을 잘하는 모델
- 보지 못한 (unseen) 데이터에 대해서 좋은 예측 (prediction)을 하는 모델
- 우리는 모든 경우의 수에 대해서 데이터를 모을 수 없기 때문
- 보지 못한 경우에 대해서, 모델은 좋은 판단을 내릴 수 있어야 함
기존 머신러닝의 한계
- 기존 머신러닝은 주로 선형 또는 낮은 차원의 데이터를 다루기 위해 설계되었음.
- Kernel 등을 사용하여 비선형 데이터를 다룰 수 있지만, 한계가 명확함
- 이미지, 텍스트, 음성과 같은 훨씬 더 높은 차원의 데이터들에 대해 낮은 성능을 보임
Part.3 Workflow
Our Objective
- 주어진 데이터에 대해서 결과를 내는 가상의 함수를 모사하는 함수를 만드는것
- ex) 주어진 숫자 그림을 보고 숫자 맞추기
Working Process
문제 정의
-
풀고자 하는 문제를 단계별로 나누고 simplify#하여야 한다.
- ex) 김치찌개 끓이기, 라면 끓이기
-
신경망이라는 함수에 넣기 위한 x와 결과값 y가 정의 되어야 한다.
y = f (x)
데이터 수집
- 문제 정의에 따라 정해진 x와 y
- 풀고자 하는 문제의 영역에 따라 수집 방법이 다름
- 자연어처리, 컴퓨터비전: Crawling
- 자연어분석: 실제로 수집한 데이터
- 필요에 따라서 레이블링(Labeling) 작업을 수행한다.
- 자동적으로 레이블(Label)이 y로 주어질 수도 있음
- 하지만 대부분 경우는 레이블이 따로 필요함
- 비지도학습 (Unsupervised learning)을 기대 X
데이터 전처리 및 분석
- 수집된 데이터를 신경망에 넣어주기 위한 형태로 가공하는 과정
- 입출력 값을 정제(Cleaning & Normalization)
- 이 과정에서 탐험적분석(Exploratory Data Analaysis, EDA)이 필요
- 데이터에 알맞는 알고리즘을 찾기 위함
- 자연어처리, 컴퓨터비전의 경우에는 생략되기도 함
- 영상처리(Computer Vision)의 경우, 데이터 증강(Augmentation)이 수행됨
- ex) rotation, flipping, shifting 등의 간단한 연산
알고리즘 적용
- 데이터에 대해 가설을 세우고, 해당 가설을 위한 알고리즘(모델)을 적용
평가
• 문제 정의에 따른 공정하고 올바른 평가 방법 필요 • 가설을 검증하기 위한 실험 설계 • 테스트 셋(Test set) 구성 • 너무 쉽거나 어렵다면 판별력이 떨어짐 • 실제 데이터와 가장 가깝게 구성되어야 함 • 정량적 평가(Extrinsic Evaluation)와 정성적 평가(Intrinsic Evaluation)로 나뉨
배포
- 학습과 평가가 완료된 모델 weights 파일을 배포함
- RESTful API 등을 통해 wrapping 후 배포
- 데이터 분포의 변화에 따른 모델 업데이트 및 유지/보수가 필요할 수 있음