신경과학과 신경회로 Neuroscience and Neural Circuits 

사람은 여러 가지 방식으로 공부를 하고 새로운 지식을 배운다사람은 타인의 경험을 관찰하면서 경험을 쌓을 수 있고 새로운 지식은 중복을 통하여 익힐 수 있다그러면 우리가 새로운 운동을 시작하거나 새로운 기술을 배울 때 우리의 뇌는 어떻게 반응할까 

우리가 스쾃 자세를 배운다고 가정하자우리가 스쾃을 할 때 대뇌 속에 있는 뉴런은 가지돌기 (Dendrite)를 통해서 다른 뉴런으로부터 신경신호를 받아들이고 그 신호는 축삭돌기(Axon)를 통해서 시냅스(Synapse)로 간다시냅스에서 신경전달물질(Neurotransmitter)을 형성해서 다른 뉴런으로 신호를 보낸다그리고 대뇌 속에 있는 수많은 뉴런들이 모이면 신경회로(Neural circuits)가 형성된다신경회로의 형성은 우리 가 새로운 지식을 얼마나 잘 활용할 수 있는가를 결정한다.

 

이미지 출처https://biologydictionary.net/axon-terminal/ 

 

이미지 출처https://terms.naver.com/entry.naver?docId=1078229&cid=40942&categoryId=32319 

우리가 처음으로 스쾃을 배울 때 자세가 많이 부 자연스러울 수 있고 틀린 근육을 사용해서 실수를 할 수가 있다하지만 우리가 스쾃을 중복해서 한 달을 하게 되면 우리는 그 자세를 점점 더 익숙해지게 되고 더 쉽게 스쾃을 할 수 있다마찬가지로 대뇌 속에 있는 신경회로가 처음으로 형성될 때 뉴런들이 잘 뭉치지 못하지만 중복된 과정을 통해서 뉴런 사이에 계속 신호를 보내게 되면 신경 회로도 근육처럼 점점 더 단단해지고 더 빠르게 대뇌 신호를 발신할 수 있다. 

 

이미지 출처https://www.gettyimages.com/illustrations/dendrite 

딥 러닝 Deep Learning 

컴퓨터 과학자들은 신경학과 지식에서 기발을 받아서 인공지능한테 “뇌”를 가지게 했다신경회로와 비슷한 방법으로 컴퓨터 학자들은 수학적 모델을 만들게 되였고인공지능은 인간의 뇌와 비슷한 방법으로 문제를 해결할 수 있었다. 그 수학 모델을 신경망(Neural Network)이라고 부르고 사람의 뇌의 기능을 적극적으로 모방하려는 생각에 기초를 두고 있다무언가를 보고그것이 무엇인가를 인식하여필요에 따라 행동을 취한다는인간에게는 아주 간단하고 당연한 사고방식을 컴퓨터에 학습시키려는 것이다컴퓨터 학자들은 신경망을 통해서 학습하는 방식을 딥 러닝(Deep Learning)이라고 부른다. 

이미지 출처https://towardsdatascience.com/deep-learnings-mathematics-f52b3c4d2576 

(딥 러닝 수학에 관심 있으시면 이미지 출처 링크 클릭하세요이번 시리즈에서 수학 해석 안 합니다.) 

 

자율 주행 Autonomous Driving 

딥 러닝 방법은 현재 수많은 영역에서 사용하고 있다생물학 연구하시는 분들은 딥 러닝으로 질병을 예측하거나 단백질 접힘(protein folding)을 추측할 수 있고 핀테크(FinTech) 연구하시는 분들은 딥 러닝으로 금융상품의 가격과 추세를 분석한다최근 몇 년간 제일 많이 미디어에서 언급되고 딥 러닝 기술혁신을 가지게 온 분야는 아마도 자율 주행인 것 같다. 
 
자난 편에서 언급하듯이 인공지능에게 학습을 가르치려면 데이터가 있어야 한다고 했다. 자율주행을 실현하려면 우리는 차 주변의 장애물을 감지할 수 있어야 되고 차가 다니는 도로를 인지할 수 있어야 한다. 그렇게 하기 위해서는 인공지능한테 무엇이 장애물이고 무엇이 사람이고 무엇이 도로인지를 가르쳐야 한다. 우리는 카메라를 통해서 테라바이트의 데이터를 모을 수 있고, 여러 가지 딥 러닝 알고리즘을 통해서 머신러닝 모델을 만들고 인공지능한테 “볼”수 있는 능력을 가지게 할 수 있다. 컴퓨터 학과에서는 카메라 데이터를 이용해서 물체 인식(Object Recognition) 하는 학문을 컴퓨터 비전(Computer Vision)이라고 부른다.  

 이미지 출처https://www.hackerearth.com/blog/developers/object-detection-for-self-driving-cars/  

인공지능의 “볼”수 있는 능력을 키우려면 쉽지가 않다. 수많은 영상 데이터와 이미지 데이터가 필요하고 인공지능이 “보고” 있는 물체가 무엇인지에 대해 가르쳐야 한다. 하지만 인공지능이 한번 배운 능력은 쉽게 다른 인공지능에게 가르칠 수 있다. 마침 영화 Matrix에서 쿵후 지식을 컴퓨터 모델로 다운로드해서 주인공 Neo가 짧은 시간 내에 쿵후 마스터가 되듯이 인공지능에게 한번 가르치면 그 가르친 모델로 다른 인공지능도 쉽게 “볼”수 있는 능력을 가지게 된다. 자율 주행은 이런 컴퓨터 비전 모델을 이용해서 차 도로를 찾을 수 있고, 장애물을 피할 수 있고, 가까운 사람을 인지하면 시동을 끄고 행인을 보호할 수 있다. 

 이미지 출처:  https://www.hackerearth.com/blog/developers/object-detection-for-self-driving-cars/  

