본문 바로가기
Music AI/Deep Learning

[Deep Learning] 04 왜 딥러닝이 뜨고 있을까요? | W1 딥러닝 소개 | C1 신경망과 딥러닝 | Andrew Ng

by 2den 2025. 7. 11.
728x90
반응형

https://www.youtube.com/watch?v=xflCLdJh0n0

 

딥러닝과 신경망에 대한 기본적인 이론이 이미 오랫동안 존재했다면, 왜 이제서야 뜨고 있는 것일까요? 이 동영상에서는 딥러닝의 주요 성장 동력에 대해 알아보겠습니다. 그 이해가 조직 안에서 더 나은 위치와 기회를 가져다 줄 것입니다.

 


 

(1) 신경망의 크기에 따른 데이터의 양과 퍼포먼스의 상관관계

 

지난 몇 년간 많은 사람들이 제게 물었습니다. 딥러닝이 왜 갑자기 잘 되고 있는 것인지 말입니다. 그러면 보통 이것을 보여 줍니다. 그래프를 그려 봅시다. 가로축은 어떤 태스크에 대한 데이터의 양을 세로축은 학습 알고리즘의 성능을 나타냅니다. 스팸 메일 분류기, 광고 클릭 수 예상의 정확도나, 자율 주행 자동차가 다른 차량의 위치를 파악할 때 사용하는 신경망의 정확도 같은 것들 말이죠.

 

전통적인 학습 알고리즘의 성능은 이렇습니다. 서포트 벡터 머신 (SVM)이나 로지스틱 회귀같은 것들 말이죠. 데이터 양에 따른 함수를 그리면 이런 곡선을 가집니다. 데이터를 추가하는 동안 성능이 향상되지만 어느정도 지나면 성능이 정체기에 이릅니다, 그렇죠? 잘 못그렸지만 이건 수평선입니다. 방대한 데이터로 뭘 해야 할지 모르는 것처럼 보이네요.

 

지난 약 20년간 사회가 변화함에 따라 많은 문제에 대해 상대적으로 적은 양의 데이터가 있었다가 꽤 많은 양의 데이터를 보유하게 되었습니다. 이제 인간은 수많은 활동을 디지털 세상에서 해결합니다 컴퓨터, 웹 사이트, 모바일 앱에 굉장히 많은 시간을 할애하죠. 그리고 디지털 기기 상에서의 활동은 데이터를 생성합니다. 그리고 디지털 기기 상에서의 활동은 데이터를 생성합니다. 또한 휴대폰에 내장된 저가 카메라나 가속도계, IOT에 사용되는 수많은 센서 등의 증가도 도움이 되었습니다. 그리고 계속해서 데이터를 수집하는 노력도 있었습니다. 그렇게 지난 20년 동안 많은 과정에서 많은 데이터를 모았습니다. 전통적인 학습 알고리즘이 효과적으로 처리할 수 있는 양 이상으로요.

 

그리고 신경망을 사용하면 작은 신경망을 훈련시켰을 때는 이 정도의 성능을 보이고, 조금 더 큰 중간 크기의 신경망을 훈련시키면 보통 더 좋은 성능을 냅니다. 만약 매우 큰 신경망을 훈련시킨다면 성능은 계속해서 좋아집니다. 여기에서 관찰할 수 있는 것은 이렇게 아주 높은 성능을 발휘하기 위해서 두 가지가 필요하다는 것입니다. 먼저 많은 양의 데이터를 이용하기 위해 충분히 큰 신경망이 필요하고 다음으로 x축의 이쯤에 있어야 합니다 많은 데이터가 필요하죠.

 

그래서 보통 규모가 딥러닝의 발전을 주도했다고 말합니다. 규모는 신경망의 크기, 곧 많은 은닉 유닛, 많은 연결과, 많은 파라미터를 가지는 것과, 데이터의 규모를 의미합니다. 사실 오늘날 성능을 올릴 때 가장 신뢰할 수 있는 방법은 더 큰 신경망을 훈련시키거나 더 많은 데이터를 집어넣는 것입니다. 그렇게 하는 것에 한계는 있습니다. 언젠가 데이터가 모자라거나 신경망이 너무 커져서 훈련도 너무 오래 걸리게 되겠지만 단순히 규모를 키우는 것만으로 딥러닝은 크게 성장했습니다.

 

이 그래프를 엄밀히 나타내고자 한다면, x축을 데이터의 양이라고만 했는데 x축은 레이블이 있는 데이터입니다. 레이블이 있는 데이터란 입력값 $x$와 레이블 $y$가 같이 있는 훈련 세트를 말합니다. 이 강좌에서 계속 사용하게 될 표기법이 있습니다. 훈련 세트의 크기를 나타낼 때 소문자 $m$을 사용하도록 하겠습니다. 따라서 훈련 샘플의 크기를 나타내는 x축에도 $m$을 사용합니다.

 

또 다른 세부사항으로 여기에 적은 훈련 세트라고 할 수 있는 구간에서는 알고리즘의 상대적 순위가 잘 정의되어 있지 않습니다. 따라서 훈련할 데이터가 많지 않다면 구현방법에 따라 성능이 결정되는 경우가 많습니다. SVM을 훈련시키는 데 여러 특성을 잘 관리한다면 이 구간 안에 있는 더 큰 신경망보다 SVM이 나을 수도 있습니다. 따라서 여기 왼쪽부터 이 구간은 알고리즘의 상대적 순위의 정의가 잘 정의되어 있지 않으므로 특성을 다루는 실력이나 알고리즘의 작은 부분이 성능을 크게 좌우하고 훈련 세트가 아주 클 때, 그러니까 오른쪽으로 가서 $m$이 아주 클 때만 큰 신경망이 일관되게 다른 방법을 압도하는 경향을 보입니다. 친구들이 왜 신경망이 뜨고 있는지 물어보면 이 그래프를 보여주세요.

 

 


 

