본문 바로가기

데이터 다루기/신경망

[신경망] 9. Deep Learning

728x90
반응형

안녕하세요, 이번 포스팅에서는 딥러닝 (Deep Learning)에 들어가기 앞서 기초를 다루어 보도록 하겠습니다.

딥러닝은 사실상 이름만 다른 신경망입니다. 특히 신경망중에서 Layer수가 많은 다층 신경망이죠.

신경망 이론이 각광을 받기 시작한건 최근 AI기술 (알파고)이 세계를 놀라게 한 이후이기 때문에 사람들이 딥러닝이 새로운 학문이라고 생각하곤 합니다. 하지만 신경망 이론은 사실상 1943년에 McCulloch, Warren S., and Walter Pitts.가 발표한 “A logical calculus of the ideas immanent in nervous activity”에서 시작되었습니다.

과연 이제서야 딥러닝 기술이 각광받는 이유는 무엇일까요??

이번 포스팅에서는 이 질문에 대한 답을 알려드리도록 합니다.

1. 알고리즘 한계 극복

첫 번째는 바로 알고리즘의 한계를 극복한 것입니다. 신경망의 학습 방법인 Backpropogation에는 치명적인 단점이 있습니다. 바로 신경망의 층이 많아 질수록 Input Layer에 가까운 Weight들은 거의 변화가 없어집니다. 이 현상을 Gradient Vanishing 이라고 부릅니다. 이러한 문제는 활성화 함수로 Sigmoid 함수를 사용할 때, Sigmoid 함수의 미분 값이 최대값이 0.25이며 입력값이 0으로부터 멀어질수록 출력값이 0에 거의 수렴합니다. 따라서 활성화함수의 미분값이 입력층으로 갈수록 계속 곱해지는 Backpropogation 알고리즘에서는 이러한 문제가 치명적으로 작용합니다.

이러한 문제가 2006년까지 풀리지 않는 미스테리로 남겨져있다가, 활성화 함수를 Sigmoid 함수 대신 ReLU 함수로 대체하는 방법으로 해결이 되어 신경망을 다층으로 깊게 쌓아도 Gradient Vanishing 문제가 발생하지 않게됩니다.

이러한 해결책으로 인해 딥러닝의 문제가 해결되어 최근들어서 갑자기 뜨기 시작한것입니다.

2019/06/01 - [데이터 다루기/신경망] - [신경망] 5. 역전파 알고리즘 (Backpropogation)

2019/06/03 - [데이터 다루기/신경망] - [신경망] 6. 활성화 함수 (Activation Function)

 

 

 

2. 기술적 요인 향상

두 번째 이유는 바로 기술적 요인이 뒷받침되기 때문입니다. 1990년대에만 해도 다들 기억하시겠지만, 컴퓨터의 성능이 지금 생각해보면 매우 좋지 못했습니다. 딥러닝을 학습하기 위해선 엄청난 계산량을 요구하기 때문에 옛날에는 딥러닝을 구현하기에는 현실적인 문제가 있었습니다. 하지만 요즘에는 GPU, RAM, CPU 모두 엄청난 성능을 자랑하기 때문에 딥러닝을 구현하기에 현실적으로 가능해졌습니다.

3. 빅데이터 시대

세 번째 이유는 바로 데이터양의 급증입니다. 딥러닝을 만약 적은 데이터로 학습시킨다면 아주 극심한 과적합 (Overfitting) 문제에 시달리게 됩니다. 이전에는 강아지와 고양이 사진을 구별하는 모델을 만들려고 해도, 강아지와 고양이 사진을 직접 구해와야 하는 등의 방법 밖에 없어서 데이터의 수가 적었습니다. 하지만 최근에는 구글에서 검색만해도 수천만개의 이미지를 구할 수 있게 되는 빅데이터 시대가 딥러닝의 구현을 가능하게 만들어줬습니다.

반응형