본문 바로가기
IT Expertise/Deep Learning

[Coursera] 1 딥러닝 소개 | Andrew Ng (한국어 자막 스크립트)

by 2den 2025. 3. 21.
728x90

Youtube Link

01 환영합니다! https://www.youtube.com/watch?v=CS4cs9xVecg

02 신경망은 무엇인가? https://www.youtube.com/watch?v=n1l-9lIMW7E

03 신경망을 이용한 지도학습 https://www.youtube.com/watch?v=BYGpKPY9pO0

04 왜 딥러닝이 뜨고 있을까요? https://www.youtube.com/watch?v=xflCLdJh0n0

 


한국어 자막

 

01 환영합니다!

 

안녕하세요. 이미 알고 계시겠지만 딥러닝은 웹검색이나 광고같은 인터넷 산업에 이미 사용되고 있습니다. 뿐만 아니라 딥러닝은 새로운 종류의 상품이나 산업의 개발을 가능하게 합니다. 많은 사람들은 x-ray 이미지 분석에서 딥러닝이 탁월한 헬스케어 분야부터 개인 맞춤형 교육, 정교한 농업기술 자율주행 자동차까지 다양한 것들을 창조해 내고 있습니다. 딥러닝 도구들을 배우고 이를 접목해 놀라운 것들을 만들고 싶다면 그 목표를 달성할 수 있도록 함께 도와드리겠습니다. 이 딥러닝 전문과목인 coursera 수업들을 다 듣게 된다면 이력서를 쓸 때 딥러닝에 대해서 잘 알고 있다고 쓸 수 있을 것입니다. 앞으로 몇 십년동안 이 강의를 듣고계신 수강생 여러분들은 이런 놀라운 인공지능 세계와 인공지능 사회를 건설할 수 있을 것입니다. 수강생 여러분들이 인공지능 사회를 창조하는 데 중대한 역할을 하시길 바랍니다 자 이제 시작을 하도록 하겠습니다.

인공지능은 새로운 전기라고 생각합니다. 100여년 전부터 우리사회에서 전기화는 많은 주요 산업들을 변화시켰습니다. 수송, 헬스케어, 통신 등 더 많은 것들을 변화시켰습니다. 그리고 오늘날에는 인공지능이 그에 버금가는 큰 변화를 보여주고 있습니다. 당연하게도 딥러닝은 급격하고 빠른 변화를 이끌어내는 인공지능의 한 부분입니다. 요즘은 딥러닝은 과학기술사회에서 가장 필요한 능력 중 하나가 되었습니다. 이 코스와 이 코스 후에 코스들을 통해 그러한 능력들을 갖출 수 있도록 돕겠습니다.

다음은 전문강의라고도 부르는 이 강의를 통해 배울 내용들입니다.

 

첫 번째 코스에서는 신경망과 딥러닝의 기초에 대해서 배우게 됩니다. 이 강의 비디오는 첫 번째 코스의 일부분입니다. 총 4주동안 코스가 진행될 것이고 총 5개의 전문강의들은 각각 2-4주 동안 진행됩니다. 대부분은 4주보다는 짧게 진행됩니다. 첫 코스에서는 딥러닝을 포함한 새로운 신경망을 어떻게 설계하는지, 어떻게 데이터를 가지고 훈련시키는지 코스 마지막에는 심층 신경망으로 고양이를 인식하는 작업을 하겠습니다. 딥러닝 분야에서는 고양이를 사용하는 전통이 있기 때문에 전통에 따라 첫번째 강의에서는 고양이 인식기를 만들 것입니다.

그리고 두 번째 코스에서는 딥러닝의 실제적인 면에 대해서 배울 것입니다. 그래서 신경망이 어떻게 작동을 하는지, 하이퍼파라미터의 튜닝은 어떻게 하는지, 규제는 어떻게 하는지, 편향와 분산은 어떻게 분석하는지, 모멘텀, RMSProp, Adam 같은 더 나은 최적화 알고리즘은 무엇이 있는지 배웁니다. 가끔은 이런 수많은 튜닝들은 흑마법으로 네트워크를 구성하는 것 같기도 합니다. 두 번째 코스는 3주 강의로 그런 흑마법들을 파헤칠 것입니다.

