본문 바로가기
전공백서/전기정보공학부

전기정보공학부: 지능시스템개론

by STEMSNU 2023. 12. 5.

1. 과목에서 배울 수 있는 내용 

수업에서 다루게 되는 주제들은 다음과 같습니다: 

이 중 수업에서 중점적으로 다루게 되는 주제는 Bayesian network, hidden Markov model, Kalman filter 등의 확률 모델머신러닝 부분들입니다. 여기서 배우는 내용들은 확률변수 및 확률과정의 기초 수업과 기계학습 및 전기정보 응용 수업과 겹치는 내용들이 대부분들이라 이 수업들을 이미 수강하신 분들은 이미 배운 내용을 다시 공부하게 될 수도 있지만, 다양한 분야의 주제들을 폭넓게 다루는 만큼 관련된 수업을 전부 들을 여력이 되지 않거나 중요한 부분들에 대한 리뷰가 필요하신 분들은 이 수업에서 유용하게 가져가실 부분들이 많이 있을 것 같습니다. 이렇게 이론 수업에서 배우게 되는 부분들은 다른 곳에서도 쉽게 접할 수 있기 때문에 내용에 자세한 설명은 건너뛰고 대신 수업 프로젝트에 대한 설명을 좀 더 자세히 드리려고 합니다.  

프로젝트의 최종 목표는 주어진 트랙을 최대한 빨리 주파할 수 있는 RC카 자율주행 시스템을 개발하는 것이고, 학기 말에는 수강생들끼리 RC카 경진대회를 열대회 성적에 따라 프로젝트 성적을 부여하게 됩니다. 지능시스템개론 수업의 가장 특징적인 부분을 고르라고 하면 이 프로젝트를 꼽을 수 있을 텐데, 학부 수업에서 이런 식으로 실제 기계 장치를 조작해볼 수 있는 기회는 창의공학설계 수업 말고는 거의 없었던 것 같습니다. 이 프로젝트는 학기 초부터 시작해 학기 내내 작업하면서 학기 말까지 진행하는 만큼 수업에서 굉장히 큰 비중을 차지합니다. 

최종 목표는 실제 RC카를 조작하는 자율 주행 시스템을 개발하는 것이지만, 관련 경험이 거의 없는 학생들이 처음부터 실제 RC카를 다루는 것은 굉장히 어려운 일이기 때문에 학기 초~중반까지는 다음과 같은 시뮬레이션 환경에서 가장의 RC카를 조작하는 법을 다루게 됩니다.  

최신 연구 트렌드에서는 자율주행 시스템을 개발할 때 강화학습을 활용한 딥러닝 기반의 모델을 사용하는 경우도 많이 있지만, 이러한 접근은 학부 수준에서 다루기는 어렵기 때문에 시뮬레이션 환경에서 좀 더 고전적인 방법의 자율주행 시스템을 개발하게 됩니다. 여기서는 behavior cloning (BC) 이라는 일종의 기계학습 방식을 사용하게 되는데, 주어진 expert demonstration을 바탕으로 어떤 상황에서 어떤 행동을 하는 것이 좋은 지 학습을 하게 됩니다. 여기서 expert demonstration은 직접 시뮬레이션 환경에서 RC카를 조종해 만들게 되고, 이를 바탕으로 적절한 행동 방식을 Multivariate Gaussian distribution을 통해 함수의 값을 예측하는 방식인 Gaussian Process Regression (GPR)을 통해 학습합니다. 이 과정을 주변의 장애물 상황 (state)에 따라 그에 맞는 적절한 반응 (action)을 얻기 위해 일종의 state에 따른 action을 제어하는 방식인 Markov Decision Process로 간주하여 다음과 같이 학습 코드를 짤 수 있는데,

여기서 RC카가 2D Lidar 센서를 통해 수집한 주변 환경 정보를 state로 취급하여, 주어진 state에 대한 적절한 action이 어떻게 계산되는지를 학습한다고 생각해볼 수 있습니다. 

