Closed eubinecto closed 4 years ago
핸즈온 머신 러닝에서 읽었던 것이 기억난다.
층이 매우 깊은 딥러닝 모델들의 vanishing & exploding gradient 문제를 해결하기 위해서 고안된 것이 batch normalisation이라고.
VGG16, VGG19, GoogleNet 가 그런 문제를 안고 있는 층이 매우 깊은 딥러닝 모델의 대표적인 예시. 이들은 batch normalisation이 고안되기 바로 직전인 2014년에 imageNet에서 우승을 차지한 모델들이다.
batch normalisation없이 vanishing gradient & exploding gradient 문제를 해결했어야 했기 때문에, 층이 깊은 모델이 converge 하지 않는 문제를 겪었다고 함. 그래서 훈련을 할 때 hackery가 필요했다고 함.
예: VGG의 경우 원래는 layer의 개수가 16개, 19개이지만 우선 11층 (11층까지가 모델이 converge 할 수 있었던 최대치)까지만 쌓고서 훈련을 시키고, 그 다음에 레이어를 추가해서 다시 훈련을 진행했다고 함.
managing gradient flow is super important in deep neural nets.
can see why these have "funny" topologies.
Vanila neural network 대비, RNN을 사용하는 경우의 이점에 대해서 설명한다.
기존의 vanila neural network로는 one-to-one 만 가능.
RNN으로 sequence를 모델링을 할 수 있게 되면
도 가능해진다.
그렇게 RNN은 sequential data를 modeling하기 위해 만들어졌다. 하지만 non-sequential data를 모델링 하는데에도 RNN을 사용할 수있다. 오.. 흥미로운 접근.
이 예시는 digit classification을 many-to-one 으로 접근한 경우. 이미지는 sequential data는 아니기에 "many"에 적합하지는 않지만, sequential data로 취급해서 digit classification을 진행하는 경우.
흥미로운 접근이다. 우리가 어떤 물체를 인식할 때, 한번의 glimpse로 알아볼 때도 있지만, 어떤 경우에는 물체의 여러부분을 여러 glimpses 로 살펴보아야 비로소 인식할 수 있는 경우도 있으니.
non-sequential data를 sequential data로 취급해서 분류문제를 접근한 경우.
아래는 generation 문제를 접근한 경우.
"paint" the images one at time, sequentially.
시작: 17th of August
스탠포드에서는 RNN에 대해서 어떻게 설명하는지 한번 참고해보자!
일단 막 써보는 강의 노트.