과학 트렌트

딥러닝이란 무엇인가?

흐름a 2018. 3. 1. 21:22

  딥러닝에 대한 얘기를 하면 2016년 알파고와 이세돌의 바둑 대결을 생각하는 사람들이 많을 것이다. 사람과 컴퓨터의 바둑 대결을 보면서 많은 사람들이 놀랐다. 바둑은 경우의 수가 아주 다양하고 예측하지 못하는 상황도 많아서 컴퓨터가 인간을 이길 수 없을 것이라고 많은 사람들이 생각했는데, 그와 반대의 결과가 나왔기 때문이다. 이미 체스는 훨씬 전에 사람이 컴퓨터를 이길 수 없다는 것이 판명이 났지만, 바둑은 체스보다 훨씬 더 많은 변수가 존재하기 때문에 사람이 컴퓨터에게 진 것은 더욱더 놀라운 일이었다. 그렇다면 알파고는 어떻게 지구상에서 가장 바둑을 잘 두는 사람중 한 명인 이세돌을 이길 수 있었을까? 그것은 바로 "딥러닝(Deep Learning)"이라는 기술 덕분이다. 프로 바둑 기사들은 평소에 바둑 연습을 할 때 수 많은 기보들을 외우고 그를 기초로 상황에 맞춰서 바둑을 두고 승률을 높여 나간다. 연습과 반복을 통해서 게임에서 패배할 경우의 수와 승리할 경우의 수를 계속적으로 학습하면서 본인의 실력을 쌓는 것이다. 알파고도 이렇게 프로 바둑 기사들처럼 학습을 할 수 있는 딥러닝을 통하여 바둑 실력을 높인 것이다. 그렇다면 딥러닝이란 무엇인지에 대해서 알아보자. 딥러닝을 이해하기 위해서는 우리의 뇌를 먼저 이해해야 한다. 우리의 뇌는 뉴런(Neuron)이라는 신경세포로 이루어져 있다. 우리가 감각기관을 통해서 보고 듣고 느끼는 등의 모든 정보는 뉴런의 전기적, 화학적 반응을 통해서 뇌로 전달되고 뇌에서 판단을 내리면 다시 뉴런을 통해서 근육으로 전달되는 것이다. 여기서 뇌에서 뉴런을 통해 정보가 전달되는 과정을 모방하여 사람과 같이 학습하고 정보를 처리할 수 있는 컴퓨터를 만들게 된 것이다. 뉴런은 입력 신호가 들어오면 일정 값 이상이 넘어서야 다음 뉴런으로 전달해 준다. 여기서 일정 값을 역치 값이라고 부른다. 컴퓨터에서도 이와 비슷하게 입력 신호를 받아서 일정한 임계치(Threshold)를 넘어서면 출력 값을 내보내 주도록 구성할 수 있다. 아래 그림을 통해서 사람이 감각기관을 통해서 정보를 입력받고 인식하는 과정과 컴퓨터에서 입력 값을 받아서 출력 값을 내보내는 과정을 비교해 보자.

 실제 뉴런의 구조를 보면 수상돌기(Dendrites)에서 입력 값을 받고 각 뉴런 간의 결합 강도가 고려된 이후에 세포본체(Cell Body)에서 이 정보들을 취합한다. 정보를 취합한 값이 일정 역치 이상이 되면 이를 축산돌기(Axon)를 통해서 신경이 전달되고 시냅스(Synapse)를 통해 다른 뉴런으로 신호가 전달된다. 이를 컴퓨터에서 유사하게 구현해보면 뉴런의 구조 형상화 과정을 거치면 된다. 입력 값을 다양하게 받고 받은 입력 값에 각각의 가중치를 고려해준다. 모든 입력 값들은 SUM 함수를 통해서 모두 더한다. 그리고나서 많이 사용되는 Step Function(임계치 함수)을 이용하여 일정 임계치를 넘어선 경우에만 1로 출력하도록 구조화 할 수 있다. 이러한 방식은 실제 뇌의 신경망이 뉴런을 통해서 신호를 전달하는 과정과 유사한 것을 알 수 있다. 딥러닝이 무엇인지 알기 위해서 우리의 뇌에서 정보가 전달되는 과정을 먼저 살펴 본 이유는 입력 값에 대한 출력 값이 어떻게 처리가 되고 있는지 알기 위해서였다. 위의 그림에서는 하나의 뉴런에 대해서만 설명하였는데, 실제 뇌는 이러한 뉴런들이 많이 연결되어 있다. 컴퓨터에서도 실제 뇌에서처럼 뉴런의 구조 형상화를 하고 다양하게 연결하여 인공 신경망을 만들었고 이를 통해 딥러닝을 구현할 수 있게 되었다. 즉, 입력 값을 받고 중간 연산 과정을 거치고 출력 값을 내보내는 과정을 지속적으로 반복하면서 입력 값에 대한 원하는 출력을 구할 수 있도록 구현하였다. 알파고에서 이를 어떻게 활용했는지 간단히 살펴보자. 우선 학습과정에서는 입력 값들은 수 많은 바둑의 경우의 수가 될 것이다. 출력 값은 상대방을 이길 수 있는 수에 대해서 표출이 될 것이다. 이때 가중치에 의해서 입력 값들에 대한 출력 값이 바뀌게 되는데 컴퓨터에서는 가중치를 변경하고 학습 시키면서 최적의 가중치 값을 구하게 된다. 최적의 가중치 값이 구해지면 실제로 바둑 대결시 입력 값이 들어오면 최적의 수를 출력 값으로 내보내주는 것이다. 결론적으로 딥러닝이란 사람의 신경망의 정보 처리 과정을 모방하여 기계가 학습을 빠르게 할 수 있도록 구현한 기술이라고 볼 수 있다. 이러한 빠른 학습 능력을 통해서 알파고처럼 최적의 해답을 빨리 찾는데 이용할 수 있고 음성 인식이나 이미지 인식등에서도 활용할 수가 있다. 지금까지 딥러닝에 대한 기본 개념 및 인간의 신경망을 모방한 내용에 대해서 설명하였는데, 수식적으로 어떻게 이를 구현하였는지 다음 글에서 조금더 자세히 설명하겠다.