세 번째 코스는 2주 강의인데 머신러닝 프로젝트를 어떻게 설계하는지 배웁니다. 머신러닝 시스템을 구축하는 전략은 딥러닝 세대에 들어오며 변화하였습니다. 예를들어 데이터를 훈련, 개발, (홀드아웃 교차검증 세트라고 불리기도 하죠,) 테스트 세트로 나누는 방법에 따라 딥러닝 에러가 차이날 수 있습니다. 그럼 어떻게 하는 것이 훈련 세트가 무엇이든 간에 가장 좋은 방법일까요? 테스트 세트의 분포가 훈련 세트와 다를 때 조차도 말이죠. 어떻게 다루어야 할까요? 또, end-to-end 딥러닝에 대해 들어본 적 있나요? 이런 것들에 대해 3번째 코스에서 배울 것입니다. 언제 이런 것들을 쓰고, 쓰지 말아야 하는지와 함께 말입니다. 이 세 번째 코스는 다른 강좌보다 특별할 것입니다. 제가 많은 딥러닝 모델을 구축하면서 배운 쉽게 얻기 힘든 많은 교훈들을 나누겠습니다. 거의 대부분의 대학의 딥러닝 수업에서는 가르치지 않는 내용들입니다. 하지만 굉장히 도움이 될 것이고 딥러닝 시스템이 잘 작동하도록 돕는 좋은 강의가 될 것입니다.

그리고는 CNN이라고 불리는 합성곱 신경망에 대하여 배울 것입니다. CNN은 주로 이미지에 적용됩니다. 해당 코스에서는 어떻게 CNN모델을 구축하는지 배울 것입니다.

 

그리고 마지막 5번째 코스에서는 시퀀스 모델에 대해 배우고 어떻게 자연어 처리와 다른 문제들에 적용하는지 배웁니다. RNN이라고 불리는 순환 신경망과 장 단기 기억 모델인 LSTM 모델을 포함한 시퀀스 모델들에 대해 배우고 이것들이 의미하는 것이 무엇인지 자연어 처리와 다른 문제들에 어떻게 적용하는지를 배웁니다. 이런 모델들을 자연어 처리에서 단어 시퀀스같은 연속적인 데이터에 어떻게 적용하는지 5번째 코스에서 배웁니다. 그리고 이런 모델들이 연설문 인식이나 음악 만들기나 다른 문제들에 어떻게 적용되는지 이해하게 될 것입니다.

 

이 코스들을 통해 딥러닝의 툴들을 배울 수 있고 놀라운 것들을 구축하여 적용할 수 있습니다. 그리하여 여러분들이 이 코스를 통하여 커리어를 발전시킬 수 있기를 바랍니다. 다음 비디오에서 지도 학습에서 딥러닝을 어떻게 적용하는지 이야기해 봅시다.

 

 

 

02 신경망은 무엇인가?

 

딥러닝이라는 용어는 신경망을 학습시키는 것을 칭합니다. 종종 아주 큰 신경망을 학습시키기도 합니다. 신경망이란 정확히 무엇일까요? 이 강의에서 간단한 직관을 소개하겠습니다.

 

주택 가격 예측 예제로 한번 시작해봅시다. 6개의 주택 데이터를 가지고 있다고 해봅시다. 그래서 제곱 피트나 평방 미터로 되어있는 주택의 크기를 알고 있고, 주택의 가격도 알고 있고, 주택의 크기를 알고 있을 때 주택의 가격을 예측할 수 있는 함수를 만든다고 합시다. 선형회귀를 잘 알고 있다면 이 데이터에 그냥 직선을 그리자고 할지도 모르겠습니다. 그래서 이런 식으로 직선을 얻게 되겠죠. 조금 더 나은 함수를 표현하기 위해서 주택 가격은 음수가 될 수 없다는 점을 알고 있으니 결국 음수 부분에 닿을 직선 대신에 선을 꺾어서 그려주어 0으로 끝나도록 해줍니다. 굵은 파란 선은 함수를 완성시킵니다. 주택 크기 대비 주택 가격을 예측하는 함수가 되었습니다. 왼쪽 부분은 0으로 오른쪽 부분은 직선으로 예측합니다.

 