초창기 딥러닝의 문제는 데이터와 계산의 규모였습니다. CPU나 GPU에서 아주 큰 신경망을 훈련시키게 된 것만으로도 큰 성과를 낼 수 있었습니다. 또한 특히 최근 몇 년 간 알고리즘 자체에도 큰 혁신이 있었습니다. 그것도 큰 부분 중 하나이죠. 흥미롭게도 알고리즘 혁신의 많은 부분이 신경망을 더 빠르게 실행하는 데 관한 것이었습니다.

 

(2) 왼쪽부터 순서대로 sigmoid 함수, ReLU 함수

 

예를 들면 신경망의 큰 발전을 야기한 것 중 하나는 이렇게 생긴 시그모이드 함수에서 전에 잠깐 얘기했던 ReLU 함수로 바뀌게 된 것입니다. 이렇게 생겼죠. 이제 제가 설명할 것은 이해하지 못해도 상관 없는데, 머신러닝에 시그모이드 함수를 사용하는 데에는 문제가 있습니다.

 

(3) sigmoid와 ReLU 함수의 미분

 

여기처럼 함수의 경사가 거의 0인 곳에서 학습이 굉장히 느려진다는 것입니다. 경사가 0일 때 경사 하강법을 사용하면 파라마터가 아주 천천히 바뀌고, 그러면 학습도 느려지기 때문입니다. 그런데 신경망의 활성화 함수라는 것을 ReLU(Rectified Linear Unit) 함수라고 하는 것으로 바꾸면 입력값이 양수인 경우의 경사가 1로 모두 같으므로 경사가 서서히 0에 수렴할 가능성이 훨씬 적습니다. 왼쪽의 경사가 0이기는 하지만요. 어쨌든 시그모이드 함수에서 ReLU 함수로 바꾸는 것만으로 경사 하강법이라는 알고리즘을 훨씬 빠르게 만들었습니다. 이것이 상대적으로 쉬운 알고리즘 혁신의 예이기는 하지만 이 알고리즘의 혁신으로 계산 능력을 크게 향상시킬 수 있었습니다. 이 알고리즘의 혁신으로 계산 능력을 크게 향상시킬 수 있었습니다.

 

알고리즘을 바꿔서 코드를 더 빠르게 만든 경우는 이것 말고도 많이 있는데, 그렇게 하면 더 큰 신경망을 훈련시키거나 많은 데이터를 가진 큰 신경망을 적당한 시간 내에 처리할 수 있습니다.

 


 

빠른 계산이 중요한 다른 이유는 많은 경우 신경망을 학습시키는 과정이 아주 반복적이기 때문입니다. 보통 신경망 아키텍처에 대한 아이디어를 떠올리고 나서, 그 아이디어를 코드로 구현하고 아이디어를 구현하고 나면, 그 신경망이 얼마나 좋은지 실험을 진행하게 됩니다. 그리고 결과를 보고, 다시 돌아가서 신경망을 수정하는 것으로 이 원을 계속 돌게 됩니다. 신경망 학습에 오랜 시간이 걸린다면 이 주기도 오래 걸리고 이는 생산성에 큰 차이를 줍니다. 효율적인 신경망을 만들어서 어떤 아이디어를 테스트할 때 10분, 혹은 최대 하루가 걸리게 하는 것과 신경망을 한 달동안 훈련시키는 것을 비교해 보면 실제로 그럴 때도 있습니다. 결과를 10분 정도나 하루만에 알 수 있다면, 더 많은 아이디어를 시험해 볼 수 있고, 원하는 경우에 맞는 신경망을 찾을 가능성이 더 높을 것입니다. 그래서 더욱 빠른 계산 방법은 실험의 결과를 얻는 시간을 빠르게 만들었고 이는 신경망을 사용하는 사람과 딥러닝을 연구하는 사람 모두에게 도움이 되었습니다. 과정을 빨리 반복해 아이디어를 더 빨리 발전시킬 수 있도록 말입니다. 또한 이 모든 것은 딥러닝 연구 커뮤니티가 새로운 알고리즘을 발명하고 지속적인 성과를 내는 데에 큰 도움이 되었습니다.

 


 

딥러닝은 이러한 요소들을 바탕으로 성장을 거듭하고 있습니다. 다행인 것은 이런 요소들이 아직도 힘차게 딥러닝을 발전시키고 있다는 것입니다. 데이터를 생각해 보면 사회는 더욱 많은 양의 데이터를 생성하고 있고 계산 방법의 관점에서 생각하면 GPU같은 전문화된 하드웨어나 더 빠른 네트워크 등의 발전이 더 큰 신경망을 구성하는 능력을 계속해서 키워줄 수 있을 것입니다. 알고리즘의 관점에서도 딥러닝 연구 커뮤니티는 아직까지 계속해서 알고리즘을 혁신해 가고 있기 때문에, 저는 딥러닝이 앞으로 수년간 계속해서 발전할 것이라고 생각합니다. 저는 딥러닝이 앞으로 수년간 계속해서 발전할 것이라고 생각합니다.

 

그러면 다음 동영상에서 이 과정에서 무엇을 배우게 되는지 알아보도록 하겠습니다.

728x90
반응형

댓글