본문 바로가기

트렌드 한눈에 보기

(209)
탐조 입문자를 위한 딥러닝 활용기 - 3편 딥러닝 활용기 3편이지만, 이번에는 그냥 탐조 사진 정리 글이다. 세종시 합강 근처로 겨울 철새 탐조를 다녀왔다. 현재 2월 14일이고, 3월이면 겨울 철새들이 몽골이나 캄차카 반도 등으로 떠난다고 하니 아마 세종에서 보는 마지막 겨울 철새가 아닐까 싶다. 자전거를 타면서 가다가, 지난 번 탐조 때 만난 블로거 아저씨가 말씀해주신 지점을 눈여겨봤다. 강 중앙에 있는 모래톱이다. 전에는 보지 못했던 커다란 새들이 무리를 지어 있어서 냉큼 자전거에서 내려 사진을 찍었다. 거의 사람 뒷모습 같이 큼지막한데, 주위 새들과 비교해보면 그 크기를 실감할 수 있다. 잘은 모르지만, 지난 번에 떼로 만났던 독수리 같다. 독수리들이 몽골로 가기 전에 사진으로 담을 수 있어서 정말 운이 좋았다. 지난 번에는 딱 세 마리밖..
클럽하우스 초대권의 가격이 1조 원? 지난 2월 6일, 친구가 대뜸 "클하"를 아느냐고 물어왔다. 짐작조차 가지 않는 이름에 무엇인지 확인해보니, 아이폰에서만 사용가능한 앱, 클럽하우스라는 것이었다. 안드로이드를 쓰는 친구가, 아이폰을 쓰는 나에게 혹시나 하는 마음으로 클럽하우스를 하고 있는 것인지 물어온 것이었지만 역시나 나는 하고 있지 않았다. 이후로 갑자기 클럽하우스에 관련된 뉴스들이 눈에 들어오기 시작했다. 대략 2월 7일에 검색량이 두 배 넘게 상승했으니 친구가 아주 유행에 빠삭한 것이 틀림없다. "그런갑다-" 하고 멍하니 있던 찰나에 주식을 공부 중인 웹툰 작가 주호민 님의 유튜브에서 클럽하우스 관련 주식이 뜨고 있다는 소식을 접할 수 있었다. 상하이와 미국 실리콘밸리에 각각 본사를 두고 있는 "아고라"라는 어플인데 ZOOM 처럼..
탐조 입문자를 위한 딥러닝 활용기 - 2편 오늘은 집(세종) 근처 합강(미호천 + 금강)으로 탐조를 나갔다. 겨울 철새인 말똥가리가 이사갈 때가 되었다고 생각되었기에 마지막이라는 생각으로 관찰을 나간 것이었다. 이 때가 아마 11시 정도였을 것으로 생각된다. 자전거를 타고 열심히 가고 있는데, 아무리 가도 말똥가리가 나오질 않았다. "하, 설마 말도 없이 가버린 것은 아니겠지" 하고 생각해봤자 어차피 말은 못하는 녀석인데다가, 말을 하더라도 말하지 않고 떠나는 것이 심장에도 좋을 것 같아 마음을 고쳐 먹었다. "그래, 내년에 건강한 모습으로 다시 만나자" 그런데 한참 자전거를 밟던 중, 눈 앞에 활공하는 새가 아른거리기 시작했다. 아, 아직 떠나지 않았구나 말똥가리! 기쁜 마음으로 한참을 보고 있는데, 똑같은 새들이 12마리로 불어나는 것이 아니..
PyTorch를 활용한 Soft Actor Critic - 2탄 Soft Actor Critic을 처음 발표한 논문은, DQN 논문처럼 "와! 직관적이다!" 하는 감탄을 자아내지는 않는다. 기본적으로 '엔트로피'라는 추상적이기 그지없는 개념을 사용하는 것으로 학습의 목적함수를 설정하고 나섰기 때문이기도 하다. SAC의 목적함수는 위와 같이, 총 에피소드에서의 보상과 함께 엔트로피의 합을 최대화하는 것이다. 일반적으로 엔트로피가 큰 상태는, 굉장히 어질러져 있는 것을 의미하므로 목적함수는 이렇게 말하는 것이다. "보상을 최대화시키는 행동지침을 짜 와! 그런데 학습이 충분히 랜덤화되어 있어야 해!" 이를테면, "집안 곳곳을 잘 둘러보되 기름이 담긴 찻 숟가락도 온전히 보전해오게"라고 하는 옛 현자의 말(꼬장)과 비슷하다. 다행인 것은, 집안을 둘러보면서 조심조심 찻 숟가..
신안 해상풍력단지 조성 - 세계 풍력발전단지 실패 사례 지난 주 금요일, 문재인 대통령이 직접 전남 신안에 방문하여 세계 최대 규모가 될 풍력발전단지 사업을 둘러보았다. 기사에 따르면 2030년까지 48조 5천억 원 가량 투자가 이뤄지고 발전용량은 8.2GW 급이라고 하니, 현재 남한 내 원자력 발전소 9기의 총 용량(10.15GW)에 버금가는 규모가 된다. 8.2GW급 규모는 현재 세계 최대 해상규모 풍력발전단지인 영국 Hornsea Wind Farm의 174개 바람개비를 활용한 1.2GW를 가뿐하게 뛰어넘는다. Hornsea의 향후 계획이 6 GW 생산인 것을 감안해도 큰 규모인 것이다. 풍력발전 자체로서는 굉장히 전도 유망한 재생에너지임이 틀림없다. 미국 풍력발전량 추이를 살펴보더라도, 주춤하는 구석이 별로 없이 연간 발전설비용량이 10% 정도씩은 늘 ..
PyTorch를 활용한 Soft Actor Critic - 1탄 Soft Actor Critic은 2018년 발표된 알고리즘인데, Actor Critic 계에서는 아직도 최정상급 최적화를 자랑하고 있다. 그래서 이 알고리즘을 마지막으로 OpenAI Cartpole 예제를 마무리하려고 했는데, 그것이 화근이었다. 기존의 DDPG(지난 포스팅) 알고리즘은 Deterministic Policy Gradient를 사용하고 있으며 이는 주어진 상황에 행동을 매치시킬 때, 확률로 표현되지 않는다는 것을 의미한다. 예를 들어 A라는 상황에는 왼쪽, B라는 상황에는 오른쪽이 매칭되고 A 상황에 적합한 행동이 왼쪽일 확률이 80%, 오른쪽일 확률이 20% 같은 방식으로는 작동하지 않는 것이다. 하지만 실생활의 많은 부분에서는 그렇게 상황과 행동이 딱 들어맞는 경우가 없기에 초기 파라..
PyTorch를 활용한 Actor-Critic Tutorial 3탄 2016년 발표된 논문을 따라 읽던 중, 해당 논문의 알고리즘이 DDPG라는 이름을 가지고 있다는 것을 알게 되었고 더 나아가, colab의 코드가 해당 논문에 기반하고 있다는 확신을 얻게 되었다. 그래서 본격적으로 논문을 정리해 보았다. 1. DDPG Deep Deterministic Policy Gradient의 줄임말로서, DPG라는 알고리즘을 개선한 것이다. 구체적으로는, DQN와 DPG를 섞었다는 게 포인트인데, DQN은 discreet한 상황이 주어졌을 때에만 적용 가능하다는 한계점이 있다. 매 상황마다 최적의 Q를 찾아야 하는데, 연속된 상황(continuous states)이 주어졌을 경우에는 처리해야 하는 계산량이 기하급수적으로 늘어나기 때문이다. 반면에 DPG는 Actor Critic ..
PyTorch를 활용한 Actor-Critic Tutorial 2탄 Actor Critic의 역사가 생각보다 오래되어서 내가 적용한 알고리즘에 대체 어느 논문에 기반해있는지 알아보기가 어려웠다. OpenAI의 한 연구원이 정리해놓은 내용에 따르면 2016년부터 현재까지 활발히 사용되는 알고리즘만 7개는 넘는 것 같다. Actor Critic 자체는 1998년 머신러닝 교과서에도 수록되어있는 터라, PyTorch로 구현한 내용은 이와는 분명히 다를 텐데... 하며 검색하다가 2016년에 발표된 논문을 찾을 수 있었다. 하지만 생각보다 논문이 너무 무섭게(어렵게) 쓰여있는 바람에 읽어볼 엄두는 못내고, 일단 코드를 분석하면서 의미를 파악해보기로 했다. 기본적인 Actor Critic의 내용은 지난 CS234 수업에서 배웠듯이, Policy와 Value 네트워크를 따로따로 학..
PyTorch를 활용한 Actor-Critic Tutorial 1탄 DQN의 형편없는 performance에 굴하지 않고, actor-critic을 활용해서 cartpole 문제를 풀어보기로 했다. 마찬가지로, 오늘은 실행해보는데 의의를 뒀으며 정확히 어떤 알고리즘인지 파악하지는 못했다. colab.research.google.com/drive/1od7-cpNDHKUBdn8A-zL8da7tgVL3DYrf?usp=sharing Google Colaboratory colab.research.google.com 그럼에도 불구하고 코드는 상당히 간결하고 결과물은 상당히 좋았다. 오히려 DQN보다도 코드가 짧았던 것 같다. 에피소드가 1000번이 넘도록 풀리지 않던 문제가 꼴랑 400회 만에 너끈히 풀린 것이다. 또한 최대 reward가 200에 묶여있다는 사실도 알게 되었다. ..
PyTorch를 활용한 DQN tutorial - 2탄 지난 번에는 DQN tutorial을 적당히 수정해서 완벽히 실행시켜보는 것에 의의를 뒀다면 이번에는 실제 논문을 읽어보고 코드를 분석해봤다. 놀라웠던 점은 8 페이지 남짓한 짧은 논문에 강화학습의 기본 원리부터 이번에 만들어낸 알고리즘의 특성까지 세세하게 적혀 있었다는 것이다. DQN의 핵심 내용 역시 위의 알고리즘에 거의 모두 담겨있다고 해도 과언이 아니다. 때문에, 튜토리얼의 설명이 아무리 잘 되어 있더라도, 또는 여기서 내가 아무리 설명을 기똥차게 하더라도, 논문을 한 번 읽어보는 것만 못하다. 코드가 어떤식으로 논문 내용을 반영할 수 있었는지를 분석하면서 내용을 나름대로 정리하는 수준이라도 되었으면 좋겠다. colab.research.google.com/drive/1SVVKAAeuI-LATWyb..