본문 바로가기

AI Feed
Tech & Product/AI, 더 쉽게

머신러닝, 딥러닝을 인간의 뇌 이미지로 표현하는 이유! 인공신경망과 노드

딥러닝, 머신러닝에 관심을 가지게 된 분들이 날로 늘어나는 추세입니다. 이제 머신러닝의 정의 정도는 알고 계신 분들이 많아졌는데요. 그래서인지 에디터 SA도 덩달아 공부할 주제가 많아졌습니다. AI에 대해 보다 더 잘 알고, 자세한 이야기를 나누기 위해서요.

머신러닝에 대해 조금이라도 알아보신 분들이라면, 뜻밖의 단어를 만난 적이 있으실 거예요. 바로 ‘신경망’입니다. 저도 처음 ‘신경망’이라는 단어가 등장했을 때 고개를 갸웃했던 기억이 나는데요. 신경망? 우리 몸에 있는 그거? 😵‍💫 하면서요.

 

 

 

[ 인간 두뇌를 머신러닝에 그대로 옮겼다? ]

직장인이 되면서 그다지 기억에 남겨두지 않았던 개념인데, AI에서 이렇게 만나다니요...

 

우리가 알고 있는 ‘신경망’의 개념은, 학교에서 과학 시간에 접해 보았을 거예요. 신경망은 ‘뉴런(신경세포)’이 이루는 모양입니다. 뉴런은 혈액 중의 아미노산으로부터 신경전달물질을 만들고, 주위의 다른 뉴런들에 신호를 전달합니다. 이 신호는 한 방향으로 전달돼요. 인간의 뇌는 약 1,000억 개의 뉴런을 가지고 있고 이 뉴런들은 동시다발적으로 전달받은 신호에 반응하고 또 그 신호를 다른 뉴런에 전달하기 위해 서로 그물🕸️처럼 연결되어 있습니다. 

딥러닝에 대한 설명에서 언급되는 ‘신경망’은 ‘인공신경망’입니다. 앞서 설명한 인간의 두뇌 구조와 기능을 모델로 한, 일종의 머신러닝 알고리즘인데요. 하나의 인공 뉴런이 다수의 입력 신호를 전달받아 새로 신호를 출력, 전송하는 방식이 인간의 뇌에서 뉴런이 신호를 한 방향으로 전달하는 방식과 비슷합니다. 이 ‘인공신경망’에 존재하는 ‘인공 뉴런’을 ‘노드(node)’라고 합니다.

 

‘인공신경망’의 인공 뉴런 ‘노드’는 데이터에 대한 정보를, 인간 두뇌의 뉴런이 그러하듯이 신호로 전달받습니다. 그리고 이를 바탕으로 한 패턴 및 관계 분석을 다른 ‘노드’에 신호로 전달합니다. 이 과정을 거쳐 문제에 대한 결과 예측 또는 결정 값을 도출해 냅니다.

‘딥러닝’은 ‘인공신경망’ 중에서 ‘심층 인공신경망’을 이르는, 일종의 ‘별칭’에 가깝다고 합니다. 물론 아주 흔하게 쓰여서, ‘딥러닝’이라는 이름이 우리에게는 마치 공식 명칭처럼 더 친숙하게 다가오지만요. 🤔

 

 

 

[ 인공신경망의 신호 전달 방식도 인간 두뇌와 비슷해요! ]

앞서, 신경망은 데이터의 패턴과 관계를 인식한 결과를 바탕으로 문제에 대한 예측 및 결정을 하도록 설계한 알고리즘이라고 설명해 드렸는데요. 그럼, 그 과정은 구체적으로 어떻게 될까요? 인간의 뇌에서 일어나는 일이기에 체계화하기가 쉽지는 않았을 것 같습니다만, 구현해 냈습니다.👍 우리 뇌의 뉴런들이 각각 기능과 역할을 나누어 맡듯이, 인공신경망의 뉴런들도 역할을 나누어 맡은 것이지요.

신경망은 3개의 레이어로 구성되어 있습니다. 이 레이어는 무엇을 ‘인지’하고 ‘분석’하여 ‘답’을 내리는 3단계의 과정을 기준으로 나눈 것인데요. 문제로 주어진 것을 신경망으로 받아들이는 레이어를 ‘입력층(Input Layer)’이라고 합니다. 입력층에서 받아들인 데이터를 처리하고, 신경망이 답을 내리기 위해 수행해야 하는 작업을 맡은 레이어가 ‘은닉층(Hidden Layer)’입니다. 그리고 ‘은닉층’이 작업한 값을 기반으로 문제의 답을 예측하고 결정을 내리는 단계를 맡은 레이어를 ‘출력층(Output Layer)’이라고 합니다.

 

각각의 레이어 안에는 노드들이 있습니다. 인간 두뇌의 뉴런이 그러하듯이, 노드들은 각자 속한 레이어에 맡는 작업을 수행한 값을 다음 작업을 수행하는 레이어의 노드에 전달합니다. 인공지능 모델의 학습은, 신경망 안의 3개 레이어에 속한 각각의 노드가 작업을 수행하여 내놓은 결과 신호를 다듬는 과정입니다. 문제에 대해 더 나은 예측과 결정을 할 수 있도록. 각 노드가 다음 레이어로 신호를 보낼지의 여부를 가르는 값을 조정해 나갑니다. 이 값을 ‘가중치’라고 해요.

