본문 바로가기

Deep Learning/Neural Network6

가중치의 초기값 설정 가중치를 평균이 0, 표준편차가 1인 정규분포로 초기화할 때의 각층의 활성화값 분포 (Vanishing Gradient Problem)가중치를 평균이 0, 표준편차가 0.01인 정규분포로 초기화할 때의 각층의 활성화값 분포 (표현력 제한)Vanishing Gradient Problem위의 히스토그램을 보면 표준편차가 너무 클 경우에 분포가 양 극단에 치우친 것을 볼 수 있다.시그모이드의 출력값은 0과 1사이인데 양 극단인 0과 1에 신호가 집중되어 있으므로 아래 그래프에서와 같이 대부분의 신호에서 접선의 기울기가 매우 작은 것을 볼 수 있다. 역전파는 마지막층부터 Affine층과 시그모이드층을 번갈아 가며 진행해 간다. 이때, 시그모이드층에 흘러들어온 미분에 시그모이드층의 미분을 곱한다. 시그모이드층의 .. 2024. 7. 24.
Batch Normalization Normalization정규화란 여러 feature 값의 범위를 사용자가 원하는 범위로 제한하는 것을 의미한다. 그렇다면 왜 정규화를 해야하는 것일까?input data가 (0,1)인 $x_1$과 (0,0.01)인 $x_2$가 있다고 가정해보자. 네트워크 내에서 학습이 진행되게 되면 각 입력값의 파라미터는 다른 척도에 존재하게 된다. 즉, $x_1$과 $x_2$의 feature가 다른 범위에 있기 때문에 학습 가능한 파라미터 $w_1,w_2$가 갖는 값의 범위는 상당히 다르게 된다. 위 그림을 보면 정규화하지 않은 input feature는 왼쪽 그림과 같이 길게 나타나고, 정규화를 한 input feature는 보다 대칭적인 형태를 띈다. 왼쪽 그림은 파라미터가 최적의 값을 찾아가는데 많이 진동하는 모.. 2024. 7. 24.
Optimizer 딥러닝 학습 시 최대한 틀리지 않은 방향으로 학습해야 한다. 이는 loss function의 최솟값을 찾는 것을 의미한다.이때, 최솟값을 찾아가는 것(최적화 = Optimization)을 수행하기 위한 알고리즘이 최적화 알고리즘(= Optimizer)이다.옵티마이저는 학습 속도를 빠르고 안정적이게하는 것을 목표로 한다. 아래 이미지는 여러 옵티마이저들이 어떻게 오차의 최저점을 찾아가는지 그래프로 나타낸 것이다.SGD(Stochastic Gradient Descent)다변수 미분 이론에 바탕을 둔 가장 기본이 되는 optimizer이다.다변수 함수 $f : R^n \rightarrow R$을 생각하자.점 $x \in R^n$에서 함수 $f$가 가장 빨리 증가하는 방향은 gradient 방향 $\nabla .. 2024. 7. 17.
계산 그래프 순전파사과 개당 가격사과 개수소비세지불 금액100원2개10%220원($100\times2\times1.1$)역전파1로 출발해서 오른쪽에서 왼쪽으로 흘러간다.곱셈노드는 반대편 값을 엇갈려서 곱해서 흘려 보낸다.덧셈노드는 그냥 흘려 보낸다. (엄밀히 따지면, 1을 곱하는 것)역전파와 미분사과 개당 가격사과 개수소비세지불 금액$x$$m$$t$$f(x,m,t)=xmt$$\frac{\partial f}{\partial x}(x,m,t)=mt$, $\frac{\partial f}{\partial x}(100,2,1.1)=2.2$사과 가격이 오를 때, 전체 지불해야하는 비용은 얼마나 올라가는지$\frac{\partial f}{\partial m}(x,m,t)=xt$, $\frac{\partial f}{\partial.. 2024. 7. 6.
손실 함수 손실 함수란 모델의 출력값(예측값)과 사용자가 원하는 출력값(라벨)의 오차를 의미한다.손실 함수의 값이 높을수록 모델이 성능이 떨어지는 것이므로 이 함수값이 최소화되도록 하는 가중치와 편향을 찾는 것이 학습 목표이다.평균 제곱 오차(Mean Squared Error)데이터가 신경망을 거쳐 나온 확률 벡터와 라벨을 원핫 인코딩하여 나온 확률 벡터를 고차원 공간의 점으로 이해한 후 피타고라스 정리로 거리를 측정한다. 나중에 미분 계산의 편의를 위해 제곱근은 없애고 앞에 1/2을 곱한다.데이터셋의 MSE는 각 데이터의 MSE의 평균으로 정의한다.$$E=\frac{1}{2}\sum\limits_{k}(y_k-t_k)^2$$$y_k$: 신경망이 k라고 예측한 확률$t_k$: 라벨을 원핫 인코딩한 후 k번째 좌표 .. 2024. 6. 29.
활성화 함수 활성화 함수는 인공 신경망에서 입력값을 변환하는 함수이다.신경망에서 뉴런은 입력 신호를 받아 이를 조합하고일정 전위 임계값을 넘어야만 다음 뉴런으로 신호를 보내기(=활성화) 위한 은닉층 혹은 출력층에서 사용되는 함수이다. 여러 활성화 함수들이 있지만, 이 글에서는 대표적인 함수들만 다룰 예정이다.LayerActivation Function용도Hidden LayerReLU기울기 소실 문제를 줄이고 다음 층으로 신호를 전달한다.Output LayerSigmoid, Tanh이진 분류Softmax다중 분류Sigmoid시그모이드 함수의 식은 $\frac{1}{1+e^{-x}}$이다. ($=(1+e^{-x})^{-1}$)위 식을 +무한대로 보내게 되면, $\lim_{x \to +\infty}\frac{1}{1+e^.. 2024. 6. 29.