4강까지 두뇌는 표였습니다. 64칸이면 충분했죠. 그런데 상태가 연속된 숫자거나 화면 전체라면? 표 대신 신경망이 Q 를 계산합니다. 함수 하나로 세 게임을 풀고, 내 두뇌를 허깅페이스에 올립니다.
얼음 호수 64칸 × 행동 4 = 숫자 256개짜리 Q 표. 칸을 찾아 꺼내면 됐습니다.
표 대신 신경망. 숫자를 넣으면 Q 가 계산되어 나옵니다. 같은 함수로 카트폴 · 벽돌깨기 · 카레이싱.
내가 학습시킨 두뇌를 허깅페이스에 모델 카드와 함께 올립니다. 공개 모델을 가진 인공지능 개발자.
숫자를 받아 여러 층을 거쳐 답을 계산하는 함수. 층이 여러 겹이라 「딥」
「이 상태에서 이 행동을 하면 앞으로 받을 점수의 합」을 미리 짐작한 값. 가장 큰 Q 의 행동을 고른다
그래서 DQN = Deep Q-Network, 「Q 를 계산하는 신경망」. 2015년 딥마인드가 아타리 게임 49개를 이걸로 풀었다
질문은 4강까지와 똑같습니다 — 「지금 이 상태에서 왼쪽은 몇 점? 오른쪽은 몇 점?」 달라진 건 대답하는 방법뿐. Q표는 칸을 찾아서 대답하고, DQN 은 숫자를 넣어 계산해서 대답합니다. 표를 채우던 일을 신경망이 배우는 거예요.
탐험(ε)하며 행동한다 — 2강
(상태 · 행동 · 보상 · 다음 상태)를 기억 상자에 — 3강
정답 = 보상 + γ × 다음 상태의 가장 큰 Q — 4강 · 목표 두뇌가 계산
두뇌의 예측을 정답 쪽으로 조금 당긴다 — 다시 처음으로
막대가 기운 한 장면에서 두뇌가 행동하고, 1점을 받고, 다음 장면으로 갑니다. 이때 두뇌의 예측과 정답이 얼마나 다른지 보세요. 학습은 이 차이를 줄이는 일입니다.
카트폴의 상태는 숫자 4개 — 수레 위치 · 수레 속도 · 막대 각도 · 막대 각속도. 이 숫자들은 연속값이라 칸이 따로 없습니다. 몇 간격으로 잘라야 표가 될까요? 간격을 줄여 보세요.
상태 숫자 4개를 넣으면 [128] → [128] 층을 지나 Q(왼쪽) · Q(오른쪽)이 나옵니다. 아래는 코랩에서 다 배운 진짜 두뇌(숫자 17,410개)입니다. 손잡이로 상태를 바꿔 보세요 — 처음 보는 상태라도 Q 를 계산해 냅니다.
새로 배울 건 하나뿐입니다. 나머지는 2 · 3 · 4강에서 이미 배웠어요. 이 함수 하나로 세 게임을 다 풉니다. 바뀌는 건 환경과 숫자 몇 개.
처음엔 거의 아무거나 해 보고, 점점 두뇌를 믿는다
(상태 · 행동 · 보상 · 다음 상태)를 쌓아 두고 무작위로 64개씩 꺼내 다시 배운다
정답 = 보상 + γ × 다음 상태의 가장 큰 Q
정답을 만드는 두뇌는 몇백 걸음마다 한 번만 복사 — 과녁이 흔들리지 않게
θ⁻ = 목표 두뇌(가끔만 복사) · 예측 Q(s,a;θ) 를 이 정답 y 쪽으로 조금씩 당긴다
수레를 밀어 막대가 쓰러지지 않게 버팁니다. 한 걸음(0.02초) 버틸 때마다 +1, 최대 500점. 먼저 직접 해 보세요 — ←→ 키(휴대폰은 아래 버튼). 그다음 다 배운 DQN 두뇌에게 맡겨 보세요.
학습 기록 — 5만 걸음 동안의 판 점수 (코랩과 같은 실행)
3.5만 걸음에서 시험 500점(만점)을 찍고, 마지막에 14.6점으로 뚝 떨어졌다가 — 그래서 시험 점수가 가장 좋았던 두뇌를 따로 저장해 둡니다. 처음 보는 10판 평균 500점.
aicitybuilders.com/dqn 과 같은 규칙의 미니 벽돌깨기. 상태는 화면이 아니라 숫자 8개(판 위치 · 공 위치와 속도 · 공과 판의 거리 · 남은 벽돌 · 목숨). 카트폴과 똑같은 DQN학습() 을 불렀습니다. 바뀐 건 환경과 숫자 몇 개뿐.
학습 기록 — 15만 걸음
무작위 3.6개 → 다 배운 두뇌 32.6개 (대회 씨앗 5판 평균, 60개 중). 대회 기본 두뇌는 26.6개.
원작 아타리 벽돌깨기의 상태는 화면 그 자체 — 210 × 160 × 3 = 100,800개 숫자. 그래서 두뇌 앞에 눈(합성곱 신경망, CNN)이 붙습니다. 왜 4장일까요? 화면 한 장으로는 공이 위로 가는지 아래로 가는지 알 수 없어서, 연속된 흑백 84×84 화면 4장을 한꺼번에 넣습니다. 4장 → 눈 3층 → [512] → 행동 4개. 2015년 딥마인드 DQN 논문 구조 그대로. 두뇌 숫자는 168만 개, 카트폴 두뇌의 약 96배. 수백만 걸음이 필요해서 코랩에선 미리 오래 학습시킨 두뇌를 불러와 봅니다.
시계 반대 방향으로 도는 트랙. 길 밖으로 나가면 사고, 판 끝. 진짜 목표는 600걸음 안에 몇 바퀴. 그런데 트랙 아래 광장에 코인 3개가 다시 생깁니다 — 4강 코인 호수, OpenAI 보트 경주와 같은 함정. 차의 눈은 거리 센서 7개 + 속도 + 길 방향 + 코인 방향 = 숫자 12개. 같은 차 · 같은 DQN · 같은 6만 걸음, 다른 건 보상 하나뿐입니다.
세 두뇌 모두 틀리지 않았습니다. 코인만 준 두뇌에겐 코인이 인생의 전부이고, 한 바퀴만 칭찬한 두뇌에겐 한 바퀴가 너무 멉니다. 무엇을 배울지는 보상이 정합니다.
허깅페이스(huggingface.co)는 전 세계 인공지능 모델이 모이는 곳입니다. 내 두뇌를 모델 카드와 함께 올리면 누구나 보고, 내려받아 쓸 수 있는 공개 모델이 됩니다.
huggingface.co → Sign Up
프로필 → Settings → Access Tokens → Create new token → 종류 Write → 복사. 토큰은 비밀번호와 같아요 — 화면에 보이게 두거나 남에게 보내지 마세요.
코랩 왼쪽 🔑(보안 비밀) → 이름 HF_TOKEN · 값에 붙여넣기 · 「노트북 액세스」 켜기
model.pt(두뇌) · config.json(구조와 설정) · README.md(모델 카드) · replay.mp4(플레이 영상) 네 파일이 올라갑니다
방금 올린 두뇌를 허깅페이스에서 다시 받아 카트폴을 시켜 봅니다. 다른 사람도 똑같이 내 두뇌를 쓸 수 있다는 뜻
코랩이 만들어 주는 README.md 와 같은 모양입니다. 이름과 점수를 바꿔 보세요. 올린 뒤에 허깅페이스의 「Edit model card」로 자기소개를 더 넣어도 됩니다.
다음 6강 — DQN 은 행동이 몇 개 안 될 때 강합니다. 로봇 관절처럼 행동이 연속이라면? 행동을 직접 고르는 정책을 배웁니다 — PPO.