koos808

내 맘대로 딥러닝 퀴즈 -2 본문

Deep Learning/Deep Learning Quiz

내 맘대로 딥러닝 퀴즈 -2

koos808 2020. 7. 5. 02:20
728x90
반응형
  • 내 맘대로 딥러닝 퀴즈 2

      1. GD와 SGD, MGD(Mini-batch GD)의 차이점이 무엇인가?
      • GD : 전체 데이터를 가지고 반복적으로 루프(loop)를 돌려서 그라디언트(gradient)를 계산하고 파라미터(parameter/weight)를 업데이트하는 것
      • MGD : 학습데이터(training data)의 배치(batches)만 이용해서 그라디언트(gradient)를 구하는 것이다.
      • SGD : MGD 방법의 극단적인 형태는 미니배치(mini-batch)가 데이터 달랑 한개로 이루어졌을 때이다. 이게 SGD이다. 1 epoch동안 학습데이터 개수만큼의 업데이트가 수행됩니다.
      1. epoch와 iteration, batch의 차이점은?
      • 1 epoch : 즉, 전체 데이터 셋에 대해 한 번 학습을 완료한 상태
      • 1 iteration : 1회 학습 = epoch를 나누어서 실행하는 횟수
      • batch : 데이서 셋을 batch size 크기로 쪼개서 학습
      • ex1) 총 데이터가 100개, batch size가 10개이면,
          1 iteration = 10개의 데이터에 대해서 학습
          1 epoch = 100/batch size = 10 iteration
        ex2) 전체 2000개 데이터 셋, epoch = 20, batch size = 500이면,
          1 epoch는 각 데이터의 size가 500인 batch가 들어간 네 번의 iteration으로 나누어진다.
          전체 데이터셋에 대해서 20번의 학습이 이루어졌으며, iteration 기준으로 보면 총 80번의 학습이 이루어진 것이다.
      1. 왜 딥러닝이 ann보다 좋은가? (활성화 함수 측면에서 설명하라)
      • 비선형 활성화함수를 사용하면서 히든레이어가 많아질 수록 굴곡과 곡선이 더 많아지면서 더욱 복잡하게 만들 수 있습니다. 그래서 더 복잡한 문제를 잘 해결할 수 있습니다.
      1. cnn 20(채널)3636을 3X3의 필터 10개를 적용했을 때(스트라이드 1, 패딩 0) 결과의 dimension은 무엇이고 파라미터 수는 몇개인가?
      • dimension : 36-3+1=34 -> 34X34 : (36 + 2*0 - 3)/1 +1 = 36-3+1 = 34

      • 필요 파라미터 개수 : 2033*10 = 1800 : 입력채널수 X 필터폭 X 필터높이 X 출력 채널 수

      • 출력 데이터 크기

        • OutputHeight(OH) = (H(입력 데이터 높이) + 2P(패딩 사이즈) - FH(필터 높이))/S(strid 크기) + 1
        • OutputWeight(OW) = (w(입력 데이터 폭) + 2P(패딩 사이즈) - FW(필터 폭))/S(strid 크기) + 1
      • CNN과 FC(Fully Connected) NN의 파라미터 개수 비교

        • FC(Fully Connected) NN은 입력노드x출력노드 : ex) (600,300) -> 파라미터 수 = 180,000
      • CNN은 Fully Connected Neural Network과 비교하여 다음과 같은 특징을 갖는다.

        • CNN은 학습 파라미터 수가 매우 작음
        • 학습 파라미터가 작고, 학습이 쉽고 네트워크 처리 속도가 빠름
      • CNN(Convolutional Neural Network)은 이미지의 공간 정보를 유지하면서 인접 이미지와의 특징을 효과적으로 인식하고 강조하는 방식으로 이미지의 특징을 추출하는 부분과 이미지를 분류하는 부분으로 구성됩니다. 특징 추출 영역은 Filter를 사용하여 공유 파라미터 수를 최소화하면서 이미지의 특징을 찾는 Convolution 레이어와 특징을 강화하고 모으는 Pooling 레이어로 구성됩니다.

      • CNN은 Filter의 크기, Stride, Padding과 Pooling 크기로 출력 데이터 크기를 조절하고, 필터의 개수로 출력 데이터의 채널을 결정합니다.

      • CNN는 같은 레이어 크기의 Fully Connected Neural Network와 비교해 볼 때, 학습 파라미터양은 20% 규모입니다. 은닉층이 깊어질 수록 학습 파라미터의 차이는 더 벌어집니다. CNN은 Fully Connected Neural Network와 비교하여 더 작은 학습 파라미터로 더 높은 인식률을 제공합니다.

      • 참고 : http://taewan.kim/post/cnn/

        1. cost function(loss function)과 activation function
        • cost function은 가중치의 학습을 위해 출력함수의 결과와 반응(Y)값 간의 오차를 측정하는 함수 : MSE, 크로스 엔트로피
        • 활성화 함수는 Data를 비선형으로 바꾸기 위해서사용함 : RELU, SIGMOID, tanh(x), softmax
          • tanh - sigmoid 함수를 재활용하기 위한 함수. sigmoid의 범위를 -1에서 1로 넓혔다.
          • ReLU - max(0, x)처럼 음수에 대해서만 0으로 처리하는 함수
          • Leaky ReLU - ReLU 함수의 변형으로 음수에 대해 1/10로 값을 줄여서 사용하는 함수
          • ELU - ReLU를 0이 아닌 다른 값을 기준으로 사용하는 함수
          • maxout - 두 개의 W와 b 중에서 큰 값이 나온 것을 사용하는 함수
        • 번외
          • tanh는 시그모이드보다 학습 수렴 속도가 빠르지만, 1차 미분했을 때, -5보다 크고 5보다 작으면 gradient가 0으로 작아지는 단점이 있다.
          • 시그모이드는 학습이 느리고 입력값이 너무 크거나 작으면 gradient 값이 지나치게 작아지는 단점이 있다.
          •  
        1. 시그모이드보다 RELU를 사용하는 이유?
          • Sparsity와 Vanishing Gradient의 장점 때문에 사용한다.
          • Sparsity (a가 0보다 작을 때 / a≤0)
            • 활성화 값(a)이 0보다 작은 뉴런들이 많을수록 더욱 더 sparse한 모습을 띄게 된다. 하지만 기본적으로 (혹은 전통적으로) neural network에서 사용해온 sigmoid 함수는 항상 0이 아닌 어떠한 값(eg. 0.2, 0.01, 0.003 ...)을 만들어내는 경향이 있어 dense한 모습을 나타내게 된다.
            • 뉴런의 활성화값이 0인 경우, 어차피 다음 레이어로 연결되는 weight를 곱하더라도 결과값은 0을 나타내게 되서 계산할 필요가 없기에 sparse한 형태가 dense한 형태보다 더 연산량을 월등히 줄여준다. (하지만 0으로 한번 할당되면 다시 활성화 되지 않으므로 해당 뉴런을 dead neuron / dying Relu 이라고 표현하기도 한다.)
          • Vanishing Gradient (a가 0보다 클 때 / a>0)
            • sigmoid의 gradient는 x의 절댓값이 증가하는 만큼 작아지게 되는 것에 비해, ReLU의 역함수는 1이므로 ReLU의 경우에는 gradient로 상수를 갖게된다. 일정한 gradient값은 빠르게 학습하는 것을 도와준다.
          • x 가 양수이기만 하면 그래디언트가 1로 일정하므로 그래디언트가 죽는 현상을 피할 수 있고, 미분하기도 편리해 계산복잡성이 낮습니다. 하지만 x 가 음수이면 그래디언트가 무조건 0이 된다는 단점이 있습니다. (leaky relu가 고안된 이유)
        1. Normalization, Standardization, Regularization
          • 공통점은 Overfitting을 방지하기 위해 사용한다.
          • Normalization과 Standardization 모두 데이터를 좀 더 compact 하게 만들기 위하여 사용한다.
          • scale의 범위가 너무 크면 노이즈 데이터가 생성되거나 overfitting이 될 가능성이 높아지기 때문에 한다.
          • 또한, 활성화 함수(activation function)를 거치는 의미가 사라집니다. 값이 너무 커지게 되므로 활성화 함수를 거친다고 하여도 한쪽으로 값이 쏠릴 가능성이 높기 때문이죠.
          • Normalization : 다양한 방법이 존재.
          • Standardization : 표준화 확률변수를 구하는 방법이며 Z-Score 구하기라고 할 수도 있겠다.
          • Regularization : 말 그대로 '제약'을 거는 작업이다. 제약을 건다는 것은 모델을 좀 더 complex 혹은 flexible 하게 만든다는 것입니다. Overfitting은 모델이 train data에 너무 딱 맞게 학습이 돼서 발생하는 문제인데 여기서 특정 penalty 값만 더해주거나 빼주어서 모델의 복잡도를 조정해주어도 train data에 딱 맞게 돼버리는 상황을 어느 정도 예방할 수 있습니다.
          • 가중치 감쇠(weight decay), 가중치 상한, 드롭아웃(drop-out) 등이 있음.
        1. 파라미터(parameter)와 하이퍼 파라미터(hyperparameter)의 차이
        • 파라미터(parameter) : 파라미터란 모델 내부에서 확인이 가능한 변수이다. 즉, 데이터를 통해서 산출이 가능한 가능한 값이다.
          • 예를 들어 인공신경망에서의 가중치, 선형 회귀나 로지스틱 회귀분석에서의 결정계수.
        • 하이퍼 파라미터(hyperparameter) : 하이퍼 파라미터는 모델에서 외적인 요소라고 할 수 있다. 즉, 데이터 분석을 통해 얻어지는 값이 아니고 주로 사용자에 의해 정해진다. (grid search, random search)
        1. rnn과 lstm
        • rnn : RNN은 히든 노드가 방향을 가진 엣지로 연결돼 순환구조를 이루는(directed cycle) 인공신경망의 한 종류입니다. RNN은 관련 정보와 그 정보를 사용하는 지점 사이 거리가 멀 경우 역전파시 그래디언트가 점차 줄어 학습능력이 크게 저하되는 것(vanishing gradient problem)으로 알려져 있습니다.
        • lstm : 이 문제를 극복하기 위해서 고안된 것이 바로 LSTM입니다. LSTM은 RNN의 히든 state에 cell-state를 추가한 구조입니다.
728x90
반응형

'Deep Learning > Deep Learning Quiz' 카테고리의 다른 글

내 맘대로 딥러닝 퀴즈 -1  (0) 2020.07.05
Comments