주택가격을 예측하는 함수를 간단한 신경망으로 생각해볼 수 있습니다. 가장 쉬운 신경망을 생각해봅시다. 여기 한번 그려보겠습니다. X라고 불릴 주택의 크기가 신경망의 입력이 되겠고, 이 것은 작은 원인 노드로 들어가게 되고, Y라고 불릴 주택의 가격을 출력하게 됩니다. 이 작은 원이 신경망에서의 하나의 뉴런이 됩니다. 왼쪽에 그린 함수를 구현하게 됩니다. 뉴런이 하는 일은 주택의 크기를 입력으로 받아서 선형 함수를 계산하고 결과 값과 0 중 큰 값을 주택의 가격으로 예측하는 것입니다.

그런데 신경망 논문에서는 이러한 함수를 자주 보게 될 것입니다. 0으로 유지되다가 직선으로 올라가는 형식의 함수입니다. 이런 함수는 ReLU 함수라고 불립니다. Rectified Linear Unit 이라는 뜻입니다. 그래서 Re L U 입니다. rectify는 0과 결과 값 중 큰값을 취하라는 뜻입니다. 그래서 함수 모양이 이런식으로 생겼습니다. 지금은 ReLU에 대해 걱정하실 필요 없습니다. 나중에 강의에서 다시 언급이 될 것입니다.

이게 한 신경망의 뉴런입니다. 굉장히 작은 신경망이죠. 더 큰 신경망은 더 많은 이러한 뉴런들로 이루어져있습니다. 그리고 그것들을 쌓아놓은 모양이죠. 이 뉴런 하나를 한 레고 블럭으로 생각해도 좋습니다. 많은 레고블럭들을 쌓음으로써 더 큰 신경망을 만들 수 있습니다.

예제를 봅시다. 주택의 크기에서 주택의 가격을 예측하는 대신에 다른 특성이 있다고 생각해봅시다. 침실 수 같은 주택에 대한 다른 정보를 알고 있습니다. 주택의 가격에 정말로 영향을 미치는 것은 가족의 크기입니다. 가족이 3명인지 4명인지 5명인지에 따라 피트 제곱이나 평방 미터, 침실 수 등은 가족의 크기에 적당한지를 결정합니다. 또, zip code나 postal code라고 불리는 우편번호를 알고 있고, 우편번호는 걷기에 좋은 동네인지를 알려주는 특성일 수도 있습니다. 이웃까지 걸어서 갈 수 있는지, 식료품점이나 학교로 걸어갈 수 있는지 아니면 운전을 해야하는지, 어떤 사람들은 걸어서 가는 것을 좋아하니까요. 그리고 우편번호와 함께 재력은 미국이나 여러 다른 나라에서 명문 학군의 학교들이 있는지를 알려주는 척도가 될 수 있습니다. 제가 그린 이 작은 원들은 ReLu 유닛일 수도 있고 다른 비선형 함수일 수도 있습니다. 집의 크기와 침실의 갯수는 가족의 크기를 우편번호와 재력은 학교의 질을 예측할 수 있게 해줍니다. 그리고 마지막으로 사람들이 얼마를 지불할 용의가 있는지 결정하는 것이 진짜로 알고 싶은 중요한 정보이고, 가족의 크기나 걷기 좋은지, 학교의 질은 가격을 예측하는 데 도움을 줄 것입니다.

그래서 이 예제를 보면 X는 4개의 입력들이고, y는 예측하고자 하는 값인 주택의 가격입니다. 이렇게 뉴런이나 간단한 예측기들을 쌓아 올림으로써 이전 보다 더 큰 신경망을 가지게 되었습니다. 어떻게 이런 신경망의 마법이 일어나는 걸까요? 단지 훈련 세트에서 입력 x와 출력 y의 많은 예제들을 주고 그리고 이 중앙에 있는 것들은 알아서 스스로 알아내는 걸까요?

 

