본문 바로가기

전체 글

(150)
6장. 학습 관련 기술들 6.1 매개변수 갱신 최적화(optimization): 손실 함수의 값을 가장 작게 하는 매개변수를 찾는 과정 (1) 확률적 경사 하강법 (SGD: Stochastic Gradient Descent) loss function의 기울기 * 학습률을 빼가면서 W를 update 한다. 즉 Loss function이 기울어진 방향으로 일정 거리만큼 가는 방법. class SGD: def __init__(self, lr=0.01): self.lr = lr def update(self, params, grads): for key in params.keys(): params[key] -= self.lr * grads[key] params 매개변수들에 대해 learning rate * key에 대한 gradient만큼..
3장. Loss Functions and Optimization Loss Function loss function은 classifier의 성능이 얼마나 별로인지를 나타내는 지표로 loss function의 값이 작을 수록 classifier가 train set을 정확하게 분류함을 의미한다. 일반적으로 loss function은 각 example에 대해 f(x,W)=x*W의 예측값과 실제 정답값인 yi를 loss function으로 비교하여 평균낸 값이다. MultiClass Support Vector Machine (SVM) Loss 그 중에서도 multiclass svm의 loss function은 위와 같이 쓴다. i번째 example xi에 대해 W에 따라 어떤 class로 분류될지에 대한 score을 구할 수 있고 이를 s라고 하자. s_j는 xi가 j번째 c..
2강. Image Classification: Programming K nearest Neighbor (kNN) exercise training 과정에서 classifier은 단순히 training data를 기억할 것이다. testing 과정에서 classifier은 각각의 test 이미지를 모든 training 이미지와 비교해서 그 중가장 가까운 k개의 training 이미지의 label로 결정할 것이다. k의 값은 cross-validation 과정을 통해 결정된다. 1. code setup, import data and packages # Run some setup code for this notebook. import random import numpy as np from cs231n.data_utils import load_CIFAR10 import matpl..
2강. Image Classification image classification input 이미지를 여러 카테고리 중 하나의 label로 할당하는 것으로 컴퓨터 비전의 핵심 문제이다. 컴퓨터가 이미지를 분류하기 어려운 이유 - 카메라의 각도, 조명, 이미지의 크기에 따라 pixel이 달라짐 - 물체가 가려지거나 배경색과 비슷해지면 인식이 어려움 - 하나의 대상이 여러 모양을 가진 경우 =>좋은 image classification model은 이러한 variation에 흔들리지 않아야 한다. Data-driven approach label을 가진 training set으로 model을 학습하는 알고리즘 [input -> learning -> evaluation]의 과정이 필요하다. input: n개의 training example이 k개의 cla..
5장. 오차역전파법 1. 계산 그래프 계산 그래프 사용시 이점 복잡한 문제를 국소적으로 단순화 (국소적: 자신과 직접 관계된 작은 범위만 계산 가능) 중간 계산 결과를 모두 보관할 수 있음 역전파를 통해 미분을 효율적으로 계산함 2. 연쇄 법칙 신호 E에 노드의 국소적 미분을 곱하여 노드를 계산함으로써 역전파를 계산할 수 있다. 합성함수: 여러 함수로 구성된 함수 z라는 함수를 t를 이용하여 합성함수로 표현할 수 있다. x의 z에 대한 미분은 t를 이용하여 연쇄법칙으로 표현할 수 있다. 즉, 합성함수의 미분은 합성함수를 구성하는 각 함수의 미분의 곱으로 나타낼 수 있다. (편미분) 3. 역전파 1. 덧셈 노드의 역전파 덧셈 노드일 때 미분값이 다음과 같기 때문에 상류에서 정해진 미분값에 1을 곱하기만 하면 된다, 즉 입력값..
Gradient Boosting Gradient Boosting - gradient descent를 이용하여 boosting을 하는 방법 - 잔차(residual)을 줄여나가는 방식으로 학습을 진행한다. 1. 첫번째 model: 평균으로 예측하여 잔차 구하기 6개 example에 대해 weight의 mean은 71.2로 Residual = y - predicted y를 구해준다. 1번 example의 residual은 88-71.2=16.8이다. tree를 진행시키며 마지막 node에 residual을 쓰고, 평균을 처리한다. 이렇게 나온 residual을 train set에 그대로 적용하면 overfitting이 일어난다. - residual이 16.8이 나온 example에 대해, 다시 y값을 predict 하기 위해 이전의 pre..
Boosting & Adaboost Boosting Decision tree Bagging Boosting - 단 한 번의 sample 추출과 한 개의 model이 필요함 - sample을 복원추출 - ensemble 기법으로 여러 model을 이용함. - 분류기들이 서로 독립적이고 상호 영향을 주지 않는다고 가정 - 학습이 sequential하게 진행됨 - 이전 sample의 학습 결과가 다음 학습 결과에 영향을 줌 - Adaboost, Gradient boost가 있음. Boosting algorithm Adaboost (Adaptive Boosting) Stump: tree에서 한 번의 split만을 통해 두개의 node를 내는 classifer로 weak classifer이다. 이전 model의 예측 결과에 따라 오분류된 데이터에 ..
Bagging & Random Forest : Programming 1. import packagesimport os from os.path import join import copy import warnings warnings.filterwarnings('ignore') import numpy as np import pandas as pd import sklearn import matplotlib.pyplot as plt adult_path = join( 'adult_data.csv') column_path = join( 'adult_names.txt') adult_columns = list() for l in open(column_path): adult_columns = l.split() #adult_columns에 변수명을 리스트로 저장 2. 데이터 불러오기data..