목록Deep Learning (43)
RECORD AI

Gradient Checking 목표 경사 검사는 시간을 절약하고 backward propogation의 구현에 대한 버그를 찾는데 도움을 많이 준다. 어떻게 경사 검사를 할 수 있는지 알아보자. Gradient check 의 순서 $W^{[1]}$,$b^{[1]}$,$\cdots$,$W^{[L]}$,$b^{[L]}$ 행렬 $W^{[1]}$을 벡터로 크기를 바꾼다. 모든 W 행렬을 받아서 벡터로 바꾸고 모두 연결시킨다. 그결과 매우 큰 벡터 매개변수 θ 를 얻게된다. 비용함수 J를 W와 b의 함수로 만드는 대신에 θ의 함수가 되도록 한다. d$W^{[1]}$,d$b^{[1]}$,$\cdots$,d$W^{[L]}$,d$b^{[L]}$ d$W^{[1]}$ 을 벡터로 바꾼다. d$b^{[1]}$는 이미 벡터이..

Numerical approximation of gradients 목표 경사 검사를 구현하기 위해 먼저 경사의 계산을 수치적으로 근사하는 방법을 알아보자. 경사 검사가 왜 필요할까? Backward propagation를 맞게 구현했는지 확인하는데 도움을 준다. 왜냐하면 모든 수식을 작성해도 세부 사항이 맞게 작성됐는지 100% 확신하지 못하기 때문이다. Checking your derivative computation (1) 초록색 삼각형의 기울기는 $\frac{f(θ+ε)-f(θ)}{(θ+ε)-(θ)}$ 이다. (2) 노란색 삼각형의 $\frac{높이}{밑변}$ 는 $\frac{f(θ+ε)-f(θ-ε)}{(θ+ε)-(θ-ε)}$ 이다. (3) 초록색 삼각형의 $\frac{높이}{밑변}$보다 노란색 삼..

Weight initialization for deep networks 목표 아주 깊은 신경망에서 경사 소실과 폭발의 문제에 도움을 줄수 있는 해결방법을 알아보자. Single neuron example z=$w_{1}$$x_{1}$+$w_{2}$$x_{2}$ $\cdots$+ $w_{n}$$x_{n}$ b=0 이라고 하고 지금은 b를 무시한다. 따라서 z의 값이 너무 크거나 작아지지 않도록 만들어야한다. n값이 클수록 $w_{i}$값이 작아져야한다. 왜냐하면 z는 $w_{i}$ $x_{i}$의 합이기 때문에 이 많은 항들을 더하면 각각의 항이 작아지기를 바랄것이기 때문이다 Var($w_{i}$)=$\frac{1}{n}$ 여기서 n은 뉴런으로 들어가는 입력 특성의 개수이다. 실제로 특정 층에 대한 가중치..

Normalizing Inputs 목표 신경망의 훈련을 빠르게 할 수 있는 하나의 기법 → 입력을 정규화하는 것에 대해 파악하기 1. 평균($\mu$)=0으로 만든다. input feature : 2차원 $ x = $ $ \mu=\frac{1}{m} \displaystyle \sum_{i=1}^{m}{x^{i}}$ $x :=x-\mu$ 0의 평균을 평균을 갖게 될때까지 train set를 이동 2. variance를 정규화 $var(x_1) > var(x_2)$ $\sigma^2=\frac{1}{m} \displaystyle \sum_{i=1}^{m}{x^{(i)}} ** 2$ ( ** : element wise squaring (요소별 제곱)) $\sigma^2$ : 각 특성의 분산에 대한 벡터 $x^..

Other Regularization Methods 목표 L2 정규화와 drop-out외 overfitting을 줄일 수 있는 다른 방법 알아보기 1. Data augmentation (데이터 증가) 배경 모델을 훈련시키는 경우 더 많은 훈련 데이터가 overfitting을 해결하는데 도움을 줄 수 있지만 많은 비용이 들어가거나 불가능한 경우가 있다. 방법1 수평방향으로 뒤집은 이미지를 train set에 추가시켜서 train set를 두배로 증가시킨다. 새로운 이미지를 더 많이 구하지않고 할 수 있는 방법 단점 : 새로운 m개의 독립적인 샘플을 얻는것보다 중복된 샘플들이 많아져서 좋지 않다. 방법2 이미지를 회전시키고 무작위로 확대시킨다. 이미지의 무작위적인 왜곡과 변형을 통해 data set를 증가시..

Understanding Dropout 목표 Drop-out이란? 무작위로 신경망의 유닛을 삭제시키는 기법 왜 정규화로 잘 작동하는지 알아보기 Why does drop-out work? Intuition 1 drop-out은 신경망의 유닛을 무작위로 삭제하는 것, 모든 반복마다 더 작은 신경망에서 작업하게된다. 더 작은 신경망을 사용하는 것이 정규화의 효과를 주는 것처럼 보인다. Intuition 2 : single unit 관점 unit이 해야하는 일 : 입력을 받아 의미있는 출력을 생성하는 것 Drop-out을 통해 입력은 무작위로 삭제될 수 있는데 어떤 경우는 이 두 Unit이 삭제되고 어떤 경우에는 다른 Unit이 삭제된다. 보라색 unit : 어떤 feature에도 의존할 수 없다. 그 feat..

Dropout Regularization 1. Dropout L2 Regularization 외에 또 다른 매우 강력한 정규화 기법으로 드롭아웃(Dropout Regularization)이 있다. 어떻게 작동하는지 알아보자. 위와같은 과적합(overfitting)된 신경망을 훈련시킨다고 할때 드롭아웃의 방식이란, 신경망 각각의 층에 대해 노드를 삭제하는 확률을 설정하는것이다. 이와같이 0.5로 설정하고 각각의 층에 대해 각 노드마다 동전을 던지면 0.5의 확률로 해당 노드를 유지하고, 0.5의 확률로 노드를 삭제하게 된다. 동전을 던져 각각의 노드를 삭제하고 삭제된 노드에 들어가는 링크와 나가는 링크를 모두 삭제하면 위와같은 더 작고 간소화된 네트워크가 된다. 그리고 감소된 네트워크에서 하나의 샘플을 b..

Why Regularization Reduces Overfitting 정규화가 어떻게 과적합을 줄일수 있을까? 왜 Regularization(정규화)이 과적합(overfitting)문제를 해결하고 분산을 줄이는데 도움이 될까? 이것이 어떻게 작동하는지에대해 몇가지 예제를 살펴볼수있다. How does regularization prevent overfitting? 1. neural network intuition 높은 편향(high bias), 높은 분산(high variance), 그리고 적절한 경우(just right)의 예시가 있다. 이것을 크고 깊은 신경망에 맞추는 경우를 살펴보자. $J(w^{[l]},b^{[l]}) = \frac{1}{m}\sum^{m}_{i=1}L(\hat{y}^{(i)},y..