결국 정말로 구현하는 것은 바로 이것입니다. 여기 4개의 입력을 가진 신경망이 있습니다. 이 특성들은 크기, 침실의 갯수, 우편번호, 그리고 동네의 재력입니다. 이러한 입력 특성들을 가지고 신경망은 가격 Y를 예측할 것입니다. 그리고 이 각 원들은 신경망의 은닉 유닛이라고 불립니다. 각각은 4개의 입력을 받습니다. 예를 들어, 이 첫번째 노드가 가족의 크기를 내포한다고 하면 가족의 크기는 x_1, x_2 특성에만 영향을 받는다고 하기보다는 어떤 신경망을 만들고 싶든지 어떤 계산을 하고 싶든지 4개의 입력을 다 받을 것입니다. 이 신경망의 입력층과 이 중앙에 있는 층은 조밀하게 연결되어 있다고 얘기할 수 있습니다. 왜냐하면 모든 입력 특성들은 중앙에 있는 원 모두에 연결되어 있기 때문이죠. 충분한 양의 x와 y를 훈련 예제로 준다면 신경망은 x를 y로 연결하는 함수를 알아내는데 정말로 뛰어날 겁니다.

 

이것이 기본적인 신경망입니다. 직접 자신의 신경망을 만들어본다면 지도학습에서 가장 실용적이고 효과적인 것을 발견할 것입니다. 어떤 입력 x를 출력 y에 연결하는 일 같은 것 말입니다. 주택 가격 예측에서 보았듯이 말이죠.

 

다음 강의에서는 지도학습에 대해 더 많은 예제들을 살펴봅시다. 직접 신경망을 구축하는데 아주 도움이 될 예제들을 말이죠.

 

 

03 신경망을 이용한 지도학습

 

신경망에 대한 과한 믿음들이 있습니다. 그 중 몇 가지는 신경망이 얼마나 잘 작동하는지를 보여줍니다. 그러나 지금까지 대부분의 신경망을 통해 만들어진 경제적인 가치들은 머신러닝의 한 종류인 지도학습을 통해 계산이 되었습니다. 이것이 무슨 의미인지 예시들을 봅시다.

지도학습에서는 입력 X와 출력 Y에 매핑되는 함수를 학습하려 합니다. 예를 들어, 주택 가격 예측에서 본 것 처럼 입력은 주택에 관한 특성들이고 출력으로는 가격 Y를 예측하고자 합니다. 여기에 신경망이 잘 적용된 다른 예시들이 있습니다.

 

오늘날 가장 돈이 되는 딥러닝 응용분야는 온라인 광고입니다. 그렇게 고무되는 예시는 아니지만 광고에 대한 정보들을 입력함으로써 많은 수익을 낼 수 있습니다. 웹사이트가 보여주고 싶은 것들이나 사용자 정보를 광고에 포함해서 말이죠. 신경망은 사용자들이 광고를 클릭할 것인지 아닌지 매우 예측을 잘합니다. 클릭할 만한 광고를 보여주는 것은 돈이 되는 신경망 응용분야입니다. 가장 클릭할만한 광고를 보여주는 능력은 거대 온라인 광고 회사들에 직접적으로 영향을 미칠 수 있기 때문입니다.

컴퓨터 비전 또한 지난 몇 년간 굉장히 큰 발전을 이뤘습니다. 딥러닝 덕분에 이미지들을 넣고 1에서 1000사이의 색인을 한다고 할 때 천 개의 이미지가 모두 서로 다른 이미지라고 해도 사진 태깅을 수월히 할 수 있습니다.

최근 음성 인식도 많은 발전을 이루었습니다. 음성 파일을 신경망에 입력으로 넣고 텍스트 대본으로 출력할 수 있습니다.

 

기계 번역도 많은 진전이 있었습니다. 딥러닝 덕분에 영어 문장을 신경망에 넣으면 중국어로 번역한 문장을 볼 수 있습니다.

자율주행에서 사용자의 차 앞에 어떤 차가 있는지 이미지와 레이더에서 얻은 정보를 입력으로 주면 신경망에서 도로 위의 차들의 위치정보를 학습할 수 있습니다. 이런 정보들은 자율주행의 핵심 요소가 됩니다.

