페이지

2022년 7월 16일 토요일

1.3.4 새로운 투자의 바람

 딥러닝이 2012-2013년에 컴퓨터 비전과 지각에 관련된 모든 문제에서 최고의 성능을 내자 업계의 리더들이 주목하기 시작했습니다. 과거 AI의 역사에서 보얐던 것을 뛰어넘는 투자가 서서히 이루어지고 있습니다.

딥러닝의 주목을 받기 직전인 2011년에 전체 벤처 캐피탈이 AI 에 투자한 금액은 1,900만 달러였고 대부분은 얕은 학습 방식의 머신 러닝 애플리케이션이었습니다. 2014년에는 믿기 힘들지만 3억 9,400만 달라로 늘었습니다. 이 기간에 딥러닝의 인기에 힘입어 수십 개의 스타트업을 런칭했습니다. 한펴 구글, 페이스북, 바이두, 마이크로소프트 같은 테크 공룡들은 벤처 캐피탈의 투자를 무색하게 만들 정도로 많은 금액을 내부 연구 부문에 투자했으며, 그 중 아주 일부만 알려져 있습니다. 2013년 구글은 5억 달러에 딥러닝 스타트업인 딥마인드(DeepMind)를 인수했습니다. AI역사상 가장 큰 금액의 인수였습니다. 2014년에 바이두는 실리콘 밸리에 3억 달러를 투자하여 딥러닝 연구센터를 설립했습니다. 2016년에는 인테이 딥러닝 하드웨어 스타드업인 너바나(Nervana)시스템를 4억 달러에 인수 했습니다.

머신 러닝(특히 딥러닝)은 테크 공룡들의 핵심 상품 전략이 되었습니다. 2015년 후반에 구글의 CEO 선다 피차이(Sundar Pichai)는 "머신 러닝은 우리가 일을 하는 모든 방법을 다시 생각하게 만드는 중요하고 혁신적인 도구입니다. 우리는 머신 러닝을 검색, 광고, 유튜브, 그글 플레이 같은 전체 제품에 신중하게 적용하고 있습니다. 아직은 초기이지만 체계적으로 모든 분야에 머신러닝을 적용할 것입니다." 라고 말했ㅅ브니다.

이런 투자의 물결로 인해 딥러닝 분야에서 일하고 있는 사람들의 수가 지난 5년간 몇 백 명에서 몇 만 명으로 늘어났고 연구는 엄창난 속도로 진전되고 있습니다. 현재는 이런 트렌드가 느려질 어떤 징후도 없습니다.

1.3.3 알고리즘

 하드웨어 데이터에 이어 2000년대 후반까지는 매우 깊은 심층 신경망을 훈련시킬 수 있는 안정적인 방법을 찾지 못했습니다. 이런 이유로 하나 또는 2개의 층만 사용하는 매우 얕은 신경만만 가능했습니다. SVM과 랜덤 포레스트 처럼 잘 훈련된 얕은 학습 방법에 비해 크게 빛을 보지 못했습니다. 깊게 쌓은 층을 통과해서 그래디언트(gradient)를 전파하는 것이 가장 문제였습니다. 신경망을 훈련하기 위한 피드백 신호가 층이 늘어남에 따라 희미해지기 때문입니다.

2009-2010년경에 몇 가지 간단하지만 중요한 알고리즘이 개선되면서 그래디언트를 더 잘 전파되게 만들어 주었고 상황이 바뀌었습니다.

- 신경망이 층에 더 잘 맞는 활성화 함수(activation function)

- 층별 사전 훈려(pretraining)을 불필요하게 만든 가중치 초기화(weight initialization)방법

- RMSProp과 Adam같은 더 좋은 최적화 방법

이런 기술의 향상으로 10개 이상의 층을 가진 모델을 훈련시킬 수 있게 되었을 때 비로소 딥러닝이 빛을 발하기 시작했습니다.

2014-2016년 사이에 그래디언트를 더욱 잘 전파할 수 있는 배치 정규화(batch normalization), 전차 연결(residual connection), 깊이별 분리 합성곱(depthwise separable convolution)같은 고급 기술들이 개발되었습니다. 요즘에는 층의 깊이가 수천 개인 모델을 처음부터 훈련시킬 수 있습니다.


