Google ML Bootcamp(181)
-
37. Building Blocks of Deep Neural Networks
forward_propagtion 시에 Z,W,b 값을 cache backward_propagation 시에 cache된 값을 활용하여 쉽게 계산 중요한 것은 forward_propagation 과정과 backward_propagation 과정이 어떻게 진행되는지 관찰. 도식화.
2023.09.09 -
36. Why Deep Representations?
딥러닝. 왜 잘될까? 가장 lower level부터 신경망(layer)를 거치면서 high level 특징까지 보면서 결과 도출하기 때문. ex) audio 1. 백색소음 or not 수준의 간단한 기능을 학습 2. 감지된 간단한 것을 결합하여 음소, 음운 등을 학습 3. 음소 음운 등을 결합하여 단어를 학습. 4. 단어를 결합하여 문장을 학습 5. 음성인식 수행. layer가 깊어질 수록 복잡한 것들을 학습할 수 있게되는 원리.
2023.09.09 -
35. Getting your Matrix Dimensions Right
np.dot(W,x)가 진행되므로 해당 layer의 (output dim, input dim)으로 설정된다. W[l].shape : (n[l], n[l-1]) b[l].shape : (n[l],1) - element-wise 더하기를 진행해야하므로 W[l]와 b[l]은 차원이 같아야한다. 이때 np.dot(W,x)가 아니라 np.dot(W,X) 모든 훈련 예제에 대해 진행된다면 X.shape : (n[0],m) - Z[l].shape : (n[l], m) - z[l].shape : (n[l],1) - b[l].shape : (n[l],1) but python boradcasting -> (n[l],m)으로 열 복사가 진행되므로 element-wise 연산 가능. 역전파 진행 시 dimension 계산할때..
2023.09.09 -
34. Forward Propagation in a Deep Network
layer마다 for문을 통해 Z,A 전파를 수행. - 이때는 for문을 없앨 수 있는 방법이 보이지 않으므로 for문을 사용. - 왜 그럴 수 밖에 없는가는 진지하게 고민해볼 것. - 단순히 차원을 늘리는걸로는 작동하지 않으려나?
2023.09.09 -
33. Deep L-layer Neural Network
Notation L = number of layers n[l] : l번째 layer의 node(=units)수
2023.09.09 -
32. Random Initialization
매개변수를 0으로 초기화하는 것이 아니라 랜덤으로 초기화하는 것이 중요하다. - W[1] = [w1, w2, ... , wnx] - 이때 w1,w2,wnx가 모두 0으로 초기화 된다면 같은 값을 띄고, 결국 update도 같게되며 여러번 반복하더라도 같은 내용의 함수를 계산하고 있음. - 그럼 결국 unit이 많을 필요가 없음. 동일한걸 계산하는데. - 따라서 랜덤으로 초기화하는 것이 중요함. import numpy as np W[1] = np.random.rand((2,2)) * 0.01 # 초기화를 하더라도 0에 근접하는 아주 작은 수로 랜덤 초기화할 것 - 왜? 활성화 함수는 0 근처에서 가장 크게 값이 변하므로 input이 너무 크거나 너무 작다면 unit간 차이가 없는거나 마찬가지. - 따라서 ..
2023.09.09