본문 바로가기

Computer Science/AL, ML 58

네트워크의 성능 네트워크의 성능 개선 네트워크의 성능을 높이기 위해서 hyperparameter, dataset 등의 여러가지 요소들이 중요하다. 값, 데이터셋 등을 어떻게 구성하는지에 따라 성능이 달라지기 때문이다. Machine Learning : Iterative Process 네트워크의 성능을 높이기 위해서는 hyperparameter의 값을 조작하면서 테스트해봐야 한다. 그런데 hyperparameter의 수는 무수히 많고, hyperparameter 간에는 dependency가 존재하기 때문에 하나의 값이 바뀌면 다른 값도 바뀌어야 한다. 하나씩 테스트해볼 수 없고 여러 개의 조합을 통해 테스트해봐야 하는 것이다. 이러한 점 때문에 machine learning은 idea → code → experiment의.. 2022. 4. 20.
Deep Neural Network의 Propagation Deep Neural Network의 Propagation Shallow network와 동일하게 forward/backward propagation을 통해 예측/update를 할 수 있다. Caching Backward propagation을 통해 gradient를 구할 때에는 a와 z 값을 caching 해놓는 것이 좋다. Forward propagtion을 쭉 다 한 후 backward propagation을 수행하게 되는데, forward에서 사용된 a와 z 값이 backward에서 그대로 사용되기 때문이다. 따라서 forward에서 구한 $a^{[l]}, z^{[l]}$의 값들을 버리지말고 저장해놨다가 backward에서 사용하는 것이 연산 시간을 줄일 수 있다. Backward Propagat.. 2022. 4. 20.
Neural Network에서 Layer 수 vs. Unit 수 Layer 수 vs. Unit 수 깊은 네트워크와 얕지만 unit이 많은 네트워크 중 깊은 네트워크가 더 좋다. 네트워크가 깊을 수록 같은 연산을 수행할 때 필요한 unit의 수가 더 적어지기 때문이다. 즉, 네트워크가 깊을 수록 훨씬 적은 unit으로 복잡한 function을 구현할 수 있다. 단순히 unit의 수가 많다고 좋은 결과를 보장할 수 없다. 때문에 unit이 많은 네트워크 보다는 깊은 네트워크가 더 낫다. 다만, 네트워크가 깊어질 수록 gradient를 계산하는 것이 더 복잡해지고 오래걸릴 수 있다. 예시 아래와 같이 $y= x_1 \; XOR\; x_2 XOR\; ...\; XOR\; x_n$의 연산을 수행하기 위해 필요한 unit의 수는 다음과 같다. 깊은 네트워크 : $O(logn)$.. 2022. 4. 20.
Deep Neural Network의 Vectorization Vectorization Layer가 몇개이든 동일한 방식으로 처리하면 된다. 아래와 같이 각 layer의 값들을 하나의 matrix로 표현하여 vectorization을 할 수 있다. Vectorization을 지원하는 메소드/함수를 사용하면 연산 속도가 월등히 빨라질 수 있다. Shape Vectorization을 했을 때 forward propagation에서의 matrix shape은 backward propagation의 matirx shape과 동일하다. $W^{[l]}$, $dW^{[l]}$ : $(n^{[l]}, n^{[l-1]})$ $b^{[l]}$, $b^{[l]}$ : $(n^{[l]}, 1)$ $Z^{[l]}$, $dZ^{[l]}$ : $(n^{[l]}, 1)$ $A^{[l]}$, .. 2022. 4. 20.
Deep Neural Network (DNN) Deep Neural Network Representation 몇개의 layer로 이루어져있는지를 셀 때는 input layer를 포함하지 않는다. 따라서 몇 번째 layer인지를 셀 때도 input layer를 제외하고 카운트를 한다. Output layer만 가지고 있는 단층 구조의 network, 즉 input → output 형태의 네트워크는 single-layered라고 부른다. 아래와 같이 1 input layer, 1 hidden layer, 1 output layer로 구성된 네트워크는 2-layered network이라 한다. Deep Neural Network 주로 3개층 이상(2개 이상의 hidden layer)의 구조를 가진 neural network를 deep neural netw.. 2022. 4. 20.