수포자가 알려주는 딥러닝 이야기
안녕하세요 퓨처링입니다!
이번 시간에는 수많은 영상과 수많은 글들이 설명하는 머신러닝과 딥러닝, 다시 한 번 쉽게 설명하는 “도전”을 해볼까 합니다!
이미 잘 알고 계시는 분들보다는 AI나 ChatGPT 처럼 AI 관련 머시기는 들어봤는데 뭐가 다른건지 궁금해 하시는 분들에게 수학적 개념 없이 설명해 보려고 하는데요, 한번 보시죠!
2024 노벨 물리학상, 딥러닝의 아버지 제프리 힌튼이 받다
우리나라에서 한강 작가님이 노벨 문학상을 받았을 때, 노벨 물리학상은 물리학자가 아닌 AI 권위자 중 하나인 제프리 힌튼 박사가 받았습니다. 물리적 도구를 이용해 혁신을 만들었다고는 하나, 물리학에서는 나름 신선한 충격이지 않을까 싶은데요,
그만큼 AI는 눈깜짝할 사이에 우리의 한 가운데 쑥! 들어와 버렸습니다.
우리가 알고 있는 인공 지능 중에, 머신 러닝(Machine Learning)과 딥 러닝 (Deep Learning)이 있습니다. 둘의 뜻과 차이를 한 번 알아볼까요?
AI (Artificial Intelligence), 인공지능
인공지능, AI는 기본적으로 “뇌”를 카피한 알고리즘을 사용해요. 우리가 잘 아는 “뉴런”과 “시냅스”의 전기적 상호작용을 통해 판단하는 방식을 본따 컴퓨터에 이식하였어요. 즉, 사람이 판단하는 것처럼 기계가 스스로 판단하는 지능을 구현하게 된 것이죠. 인공지능을 구현하는데 있어, 가장 유명한 두 가지 방법인 머신러닝과 딥러닝이 있어요.
머신러닝은 딥러닝의 상위 개념
딥러닝(Deep Learning)은 머신러닝(Machine Learning) 중의 일부 입니다. 머신러닝을 구현할 수 있는 다양한 방법 중에 딥러닝이라는 방식이 있는 것이죠.
러닝(Learning)이라는 말에서 알 수 있듯이, 이런 AI 기술에는 “학습”시키는 것이 가장 중요한 주제에요.
마치, 부모님이 아이한테 한글이나 구구단 같은 것을 가르치듯이 말이죠.
머신러닝과 딥러닝은 컴퓨터가 데이터를 통해 경험을 쌓고, 그 경험을 바탕으로 새로운 데이터를 예측하거나 분류하는 기술입니다.
머신러닝과 딥러닝의 차이
이 중 머신러닝은 우리가 기계에게 “이 그림은 귀가 뾰족하고 눈동자가 얇기 때문에 고양이 그림이야. 알았지?”라는 방식을 사용하여 하나부터 열까지 사람이 직접 가르쳐 줍니다. 기계가 실수하지 않게, 최대한 만든 정보들에 대해 사람이 직접 알려주는 것이죠.
이에 반해 딥러닝은, “이게 왜 고양이 그림이게?”와 같은 질문을 던져 스스로 답을 찾게 만드는 방식 입니다. 고양이와 강아지 그림을 수 억장을 보여 주면, 기계는 그림을 쪼개서 분석하며 아. 이 그룹과 이 그룹은 이런 차이가 있구나를 스스로 학습하게 되는 것이죠.
이는 사람이 고양이나 강아지를 분별할 때 단순 모양만이 아닌 행동, 울음소리들을 통해 판단을 하는 방식과 많이 닮아 있습니다.
딥러닝의 구조
아마도 많은 아티클이나 동영상에서 보셨겠지만 머신러닝과 딥러닝은 여러 층(Layer)로 구성되어있고, 크게 입력층, 출력층, 그리고 은닉층이 있습니다.<
은닉층 (Hidden Layer)
입력층은 데이터가 입력되는 층이며, 출력층은 계산 결과에 따른 올바른 값을 찾는 층 입니다. 은닉층은 입력에 따른 결과가 원하는 답변에 가까워 지기 위해 판단하는 방법을 모아놓은 층입니다.우리가 특정 사물을 보고 어떤 물건이라고 판단하기 전에 어떤 특징으로 구별했는지를 다양한 알고리즘을 통해 판단해 보는 것이죠. 이 은닉층이 2개 이상 존재하게 되면 딥 러닝(Deep Learning)이라고 부르게 됩니다. 좀 더 깊게 학습한다는 뜻 이에요.
가중치 (Weight)
가중치는 여러 개의 은닉층 구조 중에서 “이 판단이 좀 더 정답에 가까운가?”에 대한 수치에요.이는 뇌를 모방한 것인데, 뉴런이 시냅스를 통해 정보를 전달할 때 수많은 정보 중에서 좀 더 정확하거나 정답에 가까운 정보에 강한 신호를 보내게 되요. 이를 가중치라고 부르고, 이를 통해 가중치가 일정 수치 이상에 도달하게 되면 해당 구조를 이용하여 결과값을 도출할 수 있게 되죠.
딥러닝 모델을 만들 때 처음에는 임의로 가중치가 부여되고, 학습이 반복될 수록 가중치를 변화시켜 올바른 길로 인도(?) 합니다. 그래서 초반에 딥러닝은 많은 실수를 하게 되죠.
역전파 (BackPropagation)
역전파는 결과값이 부정적일때, 다시 은닉층으로 돌아가 검토를 하는 역할을 합니다.. 이 모델을 만드신 분이 바로 노벨 물리학상을 받은 힌튼 교수 입니다.보통 입력층 -> 은닉층 -> 결과층으로 계산하고 난 후 (순전파), 오차를 측정하여 다시 은닉층 -> 입력층으로 계산하면서 오차에 따른 가중치를 부여하는 방식을 역전파라고 합니다.
예를 들면, 강아지를 보여 주면서 “이건 고양이가 아니야.” 라고만 한다면 왜 고양이가 아닌지 알 수 없게 됩니다. 그래서 “왜 고양이 그림이 아니지?”에 대한 고민을 해보고, 다른 정보들로 다시 판단을 해보면서 “아. 이래서 고양이가 아니구나.” 라고 학습했다면, 이후에는 처음 보는 데이터를 만나더라도 고양이가 맞는지 아닌 지에 대한 판단을 스스로 할 수 있게 되는 것이죠.
FLOPs와 FLOPS
컴퓨터는 원래 정수형 (0,1,2,3,4,5….등)을 처리하는 계산기였기 때문에 부동소수점(0.1, 1.2345…. 등)을 연산하려면 숫자를 나누어서 계산한 다음 다시 합치는 과정을 거쳐야 했습니다. 굉장히 많은 시간이 소요 되었죠.
차후 컴퓨터가 발전하면서 부동소수점 연산에 대한 성능 개선이 많이 이루어 졌습니다. 프로세서에 부동 소수점 연산이 통합되게 되었죠.
머신러닝이나 딥러닝은 모델에서 오차 수치나 가중치에 대한 합이나 곱을 계산하면서 부동소수점을 사용하기 때문에, AI 성능에서 이런 연산 처리 능력이 중요합니다.
이런 부동소수점 연산 처리능력을 수치화하는 단위 중에 FLOPs와 FLOPS가 있는데요,
두 개는 서로 다른 단위입니다. 간단히 내용을 살펴 보자면,
FLOPs (Floating Operations)
AI 모델이 순전파 과정동안 처리하는 총 양의 수치를 표현해요. 즉, 이 모델이 얼마나 부하를 일으킬까?에 대한 수치라고 보시면 되요. AI 모델의 최적화를 필요로 할 때 이 수치를 많이 쓰죠.FLOPS (Floating Operation Per Second)
FLOPS는 초당 처리할 수 있는 부동소수점 연산 처리 수에요. 이것은 즉, 이 하드웨어가 얼마나 많은 양을 처리할 수 있느냐가 관건인 것이죠. GPU의 성능을 측정할 때 쓰입니다.여러분이 AI용 하드웨어를 도입하실 때에는, 자신의 AI 모델링의 FLOPs를 계산해보고 이에 맞는 FLOPS 이상을 지원하는 하드웨어를 도입하실 수도 있겠죠? (사실 실사용되는 모델링이 단순하게 만들어진 경우는 드물기 때문에 FLOPs만 가지고 비교를 하기에는 무리가 있긴 합니다!)
마치며
오늘은 딥러닝에 대해 알아보았는데요,
딥러닝보다 좀 더 높은 레벨의 기술이 발전할지라도, 출발선을 이해하고 있으면 그들의 발전 상을 이해하는데도 도움이 될 것 같아요.
AI 솔루션이나 하드웨어를 도입하고 싶다면? 전문 입점사들이 모여 있는 퓨처링에서 견적 신청 해 보세요!
그럼, 다음 시간에 다시 찾아 오겠습니다!
김에디터
B2B IT 제품 커머스 플랫폼 - 퓨처링