2016년 알파고와 이세돌 기사의 대국 이후로 인공지능이라는 단어가 대중적으로 알려지게 되었습니다. 이후 수년간 4차 산업혁명의 중요한 키워드로 떠오른 인공지능은 AI 비서, AI 선생님, AI 투자 매니저를 포함한 다양한 인공지능 애플리케이션들이 등장하면서 이제 우리에게 친숙한 기술로 자리잡았습니다. 그래서일까요? 많은 분들이 인공지능이라는 말을 들으면, 컴퓨터 프로그램이나 소프트웨어를 떠올리시는 것 같습니다. 그런데 차세대 인공지능 기술은 소프트웨어 개발도 중요하지만 하드웨어 개발 역시 그만큼 중요하다는 점, 알고 계셨나요?
이번 기사에서는 인공지능 소프트웨어가 아닌, 인공지능 연산을 효율적으로 처리할 수 있는 하드웨어에 대해서 다룰 예정입니다. 컴퓨터에게 성능만큼 중요한 것이 효율성인데, 방대한 양의 데이터를 처리하는 인공지능 분야에서 에너지 효율성은 고려하지 않을 수 없는 필수적인 요소가 되었기 때문입니다. 따라서 인공지능의 전력 소모를 줄이기 위한 여러 연구가 활발히 진행되고 있는데요, 오늘은 그 중에서도 인간의 두뇌를 소프트웨어가 아닌 하드웨어로 모방하는 뉴로모픽 컴퓨팅(neuromorphic computing) 기술에 대해서 다루도록 하겠습니다.
이번 기사에서는 인공지능 소프트웨어가 아닌, 인공지능 연산을 효율적으로 처리할 수 있는 하드웨어에 대해서 다룰 예정입니다. 컴퓨터에게 성능만큼 중요한 것이 효율성인데, 방대한 양의 데이터를 처리하는 인공지능 분야에서 에너지 효율성은 고려하지 않을 수 없는 필수적인 요소가 되었기 때문입니다. 따라서 인공지능의 전력 소모를 줄이기 위한 여러 연구가 활발히 진행되고 있는데요, 오늘은 그 중에서도 인간의 두뇌를 소프트웨어가 아닌 하드웨어로 모방하는 뉴로모픽 컴퓨팅(neuromorphic computing) 기술에 대해서 다루도록 하겠습니다.
인간의 뇌가 얼마나 대단하길래?
인간의 두뇌는 높은 성능을 가지고 있으면서 동시에 약 20W의 전력밖에 소비하지 않는 매우 효율적인 하드웨어랍니다. 반면 알파고의 경우 이의 8500배에 달하는 170kW의 전력을 소비하였죠. 따라서 “컴퓨터도 인간의 두뇌처럼 낮은 전력을 소비하면서도 높은 성능을 가질 수는 없을까?” 하는 의문에서 출발하여, 인간의 뇌(신경계)를 모방한 컴퓨터 구조를 개발하는 뉴로모픽 컴퓨팅 기술에 대한 연구가 시작되었습니다. 더 구체적으로 설명하자면, 뉴로모픽 컴퓨팅은 인공지능 사용에 필요한 컴퓨터의 하드웨어를 인간 신경계의 뉴런 및 시냅스 구조와 유사하게 구성하여 적은 전력으로 많은 양의 단순 연산을 빠르게 처리하는 방식이랍니다. 그렇다면 먼저 인간의 뇌에서 뉴런과 시냅스가 어떤 방식으로 작동하는지부터 알아볼까요?
인간의 두뇌는 높은 성능을 가지고 있으면서 동시에 약 20W의 전력밖에 소비하지 않는 매우 효율적인 하드웨어랍니다. 반면 알파고의 경우 이의 8500배에 달하는 170kW의 전력을 소비하였죠. 따라서 “컴퓨터도 인간의 두뇌처럼 낮은 전력을 소비하면서도 높은 성능을 가질 수는 없을까?” 하는 의문에서 출발하여, 인간의 뇌(신경계)를 모방한 컴퓨터 구조를 개발하는 뉴로모픽 컴퓨팅 기술에 대한 연구가 시작되었습니다. 더 구체적으로 설명하자면, 뉴로모픽 컴퓨팅은 인공지능 사용에 필요한 컴퓨터의 하드웨어를 인간 신경계의 뉴런 및 시냅스 구조와 유사하게 구성하여 적은 전력으로 많은 양의 단순 연산을 빠르게 처리하는 방식이랍니다. 그렇다면 먼저 인간의 뇌에서 뉴런과 시냅스가 어떤 방식으로 작동하는지부터 알아볼까요?
그림 1. 뉴런과 시냅스
인간의 뇌에서는 무려 1000억개가 넘는 뉴런들이 서로 신호를 주고받으면서 연산, 기억, 학습을 동시에 수행합니다. 뉴런 간에 신호를 주고받을 때 연결고리 역할을 하는 것이 바로 시냅스인데요. 그림 1과 같이 시냅스는 한 뉴런의 축삭돌기 끝부분인 축삭종말과 다음 뉴런들의 첫 부분인 수상돌기와 세포체를 이어준답니다. 이렇게 그물망처럼 병렬로 연결된 뉴런들은 자극을 받으면 전기 신호를 생성하여 다음 뉴런들에게 전달하는데요, 그 과정을 자세히 살펴보겠습니다.
그림 2. 자극에 의한 뉴런의 막전위 변화
뉴런에서는 세포 내부와 외부의 이온 농도 차이에 의한 전위차가 존재하고, 이를 막전위라고 합니다. 자극을 받지 않는 평상시의 뉴런의 막전위를 휴지 전위라 하며, 휴지 전위는 약 -70mV입니다. 그림 2의 그래프에도 나와 있듯이, 만약 뉴런이 자극을 받으면 뉴런의 막전위가 서서히 증가하고, 막전위가 특정한 값(역치 전위)을 넘어서면 급격하게 증가했다가 다시 감소하면서 활동 전위를 생성합니다. 이렇게 만들어진 활동 전위는 축삭돌기를 따라 이동하여 시냅스에 도달하게 되는데요. 이로 인해 시냅스에서 신경전달물질이 분비되고, 다음 뉴런의 막전위에 영향을 미치게 되는 것이죠. 그런데 이러한 방식이 왜 기존의 컴퓨터보다 더 효율적인 것일까요? 그 비밀은 바로 연산과 기억을 동시에 수행한다는 점에 있답니다.
전력 소비의 범인은 폰 노이만 구조의 병목현상
현재 사용되는 대부분의 컴퓨터는 폰 노이만 구조로 이루어져 있어요. 폰 노이만 구조는 폰 노이만이 최초로 고안한 컴퓨터 구조로, 계산을 담당하는 연산 장치와 데이터를 저장하는 메모리(기억 장치)가 분리된 구조를 말합니다. 이러한 구조에서는 연산 장치의 성능과 효율이 아무리 뛰어나더라도 데이터를 읽고 쓰는 데에 많은 시간과 에너지를 소비할 수밖에 없는데요, 이를 폰 노이만 구조의 병목현상이라고 합니다. 인공지능 분야에서는 막대한 양의 데이터를 처리해야 하기 때문에 병목현상이 심각한 문제로 여겨지고 있답니다.
그런데 우리가 앞에서 살펴본 인간의 두뇌에서는 뉴런과 시냅스가 연산과 기억을 동시에 수행한다고 했으니 병목현상이 발생하지 않는다는 사실, 알아차리셨나요? 계산에 필요한 데이터를 넣었다 뺐다 할 필요 없이 그 자리에서 바로 계산하고, 저장하면 되는 것이죠. 따라서 인간의 두뇌를 모방한 컴퓨터 구조를 사용하면 폰 노이만 병목현상을 극복하여 에너지 효율을 획기적으로 증가시킬 수 있답니다.
현재 사용되는 대부분의 컴퓨터는 폰 노이만 구조로 이루어져 있어요. 폰 노이만 구조는 폰 노이만이 최초로 고안한 컴퓨터 구조로, 계산을 담당하는 연산 장치와 데이터를 저장하는 메모리(기억 장치)가 분리된 구조를 말합니다. 이러한 구조에서는 연산 장치의 성능과 효율이 아무리 뛰어나더라도 데이터를 읽고 쓰는 데에 많은 시간과 에너지를 소비할 수밖에 없는데요, 이를 폰 노이만 구조의 병목현상이라고 합니다. 인공지능 분야에서는 막대한 양의 데이터를 처리해야 하기 때문에 병목현상이 심각한 문제로 여겨지고 있답니다.
그런데 우리가 앞에서 살펴본 인간의 두뇌에서는 뉴런과 시냅스가 연산과 기억을 동시에 수행한다고 했으니 병목현상이 발생하지 않는다는 사실, 알아차리셨나요? 계산에 필요한 데이터를 넣었다 뺐다 할 필요 없이 그 자리에서 바로 계산하고, 저장하면 되는 것이죠. 따라서 인간의 두뇌를 모방한 컴퓨터 구조를 사용하면 폰 노이만 병목현상을 극복하여 에너지 효율을 획기적으로 증가시킬 수 있답니다.
그림 3. 폰 노이만 구조와 인-메모리 컴퓨팅의 차이
그림 3의 오른쪽과 같이 컴퓨터의 메모리 내부에서 연산을 수행하도록 하는 방식을 인-메모리 컴퓨팅이라고 하는데요. 이와 같은 관점에서 보면 뉴로모픽 컴퓨팅은 인간의 두뇌를 모방하려는 시도임과 동시에 인-메모리 컴퓨팅을 구현하려는 시도이기도 한 것이죠. 그렇다면 도대체 인간의 두뇌를 어떻게 모방한다는 것인지 궁금하지 않나요?
뉴로모픽 컴퓨팅의 뿌리 – 스파이킹 신경망(Spiking Neural Network, SNN)
뉴로모픽 컴퓨팅을 실현하기 위해서는 가장 먼저 뉴런과 시냅스를 전기 회로로 구현해야 합니다. 그림 2에서 보았던 뉴런들 사이에서 주고받는 뾰족한 모양의 전기 신호(활동 전위)를 스파이크라고 하는데요. 축전기를 사용하면 뉴런에 스파이크가 입력되었을 때 축전기가 충전 또는 방전되도록 하여 축전기 양단의 전압으로 뉴런의 막전위를 표현할 수 있습니다. 뉴런의 막전위가 증가하여 역치 전위를 넘어섰을 때 스파이크를 생성하는 동작은 트랜지스터1 들을 사용하여 모사할 수 있답니다.
그렇다면 시냅스는 어떤 역할을 하는 것일까요? 뉴런과 뉴런을 연결하는 시냅스들은 입력 받은 스파이크 신호를 그대로 전달하지 않고, 적절히 변형하여 다음 뉴런에게 전달합니다. 이때 입력 스파이크를 변형하는 정도를 시냅스의 가중치(weight)라고 하는데요, 뉴런은 입력 스파이크와 시냅스의 가중치를 곱한 값들을 막전위에 누적하게 되는 것이죠. 따라서 같은 입력 값이라도 시냅스들의 가중치에 따라 다른 출력 값이 나오게 됩니다. 이 가중치들은 외부에 따로 저장되는 것이 아니라 각각의 시냅스들이 자체적으로 가지고 있는 것이기 때문에 시냅스가 메모리의 역할을 한다고 볼 수 있습니다. 전기 회로에서 시냅스의 가중치는 저항의 크기에 따라 흐르는 전류의 세기가 달라지는 것으로 구현하는데요, 저항의 크기를 원하는 대로 조절할 수 있어야 하므로 일반적인 저항이 아닌 복잡한 소자들을 이용한답니다.
뉴로모픽 컴퓨팅을 실현하기 위해서는 가장 먼저 뉴런과 시냅스를 전기 회로로 구현해야 합니다. 그림 2에서 보았던 뉴런들 사이에서 주고받는 뾰족한 모양의 전기 신호(활동 전위)를 스파이크라고 하는데요. 축전기를 사용하면 뉴런에 스파이크가 입력되었을 때 축전기가 충전 또는 방전되도록 하여 축전기 양단의 전압으로 뉴런의 막전위를 표현할 수 있습니다. 뉴런의 막전위가 증가하여 역치 전위를 넘어섰을 때 스파이크를 생성하는 동작은 트랜지스터1 들을 사용하여 모사할 수 있답니다.
그렇다면 시냅스는 어떤 역할을 하는 것일까요? 뉴런과 뉴런을 연결하는 시냅스들은 입력 받은 스파이크 신호를 그대로 전달하지 않고, 적절히 변형하여 다음 뉴런에게 전달합니다. 이때 입력 스파이크를 변형하는 정도를 시냅스의 가중치(weight)라고 하는데요, 뉴런은 입력 스파이크와 시냅스의 가중치를 곱한 값들을 막전위에 누적하게 되는 것이죠. 따라서 같은 입력 값이라도 시냅스들의 가중치에 따라 다른 출력 값이 나오게 됩니다. 이 가중치들은 외부에 따로 저장되는 것이 아니라 각각의 시냅스들이 자체적으로 가지고 있는 것이기 때문에 시냅스가 메모리의 역할을 한다고 볼 수 있습니다. 전기 회로에서 시냅스의 가중치는 저항의 크기에 따라 흐르는 전류의 세기가 달라지는 것으로 구현하는데요, 저항의 크기를 원하는 대로 조절할 수 있어야 하므로 일반적인 저항이 아닌 복잡한 소자들을 이용한답니다.
1 전기 회로에서 스위치 역할을 하는 반도체 소자. 자세한 내용은 공대상상 40호의 <인물은 이렇게 말했다>, <전공 수업 소개> 기사를 참고하세요!
그림 4. 스파이킹 신경망의 작동 방식
이제 뉴런과 시냅스가 준비되었으니 전달하고자 하는 정보를 어떻게 스파이크로 변환할지 생각해야 합니다. 안타깝게도 스파이크 전위의 크기가 그 자체로 바로 정보가 되는 것은 아닙니다. 오로지 스파이크 신호의 발생 여부만이 정보로 전달된답니다. 그것만으로는 다양한 정보를 표현할 수 없겠죠? 그래서 스파이크의 절대적인 혹은 상대적인 입력 시간이 중요한 정보로 이용됩니다. 시냅스의 가중치와는 별개로 스파이크가 입력되는 시간에 따라 뉴런의 막전위에 미치는 영향이 달라지는 것이지요. 최종적으로는 마지막 뉴런에서 생성되는 스파이크의 발생 주기나 시간 간격 등을 통해 결과 값을 얻을 수 있습니다. 이러한 스파이크 기반의 신경망을 스파이킹 신경망(SNN)이라고 하고, 이는 뉴로모픽 컴퓨팅의 근간이 되고 있답니다.
하지만 SNN 방식도 단점이 있답니다. 아직 현재의 기술로는 인간의 뇌를 완벽히 모사하기 어렵다는 점이죠. 특히 신경망을 학습시키는 소프트웨어 관련 연구가 부족하여 기존 인공 신경망만큼의 성능을 얻지 못하고 있습니다. 따라서 최근에는 하드웨어 구조를 스파이킹 신경망으로 구현하고, 소프트웨어는 기존의 인공 신경망을 사용하여 변환하는 방법이 사용되고 있답니다. 이처럼 SNN의 부족한 점을 보완하기 위해 많은 연구가 진행되고 있는데요, 그 중 하나의 사례를 구체적으로 살펴볼까요?
하지만 SNN 방식도 단점이 있답니다. 아직 현재의 기술로는 인간의 뇌를 완벽히 모사하기 어렵다는 점이죠. 특히 신경망을 학습시키는 소프트웨어 관련 연구가 부족하여 기존 인공 신경망만큼의 성능을 얻지 못하고 있습니다. 따라서 최근에는 하드웨어 구조를 스파이킹 신경망으로 구현하고, 소프트웨어는 기존의 인공 신경망을 사용하여 변환하는 방법이 사용되고 있답니다. 이처럼 SNN의 부족한 점을 보완하기 위해 많은 연구가 진행되고 있는데요, 그 중 하나의 사례를 구체적으로 살펴볼까요?
뉴런 입력과 출력의 강한 상관관계 확보를 위한 회로 설계
SNN 소프트웨어의 한계로 기존의 인공 신경망을 스파이킹 신경망으로 변환하는 방법을 사용한다고 하였는데, 이를 ANN-to-SNN 변환 방법이라고 부릅니다. 이 방법을 잘 활용하기 위한 핵심은 뉴런 회로에서 입력과 출력 사이의 강한 상관관계를 확보하는 것입니다. 그 이유를 알기 위해서는 활성화 함수가 무엇인지 먼저 알아야 해요. 활성화 함수란 뉴런의 입력 값과 출력 값 사이의 관계를 나타내는 함수를 의미합니다. 앞에서 봤던 생물학적 뉴런의 경우 막전위가 역치 전위를 넘으면 활동 전위를 생성하고, 넘지 못하면 활동 전위를 생성하지 않았었죠? 이는 수학적으로 활동 전위를 생성할 때를 1, 활동 전위를 생성하지 않을 때를 0에 대응시킬 수 있습니다. 참고로 이러한 형태의 함수를 계단 함수(step function)라고 하는데, 가장 기본적인 형태의 활성화 함수라고 할 수 있습니다.
그러나 실제로 인공 신경망 소프트웨어를 구현할 때에는 학습의 편의성을 위해 계단함수 이외에도 다양한 형태의 활성화 함수를 사용하는데요, 그 중 가장 많이 사용되는 것이 ReLU(Rectified Linear Unit) 함수입니다. 앞에서 이야기한 뉴런의 입력과 출력 사이의 강한 상관관계가 중요한 이유가 바로 ReLU 함수를 정확히 구현하기 위함입니다. 그렇다면 ReLU 함수란 무엇일까요?
이름은 생소하지만, 함수는 매우 간단합니다. 입력 값이 0보다 작으면 0을, 입력 값이 0보다 크면 입력 값을 그대로 출력하는 함수입니다. 수식으로 나타내면 다음과 같습니다.
그래프로 나타내면 그림 5와 같은 결과가 나옵니다. 여기서 중요한 것은 입력 값이 0보다 클 때, 입력 값을 그대로 출력하기 위해 입력과 출력 사이의 강한 상관관계가 필수적이라는 것입니다.
SNN 소프트웨어의 한계로 기존의 인공 신경망을 스파이킹 신경망으로 변환하는 방법을 사용한다고 하였는데, 이를 ANN-to-SNN 변환 방법이라고 부릅니다. 이 방법을 잘 활용하기 위한 핵심은 뉴런 회로에서 입력과 출력 사이의 강한 상관관계를 확보하는 것입니다. 그 이유를 알기 위해서는 활성화 함수가 무엇인지 먼저 알아야 해요. 활성화 함수란 뉴런의 입력 값과 출력 값 사이의 관계를 나타내는 함수를 의미합니다. 앞에서 봤던 생물학적 뉴런의 경우 막전위가 역치 전위를 넘으면 활동 전위를 생성하고, 넘지 못하면 활동 전위를 생성하지 않았었죠? 이는 수학적으로 활동 전위를 생성할 때를 1, 활동 전위를 생성하지 않을 때를 0에 대응시킬 수 있습니다. 참고로 이러한 형태의 함수를 계단 함수(step function)라고 하는데, 가장 기본적인 형태의 활성화 함수라고 할 수 있습니다.
그러나 실제로 인공 신경망 소프트웨어를 구현할 때에는 학습의 편의성을 위해 계단함수 이외에도 다양한 형태의 활성화 함수를 사용하는데요, 그 중 가장 많이 사용되는 것이 ReLU(Rectified Linear Unit) 함수입니다. 앞에서 이야기한 뉴런의 입력과 출력 사이의 강한 상관관계가 중요한 이유가 바로 ReLU 함수를 정확히 구현하기 위함입니다. 그렇다면 ReLU 함수란 무엇일까요?
이름은 생소하지만, 함수는 매우 간단합니다. 입력 값이 0보다 작으면 0을, 입력 값이 0보다 크면 입력 값을 그대로 출력하는 함수입니다. 수식으로 나타내면 다음과 같습니다.
그래프로 나타내면 그림 5와 같은 결과가 나옵니다. 여기서 중요한 것은 입력 값이 0보다 클 때, 입력 값을 그대로 출력하기 위해 입력과 출력 사이의 강한 상관관계가 필수적이라는 것입니다.
그림 5. ReLU 함수의 그래프(x는 입력 값, y는 출력 값)
이러한 ReLU 함수는 SNN 구현에서 중요한 역할을 하고 있는데요, ReLU 함수 구현 정도에 따라 전체 신경망의 정확도가 달라지며 만약 ReLU 함수를 뉴런 회로 내부에서 수행하지 못한다면 외부에 ReLU 연산을 위한 회로를 추가해야 하기 때문에 정확도가 떨어지고, 전력을 더욱 많이 소모하게 되는 부작용이 있습니다. 따라서 연구자들은 전력 효율을 높이면서도 입출력 간의 상관관계를 보장할 수 있도록, 뉴런 회로와 소프트웨어 알고리즘을 모두 활용하여 SNN을 최대한 잘 구현할 수 있는 방법을 찾기 위해 노력하고 있습니다.
지금까지 인간의 뇌를 컴퓨터 하드웨어에서 모사한 뉴로모픽 컴퓨팅과 대표적으로 쓰이는 모델인 SNN, 그리고 SNN의 단점을 보완하기 위한 연구를 살펴보았습니다. 뉴로모픽 컴퓨팅은 아직 구현할 수 있는 정도에 한계가 있지만 에너지 효율성 측면에서 확실한 장점이 있기에, 단점을 극복한다면 고성능 고효율 인공지능을 구현할 수 있을 것으로 기대가 됩니다. 다소 어려운 내용이지만 관심을 가지고 찾아본다면 현재 진행되고 있는 연구가 많기에 흥미로운 내용이랍니다. 언젠가 뉴로모픽 컴퓨팅이 제대로 구현된다면 우리의 삶은 지금보다 더 편하게 바뀌고, 혁신적인 기술을 이용할 수 있게 되지 않을까요?
지금까지 인간의 뇌를 컴퓨터 하드웨어에서 모사한 뉴로모픽 컴퓨팅과 대표적으로 쓰이는 모델인 SNN, 그리고 SNN의 단점을 보완하기 위한 연구를 살펴보았습니다. 뉴로모픽 컴퓨팅은 아직 구현할 수 있는 정도에 한계가 있지만 에너지 효율성 측면에서 확실한 장점이 있기에, 단점을 극복한다면 고성능 고효율 인공지능을 구현할 수 있을 것으로 기대가 됩니다. 다소 어려운 내용이지만 관심을 가지고 찾아본다면 현재 진행되고 있는 연구가 많기에 흥미로운 내용이랍니다. 언젠가 뉴로모픽 컴퓨팅이 제대로 구현된다면 우리의 삶은 지금보다 더 편하게 바뀌고, 혁신적인 기술을 이용할 수 있게 되지 않을까요?
- 참고문헌
- 배선열. (n.d.). 아날로그 스파이킹 신경망 구현을 위한 CMOS Integrate-and-Fire 뉴런 회로 분석(학사학위논문). 서울대학교 공과대학, n.p..
- 오광일, 이재진. (2020.7.). Brain Inspired Computing을 위한 Analog 회로 기반 Spiking Neural Network. n.p.: 대한전자공학회.
- 이우주, 오광일, 이재진. (2021.8.18.). Spiking Neural Network 기반 인공지능 반도체: 이것이 답일까?. n.p.: 주간기술동향.
- 그림출처
- 그림 1. Entertaining news. (n.d.). https://mooncharming.tistory.com/entry/%EB%91%90%EB%87%8C-%ED%99%9C%EC%84%B1%ED%99%94-5%ED%83%84
- 그림 2. 오현선 et al. (n. d.). 미래엔 고등 생명과학 1 교과서
- 그림 3. 삼성 반도체 이야기. (2022.1.). https://www.samsungsemiconstory.com/kr/%EC%82%BC%EC%84%B1%EC%A0%84%EC%9E%90-mram-%EA%B8%B0%EB%B0%98-%EC%9D%B8-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%BB%B4%ED%93%A8%ED%8C%85-%EC%84%B8%EA%B3%84-%EC%B5%9C%EC%B4%88-%EA%B5%AC%ED%98%84/
- 그림 4. 김용주, 김태호. (n.d.). Spiking Neural Networks(SNN) 구조에서 뉴런의 개수와 학습량에 따른 학습 성능 변화 분석. n.p.: koreascience.
- 그림 5. 만년필 잉크의 데이터 분석 지식 저장소. (n.d.). https://gooopy.tistory.com/55