https://www.youtube.com/watch?v=n1l-9lIMW7E
딥러닝이라는 용어는 신경망을 학습시키는 것을 칭합니다. 종종 아주 큰 신경망을 학습시키기도 합니다. 신경망이란 정확히 무엇일까요? 이 강의에서 간단한 직관을 소개하겠습니다.

주택 가격 예측 예제로 한번 시작해봅시다. 6개의 주택 데이터를 가지고 있다고 해봅시다. 그래서 제곱 피트나 평방 미터로 되어있는 주택의 크기를 알고 있고, 주택의 가격도 알고 있고, 주택의 크기를 알고 있을 때 주택의 가격을 예측할 수 있는 함수를 만든다고 합시다.

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

주택가격을 예측하는 함수를 간단한 신경망으로 생각해볼 수 있습니다. 가장 쉬운 신경망을 생각해봅시다. 여기 한번 그려보겠습니다. x라고 불릴 주택의 크기가 신경망의 입력이 되겠고, 이 것은 작은 원인 노드로 들어가게 되고, y라고 불릴 주택의 가격을 출력하게 됩니다. 이 작은 원이 신경망에서의 하나의 뉴런이 됩니다. 왼쪽에 그린 함수를 구현하게 됩니다. 뉴런이 하는 일은 주택의 크기를 입력으로 받아서 선형 함수를 계산하고 결과 값과 0 중 큰 값을 주택의 가격으로 예측하는 것입니다.
그런데 신경망 논문에서는 이러한 함수를 자주 보게 될 것입니다. 0으로 유지되다가 직선으로 올라가는 형식의 함수입니다. 이런 함수는 ReLU 함수라고 불립니다. Rectified Linear Unit 이라는 뜻입니다. 그래서 Re L U 입니다. rectify는 0과 결과 값 중 큰값을 취하라는 뜻입니다. 그래서 함수 모양이 이런식으로 생겼습니다. 지금은 ReLU에 대해 걱정하실 필요 없습니다. 나중에 강의에서 다시 언급이 될 것입니다.
이게(3) 한 신경망의 뉴런입니다. 굉장히 작은 신경망이죠. 더 큰 신경망은 더 많은 이러한 뉴런들로 이루어져있습니다. 그리고 그것들을 쌓아놓은 모양이죠. 이 뉴런 하나를 한 레고 블럭으로 생각해도 좋습니다. 많은 레고블럭들을 쌓음으로써 더 큰 신경망을 만들 수 있습니다.

예제를 봅시다. 주택의 크기에서 주택의 가격을 예측하는 대신에 다른 특성이 있다고 생각해봅시다. 침실 수 같은 주택에 대한 다른 정보를 알고 있습니다. 주택의 가격에 정말로 영향을 미치는 것은 가족의 크기입니다. 가족이 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$에 연결하는 일 같은 것 말입니다. 주택 가격 예측에서 보았듯이 말이죠.
다음 강의에서는 지도학습에 대해 더 많은 예제들을 살펴봅시다. 직접 신경망을 구축하는데 아주 도움이 될 예제들을 말이죠.
댓글