작성
·
164
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
강의에서 conv2d연산을 진행한 후에 softmax연산을 해주기 위해 3차원 데이터를 flatten시켜줬는데 flatten시켜준 후에 바로 softmax함수를 적용시키면 어떤 이유로 정보가 손실되는 이유에 대해서 궁금합니다.
dense를 하나 추가하고 softmax를 적용하는 것과 dense없이 flatten후 softmax를 적용하는 것의 차이점에 대해서 궁금증이 생긴 것 같습니다!
답변 1
1
안녕하십니까,
일단 Flatten을 적용한 것을 바로 softmax로 적용할 수는 없습니다. 아마 질문은 flatten을 하고 Dense(10)해서 softmax를 적용하는 것과 flatten->Dense(100) -> Dense(10)으로 softmax를 적용하는 차이를 질문하셨을 거라 생각됩니다.
flatten -> Dense(10)으로 softmax를 하는 방식을 적용해도 되지만, 일반적으로는 feature map의 차원이 커서 매우 많은 Weight가 있는 경우에는 이들 feature map을 바로 label의 갯수(여기서는 10)만큼의 node갯수가 있는 Dense(10)을 바로 적용하지는 않고 좀 더 노드가 많아서(여기서는 100) 상대적으로 연결 Weight를 좀 더 많이 가져갈 수 있는 Dense(100) 정도를 적용해 주는게 조~금이라도 성능상에서 유리할 수 있습니다.
feature map이 가지는 weight의 갯수가 매우 많은 데 이걸 노드가 너무 작은 Dense layer로 연결하면 상대적으로 노드가 많은 Dense layer로 연결할 때 보다 weight의 갯수가 너무 급격하게 작아질 수 있어서 이런 방식을 보편적으로 적용합니다.
감사합니다.