R을 사랑한 느림보 데이터 분석가

유데미(Udemy) 강의 - AI 만들기 : 강화학습과 인공신경망 완전 정복 수강 후기 본문

리뷰

유데미(Udemy) 강의 - AI 만들기 : 강화학습과 인공신경망 완전 정복 수강 후기

알럽뷰 2024. 3. 3. 21:20

 

강의 소개

 

안녕하세요, 이번 포스팅은 강의 수강 후기를 가져왔습니다.

'강화학습과 인공신경망 완전 정복'이라는 강의로 강화학습을 공부할 수 있는 기회가 생겨 이번에 수강하게 되었고, 이렇게 글을 쓰게 되었습니다.

 

개인적으로 지도/비지도 학습만으로도 공부할게 많아 염두가 나지 않았습니다. 공부하다 보면 간혹 보이는 강화학습 시뮬레이션 영상을 보면서도 관심과 흥미가 생기긴 했지만 왠지 모를 장벽을 느끼곤 해서 도전하기 쉽지 않았지만 온라인 강의란 것의 장점을 최대 활용한다면 모르는 것을 이해할 때까지 계속 찾아볼 수 있고 또는 내가 다시 보고 싶은 부분만 찾아서 보는 장점이 있기에 도전하게 되었습니다.

테슬라에 관심이 많기도 하고, '수학의 쓸모'라는 책을 읽다 자율주행 부분에서 중도 포기한 경험도 있고 강화학습과 자율주행에 꽤 관심을 두었지만 여러 번 위기를 겪었네요...ㅋ

 

다시 본론으로 돌아와서,

1) 강화학습에 관한 개념 및 이론, 2) Q-Learning, Deep Q-Learning, Deep Convolutional Q-Learning, A3C의 강화학습 구현, 3) 강화학습을 이해하기 위한 딥러닝 파트가 부록으로 담겨 있습니다.

 

강의 내용

크게 Q-Learning, Deep Q-Learning, Deep Convolutional Q-Learning, A3C 4가지 강화학습을 배웁니다.

1. Q- Learning에서는 주로 개념과 이론을 설명하고 있고, 강화학습이 발전하게 되는 히스토리와 수식, 읽어보면 좋은 자료나 논문을 추천합니다.

2. 그 이후에는 간단하게 개념을 다지면서 Deep Q-Learnning으로 Self Driving Car 모듈을 구현합니다.

3. Deep Convolutional Q-Learning에 관한 설계된 코드를 하나씩 짚어보고, Doom을 구현합니다.

4. 뇌(Deep)와 눈(Convolutional)을 가져왔으니 더 확장해서 기억력과 비판적 감각을 추가한 A3C를 통해 Breakout을 구현합니다.

 

모듈로 이뤄진 스크립트 안에 작성된 코드들이 어떤 의도로 왜 만들었는지에 대해 자세하게 설명해 줍니다.

중요한 스크립트의 경우 더 꼼꼼하게 코드를 살피고, 맥락만 이해해도 되는 스크립트의 경우는 용도만 크게 설명하고 덜어내기도 하면서 중요한 것에 집중합니다.

이미 어떻게 구현할 것인지 어떤 의도로 설계했는지에 대해 친절하게 설명해 주기 때문에 압박을 느낄 필요가 없이 잘 짜인 코드를 나중에 활용하는 것도 좋을 거라 생각됩니다.

 

수강 후기

큐러닝에 대한 강의를 들으면서 처음부터 어려운 수식을 꺼내 들지 않고, 쉬운 것부터 하나씩 설명해 줍니다. 그것도 꽤 반복적으로 설명하고, 다음 영상으로 넘어가면 다시 또 언급하니 잘 따라갈 수 있었습니다.

큐러닝을 다 배운 이후에 수식을 보면 시점도 포함되고, 상태, 행동, 보상도 포함되면서 수식이 복잡해져서 '내가 여기까지 어떻게 잘 따라왔지?' 싶으면서 강의력에 감탄했습니다.

물론, 강의들을 때는 다 이해한 거 같아도 복잡한 수식이 기억나지 않습니다!😵😵😵

 

딥큐러닝 구현을 위해 자료를 다운로드하였습니다.

ai.py, car.kv, map.py라는 3개의 파일에는 복잡한 코드와 정체를 알 수 없는 확장자에 겁부터 났지만, 중요도에 따라 설명하는 분량도 다르게 가져가는 것이 좋았습니다.

딥큐러닝의 핵심인 ai.py는 코드 한줄한줄 상세하게 설명하였고, 환경, 보상 등을 구성하는 map.py의 경우 클래스 단위로 설명하고, 중요한 건 한 번 더 언급해 줘서 어렵지 않게 따라갈 수 있었습니다.

