현재 가장 돈을 잘 버는 기업은 페이스북, 구글, 아마존 과 같은 클라우드 기반 IT기업들입니다.
스마트폰을 통해 엄청나게 많은 정보가 오가고, TV나 에어컨을 스마트폰으로 자동화 시키는 기술이 나오고 있습니다.
5G시대 어쩌구 하며 엄청난 데이터양을 통신할 수 있는 기반 기술도 마련되었고,드론이나, IoT와 같은 플렛폼들을 이용해서 세계가 점차 변화하고 있습니다.
지금 우리는 초연결 사회에 살고 있습니다.
초연결 사회에서 모든 데이터는 실시간으로 특정 기업의 클라우드(컴퓨터)로 전송이 되고
그 클라우드에서 데이터를 정제해 다시 각각의 기기들로 보내게 됩니다.
여기서 점점 한계에 부딪히게 됩니다.
초연결 사회에 단순히 통신기술만 높인다고 인류가 원하는 기술을 충족시켜주지 않았던 것입니다.
즉 인류는 시간 지연 없이, 자신의 기기에서 실시간으로 인공지능 알고리즘을 실행시키고, 직접 데이터를 정제하길 원합니다.
기업의 입장에서도 문제가 있습니다. 이 많은 데이터를 처리하기에는 클라우드 컴퓨터에서 사용하는 전력의 양이 많았으며, 빅데이터를 활용하는 시대가 점점 다가옴에 따라 그 많은 전력과 쿨링을 버티지 못하는 것입니다.
그 외에 통신과 클라우드에 의존하는 데이터 처리는, 보안에서나 컴퓨팅 속도에서나, 인터넷 의존에 따른 부작용면에서나 다양한 계층에서 별로 좋아하지 않은 방법입니다.
따라서 많은 데이터 처리를 각각의 기기의 Chip에서 처리하고 통신 데이터를 최소화 하는 기술을 개발하고 있습니다.
그 대표적인 예가 바로 블록체인이라는 기술인데, 우리가 흔히 비트코인이라고 알고있는 방식입니다.
이 알고리즘도 각각의 기기에서 데이터처리를 하며 공유하는 방식인데, 특히 보안성이 굉장히 좋아서 IBM이나 여러 기업들에서 뛰어들고 있는 기술입니다.
그렇다면 각각의 기기에서 처리해야할 데이터란 과연 무엇일까요?
간단하게는 단순한 데이터 처리 일 겁니다. 예를들어 x+y같은??
그러나 이들은 현 임베디드 시스템 사양에서도 간단하게 계산할 수 있습니다.
현재 각각의 센서, CCTV, 드론, 스마트폰에서 하고자 하는 데이터 처리 기술은 바로 "인공지능" 입니다.
여기서 인공지능이란 무엇일까요??
인공지능이란, 단순히 데이터를 최적화 하는 기술입니다. 즉 어떤 데이터를 보고 경향을 유추해 내는 기술입니다. 인공지능 알고리즘이 적은 계산으로도 안면인식이나, 음식인식과 같은 유추를 99.999%만큼 기가막히게 잘하는 보고가 많았고, 이를 각종 기술분야에 적용시키게 됩니다.
위에서 "적은 계산" 이라 했지만, 사실 적은 계산은 아닙니다. 그 성능을 내기 위한 방법 중 그나마 적은 계산이라 하는게 맞겠죠...
또한 한번 알고리즘을 만들고 나면 수없이 Training을 해야 정확한 추론을 유추해 냅니다.
비록 현재 이런 인공지능은 고급 프로그래밍으로 아주 거대한 사양의 Von-Neumann컴퓨터에서 작동이 되나, 알고리즘으로 보았을 때, 병렬컴퓨팅을 해야하므로, 낮은 사양에 컴퓨터에서는 칩 설계 자체가 달라져야 합니다.
현재 Von-Neumann 컴퓨터로 이러한 인공지능 계산을 하는 알고리즘은 DNN(Deep Neural Network)을 사용하고 있습니다.
그러나 DNN은 오로지 Von-Neumann 컴퓨터를 위한 알고리즘이므로 Von-Neumann 컴퓨터가 아닌 새로운 컴퓨터를 위한 알고리즘인 SNN(Spiking Neural Network)을 개발했습니다.
D(Deep)이 S(Spiking)으로 바뀌었다고 해서 크게 달라지는 것은 없습니다.
알고리즘 자체는 그래로이되, 물리적으로 저장되는 형태가 변화하는 것입니다.
SNN은 단순히 실제 생체 뇌의 시냅스를 조금더 모방한것입니다.
SNN의 핵심적인 구성은 직관적으로 와닿습니다.
즉 같은 내용이 여러번 주입되면 중요한 정보라 인식을하고, 적게 주입되면 별로 중요한 내용이라 인식하지 않는 방법입니다.
(More Firing, More Wiring!)
특정 시간에 많은 횟수 주입되었다면, 중요하게 저장하고, 적은 횟수 주입되면 별로 중요하지 않게 저장합니다.
여기서 SNN의 핵심 단어가 다 나옵니다. 횟수가 많을 수록 중요한 정보라 인식하는 것을 Plasticity라 하고 이는 시냅스에서 일어나는 것이므로 Synaptic Plasticity이라 합니다. 이를 시간적으로 보았으므로
Spike Timing Dependent Plasticity (STDP)이라는 단어를 사용합니다. 다른 말로 Hubbian’s Rule이나 I&F model라고도 합니다.
STDP를 또 나누는데, Short-Term Plasticity라고 하여 짧은 시간동안 많은 양이 들어온다면, 중요한 정보로 저장하고, Long-Term Plasticity으로 긴시간을 두고 봤을때 계속 신호가 들어온다면, 정보를 계속 저장해 두고, 신호가 뜸하게 들어온다면, 점차 기억을 잃게 만드는 것입니다.(비슷하게 영어 단어외울 때 많이 봐왔던 에밍하우스 망각곡선과 같습니다.)
이를 구현하는 방법은 단순합니다.
2008년에 제안되고 발견되었던, 4번째 수동소자 memristor를 이용하거나 시냅스와 뉴런과 비슷한 기능을 하는 소자를 찾으면 됩니다.
memristor에 대해선 다음 포스팅을 참고해주시기 바랍니다 : 수동소자(Passive element) : 멤리스터(memristor), 저항(resistor), 커패시터(capacitors), 인덕터(inductor)
많은 블로그와 책에서 뉴로모픽을 RRAM과 PRAM 기반으로 설명하므로 본 포스팅에서는 Spintronics를 이용한 뉴로모픽에대해 예를 들어보겠습니다.
뉴런은 시냅스를 통해 서로 연결되어 있습니다. 뉴런은 다른 뉴런에서 많은 입력을 받고 받은 신호에 따라 Spike를 내보냅니다. 사실 논리적으로 Transistor로 구성할 수 있지만, 엄청나게 많은 Transistor가 필요합니다.(일부 전자공학과에서는 이 숫자를 줄이는 연구를 합니다.)
Transistor를 대체하려면 소자 자체가 뉴런과 비슷한, 비휘발성이고 plasticity를 가지는 소자가 필요합니다. 최근 Spintronics 소자들이 이런 성질을 나타내는데, Spintronics에 대해 자세한 설명이 필요하시다면, https://depletionregion.tistory.com/notice/149 이 링크를 참조하시길 바랍니다.
Spintronics는 MRAM이라 불리는 비휘발성 메모리를 가지고 있습니다. 차세대 메모리 중 하나로 메모리 기능만으로도 현재 인공지능 회로 내부 synaptic weight를 저장하는 associative memories로 사용하고 있습니다.
추후 더 정확한 물리적 설명과 공식을 추가하겠습니다.
읽어주셔서 감사합니다!
(참고로 사용된 그림은 전부 제 학부 때 논문에 사용된 그림이라, 퍼가는 건...)
'Review' 카테고리의 다른 글
왜 Spintronics 인가 (4) | 2020.08.19 |
---|---|
SOT-MRAM (0) | 2020.08.01 |
[특집] Spintronics 측정 (MRAM 측정) (0) | 2019.12.19 |
[특집] 전류 (0) | 2019.09.10 |
[특집] Ferromagnetic vs Ferrimagnetic vs Antiferromagnetic Spintronics (0) | 2019.06.13 |