-
Convolutional Neural Networks | 패스트캠퍼스 챌린지 06일차딥러닝 2022. 1. 29. 21:52
대망의 convolutional neural network(CNN)의 순방향전파(foward propagation)를 정리할 시간이다. 전통적으로 머신 비전 과제에서는 입력 텐서에서 feature를 추출하여 이를 가지고 효율적으로 classification을 시키는 과정을 거쳤다. 이 때 feature 추출에는 데이터로부터 학습되는 방식이 아닌, 사람이 직접 알고리즘을 기반으로 설계한 extractor가 사용되었다. CNN의 기본적인 철학은 이와 다를 바 없다. 다만, 중요한 차이점은 feature extractor에 사람이 설계한 알고리즘이 아닌 데이터로부터 학습될 파라미터를 가진 convolution layer로 구성된 feature extractor를 가지기 떄문에, 전반적으로 사람의 개입이 줄어든다는 것이다. 이미지에서 feature를 알고리즘으로 추출한다는 과정이 사실 그렇게 쉬운 일이 아니다. 기계 입장에서(정확히는 Dense Layer나, 이전에 사용된 기계학습 방법론들 입장에서) 가장 효율적으로 사용할 수 있는 feature가 무엇인지를 알 수 없을 뿐더러, 이를 다량의 이미지로부터 예외없이 추출하는 알고리즘을 짜는 것은 매우 힘든 일이었을 것이다. 이 추출기가 기계학습의 영역으로 넘어왔다는 것은 기계의 입장에서 가장 효율적인 feature를 뽑도록 허용한 것이며, 또한 사람보다 더 많은 데이터를 처리할 수 있는 기계의 장점을 살려 보다 많은 이미지에 적용되는 feature extractor를 만들 수 있게 된 것이다.
물론 이 과정이 순탄하지만은 않다. 강의 내용과는 크게 상관 없는 이야기지만, 딥러닝은 고질적으로 black box라는 비판을 받고 있다. 즉, 파라미터수가 너무나도 많은 탓에 모델이 정확히 무엇을 보고 학습하였는지를 알 수 없다는 것이다. 알고리즘을 기반으로 한 feature extractor는 알고리즘을 기반으로 하기 때문에 사람이 직접 어떤 자질이 추출되는지 확인할 수 있고, 이를 알고리즘 개선을 통해 개선시킬 수도 있다. 하지만 매우 많은 파라미터가 매우 많은 횟수만큼 업데이트되는 convolutional layer의 값을 모두 추적하기란 불가능하다. 자연스레 모델의 성능 향상도 경험에 의존하거나--레이어 숫자를 바꾸거나, 각 레이어의 뉴런 갯수를 바꾸어 가장 최적의 값을 찾는 식으로--, (특히 자연어처리의 경우) 파라미터수를 늘려 버리는 것으로 해결해 버리게 된다. 물론 이런 방법에는 기존 규칙기반 오토마타나 통계기반 기계학습이 처리하지 못한 효율적인 연산을 가능하게 한다는 장점이 분명히 존재한다. 하지만 이런 방법만으로 언제나 정답 만을 만드는 완벽한 모델(정확히는 꼼수 없이 정직하게 튜링 테스트를 통과할 수 있는 모델)을 만들기란 어려운 일이며, 가장 문제가 되는 것으로는 가능한지 알 수 없는 것이다.
자세한 단상은 Erik J. Larson의 책 The Myth of Artificial Intelligence에서 다루고 있다. 아직 역서가 없는 이 책은 간단하게 말하자면 우리는 인간 지능을 구성하는 요소조차 제대로 정의하지 못한 상태로, 단순히 인간 지능은 간단한 과업들을 차례대로 진행하는 것이라 생각하여, 간단한 과업들을 (완벽하지도 않고 그저 충분히 좋은 정도로good-enough) 해 내는 딥러닝 기반 인공지능 모델들의 결과를 든 채 이를 통해 일반 인공지능을 이룰 수 있다는 일종의 신화를 만들어 냈다는 주장을 담고 있다. 저자의 예시를 번안하자면, 내가 한국어를 하고 영어를 한다고 해서 반드시 러시아어를 하는 것은 아니다. 이와 마찬가지로, 기계가 바둑을 두고 포커를 친다고 해서 반드시 모든 게임을 섬렵했다고 보기는 어렵다.
다시 강의 내용으로 돌아가자면, deep learning 방법론에 들어서서는 feature extraction을 기계에게 맡기게 된다. CNN은 convolution layer와 Pooling layer가 이러한 extractor 역할을 하게 되며, 기계는 이 feature를 기반으로 classfier를 거쳐 이미지를 분류하게 된다. CNN을 비롯한 이러한 neural network 구조를 소개할 때에는 노트에 LeNet과 관련하여 적은 표와 같이 모델 도식과 각 레이어의 파라미터 정보를 담은 표를 제시하는 쪽이 좋다.
여담이 긴 수강후기였지만, 다음번에는 본격적으로 역방향전파를 들어가게 된다. 편미분이라는 개념이 들어올거라 긴장이 된다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다. https://bit.ly/37BpXi
'딥러닝' 카테고리의 다른 글
미분 | 패스트캠퍼스 챌린지 08일차 (0) 2022.01.31 역방향전파(Backpropagation) | 패스트캠퍼스 챌린지 07일차 (0) 2022.01.30 Convolution Layers with Multiple Channel | Pooling, Striding, Padding | 패스트캠퍼스 챌린지 05일차 (0) 2022.01.28 Convolution Layers | 패스트캠퍼스 챌린지 04일차 (0) 2022.01.27 Loss functions: MSE, BCE, CCE | BLAS 문제를 만나다 | 패스트캠퍼스 챌린지 03일차 (0) 2022.01.26