Adam papaer에서 Adam Optimization의 성능이 momentum보다 훨씬 빠른 속도로 수렴한다는 emirical performance를 보였다고 작성이 되어있는데,
하지만 이는 경험적인 것이기 때문에 아무도 모른다
Batch Normalization의 의도 및 효과는?
BN paper의 저자와 강의에서는 검은 고양이, 흰 고양이, 갈색 고양이가 입력으로 들어와도 고양이라고 분류할 수 있어야 한다. 하지만 input feature의 distribution이 달라진다면, 그만큼 model이 학습해야 할 == update해야 할 양이 많아지고, Global Optimum으로의 수렴이 느려질 것이다.
따라서 activation된 값을 에서 을 Normalization하여 들어오는 mini-batch들의 distribution을 일정하게 유지시켜줌으로써 internal covariate shift현상을 막을 수 있다고 한다.
결론적으로 BN paper에서 언급된 BN의 의도와 직접적인 효과가 많은 반론을 통해 맞지 않다고 결론이 나고 있다.
또한 BN에 대한 정확한 효과에 대해서는 많은 의견이 있기 때문에 현재로서는 정확한 의도와 효과에 대해서 설명할 수 없다.
하지만 분명한 것은 BN을 사용함으로써 학습이 매우 잘 된다는 점이다.
Neural Network에서 마지막 layer가 내뱉는 값. 즉, 을 logit
이라고 한다.
TensorFlow : cost계산이 forwardprop
GradientTape()이 backward를 자동으로 == auto differentiation(BN, 미분 등을 자동으로)해주는 함수이다.
현재 살아남은 framework로는 TensorFlow, PyTorch가 있다.
과거에는 TensorFlow가 독점하다시피 했었다.
그래서 Google과 과거서부터 지금까지 TensorFlow를 사용하는 몇몇 산업체들은 TensorFlow를 사용한다.
하지만 거의 대부분의 사람들은, 특히 논문을 쓸 때 활용하는 framework는 99%가 PyTorch이다.
따라서 둘 다 다룰줄 알아야 한다.