신경망을 통한 많은 값들의 생성은 어떤 문제를 해결하기 위한 적절한 X와 Y를 통해 이루어지고 자율 주행 같은 더 큰 시스템에 지도학습 요소들이 적합하게 합니다. 조금씩 다른 신경망들은 서로 다른 적절한 응용분야에 적용됩니다. 예를 들어 이전에 본 부동산 어플리케이션에서 표준 신경망 구조를 사용했고 부동산이나 온라인 광고 분야에서는 우리가 본 것과 같이 비교적 표준적인 신경망이 사용된다면, 이미지 분야에서는 주로 CNN이라고 흔히 불리는 합성곱 신경망을 사용합니다 음성 같은 시퀀스 데이터를 예로 들어보면 음성은 시간에 흐름에 따라 재생되어 주로 1차원의 시계열 데이터로 나타나는 시퀀스 데이터입니다. 주로 순환 신경망 (RNN)을 사용합니다. 영어와 중국어같은 언어도 알파벳이나 단어가 쭉 연결되어 있어서 시퀀스 데이터로 나타낼 수 있습니다. RNN의 조금 더 복잡한 버전들이 언어 분야에 사용됩니다. 더 복잡한 응용분야, 예를 들어 이미지를 사용하는 자율주행은 합성곱 신경망을 사용하기도 하고 이미지 정보와는 또 꽤 다른 레이더 정보 같은 경우에는 더 복잡한 하이브리드 신경망 구조를 사용합니다.

그럼 CNN과 RNN의 기준이 무엇인지 좀 더 명확하게 알아봅시다. 논문에서 이런 종류의 그림을 보셨을겁니다. 표준 신경망입니다. 이런 그림도 보았을 텐데 이것은 합성곱 신경망의 예시입니다. 이후 강의에 이 그림들이 무슨 뜻인지 어떻게 구현하는지 알아볼 것입니다. 보통 이미지 데이터는 합성곱 신경망에서 사용됩니다. 이런 그림들도 본적 있을텐데 어떻게 구현하는지도 이후에 배울 겁니다. 순환 신경망은 1차원 시퀀스 데이터에 강합니다. 거기엔 시간적 요소가 있을 수 있습니다.

 

머신러닝분야에서 구조적 데이터와 비구조적 데이터를 들어봤을 것입니다. 구조적 데이터는 기본적으로 데이터베이스로 표현된 데이터를 말합니다. 예를 들어, 주택 가격 예측에서 데이터 베이스를 가질 수 있는데, 크기나 침실의 갯수 등을 열로 가진 이런 데이터베이스를 구조적 데이터라 합니다. 사용자가 광고를 클릭했는지 아닌지 예측하는 경우에는 사용자에 대한 나이 같은 정보나 광고에 대한 정보들을 가지고 있고 레이블 Y를 예측합니다. 구조적 데이터는 집의 크기나 침실의 개수나 사용자의 나이 같은 특성들처럼 잘 정의되어있습니다. 반면에 비구조적 데이터는 음성파일이나, 인식하고자 하는 이미지나, 텍스트 데이터들입니다. 여기서의 특성은 이미지의 픽셀값이나 텍스트의 각 단어 같은 것입니다.

 

역사적으로 이런 비구조적 데이터는 구조적 데이터보다 컴퓨터가 작업하기 훨씬 어렵습니다. 인류는 음성이나 이미지들을 잘 이해하도록 진화가 되어왔고. 비교적 최근 발명품인 문자에 대해서도 잘 이해하고 있습니다. 사람들은 이런 비구조적 데이터를 해석하는데 굉장히 뛰어납니다. 신경망에 대해 가장 흥미로운 일 중에 하나는 딥러닝 덕분에 신경망 덕분에 컴퓨터들이 비구조적 데이터들을 해석하는데 근 몇년 전에 비해 굉장히 많이 발전하였습니다. 이 발전은 음성 인식이나 이미지 인식, 텍스트의 자연언어처리 같은 흥미로운 응용분야에 많은 기회를 만들어 냈습니다. 겨우 2년이나 3년전보다 훨씬 많은 것들이 가능해졌습니다. 사람들은 비구조적 데이터를 이해하는데에 더 많은 관심이 있어서 신경망이 비구조적 데이터에서 성공한 것을 미디어에서 많이 접했을 것입니다. 신경망이 고양이를 인식하는 것은 멋있는 일이기 때문이죠. 우리는 모두 그런 일을 좋아하고 어떤 의미인지 알 수 있습니다.