인지와 해석의 과정에서 인간의 두뇌에 일어나는 뉴런 활동을, 숫자 데이터와 가중치, 전기 신호로 구현해 낸 것이었네요. ‘머신러닝’ 또는 ‘딥러닝’을 표현하는 이미지에서 인간의 뇌를 형상화한 이미지가 주로 쓰이는 이유도 이제 이해가 됩니다. 🤓

 

 

 

[ 그럼, 신경망은 어떤 방식으로 문제를 인식하고 답을 내리는 건가요? ]

원리와 과정을 이해했더라도, 의문은 남습니다. 그럼 ‘인공신경망’은 문제를 ‘어떻게’ 풀어내는 걸까요? 명확하게 정리하기는 어려울 거예요. 왜냐하면 우리는 우리 뇌에서 일어나는 인지 과정에 대해 속속들이 알지 못하기 때문이죠. 우리는 ‘그냥’ 보고 무엇인지 안 것이고, 읽고, 무엇인지 이해한 것이잖아요. 😵‍💫 그 과정을 인공신경망에서 신호 값의 차이를 기반으로 하여 인지와 해석을 체계화한 것이고요.

그래서 예를 하나 들어보겠습니다. 이미지 안의 영문 텍스트를 읽어내는 AI 모델이 있다고 가정해 봅시다. 이 AI 모델의 인공신경망에 그림을 하나 보여주었습니다. 바로 주식회사 텐의 로고 이미지입니다. 강렬한 빨간색으로 TEN을 기울여 쓴 역동적인 모양이지요.

 

인공신경망 이해에 도움을 주기 위해 TEN의 로고께서(!) 출연하셨습니다!

 

이 이미지가 어떤 내용인지 인공신경망이 알기 위해서는, 이미지 파일 안의 형태에서 패턴을 찾아내고 다른 데이터와의 관계를 인식해야 할 거예요. 일단 신경망의 입력층은 이미지의 로우 데이터(raw data)를 가지고 옵니다. 이미지의 로우 데이터라면, 바로 이미지의 픽셀 정보겠지요? 🤓

신경망의 노드들은 이미지의 픽셀 하나하나를 담당, 그 값을 갖게 됩니다. 입력층의 A라는 노드는 빨간색을, B라는 노드는 흰색을 담당하여 그 값을 갖는 것이지요. 입력층의 노드들은 각자 담당한 픽셀에서 인식한 색상의 값을 은닉층에 신호 📣 로 전달합니다. 

은닉층은 입력층의 노드들이 전달한 값들에서 그 형태를 인지할 수 있는 데에 도움이 되는 특징들을 추출합니다. 이미지의 선이나, 모양 같은 것 말이에요. 은닉층의 노드들은 이미지의 특징들을 각각 맡아서, 이미지 안의 텍스트를 이해하기에 중요한 특징인지 선별한 결괏값(중요해! 안 중요해! 와 같은 구분 값이겠지요?🤔)을 신호로 하여 출력층에 전달하게 됩니다. 📣

 

출력층은 은닉층에서 처리한 데이터를 기반으로 최종 결정을 내립니다. 우리가 예시로 든 AI 모델은 이미지 안의 영문을 읽어내므로, 출력층에는 A부터 Z까지 알파벳 한 글자씩을 담당하는 26개의 노드가 있습니다. 

은닉층의 노드들이 보낸 신호는 텍스트를 읽기에 도움이 된다고 판단한 픽셀값이겠지요? 출력층의 노드 26개는 은닉층의 신호에 대해서, 자신이 맡은 글자 데이터와 어느 정도 일치하는지에 대한 값을 도출합니다. A를 맡은 노드는 이미지에서 A가 0.1%의 신뢰도로 읽힌다고 신뢰도 값을 도출하고, T를 맡은 노드가 이미지에서 T가 99%의 신뢰도로 읽힌다는 결과를 도출하는 식입니다. 이 결괏값이 모여, 인공신경망은 주식회사 텐의 로고에서 T, E, N을 읽어내 답으로 제시하게 됩니다. 🤓

 

 

 

오늘은 인공신경망에 대해 알아보았습니다. 인공신경망이 어떤 원리로 작동하는지, 이해에 도움이 되었으면 좋겠네요.😀 지난 [AI, 더 쉽게]의 이야기 중에, 인공지능 프레임워크 ‘케라스(Keras)’를 소개하여 드린 적이 있었지요.

👉 인공지능 프레임워크, 좀 더 알아보자 : 케라스 (Keras) 편

소개 글 끝에, 케라스(Keras)가 “‘인공신경망’이라는 개념만으로도 어렵게 느껴질 수 있는 딥러닝을 좀 더 쉽게 접근할 수 있게 해준다”고 말씀드렸었는데요. 당시에 이 ‘인공신경망’에 대해 한번 다루어 보면 좋겠다고 생각했었답니다. 에디터로서 나름의 숙제라 생각했었는데, 후련한 마음이네요. 😊 앞으로도 AI를 공부하며 “꼭 다뤄 봐야지” 했던 이야기들을 하나씩 꺼내 여러분들을 찾아뵙겠습니다! 지금까지 주식회사 텐의 에디터 SA였습니다. 🤓