2. Contents
● Function Approximation: Parametric Approach
● Learning as Optimization
● When do we stop learning?
● Evaluation
● Linear Regression for Non-Linear Functions
3. 2.1 Function Approximation(함수 근사값): Parametric
Approach
❏ Expected Cost Function(기대 비용함수)
❏ Empirical Cost Function(경험적 비용 함수)
4. 2.1.1 Expected Cost Function(기대 비용 함수)
● f가 얼마나 잘 추정하는가?
○ y-hat이 출력 y로부터 얼마나 가까운지..
● y와의 차이인 D (y-hat, y)의 총합을 최소화 하는 θ를
찾는 것
● 불행히도 C(θ)는 (여러 가지 이유로) 정확하게 계산 될 수
없음
○ 그 중 가장 중요한 이유는 단순히 p 데이터가 무엇인지 알 수
없다는 것
5. 2.1.2 Empirical Cost Function(경험적 비용 함수)
● 최종 목표는 기대 비용을 최소화하는 매개 변수 집합을
찾는 것
● 데이터 분포로부터 샘플에 접근 할 수 있기 때문에 Monte
Carlo 방법을 사용하여 기대 비용 함수 C(θ)를 근사화 할 수
있음
● 경험적 비용 함수는 쉽게 계산할 수 있기 때문에, 우리는
주로 기대 비용 함수가 아닌 경험적 비용 함수로 작업 할
것임
➢ Monte Carlo : 해석적 해를 구하기 어려운 다양한 분야의
문제를 확률모형과 난수를 이용하여 솔루션을 얻는
시뮬레이션 방법
6. 2.2 Learning as Optimization(최적화 학습)
● Gradient-based Local Iterative Optimization
● Stochastic Gradient Descent
기대 비용을 최소화하는 매개 변수 집합을 찾는 과정
경험적 비용 함수 C를 입력 θ에 대해 최소화해야 함.
7. 2.2.1 Gradient-based Local Iterative Optimization
● 함수의 기울기 ∇C가 줄어들어 0이 되는 방향으로 진행
● 학습률이라고 불리는, η는 GD 알고리즘의 가장 중요한
하이퍼 매개 변수 중 하나로 너무 크면 발산(over-shoot)
하게 되고, 너무 작으면 최소값을 찾지 못하고 학습을
종료하거나 너무 오래 걸리게 됨
8. 2.2.2 Stochastic Gradient Descent(확률 적 경사 하강)
● 훈련 세트의 크기가 커지면서 C 및 ∇C를 계산하는 것이
점점 더 많은 계산이 요구됨. 각 GD 단계에 관련된이
엄청난 계산 비용으로 개선하기 위해 SGD 알고리즘이
생김
● SGD는 모든 데이터의 gradient를 평균내어 gradient
update를 하는 대신 ( ‘full batch’), 무작위 선택된 일부의
데이터로 ‘mini batch’를 형성하여 한 batch에 대한
gradient만을 계산하여 전체 parameter를 update하기
때문에 학습시간에 효율이 높음
9. 2.2.2 Mini-batch
● TRAIN_SIZE:60000
● EPOCH_NUM=30
○ 학습용 데이터 전체를 한 번
사용했을 때 = 1 EPOCH
TRAIN_SIZE = x_train.shape[0]
BATCH_SIZE = 100 # 미니배치 크기
learning_rate = 0.1
EPOCH_NUM = 30
ITERS_NUM = EPOCH_NUM * int(TRAIN_SIZE / BATCH_SIZE)
print("TRAIN_SIZE:" + str(TRAIN_SIZE))
print("EPOCH_NUM:" + str(EPOCH_NUM))
print("BATCH_SIZE:" + str(BATCH_SIZE))
print("ITERS_NUM:" + str(ITERS_NUM))
for i in range(ITERS_NUM):
# 미니배치 획득
batch_mask = np.random.choice(TRAIN_SIZE, BATCH_SIZE)
x_batch = x_train[batch_mask]
t_batch = t_train[batch_mask]
...
Batch size ITERS_NUM Elapsed time training log
1 1800000 real 19m19.448s
user 40m4.232s
sys 77m0.652s
train acc, test acc | 0.0993, 0.1032
train acc, test acc | 0.9542, 0.9507
…
train acc, test acc | 0.99195, 0.9685
5 360000 real 2m52.016s
user 3m40.040s
sys 0m52.504s
train acc, test acc | 0.11043333333333333, 0.1108
train acc, test acc | 0.9443333333333334, 0.9453
…
train acc, test acc | 0.9983666666666666, 0.9749
10 180000 real 3m27.129s
user 8m41.528s
sys 13m22.132s
train acc, test acc | 0.0993, 0.1032
train acc, test acc | 0.9283333333333333, 0.9295
…
train acc, test acc | 0.9949833333333333, 0.9734
50 36000 real 1m51.819s
user 5m59.132s
sys 5m43.676s
train acc, test acc | 0.09736666666666667, 0.0982
train acc, test acc | 0.8735833333333334, 0.8783
…
train acc, test acc | 0.9770833333333333, 0.969
100 18000 real 1m49.133s
user 5m45.224s
sys 5m30.992s
train acc, test acc | 0.09035, 0.0892
train acc, test acc | 0.7869, 0.7886
…
train acc, test acc | 0.9620166666666666, 0.9573
600 3000 real 1m29.113s
user 4m40.844s
sys 4m16.912s
train acc, test acc | 0.09915, 0.1009
train acc, test acc | 0.11305, 0.1146
…
train acc, test acc | 0.9144666666666666, 0.9174
30000 60 real 1m43.637s
user 5m4.224s
sys 3m47.648s
train acc, test acc | 0.0993, 0.1032
train acc, test acc | 0.11236666666666667, 0.1135
…
train acc, test acc | 0.11236666666666667, 0.1135
10. 2.3 When do we stop learning?
● Early Stopping
● Model Selection
SGD를 사용하여 대부분의 경우 매개 변수 세트를 반복적으로
정제하여 함수를 근사화
하지만 경험적 비용 함수의 최소값이 기대 비용 함수의 최소값과
일치한다는 보장이 없음
경험적 비용 함수를 완벽하게 최소화하는 매개 변수는 우리가
실제로 신경을 쓰는 기대 비용 함수에 대한 차선의 비용 일
가능성이 높음
11. 2.3.1 Early Stopping(조기 중지)
● 조기 중지 - 모순을 피하는 방법으로 반복 최적화가 사용될 때만
적용
● 훈련 세트 (training set)와 검증 세트 (validation set)로
2세트로 나눔
● SGD (또는 GD)를 사용하여 몇 번씩 업데이트를 수행하면
유효성 검증 비용 함수는 현재 매개 변수 세트로 평가됨
● 단순성과 효율성으로 인해 초기 학습 중지 전략은 심층
학습과 일반 기계 학습에서 사실상 표준
● 명시 적으로 훈련 비용 함수를 최적화한다는 사실은이
최적화 과정에서 발견 된 매개 변수 세트가 관측 및
분석에서의 잡음을 포착 할 가능성이 있다는 것을 의미
12. 2.3.2 Model Selection-1
● 최적화 또는 학습의 전체 과정은 가설의 전체 공간 H에 대한 최선의 가설을 찾는 과정
● 회귀의 경우, 가설 공간은 n 차 다항식 함수를 포함
● 신경망의 경우 이 공간에는 레이어 수, 비선형 성 유형, 각 레이어의 숨겨진 단위 수 등으로
정의되는 가능한 모든 모델 아키텍처가 포함
● 기대 비용 함수의 정의가 주어지면, 각 가설 M에 해당 비용 CM으로 점수를매길 수 있음
● 함수 근사화의 전체 목표는 최소 기대 비용 함수 C를 가진 가설 M을 찾는 것
13. 2.3.2 Model Selection-2
● 오버 피팅 (overfitting)은 최적화 알고리즘이 기대 비용 함수의 국소 최소값을 초과하여
놓쳤다는 것을 의미하며 (경험적 비용 함수의 지역 최소값을 목표로했기 때문에) Validation
확인 비용을 기반으로 조기 정지 개념을 도입
● 전체 가설 공간 H의 작은 부분 집합 안에서 가장 좋은 가설만? 가설 공간의 또 다른 부분 집합이
기본 생성 함수 f에 더 잘 맞는 함수를 포함한다면?
14. 2.3.2 Model Selection-3
● 가설 공간의 여러 부분 집합을 시도
○ 회귀 과제의 경우 선형 함수 (H1), 2 차 (2 차 다항식) 함수 (H2) 및 사인파 함수 (H3)를 사용
○ 각 하위 집합에 대해 반복 최적화 및 조기 정지를 사용하여 가장 좋은 가설을 선택
● 가설 중 하나를 어떻게 선택해야 하는가?
● 가장 작은 검증 비용 C val (M)을 가진 것을 선택
15. 2.4 Evaluation
● 학습 된 함수 추정 f가 얼마나 근접 하는지를 알기위한 또 다른 메트릭이 필요
● 트레이닝세트를 두 개의 파티션이아니라세 개의 파티션으로분할해야 함
○ 훈련 세트 D-train, 검증 세트 D-val 및 시험 세트 D-test
● 훈련 비용 함수 C train, 검증 비용 함수 C val, 시험 비용 함수 C test를 포함
○ 이 테스트 비용 함수는 다른 가설이나 모델을 공정하게비교하는 데 사용
● 테스트 비용 측면에서 가장 효과가 있었다는 가설 선택
16. 2.5 Linear Regression for Non-Linear Functions
아래와 같은 진정한 생성 함수를 근사화하는 간단한 선형 함수로 시작
W 은 가중치 행렬이고 이 가중치 행렬은 유일한 파라미터, 즉 θ = {W}
경험적 비용 함수
경험적 비용 함수의 기울기
경험적 비용 함수를 최소화하는 최상의 W를 찾기 위해 GD 또는 SGD와 같은 반복 최적화 알고리즘을 사용
또는 Validation 세트를 사용하여 최소 Validation 검사 비용 시점에서 최적화 알고리즘을 중지
17. 2.5.1 Feature Extraction
● 왜 우리는 만족하지 못하는 걸까요?
● 첫째, 우리는 진정한 생성 함수 f가 선형 함수인지 여부를 확신하지 못함
● 둘째, 우리는 x가 주어 졌기 때문에 x가 입력을 얼마나 잘 나타내는 지 불분명
○ 예를들어, 에어 컨디셔너의 판매 예측
■ 입력x는 상점개업날짜이후의일 수
■ 출력y는 매일판매되는단위수
■ x와 y 사이의관계는선형적이지않음
● 에어컨판매량을예측하는데 가장중요한feature은 입력x에서빠지기때문
● 겨울철에판매가바닥을치고
● 여름철(5 월, 6 월 및 7 월경) 최고조
■ m (x) ∈ {1,2, ..., 12}는 x의 달이고α는 5
■ 예측성능을향상시킬수있는또 다른feature을 추가(예 요일)
18. 2.5.1 Feature Extraction
● 파라 메트릭 함수 패밀리를 선택하게 될 좋은 일련의 Feature를 추출하는 전체
프로세스를 Feature Extraction이라고합니다.
● 이 Feature Extraction은 기계 학습에서 중요한 단계이며 컴퓨터 비전과 같은 많은 응용
프로그램의 핵심 부분에 있습니다 (대표적인 예는 SIFT).
● Feature Extraction은 종종 이 함수 근사가 적용되는 도메인에 대한 많은 지식이
필요
● 컴퓨터 비전에 선형 회귀를 사용하려면 관련 지식을 사용하여 적절한 feature 세트를 추출 필요
● 도메인 지식이 충분하지 않은 경우는 적절한Feature추출 실패할 수 있음
19. SIFT(Scale Invariant Feature Transform)
● SIFT는 영상에서 코너점 등 식별이 용이한 특징점들을 선택한 후에 각 특징점을 중심으로 한 로컬 패치(local
patch)에 대해 아래 그림과 같은 특징 벡터를 추출
● SIFT는 기본적으로 특징점 주변의 로컬한 gradient 분포특성(밝기 변화의 방향 및 밝기 변화의 급격한 정도)을
표현하는 feature이다.
● SIFT를 포함한 SURF, ORB 등의 local feature들은 대상의 크기변화, 형태변화, 방향(회전)변화에 강인하면서도
구분력이 뛰어난 어찌보면 서로 상충되는 목표를 동시에 만족시키고자 개발된 것들로서 통상적으로 원래 물체의
기하학적 정보는 무시하고 특징점 단위로 혹은 코드북(code book) 단위로 매칭을 수행한다.