여러가지 이유가 있을 것이긴 하지만 한마디로 말하면 완전연결층이 갖고 있는 문제점 때문이라고 할 수 있다. 이를 극복하기 위해서이다.
완전연결층은 1차원 배열의 형태로 구성된 데이터를 통하여 학습하는 경우에 사용한다.
이러한 완전연결층의 단점은 다음과 같다.
1. 단순히 데이터를 펼쳐서 사용하기 때문에 각 이미지 픽셀의 관계를 고려하지 않는다.
2. 2차원 배열 형태의 데이터를 1차원 배열 형태의 데이터로 변환하면서 본래 데이터의 특징을 잃어버리게 된다.
완전연결층을 이용하면 “공간정보”를 손실하는 문제가 발생한다.
햄버거 이미지를 입력하면 햄버거 패티, 치즈, 양상추 등을 학습하는 것이 보다 강건한 모델링 학습이 될 것이다. 하지만 완전연결층을 이용하면 의도한 것과는 달리 햄버거 전체(전역적 특징)을 학습하게 된다. 이러한 경우 어떠한 문제가 발생할까?
햄버거 전체를 학습해버리는 방법을 이용하여 햄버거를 인식하는데 사용한다고 가정하자. 우리는 햄버거의 구성이 동일하지만 패티의 위치가 달라진다고 하더라도 동일한 햄버거로 인식할 수 있다. 하지만 완전연결층을 이용하여 학습하는 경우 패티의 위치가 달라지면 다른 햄버거로 인식할 수 있는 문제점이 발생한다.
완전연결층을 고집하여 사용하겠다면?
완전연결층을 고집하여 사용한다면 해결방안은 은닉 유닛 수를 늘리면 된다. 하지만 이렇게 하면 급격히 증가하는 파라미터의 수로 인하여 과대적합 문제가 발생할 수 있다.
완전연결층의 문제를 해결하려면?
완전연결층의 문제를 해결하기 위해서는 바로 컨볼루션층이 필요하다. 컨볼루션 층은 이미지 픽셀사이의 관계를 고려하기 때문에, 햄버거 패티, 치즈, 양상추 등의 지역적인 특성을 학습할 수 있고 이를 통하여 햄버거를 제대로 인식할 수 있다. 즉 컨볼루션 층은 특징사이의 관계를 인식할 수 있도록 학습하게 되는데 이를 “공간정보를 유지한다”고 표현한다. 또한 각 필터의 파라미터가 공유되기 때문에 완전연결층에 비해 적은 수의 파라미터가 필요하다.
댓글 없음:
댓글 쓰기