일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- cs231n
- install
- seq2seq
- Standford
- linux
- slideshare
- pip
- nlp
- review
- cs224n
- json
- language_model
- text
- github
- Statistics
- gensim
- Vim
- computer_setting
- terminal
- Ai
- natural_language_processing
- error
- tab
- computer
- paper_review
- code
- machinelearning
- Stanford
- deeplearning
- git
- Today
- Total
목록cs231n (14)
NLP/AI/Statistics

딥러닝 모델에서 학습 데이터가 모델에 과적합되어 새로운 데이터에 대하여 제대로 예측하지 못하는 문제가 발생한다. 이러한 과적합 (overfitting) 문제를 해결하기 위한 방법으로 regularization (규제화)을 소개하고자 한다. L1 regularization 기존의 Loss function 값이 L(yi,^yi)이라고 할 때, L1 regularization은 아래의 식과 같이 loss function에 새로운 "규제항"을 추가하여 계산한다. Loss=1nn∑i=1L(yi,^yi)+λ|w| 여기서 집중해야할 부분은 L1에서는 가중치(w)의 절댓값을 추가하여 loss 값에 규제를 더해준..

이번 글에서는 Batch Normalization에 대하여 소개하고자 한다. Batch normalization (BN, 배치 정규화)는 가우시안 분포를 통해 신경망을 적절하게 초기화시키는 방법이다. BN은 레이어에서 출력되는 batch 사이즈 만큼의 activation을 가우시안 분포에 적합하도록 하는 것이 목적이다. 그래서 이 방법은 학습할 때마다 각 레이어에서 수행되어야 하며 모든 레이어에서 가우시안 분포가 되도록 해준다. 즉, batch 단위로 레이어의 입력 값들을 정규화해준다. 위는 cs231n의 슬라이드 일부이다. 위의 수식과 같이 BN은 D차원의 batch에 대하여 각 feature 별로 평균과 분산을 구하여 정규화시켜주는 방식으로 진행된다. 보통 BN는 신경망 구조 내에서 fully con..
신경망 구조의 모델을 설계하는 방법은 모델의 성능의 차이를 가져오는 중요한 요인이다. 그 중 모델 학습의 시작인 가중치 초기화 (weight initialization)에 대하여 소개하고자 한다. 우선적으로 가장 기본적인 방법으로는 0으로 초기화하는 방법과 랜덤한 값으로 초기화하는 방법이 있다. 첫 번째로, 모든 가중치 값을 0으로 초기화 하는 방법이다. (all zero initialization) 모델을 설계하기 이전에 모델이 학습하여 최종적으로 출력하는 가중치 값이 어떤 값인지는 예측하기 힘들다. 하지만 데이터의 정규화를 적절하게 수행하였다고 가정했을 경우, 가중치의 절반은 양의 값이고 나머지 절반은 음의 값일 것이라고 생각할 수 있다. 이 가정에서 가중치 값을 0으로 초기화하는 것은 합리적인 방법..

Neural network 2 에서는 데이터를 처리하고 모델을 설계하는 방법에 대하여 설명한다. 1. Data Processing 2. Weight Initialization 3. Batch Normalization 4. Regularization 위의 순서대로 정리할 예정이다. Data Processing은 말 그대로 데이터를 전처리하는 과정으로 볼 수 있다. 어떤 task를 수행하기 위한 데이터가 있을 때, 데이터 간의 분포가 다를 수도 있고 데이터 내의 이상치들이 많이 존재할 수 있다. 이럴 경우, 데이터 간의 차이로 인해 학습이 제대로 수행되지 않거나 이상치에 의해 학습에 노이즈가 발생하는 문제가 발생한다. 이를 처리해주기 위해 데이터를 전처리함으로써 모델이 데이터에 대한 학습을 충분히할 수 있도..

