코세라 앤드류 응 교수님의 딥러닝 1번째 코스, 신경망 및 딥러닝 코스의 4주 차 강의 내용 리뷰입니다.
이번 글에서는 "딥러닝에서 왜 신경망의 층을 깊게 해서 사용하는지"에 대해서 알아보겠습니다.
---> 신경망의 층을 깊게 해서 학습한다는 말을 "심층 표현"이라고도 합니다.

우리는 딥러닝이 현실의 정말 다양한 문제에 대해서 잘 작동한다는 사실을 알고 있습니다.
그런데, 딥러닝이 그렇게 잘 작동하기 위해서는 신경망이 크고 깊어야합니다.
도대체 왜 그런 걸까요?
몇 가지 예시를 통해서 그 이유에 대해서 알아보겠습니다.

예를 들어서,
딥러닝을 활용한 얼굴인식 시스템이 얼굴인식을 수행하는 과정에 대해서 이야기해보겠습니다.
딥러닝 머신이 얼굴인식을 위해서 1번째로 수행하는 일은
일단 인식할 얼굴을 입력하는 일입니다.
---> 이 과정에서 사진은 64*64과 같이 픽셀 단위로 나뉘어 입력되게 됩니다.

사진을 입력한 이후, 딥러닝 머신이 수행하는 2번째 일은
얼굴의 모서리를 파악하여, 어떠한 부분을 인식해야 할지 정하는 일입니다.
----> 모서리를 파악하여, 얼굴인식에 필요한 사진의 주요 부분만 찾기 위해서

모서리를 찾는 과정을 통해서 얼굴인식에 필요한 주요 부분(픽셀)을 찾은 이후에,
딥러닝 머신이 수행하는 3번째 일은
주요 부분들을 서로 취합하여 눈, 코, 턱, 입과 같이 얼굴의 세부적인 부분을 감지해주는 일입니다.

(눈, 코, 입, 턱 등등) 얼굴의 세부적인 부분을 감지한 이후에,
딥러닝이 수행하는 4번째 일은 얼굴의 세부 부위를 조합하여 다양한 유형의 얼굴을 만들어서,
만들어진 여러 얼굴들을 감지하거나 인식하는 일은 수행하는 일입니다.
1~4번째 일을 보고 직관적으로 알 수 있는 건
신경망의 층이 깊어질수록, 딥러닝 머신은 좀 더 복잡한 일을 수행한다는 것입니다.
그렇기에, 딥러닝에게 복잡한 일을 시키기 위해서는 신경망의 층이 깊어야 되는 것이죠.

딥러닝의 층이 크고 깊어야 잘 작동하는 이유는 위의 이유뿐만이 아닙니다.
또다른 이유는
딥러닝의 층이 얕을수록, 기하급수적으로 훨씬 더 많은 계산을 수행해야 되기 때문입니다.

예를 들어서,
동일한 일을 수행하는 얕은 신경망과 깊은 신경망이 있다고 가정해보겠습니다.
왼쪽의 깊은 신경망은 XOR 연산을 통해서 비교적 적은 연산으로도 결과를 도출해내지만,
오른쪽의 얕은 신경망은 결과를 도출해내기 위해서 2'n이라는 기하급수적으로 훨씬 많은 연산을 해야 합니다.
----> 신경망이 깊어지면, 같은 일을 훨씬 적은 연산으로 수행할 수 있음
이러한 비유는 정확한 이유는 아니지만, 사람들로 하여금 쉽게 다가오기 때문에 제가 자주 쓰는 비유입니다.
마지막으로 심층 표현을 사용하는 이유에 대해서 한 가지만 더 말해보겠습니다.
사실 굳이 심층 표현이 아니라더라도, 그리 깊지 않은 신경망으로도 좋은 성능을 낼 수 있는 경우가 많습니다.
하지만 최근에 심층 표현을 이용한 소프트웨어가 훌륭한 성능을 발휘한 경우가 많았기 때문에,
심층 표현이 좀 더 유행하게 됐지 않았나 하는 게 제가 생각하는 마지막 이유입니다.
이상으로 왜 신경망을 깊게 하여 사용하는 이유에 대한 이번 강의를 마치며,
이어서 다음 강의에는 역전파를 구현하는 메커니즘에 대해서 알아보도록 하겠습니다.
이 내용들은 모두 coursera에서 앤드루 응 교수님의 강의를 요약정리 및 쉽게 재 풀이하여 적은 글이며,
내용에는 생략되거나 변형된 부분이 많으니 직접 강의를 들어보시는 걸 추천드립니다!
이 글은 상업적 목적이 아닌, 한국에서 인공지능을 배우고 싶은 분들을 위해 적은 교육적 목적에서 작성하였습니다.
'코세라 앤드류 응 AI 강의 리뷰' 카테고리의 다른 글
| [인공지능 강의 리뷰] 26 - 총정리 퀴즈. 신경망의 주요 개념 (0) | 2022.07.29 |
|---|---|
| [인공지능 강의 리뷰] 25 - 매개변수와 하이퍼 매개변수의 차이점 +뇌와 딥러닝의 관련성 (0) | 2022.07.29 |
| [인공지능 강의 리뷰] 24 - 심층 신경망에서의 순전파(forward propagation) + 역전파(back propagation) (0) | 2022.07.16 |
| [인공지능 강의 리뷰] 22 - 딥러닝에서 행렬의 크기 알아보기(Getting your matrix dimensions right) (0) | 2022.06.01 |
| [인공지능 강의 리뷰] 21 - L층의 뉴럴 네크워크(Deep L-layer Neural Networks) (0) | 2022.05.31 |
| [인공지능 강의 리뷰] 20 - 하나의 숨겨진 레이어를 사용한 평면 데이터 분류. 프로그래밍 과제 (0) | 2022.05.19 |
| [인공지능 강의 리뷰] 19 - 하나의 숨겨진 레이어를 사용한 평면 데이터 분류. 프로그래밍 과제 (0) | 2022.05.18 |