#자유로운의견교환 #익명게시판 #구성원간소통 #에티켓필수

제목이후에 강화학습 관련으로 캡스톤디자인 진행하려는 분들께2022-06-23 03:06
작성자

안녕하세요, 이번 학기에 강화학습 관련해서 캡스톤디자인을 진행했던 학생입니다.

그냥 졸업하기 전에 강화학습 해보고 졸업하면 좋지 않을까라는 답도 없는 막연한 생각으로 강화학습을 주제로 프로젝트를 진행했었는데요.

프로젝트 성과 자체는 그냥 그랬지만, 머리 깨져가며 독학해본 결과, 대략 다음의 커리큘럼으로 학습을 진행하시면 기초 없이도 충-분히 한 학기 내로 강화학습 프로젝트 진행할 수 있을 것으로 보여 글 남깁니다.


0. Unity + Unity ML-Agents

프로젝트의 강화학습 환경입니다. 겜콘이라면 Unity 익숙할테니 더욱 유리할 것이고, 겜콘이 아니더라도 Unity와 Unity의 스크립트 언어인 C# 둘 다 배우기 쉽습니다. 사망년을 거쳐 캡스톤디자인을 준비하고 계실 실력이라면 충분합니다.

관련 책으로는 이제민(I_Jemin)님이 쓰신 '레트로의 유니티 게임 프로그래밍 에센스'를 추천드립니다.

이 책이면 일주일만에 유니티 다루는거 가능. 다른 여러 책을 봐도 이 정도로 쉬우면서 깊이 있고, 개념까지 잡는 책은 없습니다.


1. 머신러닝 관련 공부

이러나 저러나 머신러닝 + 딥러닝과 연관이 돼 있기 때문에 시작하기 전에 미리 훑어보고 가는 것이 좋습니다.

관련 책으로는 핸즈온 머신러닝도 좋습니다만, 머신러닝 공부하느라 강화학습 공부를 못하는 주객전도에 빠질 수 있기 때문에, '혼자 공부하는 머신러닝+딥러닝'도 괜찮습니다. 핸즈온 머신러닝의 요약본 같은 느낌으로 빠르면 이틀 정도 내로 마칠 수 있습니다.

언급한 두 책 모두 학교 중앙도서관을 통한 교보문고 전자도서관으로 구할 수 있습니다.


2. 혁펜하임의 "트이는" 강화학습

링크 : https://youtube.com/playlist?list=PL_iJu012NOxehE8fdF9me4TLfbdv3ZW8g


다른 책들의 경우, 강화학습을 어렴풋이, 예시로 설명하지만, 이 강의는 수학적으로 설명합니다. 어차피 실제 강화학습 관련 논문 보면 수식이 난무하기 때문에 예시로 공부하는건 한 두 번이면 충분하고 바로 이 강의 듣는게 오히려 정신 건강에 이로웠습니다.  

말 그대로 수식으로 강화학습의 이론을 전개하기 때문에 보다 보면 정신이 아득해지지만, 괜찮습니다. 답도 안 나오는 구글링 백날 하면서 우울해지는 것보다는 정신 건강에 훨씬 이로웠습니다.


이번 캡스톤디자인에서 느낀바, 어느 정도까지는 구글링으로 많은 것을 해결할 수 있지만, 일정 수준 이후 지식들은 정보의 가뭄입니다. 논문이나 전공 서적 쪽으로 가야합니다.

그런 점에서 혁펜하임님처럼 무료로 풀어주시는 분들은 정말 인세 받는 삶 사셔야... 얼른 책 내셨으면 좋을 정도.


머신러닝이 신호와 시스템(전자과 과목으로 알고 있습니다.)과 접점이 있다고 하는데

그래서인지 정말 뜬금없이 디랙 델타 함수 같은 내용이 나옵니다. 

그런데 이게 그것이다! 설명을 안하고 넘어가기 때문에 확률 및 랜덤변수 정도는 훑고 가는 것이 좋습니다.


3. 팡요랩

링크 : https://www.youtube.com/channel/UCwkGvF7xKz2E0Lv-fZ9wv2g


혁펜하임님의 강좌로 어느 정도 강화학습 관련 수식을 읽을 수 있게 됐다면 이제 강화학습 관련 논문들을 읽을 차례입니다. 이것도 팡요랩 보기 전에는 봐야할 논문이 너무 많아서 엄두가 안 났지만 핵심 논문만 쏙쏙 짚어서 하나하나, 정말 하나하나 성실히 설명해주십니다. 그것도 무료로. 책 내셨다길래 당연히 샀습니다.


참고로 판교(Pang-yo) 갈 때마다 혹시나 만나뵐 수 있지 않을까- 사람 많은 곳에 갈 때는 설레는 마음으로 두리번 거립니다.


이 채널에 올라온 핵심 논문들 영상까지 다 보셨으면 Unity ML-Agents 는 큰 문제 없이 다루실 수 있습니다.

경험상, 이 시점에서 다른 학교 석사생 친구가 듣는 강화학습 시험 문제를 적어도 이해는 할 수 있게 됐었습니다.