당연히 car.kv 파일은 존재 정도만 언급했네요. ㅎㅎ

 

Self Driving Car

위 이미지는 자동차가 공항과 도심을 왕복하면서 보상을 받는데, 중간에 저장을 하면 점수받은 것을 그래프로 확인할 수 있었습니다.

생각보다 학습이 잘 안 될 경우, 보상체계를 바꾸거나 신경망을 수정하면서 전략을 바꿔야 하지만 전 일단 길을 더 두껍게 색칠해 봤습니다.ㅎㅎ

 

Deep Convolutional Q-Learning의 경우 'CNN을 다 알고 있어야 하는 건가?' 싶었지만 이미지 처리 프로세스 정도만 이해하고 있는 상태로 강의를 봐도 무방했습니다.

물론 ReLU, Pooling 이런 개념들이 확 와닿지는 않아서 코드를 설명해 주실 때 인지정도만 하고 넘어갔습니다. 무슨 말인지 몰라도 무방비하게 지식을 습득하는 방법으로 강의를 들었습니다.😆

 

Doom

단점을 꼽자면 강의를 만든 시점이 오래된 것으로 보여요. 대략 2017년쯤 만든 것으로 느껴지는데, 중간에 실습하는 과정에서 구글 코랩으로 넘어와서 설명하는 부분도 있고, 시간이 지난 지금 2024년 이 시점에서는 더 이상 구동되지 않는 모듈이 있어서 오류가 나기도 합니다. 그래서 그런 부분은 추가적으로 직접 편집하면서 구현해 볼 필요가 있습니다. 물론 우린 챗GPT가 있으니까 한번 도전해 볼 수 있지 않을까 싶습니다. 저도 해보려고요. 일방적인 지식 습득보단 코드 수정해 가면서 하면 더 잘 이해되길 바라야죠. ㅎㅎ

 

열심히 쌤 얘기 들으면서 쫓아왔는데, 최종 아웃풋을 보는 것을... 당장 해보지 못한 아쉬움이 몹시 크네요...😭

 

총평

강의가 끝날 때마다 "enjoy AI"라고 외치는 강사님들 덕분에 긍정적인 에너지를 받고 쭉 강의를 쫓아갈 수 있습니다.

웅장한 음악을 넣기도 하는 연출과 영상미?를 통해 진짜 AI 강의를 즐겁게 만드려고 노력했다는 느낌을 받아 강사님들의 센스도 볼 수도 있습니다.

 

의도치 않게 복습을 자주 하기도 합니다. 내가 스스로 복습하지 않았지만, 강사님들이 앞에서 배운 내용을 복기하게 만들면서 잊었던 내용을 상기시켜 줘서 잘 따라올 수 있게 하는 점이 마음에 듭니다.

 

강의를 전반적으로 살펴보면 꽤나 알찬 학습 범위를 가지고 있다는 것도 느낄 수 있습니다. 강화학습을 배우려고 수강했지만, 강화학습 알고리즘뿐만 아닌 neural network와 CNN까지 배울 수 있어 학습의 폭이 넓은 강의를 듣게 되어 좋았습니다.

 

강의를 결제할 땐 야심 차게 '내가 이걸 완전정복하겠어!!', '내가 마스터하겠어!!', '뿌셔버리겠어!!' 제가 그러합니다.🤣

괜한 완벽주의 기질이 나타나면서 초반 러쉬하고 나가떨어지게 되는데, 차라리 n차 수강한다는 마음으로 가볍게 들어도 충분하지 않을까 싶습니다.

 

대상자

파이썬 코드들의 대략적인 윤곽을 볼 수 있는 정도라면 충분히 진도를 따라갈 수 있습니다. 꼭 전공자가 아니더라도 튜토리얼에 가까운 강의이기에 크게 어렵지는 않습니다.

그렇지만 쉽게 덤빌 강의는 아니라고 생각합니다. 오래된 강의이기 때문에 어느 정도 수정하고 적용하고 활용하는 스킬이 있으면 좋습니다. 라이브러리 측면에선 파이토치, 텐서플로우, 케라스 경험이 있거나, 이론적으로는 딥러닝(CNN, LSTM) 경험, 프로그래밍 측면에선 객체 지향에 대한 이해도가 있다면 학습하는데 도움이 될 것으로 예상됩니다.

 

 

 

 

 

"해당 콘텐츠는 유데미로부터 강의 쿠폰을 제공받아 작성되었습니다."