신경망 구조를 이해하기 위해 중요한 요소인 activation function에 대하여 소개한다. Activation function (활성화 함수)은 쉽게 말해 모델 학습을 통해 출력되는 값을 활성화시키는 것을 의미하며 모델 최적화를 위해 가중치 (weight)를 업데이트한 후, 최종적으로 어떠한 값을 출력할 것인가를 결정하는 역할을 한다고 할 수 있다. 위와 같이 wixi+b 연산으로 출력되는 마지막 층의 output에 activation function을 거쳐 출력값을 결정한다. Perceptron에서는 가장 기초적인 activation function으로 step function과 linear function을 사용하였다. Step function의 경우, 계단 형식으로 0 혹은 1..
이전에 딥러닝 모델에서 최적의 성능을 얻기 위한 최적화(Optimization) 방법에 대하여 설명하였다. 이번 글에서는 최적화 방법 중에 하나인 gradient desent 방법에 대하여 소개하고자 한다. 모델을 학습할 때 loss function의 gradient를 계산하여 파라미터를 업데이트하는 방법을 gradient descent라고 하며, 아래의 코드는 가장 기본적인 vanila 버전의 코드이다. whileTrue:weights_grad = evaluate_gradient(loss_function, data, weights) $weights += step_size * weights_grad # parameter update Gradient Descent 방법은 최근 neural netw..
Optimization의 목적은 loss function을 최소화하는 W를 찾는 것이다. loss function을 최적화하는 optimization 방법을 소개하고자 하며, svm loss를 예시로 세가지 방법에 대하여 설명한다. 1) Random Search 2) Random Local Search 3) Gradient Random Search 첫 번째로 random search 방법이다. 이 방법은 랜덤한 값의 W로 여러번 시행한 후 loss가 가장 작은 최적의 W를 선택하는 방법이기 때문에 가장 간단하지만 좋지 않은 방법이다. 여러 번의 시행 중 최적의 W를 찾는다고 하더라도 이는 실행 횟수에 국한되어 있는 한계가 있으며 그 중 추출된 최적의 W가 모든 경우의 수에 대한 최적의 ..

이전 글에서 이미지 분류 문제를 처리하기 위해 가장 중요한 개념인 score function과 loss function에 대해 설명하였다. loss function을 정의하는 과정에서 f(xi,W)의 선형 함수를 사용하였는데, 이 때 사용되는 파라미터인 W가 어떻게 설정되고, 어떻게 학습되는지는 모델 학습에 중요한 요인이었다. 이를 위해 최적화 과정이 필요하다. 최적화(optimization)는 loss function을 최소화하는 최적의 파라미터 W를 찾는 과정을 의미한다. 최적화 방법에 대하여 이해하게 되면, score function, loss function, optimization 간의 상관관계를 이해할 수 있을 것이며, 이후에 설명하게 될 신경망 구조에 대하여 이해하기 쉬울 ..
이전 글에서 이미지 픽셀 값으로부터 각 라벨 별 score를 나타내는 방법에 대하여 설명하였으며, f=Wx+b의 공식에서 W와 b는 hyperparameter로써 정의가 가능하다고 하였다. 특히 초기화된 W는 모델 내에서 업데이트를 통해 최적의 score를 나타내는 W를 구하도록 한다. 즉, 예측 값과 실제 값의 차이인 Loss를 최소화하는 W를 찾는 것이 목적이 된다. 이러한 loss를 구하는 함수를 loss function (cost function, objective 라고도 한다. - 손실함수, 목적함수)라고 한다. > Multiclass Support Vector Machine loss (SVM loss) Loss function은 여러가지 방식으로 정의되는데, 크게 ..

머신러닝, 딥러닝과 같은 인공지능 연구에서는 두 가지 중요한 요소에 대한 이해가 필요하다. 1. Score function 2. Loss function 학습 데이터로 모델을 학습하고 평가 데이터로 학습된 모델을 평가하는 과정에서 해당 평가 결과에 대한 성능을 측정하는 성능 지표로써의 score function과 예측 결과와 실제 결과의 차이를 의미하는 loss function에 대한 개념이 나타난다. 특히, loss function에서는 모델의 최적점을 찾아 예측 값과 실제 값의 차이인 loss를 최소화하는 것을 목적으로 모델 학습을 진행해야하기 때문에 이에 대한 이해가 중요하다. > Parameterized mapping from images to label scores 우선 이번 글에서는 score..