딥 뉴럴 네트워크는 깊고 넓은 네트워크가 성능에 더 좋다 라는 관점이 있었으나 그것에 대한 단점들을 해결하는 과정에서 나온 아이디어들을 적용하였습니다.
단순히 깊고 넓은 네트워크는 학습시키는 데 오래 걸린다는 단점이 있었습니다. (연산량과 파라미터가 너무 많기 때문이지요)
먼저 파라미터의 수를 줄이는 방법은 1x1 convolution과 Tensor factorization을 이용하여 그 수를 줄일 수 있었습니다.⎡⎢⎣123⎤⎥⎦[456]=⎡⎢⎣45681012121518⎤⎥⎦
Tensor factorization
은 행렬을 곱하기 전 상태의 파라미터를 저장함으로써 행렬의 곱 이후에 늘어나는 파라미터의 갯수에 대비하여 파라미터 수를 적게 저장하는 방법입니다. 비유를 하면 다음과 같습니다.[123][456]=[45681012121518]
Tensor factorization
) 이용하여 파라미터를 줄일 수 있었습니다.그 다음으로 연산을 효율적으로 하는 방법은 matrix 연산을 dense 하게 해야합니다.
조금 전에 다루어 본 것은 파라미터의 수와 연산의 효율에 관련된 내용이었습니다.
이번에 다루어 볼 내용은 학습이 어려운 문제에 대하여 다루어 보려고 합니다.
학습이 어려운 이유는 크게 2가지 문제 입니다. 첫번째가 gradient vanishing 문제이고 두번째가 over fitting 문제이지요.
먼저 Inception
에서 다룬 것은 깊은 layer까지 정보를 전달하기 위하여 auxiliary layer
를 사용한 것입니다.
auxiliary layer
를 추가적으로 두게 됩니다.또한 overfitting이 덜 되는 general한 구조를 만들기 위해서는 sparse한 convolution을 도입하는 방법을 사용합니다.
Inception module
입니다.