풀긴 했는데 답이 맞았는진 모름


3.5. 바닥부터 배우는 강화학습

링크 : 바닥부터 배우는 강화 학습 | 노승은 | 영진닷컴 - 교보문고 (kyobobook.co.kr)

상기에 언급한, 팡요랩의 노승은씨가 쓰신 책입니다. 제목에서 알 수 있듯이 초보자를 대상으로 쓴 책이기 때문에 3번 논문 읽기까지 오신 분들은 '이걸로는 만족할 수 없...!!!'일지도 모르겠습니다만, 음수사원이라고, 오히려 덕분에 쉽게 읽힙니다. 감사합니다 ㅠㅠ 하면서 저는 읽었습니다.


4. Unity ML-Agents 공식 깃허브

링크 : https://github.com/Unity-Technologies/ml-agents


처음에는 공식 문서(=영어)에 대한 막연한 두려움 때문에 보지 않았었는데, Unity ML-Agents를 설명하는 여러 책과 블로그 글을 보면 너무 오래 된 내용이라 더 이상 써먹기 힘들거나, 알고보면 공식 문서 코드를 그대로 갖다 쓴 경우가 많더군요. 카카시

근데 설명은 오히려 더 안 좋음

가장 최신에, 가장 정확한 내용이 담기는 곳은 공식 문서입니다.

설명도 세세하고 친절하게 다 돼 있기 때문에 참고하면서 프로젝트 진행하신다면, 본인의 성실함 외에는 큰 문제 없을겁니다.


다음은 번외 내용으로 그냥 강화학습 내용이 재밌어졌으면 들어볼만?한 항목입니다.


5. 인간 행동의 이해 : 심리학

심리학 개론을 배우는 배분 이수 과목입니다. 즉, 교양 과목입니다.

강화학습의 교과서로 불리는 리처드 서튼, 앤드류 바르토의 'Reinforcement Learning An Introduction' (국내에는 '단단한 강화학습'으로 출간됐습니다.) 의 후반부에서 심리학을 다루는데요, 실제로 배워보니 다룰만합니다.

강화학습이 진행될 수 있는 이유라든지, 처벌이 보상 대비 강하면 학습이 잘 진행이 안된다든지,

어째서인지 심리학으로 강화학습을 설명할 수 있는 내용이 많습니다.

실제로 심리학 배우면서 캡스톤디자인을 진행하고 있던 상황이라 이 과목에서 아이디어 얻고 캡디에 적용하면서 실시간으로 배운거 써먹었습니다.

이런거 보면 괜히 '사실 세계는 시뮬레이션임' 소리 나오는게 아닌듯합니다.

확실히 저라도 세계를 시뮬레이션 돌린다면 연산 많이 들어가는 머리카락부터 점차 줄일거 같아요. 20대 탈모가 느는 이유 == 연산량 포화

다만, 3학점짜리에 엄연히 시험도 있는, 시간을 써야하는 과목이기 때문에 정말 번외로, 이런게 있다 정도 생각하시면 되겠습니다.


제가 생각한 커리큘럼은 여기까지이고, 모쪼록 캡스톤디자인 하는데 도움이 됐으면 좋겠습니다.

또는 '강화학습'이란 주제, 재밌습니다. 저야 뭐 초반에 갈피 못 잡아서 머리 터졌지만, 방향 잡고난 후에 학습 돌아가는거 보면 정말 재밌습니다. Agent들이 막 꼬물꼬물 부딪히고 부딪히다 점차 방향 찾아가는거 보면 불멍 따로 필요 없어요.

거기에 Lofi 음악 틀어두고 보면 아 Lofi가 아니라 ρ(π)라고 ㅋㅋ

※ 잘 기억은 안나는데 Policy Gradient에서 정책 평가하는 함수일겁니다.


그러니 이번 기회에 한 번 츄라이 츄라이 해보는 것도 추천드립니다.


참고로, 위에서 언급한, 학습의 처벌이 보상 대비 강하게 주어진다면 학습자는 '학습된 무기력' 상태에 빠지게 된다고 합니다.

어릴 때 말뚝에 매어 놓은 코끼리는 성장해서도 도망칠 생각을 안한다는 '서커스단의 코끼리'를 예시로 많이 설명이 되는데요,

실제로 처벌 수치를 강하게 준 상태로 학습을 진행시켜보면, Agent가 처음에야 아무것도 모르니 이것저것 시도하며 계속 실패-처벌을 반복하지만, 실패-처벌을 반복한 결과, 나중에 가서는 정말 아무것도 안합니다. 움직여봐야 처벌을 받을 것 같으니 '애초에 움직이질 않는다'를 선택합니다. 그래서 학습 진행이 안되게 돼요. '학습된 무기력'이란 표현에서 알 수 있듯이 사람도 다르진 않습니다.

그러니 학습된 무기력 상태에 빠지지 않게, 처벌은 가라, 보상은 내가 정한다-는 마인드로다가 다들 건강 챙기셨으면 합니다!

댓글
자동등록방지
(자동등록방지 숫자를 입력해 주세요)