하지만 신경망에서 발생하는 많은 경제적인 이익은 광고 시스템이나 사용자 맞춤 추천 같은 구조적 데이터에서 오는 경우가 많습니다. 많은 회사들이 거대한 데이터베이스를 통해 정확한 예측을 만들어야하는 경우에 더욱 잘합니다.

 

이 코스에서 많은 기술들이 구조적, 비구조적 데이터에 적용될 것입니다. 알고리즘을 설명할 목적으로 비구조적 데이터를 그려서 설명하는 경우들이 있을 것입니다. 하지만 각자 구현하고자 하는 신경망을 생각해서 구조적, 비구조적 데이터 모두 사용법을 익히시길 바라겠습니다. 신경망은 지도학습으로 변환할 수 있고 거대한 수익을 창출할 수 있습니다.

 

신경망의 기본적인 기술적 아이디어들은 몇십 년간 존재해왔습니다. 그럼 다음 강의에서 왜 이제서야 신경망이 적용되고 잘 작동하기 시작했는지, 왜 최근에서야 신경망이 강력한 도구로 부상했는지 알아보겠습니다.

 

 

04 왜 딥러닝이 뜨고 있을까요?

 

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

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

 

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

 

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

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

 

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

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

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

친구들이 왜 신경망이 뜨고 있는지 물어보면 이 그래프를 보여주세요. 초창기 딥러닝의 문제는 데이터와 계산의 규모였습니다. CPU나 GPU에서 아주 큰 신경망을 훈련시키게 된 것만으로도 큰 성과를 낼 수 있었습니다.

 

또한 특히 최근 몇 년 간 알고리즘 자체에도 큰 혁신이 있었습니다. 그것도 큰 부분 중 하나이죠. 흥미롭게도 알고리즘 혁신의 많은 부분이 신경망을 더 빠르게 실행하는 데 관한 것이었습니다. 예를 들면 신경망의 큰 발전을 야기한 것 중 하나는 이렇게 생긴 시그모이드 함수에서 전에 잠깐 얘기했던 ReLU 함수로 바뀌게 된 것입니다. 이렇게 생겼죠. 이제 제가 설명할 것은 이해하지 못해도 상관 없는데 머신러닝에 시그모이드 함수를 사용하는 데에는 문제가 있습니다. 여기처럼 함수의 경사가 거의 0인 곳에서 학습이 굉장히 느려진다는 것입니다. 경사가 0일 때 경사 하강법을 사용하면 파라마터가 아주 천천히 바뀌고, 그러면 학습도 느려지기 때문입니다. 그런데 신경망의 활성화 함수라는 것을 ReLU(Rectified Linear Unit) 함수라고 하는 것으로 바꾸면 입력값이 양수인 경우의 경사가 1로 모두 같으므로 경사가 서서히 0에 수렴할 가능성이 훨씬 적습니다. 왼쪽의 경사가 0이기는 하지만요. 어쨌든 시그모이드 함수에서 ReLU 함수로 바꾸는 것만으로 경사 하강법이라는 알고리즘을 훨씬 빠르게 만들었습니다. 이것이 상대적으로 쉬운 알고리즘 혁신의 예이기는 하지만 이 알고리즘의 혁신으로 계산 능력을 크게 향상시킬 수 있었습니다. 이 알고리즘의 혁신으로 계산 능력을 크게 향상시킬 수 있었습니다. 알고리즘을 바꿔서 코드를 더 빠르게 만든 경우는 이것 말고도 많이 있는데, 그렇게 하면 더 큰 신경망을 훈련시키거나 많은 데이터를 가진 큰 신경망을 적당한 시간 내에 처리할 수 있습니다.

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

 

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

 

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

 

 

728x90