실제 RC카 경진대회에서도 Lidar 센서가 부착된 RC카를 이용해 대회를 진행하기 때문에, 시뮬레이션에서 효과적인 주행 알고리즘을 얻을 수 있다면 이를 실제 RC카에도 적용시킬 수 있는데, 생각보다는 시뮬레이션과 현실 사이의 괴리가 적어서 시뮬레이션 상황을 현실에 옮기는 것 보다는 시뮬레이션 상에서 다양한 변수에 대처하는 능력을 학습시키는 것이 경진대회의 관건입니 실제 대회에서는 상황에 따라 RC카가 예기치 못한 변수에 의해 주행 각도가 틀어지거나 속도 조절을 적절히 못하는 경우가 발생할 수 있기 때문에, 이에 대한 대비를 학습 과정에서 충분히 하는 것이 중요합니다.

 

2. 선배의 조언 

연관된 전공 수업으로는 이론 수업에서 확률변수 및 확률과정의 기초, 기계학습 및 전기정보 응용, 컴퓨터비전의 기초, 그리고 프로젝트에서 제어공학개론 등이 있습니다 저는 개인적으로 확률변수 및 확률과정의 기초 수업과 기계학습 및 전기정보 응용 수업, 그리고 컴퓨터비전의 기초 수업까지 듣고 제어공학개론 수업은 듣지 않은 채로 지능시스템개론 수업을 수강하였는데, 이론수업은 지금까지 들었던 수업 들에서 배운 내용이 대부분 포함되어 있었던 것 같지만, 프로젝트에서는 정말 새롭게 배우는 내용들이 많이 있었습니다. 딥러닝에 관심이 있는 학생 분들이라면 제가 들었던 세 가지 수업을 이미 수강하였거나 수강할 계획이 있으실 테니, 이 점 염두에 두고 수강 계획을 짜시면 좋습니다. 

한 제가 지금까지 말씀드린 프로젝트가 수업에서 차지하는 비중이 정말 크기 때문에, 이러한 프로젝트 내용이 재밌어 보이는지, 그리고 프로젝트에 많은 시간을 투자할 수 있는지를 충분히 고민해보고 수업을 듣는 것을 추천합니다. 개인적으로는 학부 수업에서 이런 프로젝트를 경험해볼 수 있는 기회가 거의 없기도 하고, 실제 기계 장치를 제어하는 프로그램을 설계하는 과정이 재미있기도 어서 이런 프로젝트에 관심이 있고 시간 여유가 된다 하시는 분들은 한번쯤 이 수업을 들어보는 것도 좋습니다. 

 

3. 진로 선택에 도움 되는 

머신러닝과 딥러닝, 컴퓨터 비전에 대한 내용을 조금씩 폭넓게 다루고, 프로젝트에서 실제 RC카를 제어하기 위한 자율주행 기법을 다루는 만큼 관련 분야에 관심이 있거나 관련된 주제를 다루는 연구실에 진학할 예정이신 분들 이런 분야들에 본인의 적성이 맞는 지 확인해보기에 이 수업이 좋은 것 같습니다. 특히 실제 RC카 주행을 다루는 프로젝트의 경우 학부 수업에서 이런 경험을 해볼 일이 거의 없기 때문에 한번쯤 체험을 해보기에도 좋습니다. 

 

4. 맺음말 

이 수업은 특수한 프로젝트 때문에 호불호가 갈릴 수도 있고, 어떤 분들은 창의공학설계의 PTSD가 온다고 하실 수도 있지만, 위에서 말씀드린 것처럼 흔치 않은 기회이기도 하고 이런 분야들을 “찍먹” 해보기에 좋은 수업인 것 같아서 이 글을 보고 조금이라도 관심이 생긴다면 이 수업을 들어보세요!

 

댓글