1. Dropout(드롭아웃) 이란?Foward Propagation에서 일정확률(0부터 1사의 확률)로 선택된 일부 Node 혹은 Neuron 들의 결과값을 0으로 설정하는 방식이다 . 즉, 선택된 일부 Node 혹은 Neuron을 제거하는 기법이다. 제거되는 뉴런의 종류와 개수는 오로지 random하게 결정된다. Dropout Rate는 하이퍼파라미터이며 일반적으로 0.5로 설정한다. 🤔 그렇다면 Dropout을 사용하는 이유가 무엇일까요? Dropout은 어떤 특정한 feature만을 과도하게 학습함으로써 발생할 수 있는 Overfitting을 방지할 수 있다. 즉, 일반화의 성능을 올릴 수 있는 것이다. 만일 특정한 피처(관련성이 높은 피처)가 예측결과값과 큰 상관관계가 있다고 가정해보자. ..
STUDY/ML&DL
들어가기전에 오버피팅이 무엇일까? train loss는 줄지만, val loss가 줄지 않거나 발산하는 현상입니다. 해당 현상의 원인 중 하나는 모델 크기에 비해 학습 데이터가 적어서 생기는 것인데요. 쉽게 이해하면 데이터가 적어 모델이 해당 데이터의 패턴을 그냥 다 외워버려 학습 데이터에서는 좋은 성능을 보이지만, 이전에 보지 못한 새로운 데이터에 대해서는 낮은 성능을 보이는 것입니다. 이에 대한 해결책을 생각해보면 두가지가 있습니다. 1. 데이터를 늘린다. 2. 모델의 크기를 줄인다. 모델의 크기를 줄이는 방법으로는 layer의 수를 줄이거나 regularization을 사용하는 방법이 있습니다. 이번 포스팅에서 다룰 DataAugmentation은 데이터 수를 늘리는 방법으로 오버피팅을 방..
1. Batch Batch의 사전적인 의미는 "집단, 무리" 라는 의미입니다. 딥러닝에서 Batch는 전체 데이터를 N개의 묶음으로 나누며, 한 묶음 당 모델의 가중치를 한번씩 업데이트시킵니다.일반적인 gradient descent에서는 gradient를 한번에 업데이트하기 위해 모든 학습 데이터를 사용합니다. 즉, 학습 데이터 전부를 넣어서 gradient를 구하고, 그 모든 gradient를 평균내어 한번에 모델 업데이트를 진행합니다. 대용량의 데이터를 한번에 처리하지 못하기 때문에 데이터를 Batch 단위로 나눠서 학습하는 방법을 사용합니다. SGD(Stochastic Gradient Descent)에서는 Gradient를 한번 업데이트 하기 위해 일부의 데이터만을 사용합니다. 한 번 업데이트하는..
활성화 함수의 특징 - 비선형함수(Non-linear Function) 실제 세계의 많은 문제들은 변수 간의 복잡한 상호작용과 비선형 관계를 포함하고 있습니다. 예를 들어, 이미지 문제에서 픽셀 간의 관계는 단순한 선형조합으로는 표현하기 어려운데, 선형함수는 입력 변수의 선형조합으로 출력을 계산하기에 비선형적인 관계를 표현하는데는 한계가 있습니다. 반면 비선형함수는 입력값에 따라 출력이 비선형적으로 변화하므로 신경망이 복잡한 비선형 패턴을 학습할 수 있게끔 도와줍니다. 활성화 함수의 특징은 선형함수가 아닌 비선형함수여야 합니다. 선형함수란 출력이 입력의 상수배만큼 변하는 함수를 선형함수라고 하는데, 예를 들면 $ f(x) = Wx+b $ 라는 함수가 있을 때 W와b는 상수입니다. 이 식은 그래프로..