5학기 회고록을 쓴게 엊그제같은데, 어느새 6학기 종강이 다가옵니다. 사실 아직 보고서 세 개를 써야 진정한 종강을 맞을 수 있지만, 그래도 딴짓이 가장 재밌다고, 회고록에 어떤 내용을 실을 지로 고민하며 기대에 부풀어 쓰고 있는 제 자신을 발견할 수 있었습니다.
6학기
이번에는 요즘 핫한 기계학습을 중심으로 깊게 공부했는데, 그 전에는 왜 알아보지 않았을까 싶을 정도로 모델을 만들고 실제 문제를 풀어보는 과정이 즐거웠습니다.
구분이 잘 안될 수도 있는 용어들:
- 인공지능: 사람의 지능과 구별이 불가능할 정도로 고도의 지능을 갖춘 시스템?이라고 생각합니다. 잘 정의하기 힘들어 딱 부러지게 뭐라고 말하기 힘든 애매한 용어입니다.
- 기계학습: 기계가 스스로 문제를 해결하는 패턴을 학습하여 문제를 해결하는 전략. 머신러닝이라고도 불립니다.
- 딥러닝: 인공신경망을 이용해 기계학습 모델을 만드는 전략. 인경 신경망을 많이 중첩시켜 만들기 때문에 깊다(deep)고 해서 딥러닝이라고 부릅니다.
들은 과목들:
-
딥러닝 개론 (3학점)
신경망의 기본적인 개념과 CNN, RNN, Generative Model 등 모델에서 자주 사용하는 구조를 배우고, 그런 구조들을 적용하여 어떻게 이미지 분류, 이미지 분할image segmentation, 번역 등의 범용적인 문제들을 어떻게 풀어나가는 지를 알아볼 수 있었습니다. 모델을 만들고 실험하는 패러다임(?)과 라이브러리의 사용이 익숙하지 않아서 과제랑 플젝을 하는 데에 많은 고난이 있었지만, 이제는 혼자 딥러닝 모델 논문을 읽고 이해하여 구현하는 것도 문제가 없을 것 같아요. 코드 변화를 이용해 커밋 메시지를 자동으로 생성하는 프로젝트를 했었는데, 방학중으로 이를 잘 정리해서 진짜 쓸 수 있을 정도로 마무리하여 배포까지 해볼 예정입니다.
-
수학과 인공지능 개론 (3학점)
Linear Regression, Decision Tree, Random Forest, Logistic Regression, Support Vector Machine, Reinforcement Learning, 그리고 딥러닝 약간 등 다양한 기계학습 알고리즘을 수학적으로 접근하는 과목이었습니다. 요즘은 수학적으로 모델링하기 힘든 문제들 투성이라 다 딥러닝을 쓰는 추세이지만, 기계학습에 대한 전반적인 상식을 넓혀주는 역할을 해주었던 것 같습니다. 하지만 과제를 풀 때 가능도를 계산하면서 행렬로 미분과 적분 계산을 하는게 생각보다 힘들었습니다. 그리고 식 자체가 길어서 내가 실수 없이 잘 계산하고 있다는 신념이 많이 필요했던 것 같습니다.
-
인공지능 기반 소프트웨어 공학 (3학점)
유전 알고리즘을 중심으로 다양한 메타휴리스틱 탐색 기법들을 배우고, 소프트웨어 공학 연구분야에서 어떻게 접근하는지 알아볼 수 있었습니다. 개미 집단 최적화를 이용해 외판원 문제를 풀었었는데, 재미있게 구현한 기억이 있어서 정리해둔 레포도 있습니다. 팀 프로젝트로 자동차의 자동 비상 브레이킹automatic emergency braking의 성공률과 자동차 파라미터의 관계를 유전 알고리즘을 통해 찾는 문제를 해결해보기도 했습니다.
-
소프트웨어 공학 개론 (3학점)
복잡한 시스템의 소프트웨어를 만들 때 어떤 개발 모델을 쓰고(Waterfall, Agile 등), 테스팅은 어떻게 하는지 등등을 알아보았습니다. 소프트웨어 프로젝트를 할 때 필요한 문서화를 UML을 통해 체계적으로 작성하기도 했습니다.
수강신청을 할 때 기대했던대로, 개발을 할 때 앞으로 자주 쓸만한 방법론들을 많이 배울 수 있었습니다.
블로그에 관해
전반적으로 저는 글 하나를 써도 독창적이고, 제 고유의 생각을 담기 위해 아주 노력하기 때문에 쓰다가 마음에 안들어 그만둔 초안이 잔뜩 쌓여있습니다. 하지만 유입을 분석해보면 신기하게도, Marp의 사용기나 몰입캠프 후기가 가장 사람들이 많이 찾는 것을 보면, 정성을 많이 들여 쓴 글보다 역시 대중적인 글이 많이 선택을 받는 것 같기도 합니다. 그래서 앞으로는 글을 쓰는 빈도를 늘리는 대신 질에 너무 집착하지 말자는 다짐을 하고 있습니다.
Leave a comment