카테고리 339 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. XOR with Neural Network XOR 문제 하나의 unit(linear regression)으로는 XOR 문제를 해결할 수 없다. 그래프를 어떻게 만들더라도 명확하게 구분해낼 수 없다. 해결 이를 해결하기 위해서 여러 개의 unit(multiple logistic regression)을 이용한다. 아래 3개의 unit들을 이용해서 해결할 수 있다. 구현 이러한 문제를 해결하기 위해서 W와 b를 학습해야 한다. 이를 위해서 앞에서와 마찬가지로 gradient descent algorithm을 이용할 수 있다. 각 input이 output에 미치는 영향을 계산해서 node의 weight을 조정해야 하지만, 너무 계산량이 많고 수학적으로도 어렵다. 이를 위해서 backpropagation algorithm을 사용한다. 2022. 4. 20. 이전 1 ··· 23 24 25 26 27 28 29 ··· 68 다음