처음 배우는 딥러닝 수학을 읽고

정말 오랜만에 리뷰입니다. 올해에는 첫 리뷰네요. 이번의 리뷰 대상은 바로! ‘딥러닝 수학’입니다.

인공지능(AI) 그리고 그 기반에는 딥러닝이 있습니다. 딥러닝은 신경망을 기반으로 하고 있습니다. 그리고 이 모든 것들은 수학적인 지식으로 이루어진 것이지요. 그래서 ‘수학’이 중요합니다. 그래서 이 책이 또한 필요하게 될겁니다. 🙂

Chapter1. 신경망의 동작 방식

역시 처음이라 그렇게 어렵지 않습니다. 딥러닝의 기반은 신경망에 대해 이야기하고 있습니다.

  • 생물학에서 다루는 뉴런에 대해 우선 알아봅니다.
  • 뉴런의 활동을 수학적으로 어떻게 표현할지 간단히 알아봅니다. 이 때부터 수식과 그래프가 등장하면서 머리가 지끈거리기 시작합니다. 하지만 걱정마세요. 수학적으로 굳은 머리를 풀어주면서 느끼는 그런 느낌같은 느낌일 테니까요 -.-
  • 신경망에 대해 알아봅니다. 연산 기능이 있는 유닛들이 입력층, 은닉층(중간층), 출력층을 이루어 신경망을 이룹니다. 각 층의 의미를 알아봅니다.
  • 실제 신경망이 어떻게 작동하는지 예를 들어 설명합니다. 여기서 ‘악마’가 등장합니다. 각 유닛이 ‘악마’로 각 층의 악마가 필기체 숫자 ‘0’의 이미지에 대해 어떤 역활을 하여 결과를 내는지를 설명합니다.

이렇게 챕터 하나가 끝납니다. 그냥 편하게 읽어나가면 됩니다. ‘아! 그런거구나.’ 하면서 말이죠.

Chapter2. 신경망을 위한 수학 기초

여기서 부터 수학적 지식을 다룹니다. 고등학교 시절에 배웠던 지식들을 다시금 돌아보게 하지요.

  • 함수에 대해 알아봅니다. 1차, 2차는 쉽죠. 더 나아가 단위 계단, 지수, 시그모이드, 정규분포의 확률밀도 함수까지 간단히 설명합니다. 아직은 할만합니다.
  • 수열과 점화식! 뭐 찬찬히 읽다보면 기억이 새록새록 떠오릅니다. 할만합니다. 다음에 나오는 시그마도 역시 무리없습니다.
  • 벡터가 나옵니다. 이 책은 기본적으로 그림과 수식이 많이 나오기 때문에 이해하는데 어렵지 않습니다만 저는 벡터의 후반부에서 페이지를 쉽게 넘기질 못했습니다. -.-
  • 행렬은 꽤나 친숙해서인지 다시금 쉽게 페이지가 넘어갑니다. 뭐 이 정도면 할만 하구만! 하지만 다음에…
  • 미분이 나옵니다. 기본 개념은 지금도 기억한다지만 기호가 많아지고 수식이 복잡해지면서 이해하기 위해 두뇌가 열일을 하기 시작합니다.

이제부터 신경망 계산에 필요한 지식에 본격적으로 들어갑니다. 제가 읽어본 경험으로는

너무 진지하게 읽으면 지쳐버리고 ‘완벽한 이해’라는 미련을 버린다면 무리는 없는 정도

예를 들어 ‘이 수식을 반드시 이해하고 넘어가야지!!!’ 하면 정말 페이지를 못넘깁니다. 읽다가도 여러번 다시 뒤로 돌아가 보게 되지요.

  • 다변수 함수를 기준으로 편미분, 합성함수, 연쇄법칙을 설명합니다. 다변수 함수의 근사식과 그의 벡터를 설명합니다.
  • 함수의 최소값이 되는 점을 찾는 ‘경사하강법’을 알아봅니다. 알아본 다음에는 엑셀에서 실제로 확인해봅니다.
  • 수학 모델에 필요한 파라미터의 최적화 문제를 이해하기 위한 ‘회귀분석’에 대해 알아봅니다.

