작성
·
142
0
먼저, 좋은 강의 제공해주셔서 감사합니다ㅎㅎ
질문 글이 매끄럽지 않을 수도 있다는 점 미리 죄송하다는 말씀 드립니다ㅜ
질문이 있는데요,
이론상, identity block 을 input data가 거치면, output data도 input data와 큰 차이가 없도록 하는게 identity block 이라 알고 있는데요, 그렇다면 identity block을 쌓는게 어떤의미가 있는건지 잘 모르겠습니다.
가령, 50층의 일반적인 Convolution layer가 있는 model-1이 있고, (25층의 Conv layer + 25층의 identity layer)가 있는 model-2가 있다면, 어차피 identity의 input과 output은 완전히 똑같지는 않더라도 거의 비슷할테니 딱히 25층의 identity layer는 큰 역할을 하지 않고 model-2의 identity layer는 그냥 없는것으로 생각할 수 있는 것 아닌가요...?
단지 identity block을 쌓는 것만으로 model의 성능을 어떻게 올릴 수 있는 건지 잘 이해가 되지 않습니다.
물론, 가령 어떤 100개의 layer를 가진 모델이 degradation problem이 발생했고, 이를 해결하려 50개의 identity layer를 기존의 conv layer 50개와 교체한다면, degradation problem은 완화될거라고는 생각됩니다. 하지만, 그렇게 50개의 identity layer로 교체한 100 layer model이, 그냥 일반적인 50개의 conv layer 모델과의 성능차이가 유의미할것인지는 판단이 잘 되지 않습니다ㅜㅜ
왜냐하면,
개념적으로 layer를 통과하면서 feature를 뽑아내고 층이 쌓일 수록 점점 더 고도화된 feature들이 뽑히면서 classification 성능을 올리는 거라고 한다면, identity block은 input과 output이 비슷할테니 feature의 성능(?)에 별다른 영향을 미치지 않는 것 아닌가? 하는 의문이 있기 때문입니다
identity block은 feature에 큰 영향을 미치지 않을 것 같은데, 어떻게 identity block을 쌓는 것으로 모델의 성능이 좋아질 수 있는건가요??
답변 1
1
안녕하십니까,
identity block을 개념적으로 이해 시켜드리기 위해서 제가 설명드린 부분이 약간 오해가 있을 수 있겠군요.
제가 설명드린 identity block을 문맥상으로만 이해한다면 지적하신 부분이 맞습니다.
하지만 identity block을 자세히 보시면 skip connection과 CNN 레이어로 이뤄져 있습니다. Skip connection만 가지고 있지 않기 때문에 CNN 레이어에서 학습이 되고 있습니다.
다만 앞에서 말씀하신대로
이론상, identity block 을 input data가 거치면, output data도 input data와 큰 차이가 없도록 하는게 identity block 이기 때문에 이렇게 학습을 시켜서 성능이 향상되는 메커니즘 자체는 저도 신기할 뿐입니다.
분명한건 학습이 됩니다.
감사합니다 선생님!