여기에서 자율주행의 수많은 딜레마가 나오게 된다. 무인자동차가 고장이 나고 긴급상황에 처해 있을 때 우리는 무인자동차 인공지능한테 어떤 지시와 공부를 시켜야 현대사회 도덕에 부합되는 선택을 하게 될까? 예를 들면 무인자동차의 브레이크가 고장 났다고 가정하자. 차가 빠른 속도로 장애물을 치면 차 안에 있는 승객이 사망하게 되고, 차를 돌려서 행인을 치면 차 안에 있는 사람은 살지만 행인은 사망하게 된다. 이런 상황에서 인공지능은 어떤 선택을 해야 될까? 

 이미지 출처https://www.moralmachine.net/hl/kr 

MIT Moral Machine이라는 프로젝트에서는 이와 같은 질문을 연구한 적이 있다. 간단한 테스팅을 통해서 여러 나라 사람들의 사회 가치관과 도덕 기준의 차이를 볼 수 있다. 아래 링크에 들어가면 한국어로 된 테스팅을 할 수 있고 여러 나라의 사회적 도덕 기준과 문화 성향을 잠깐 볼 수 있는 것 같다.  이런 사회적 실험을 통해서 우리는 더 사람 같은 인공지능을 개발 할 수 있을것 같다.

MIT Moral Machine 링크: https://www.moralmachine.net/hl/kr 

 

에필로그 Epilogue 

글을 쓰면서 하버드 대학에서 컴퓨터 비전과 자율 주행 수업을 들었을 때 Jetson Nano 로봇으로 만들었던 프로젝트가 생각났다. 그때 프로젝트 주제는 한정되지 않았고 자유적으로 상상을 발휘해서 자율 주행에 연관된 알고리즘과 시스템을 만들어 내면 됐다. 어떤 팀은 객체 탐지(Object Detection) 와 도로 감지 효율을 올리는 주제를 내세웠고, 어떤 팀은 시뮬레이션을 통해서 자율 주행 인공지능의 능력을 제고하는 주제를 제기했다. 그리고 어두운 환경에서의 자율 주행 효율과 탐지 능력을 제고하는 알고리즘을 만들려고 하는 팀도 있었다. 나도 창의적인 방법을 찾으려고 생각을 많이 했다. 그러다가 문뜩 생각난 것이 있었다. 교차로에서 신호등이 없고 경찰이 지휘를 하고 있을 때 자율 주행을 어떻게 해야 되는가에 대해서 궁금해지게 됐다. 그래서 다른 학생들과 생각을 얘기하고 그 주제에 관심 있는 세 명의 학생들과 팀을 형성하게 되였다. 

 

 

프로젝트 만드는 과정은 생각보다 쉽지 않았지만 그 과정을 쉽게 설명해 보겠다. 우리 팀은 사람을 인지할 수 있는 딥 러닝 모델을 사용해서 사람의 관절을 카메라로 통해서 인식하게 했다. 그리고 그 관절 위치를 큐( Queue)라는 데이터구조(Data Structure)에 저장하게 되고 매초마다 관절 위치와 각도를 계산하고 사람의 행동에 따라서 자율 주행을 실시하는 알고리즘을 만들었다. 왼손을 펴고 오른손을 앞뒤로 흔들면 로봇 자동차는 오른쪽으로 가고, 양손 내리고 앞으로 내미는 동작을 반복하면 로봇 자동차는 뒤로 가게 되고, 양손을 머리 위로 올리고 앞뒤로 흔들면 로봇 자동차는 앞으로 직진하게 됐다. 

 

이미지 출

https://docs.google.com/presentation/d/1cbxCLCsJF5XMxTU7TJPz5PO8wt7nZJMfL4VZRbcw44s/edit#slide=id.g35f391192_00 

(이미지 속 저 이상한 초록색 관절을 가지고 있는 사람은 글쓴이 입니. 😁) 

 더 상세한 리포트와 PPT 가 궁금하면 아래링크를 클릭 하시면 풀 버젼을 볼수 있다. 

리포트: 

https://docs.google.com/document/d/1xfjXC6owtdMY3dYWYzfQKErspYrnahFKPhQOy84kNMk/edit 

PPT: 

https://docs.google.com/presentation/d/1cbxCLCsJF5XMxTU7TJPz5PO8wt7nZJMfL4VZRbcw44s/edit 

소스코드(source code)도 공유하려고 했는데 하버드 대학 내부 github라서 아마 외부에서 볼 수가 없다. 기회가 될 때 개인 github에 올리겠다. (https://code.harvard.edu/loc630/DGMD-S-17-Project-Autonomous-Car-and-Hand-Signal-Recognition) 

 

결말

인공지능이 “볼”수 있는 능력을 가지게 하려면 딥 러닝 알고리즘과  수많은 이미지 데이터그리고 영상 데이가 있어야 가능하다하지만 딥 러닝의 적용은 여기서 끝이 아니다다음 편에서 인공지능은 어떻게 딥 러닝을 통해서 “듣”는 능력을 가지는지에 대해 공유하고 싶다. 

 

참고자료: 

 

이 글을 공유하기:

[7lc]

회계를 하다가 요리가 좋아서 컴퓨터를 하게 된 남자. LinkedIn: https://www.linkedin.com/in/longchangcui/

작가를 응원해주세요

좋아요 좋아요
12
좋아요
오~ 오~
0
오~
토닥토닥 토닥토닥
0
토닥토닥

댓글 남기기

글쓰기
작가님의 좋은 글을 기대합니다.
1. 아직 완성되지 않은 글의 초고는 "원고 보관함"에 저장하세요. 2. 원고가 다 완성되면 "발행하기"로 발행하세요.