-
-
딥러닝 첫걸음 - 머신러닝에서 컨벌루션 신경망까지 ㅣ 머신러닝/딥러닝 첫걸음 시리즈
김성필 지음 / 한빛미디어 / 2016년 12월
평점 :
절판

한빛미디어의 딥러닝 첫걸음을 읽으면서 내내 쉬우면서도 쉽지 않다는 생각이 들었다.
책은 정말 쉽게 설명하려고 많이 노력한 흔적이 많이 보인다. 수식보다는 최대한 그림과 예제를 많이 사용하였고, 이해를 돕기 위해 사용되는 수식들도 일차방정식이 대부분이고, 시그마와 로그 정도는 그냥 이해를 위해 덧붙인 수준이라 크게 어렵지 않지만 그래도 오랜만에 보는 수식들이 눈에 익지 않았기에 어렵지 않다고는 못하겠다. 예제는 메타랩이라서 처음 보는 예제였지만, 고급언어의 특성을 가지고 있기에 수식보다는 예제가 더 가독성이 높았다.
저자의 노력과 쉬운 설명에도 머신러닝, 딥러닝이 기존의 패러다임을 가지고는 이해하기 어려운 분야이기에 쉽지는 않았다. 얇은 두께이기에 여러 번을 읽고서야 어느 정도 감을 잡을 수 있었다. 혹시 책을 읽으면서 이해가 되지 않는 부분에 너무 깊게 얽매이지 말고, 그냥 다음 장으로 넘기면서 전체를 다 읽은 후에 다시 읽는 방법으로 접근한다면, 이 책이 쉽게 잘 설명한 것이라는 것을 느낄 수 있을 것이다. (내가 설명한다고 생각해보면, 이보다 쉽게 설명하긴 어려울 것 같다는 확신이 들었다.)
책을 읽고 난후에 머신러닝, 딥러닝이 도깨비 방망이가 아닌 기술이라는 점을 명확히 깨닫게 해주었다.
딥러닝책이지만, 딥러닝 자체가 머신러닝을 기반으로 세워진 기술이기에 4장까지는 머신러닝과 관련 기술들을 소개하고 5장 딥러닝, 6장 컨벌루션 신경망으로 마무리 된다.
책을 읽으면서 얻은 지식, 느낀 점을 나열하면 아래와 같다.
- 머신러닝은 데이터에서 모델을 찾아 내는 기법인데, 사람이 직접 데이터를 분석해 모델을 만들어 내는 게 아니라, 머신러닝 기법이 데이터를 분석해 모델을 스스로 찾아내기에 학습(learning)이라는 단어가 붙게 되었다.
- 간단한 예제를 통해 직접 모델을 만드는 과정을 보여주고, 조금 더 발전된 문제는 해결하지 못하는 것을 보여주면서 단층 신경망의 한계를 직접 보여준다. 단층 신경망은 입력 데이터의 공간을 선형 분리하는 모델이기 단층 신경망은 선형 분리 가능한 문제만 풀 수 있다.
- 이 책에서 가장 어려운 부분 중 하나로 꼽는 3장에서 소개하는 역전파 알고리즘을 몰라도 딥러닝을 공부하고 개발하는 데는 별 지장은 없다고 한다 대부분의 딥러닝 라이브러리에는 이미 역전파 알고리즘이 구현되어 있어 그냥 가져다 쓰면 된다고는 하지만, 이해하고 쓰는것과는 차이가 있지 않을까 해서 여러분 읽어보게 된 부분이다.
- 결국 입력과 출력은 종류가 어떻게 되었건 데이터로 숫자로 치환되어야 한다. 그림 데이터는 흰색 픽셀은 0으로, 검정색 픽셀은 1로 바꿔서 이미지를 2차원 행렬로 변환시켜 사용하였다. 다른 데이터의 경우에도 마찬가지 일 것이다.
- 딥러닝은 은닉층이 2개 이상인 다층 신경망(심층 심경망)을 이용한 머신러닝 기법이라고 할 수 있는데, 단층 신경망에 은닉층 하나 추가한 신경망은 다층 신경망의 학습 규칙을 찾아내지 못해 무려 30여 년이 지나서야 비로소 등장했다.
1986년 역전파 알고리즘이 개발되면서 다층 신경망의 학습문제가 마침내 해결되었다고는 하지만, 여기서 다시 깊은 은닉층을 가진 심층 신경망이 충분한 성능을 내게 하는데 무려 20여 년이 더 걸렸다.
그만큼 심층 신경망은 제대로 학습시키기가 어려웠으나, 현재 딥러닝 기술은 기존의 신경망뿐만 아니라 다른 머신러닝 기법들을 압도하는 놀라운 성능을 보여주며, 인공지능 연구를 주도하고 있다.
- 딥러닝은 그래디언트 소실(vanishing gradient), 과적합, 많은 계산량등의 문제가 있었다.
그래디언트 소실은 노드들의 활성함수를 입력이 음수이면 0을 출력하고, 양수이면 입력값 그대로 출력하는 ReLU 함수로 바꾸는 것으로 해결되었고, 과적합은 은닉층이 늘어나면서 연결 가중치도 많아져 더 복잡한 모델이 되기 때문에 과적합 문제에는 더 취약해지는 딜레마에 빠지게 된 것을 신경망 전체를 다 학습시키지 않고 일부 노드만 무작위로 골라 학습시키는 드롭아웃(Dropout)이라는 기법으로 해결되었다.
많은 계산량은 GPU같은 고성능 하드웨어의 등장과 배치 정규화등 여러 알고리즘 덕분에 상당 부분 개선되었는데 결국 하나의 엄청난 기술이 딥러닝을 발전시킨 것이 아니라, 여러 부분의 개선들이 뭉쳐서 지금의 딥러닝을 만들었다.
그결과 머신러닝의 3대 연구 분야로 꼽는 영상 인식, 음성 인식, 자연언어 처리에 각각 좋은 성능을 내는 기술들이 따로 있었지만, 이제는 딥러닝이 전 분야에서 기존 기법의 성능을 뛰어넘는 발군의 실력을 보여주고 있다.