이렇게 신경망을 위한 수학적 기초(?)를 다룬 두 번째 챕터가 끝납니다.

Chapter3. 신경망 최적화

이제 수학 기초를 이용하여 신경망을 설계하고 최적화하는 방법을 알아봅니다. 신경망 그림과 수식을 곁들여 최대한 자세하게 설명하고 있습니다.

  • 먼저 파라미터와 변수에 대해 알아보고 이를 어떻게 표시하는지에 대해 설명합니다.
  • 신경망의 각 층(입력층, 은닉층, 출력층)의 관계식에 대해 알아봅니다.
  • 학습을 위한 데이터와 예측 값과의 비교를 위한 정답 데이터를 알아봅니다.
  • 예측 값과 정답을 비교했을 때 차이를 줄이기 위한 가중치와 편향을 결정하는 최적화 작업을 위한 ‘비용함수’에 대해 알아봅니다. 여기서 회귀분석 개념이 등장합니다.
  • 엑셀로 신경망의 가중치와 편향을 결정하는 과정을 알아봅니다.

세 번째 챕터가 끝납니다. 앞서 말했듯이 정말 수학적 지식에 뛰어난 분들이 아니고서는 ‘무조건 완벽히 이해하고 넘어가겠다’는 생각을 내려놓아야 편합니다.

Chapter4. 신경망과 오차역전파법

신경망에서 경사하강법은 미분 계산이 너무 방대해져서 이를 해결할 방법이 필요한데요. 오차역전파법이 이러한 미분 계산을 쉽게 만들어줍니다.

  • 먼저 경사하강법을 다시 살펴보며 미분 계산이 얼마나 어려운지(미분 지옥이라고 하네요 ㅎㅎ) 알아봅니다.
  • 오차역전파법이 이를 얼마나 단순화 시키는지를 설명합니다.
  • 엑셀로 신경망의 오차역전파법을 체험하게 됩니다.

단순화 시킨다고 하지만 솔직히 저에게는 기호와 숫자의 조합이 많아지기 시작하니 머리가 더욱 아파왔는데요.(분명 좋은 현상일 것입니다. ^^;) 수식에 집중하기보다는 그림을 보면서 전체적으로 이해하며 지나가는 것이 편합니다. 그러다 보면 오히려 쉽게 넘어갈 수 있답니다.

Chapter5. 딥러닝과 합성곱 신경망

이제 신경망을 넘어 딥러닝이 나옵니다. 이 딥러닝에서 중요하게 생각하는 합성곱 신경망부터 시작합니다.

  • 여기서 다시 악마가 등장하여 합성곱 신경망의 구조와 원리를 설명합니다.
  • 합성곱 신경망 설정에 필요한 필터, 가중치, 편향을 정하기 위한 수식을 구합니다.
  • 엑셀로 합성곱 신경망을 살펴봅니다.

마무리

제가 이 글을 적는 중간중간 ‘머리가 지끈’이라는 표현을 썼을겁니다. 솔직히 사실입니다. 기호에 위첨자 아래첨자를 활용하여 숫자가 들어가고 이런 것들이 뭉탱이로 묶어져 나오다보니 제 눈이 한 번 보더니 더 보기를 거부하더군요. 하지만

이 고비를 넘기고 의욕을 살려본다면 분명히 매력적입니다.
내 눈을 어지럽게 하고 머리를 지끈거리게 하는 이 놈들을 내가 반드시 정복하리라 맘먹는다면,
그렇게 한번 책을 보고 다시 보면서 깊게 하나씩 정복해 나간다면
분명 이로인해 얻는 가치는 보장할 수 있다고 생각합니다.

딥러닝, 머신러닝, 인공지능… 그냥 무시하고 지나치기에는 우리 사회에 미치는 영향과 범위가 크고 앞으로도 더욱 커질 것이기에 지금부터라도 공부하는 것이 좋지 않을까요? 아니 분명 좋은겁니다. 🙂