1.3.2 데이터

 이따름 AI는 새로운 산업 혁명으로 불립니다. 딥러닝이 이 혁명의 증기 기관이라면 데이터는 이 기관에 필요한 연료입니다. 인공 지능이란 기관을 움직이는 원료가 없으면 어떤 것도 불가능합니다. 데이터에 관해서라면 지난 20년간 (무어의 법칙(Moore's law)에 따라) 저장 장치의 급격한 발전과 더불어, 머신 러닝을 위한 대량의 데이터 셋을 수집하고 배포할 수 있는 인터넷 성장이 시장의 판도를 바꾸었습니다. 요즘 큰 규모의 회사들이 사용하는 이미지 데이터셋, 비디오 데이터셋, 자영어 데이터 셋은 이넡넷 없이는 수집할 수 없습니다. 예를 들어 플러커(Flicker)에서 사용자가 붙인 이미지 태그는 컴퓨터 비전의 입장에서는 보물 같은 데이터입니다. 유튜브(YouTube)비디오도 마찬가지 입니다. 위키피디아(Wikipeida)는 자연어 처리 분야에 필요한 핵심 데이터셋입니다.

딥러닝의 성장을 이끈 촉매제와 같은 데이터셋 하나를 꼽는다면, 바로 1,400만 개의 이미지를 1,000개의 범주로 구분해 놓은 ImageNet 데이터셋입니다(하나의 이미지는 하나의 범주를 가집니다). ImageNet이 특별한 것은 크기만이 아니라 이와 연계되어 매년 열린 경연대회입니다.

캐글이 2010년에 선보인 후 공개 경연 대회는 연구자들과 기술자들이 한계를 뛰어넘도록 만드는 아주 훌륭한 도구가 되었습니다. 연구자들이 경쟁하기 위한 일반적인 기준이 있다는 것 역시 최근 딥러닝의 성장에 큰 도움을 주었습니다.

1.3.1 하드웨어

 시중에 판매되는 CPU는 1990녀과 2010년 사이에 거의 5,000배가 빨라졌습니다. 그 덕에 요즘에는 노트북에서도 작은 딥러닝 모델을 실행시킬 수 있습니다. 25년 전이라면 현실적으로 불가능 했던 일입니다.

하지만 컴퓨터 비전이나 음성 인식에서 사용되는 일반적인 딥러닝 모델들은 노트북보다 10배의 계산 능력이 필요합니다. 2000년대에 NVIDIA와 AMD 같은 회사들이 실사와 같은 비디오 게임의 그래픽 성능을 높이기 위해 대용량 고속 병렬 칩(그래픽 처리장치(GPU))을 개발하는 데 수십억 달러를 투자해 왔습니다. 이런 칩은 ㅂ족잡한 3D 장면을 실시간으로 화면에 그리려는 목적으로만 설계된 저렴한 슈퍼컴퓨터와 같습니다. 2007년 NVIDIA가 자사의 CPU제품을 위한 프로그래밍 인터페이스인 CUDA(https://developer.nvidia.com/about-cuda)를 출시하면서 과학 커뮤니티가 이런 투자의 혜택을 보게 되었습니다. 물리 모델링을 시작으로 다양한 병렬 애플리케이션의 대형 CPU  클러스터가 소량의 GPU로 대체되기 시작했습니다. 대부분 많은 수의 간단한 행렬 곱셈으로 구성된 심충 신경망도 높은 수준으로 병렬화가 가능합니다. 2011년 즈음에 댄 크리슨과 알렉스 크라체브스키 등 일부 연구자들이 CUDA를 사용한 신경망 구현을 만들기 시작했습니다.

게임 시장이 차세대 인공 지능 애플리케이션을 위한 슈퍼컴퓨팅에 투자를 한 셈입니다. 이처럼 이따름 엄청난 일들이 케임에서 시작되곤 합니다. 2015년 말 시세로 1,000달러짜리 게임용 GPU인 NVIDA TITAN X는 6.6테라플롭(TFLOPS)의 단정도 연산 성능을 제공합니다. 즉 초당 6.6조개의 float32 연산을 수행합니다. 이는 최슨 노트북의 성능보다 350배나 빠릅니다. TITTAN X를 사용하면 몇 년 전 ILSVRC 대회에서 우승했던 ImageNet 모델을 며칠 안에 훈련시킬 수 있습니다. 한편 큰 회사들은 NVIDIA Tesla K80처럼 딥러닝을 위해 개발된 GPU 수백 개로 구성된 클러스터에서 딥러닝 모델을 훈련시킵니다. 이런 클러스터의 계산 능력은 최신의 GPU가 없었다면 절대로 불가능했을 것입니다.이에 더하여 딥러닝 산업은 GPU를 넘어서 더 효율적이고 특화된 딥러닝 칩에 추자하기 시작했습니다. 구글은 2016년 I/O연례 행사에서 텐서 처리 장치(Tensor Procesing Init, TPU) 프로젝트를 공개했씁니다. 이 칩은 심층 신경망을 실행하기 위해 완전히 새롭게 설계한 것으로 최고 성능을 가진 GPU 보다 10배 이상 빠르고 에너지 소비도 더 효율적입니다.

1.3 왜 딥러닝일까? 왜 지금일까?

 컴퓨터 비전에 대한 딥러닝의 두 가지 핵심 아이디어인 합성곱 신경망과 역전파는 이미 1989년에 소개되었습니다. 시계열을 위한 딥러닝의 기본인 LSTM(Long Short-Term Memory)알고리즘은 1997년에 개발되었고 그 이후로는 변화가 거의 없습니다. 왜 2013년 이후에 딥러닝이 부상하게 되었을까요? 지난 20년간 어떤 변화가 있었던 것일까요?

일반적으로 세가지 기술적인 힘이 머신 러닝의 진보를 이끌었습니다.

- 하드웨어

- 데이터셋과 벤치마크(banchmark)

- 알고리즘 향상

이 분야는 이론보다 실험을 통해서 성장해 왔기 때문에 새로운 아이디어를 실험할 (또는 종종 기존 아이디어를 확장하기 위해서) 적절한 데이터와 하드웨가 준비되어 있어야만 알고리즘이 발전할 수 있습니다. 머신 러닝은 주로 연필과 종이로 발전되는 수학이나 물리학이 아닙니다. 머신러닝은 하나의 공학(engineering science)입니다.

1990년대와 2000년대에 걸친 진짜 병목은 데이터와 하드웨어였습니다. 하지만 이 기간 동안 인터넷이 시작되었고, 게임 시장이 커지면서 고성능 그래픽 칩이 개발되었습니다.

1.2.7 머신 러닝의 최근 동향

 요즘 머신 러닝 알고리즘과 도고의 동향에 대한 정보를 얻는 좋은 방법은 캐글의 머신 러닝 경연을 살펴보는 것입니다. 매우 치열하게 경재하고 (어떤 대회는 수천 명이 참여하고 상금이 높습니다) 다양한 종류의 머신 러닝 문제를 다루고 있기 때문에 캐글은 좋은 것과 나쁜것을 평가할 수 있는 현실적인 잣대가 됩니다. "어떤 종류의 알고리즘이 경연 대회에서 우승하는 데 도움이 되나요? 상위에 랭크되어 있는 참가자들은 어떤 도구를 사용하나요?

2016년과 2017년 캐글에는 그래디언트 부스팅 머신과 딥러닝의 두 가지 접근 방법이 주류를 이루었습니다. 특시 그래디언트 부스팅은 구조적인 데이터인 경우에 사용되고, 딥러닝은 이미지 분류 같은 지각에 관한 문제에 사용됩니다. 전자의 경우 거의 항상 XGBoost 라이브러리를 사용합니다. 이 라이브러리는 데이터 과학 분야에서 가장 인기 있는 두 언어인 파이썬(Python)과 R을 지원합니다. 딥러닝을 사용하는 대부분의 참가자는 사용하기 쉽고, 유연하며 파이썬을 지원하는 케라스 라이브러리를 사용합니다.

오늘날 머신 러닝을 성공적으로 적용하기 위해 알아야 할 두 가지 기술은 얕은 학습 문제를 위한 그래디언트 부스팅 머신과 지각에 관한 문제를 위한 딥러닝입니다. 기술적으로 보면 캐글 경연대회에서 주로 사용되는 2개의 라이브러리인 XGBoost와 케라스를 배울 필요가 있다는 뜻입니다.

1.2.6 딥러닝의 특징

 딥러닝이 이렇게 빠르게 확산된 주된 이유는 많은 문제에서 더 좋은 성능을 내고 있기 때문입니다. 하지만 그것뿐만이 아닙니다. 딥러닝은 머신 러닝에서 가장 중요한 단계인 특성 공학을 완전히 자동화하기 때문에 문제를 더 해결하기 쉽게 만들어 줍니다.

얕은 학습인 이전의 머신 러닝 기법은 입력 데이터를 고차원 비선형 투영(SVM)이나 결정 트리 같은 간단한 변환을 통해 하나 또는 2개의 연속된 표현 공간으로만 변환합니다. 하지만 복잡한 문제에 필요한 잘 정제된 표현은 일반적으로 이런 방식으로 얻지 못합니다. 이런 머신 러닝 방법들로 처리하기 용의하게 사람이 초기 입력 데이터를 여러 방식으로 변환해야 합니다. 즉 데이터의 좋은 표현을 수동으로 만들어야 합니다. 이를 특성 공학(feature  engineering)이라고 합니다. 그에 반해 딥러닝은 이 단계를 완전히 자동화 합니다. 딥러닝을 사용하면 특성을 직접 찾는 대신 한 번에 모든 특성을 학습할 수 있습니다. 머신 러닝 작업 흐름을 매우 단순화시켜 주므로 고도의 다단계 작업과정을 하나의 간단한 엔드-투-엔드(end-to-end) 딥러닝 모델로 대체할 수 있습니다.

이슈의 핵심이 여러 개의 연속된 표현 층을 가지는 것이라면, 얕은 학습 방법도 딥러닝의 효과를 모사하기 위해 반복적으로 적용할 수 있지 않을까요? 실제로 얕은 학습 방법을 연속적으로 적용하면 각 층의 효과는 빠르게 줄어듭니다. 3개의 층을 가진 모델에서 최적의 첫 번째 표현 층은 하나의 층이나 2개의 층을 가진 모델에서 최적의 첫 번째 층과는 달라야 합니다. 딥러닝의 변환 능력은 모델이 모든 표현 층을 순차적이 아니라(즉 탐욕적(greedily)방법이 아니라) 동시에 공동으로 학습하게 만듭니다. 이런 공동 특성 학습 능력 덕택에 모델이 내부 특성 하나에 맞추어질 때무다 이에 의존하는 다른 모든 특성이 사람이 개입하지 않아도 자동으로 변화에 적용하게 됩니다. 모든 학습은 하나의 피드백 신오에 의해 시작됩니다. 즉 모델의 모든 변화는 최종 목표를 따라게게 됩니다. 이 방식은 모델을 많은 중간 영역(층)으로 나누어 복잡하고 추상화된 표현을 학습시킬 수 있기 때문에 얕은 학습 모델을 탐욕적으로 쌓은 것보다 훨씬 강력합니다. 여기에서 각 층은 이전 층에 의존하지 않는 단순한 변환을 수행합니다.

딥러닝이 데이터로부터 학습하는 방법에는 두 가지 중요한 특징이 있습니다. 층을 거치면서 점짐적으로 더 복잡한 표현이 만들어진다는 것과 이런 점전적인 중간 표현이 공동으로 학습된다는 사실입니다. 각 층은 사위 층과 하위 층의 표현이 변함에 따라서 함께 바뀝니다. 이 2개의 특징이 이전의 머신 러닝 접근 방법보다 딥러닝이 훨씬 성공하게 된 이유입니다.