ย ๋ณธ ํ๋ก์ ํธ ์์ ์ ๋จธ์ ๋ฌ๋์ 3๊ฐ์ง ํ์ ์ค ๊ฐํ ํ์ต(ReinForcement Learing)์ ์ฒดํํ ์ ์๋ ํ๋ก์ ํธ ํ์ต์ ๋๋ค. ๊ฐํ ํ์ต์ด ๋ค๋ฅธ ๋จธ์ ๋ฌ๋๊ณผ ์ฐจ์ด๊ฐ ์๋ ๋ถ๋ถ์ ์ง์์ ์ผ๋ก ๋ณด์(Reward)์ ์ค์ ํ๊ณ ํ์ต์ํจ ๋ค๋ ๊ฒ์ ๋๋ค.ย 2015๋ 12์ 19์ผ ๋ฐ๋์ ์์ ํ์ฌ์ธ ๋ฅ๋ง์ธ๋(Deep mind)๊ฐย ๊ฐํํ์ต์ผ๋ก ์ํ๋ฆฌ ๊ฒ์ํ๊ธฐ(Playing atrari with deep eeinforcement learning)์ด๋ผ๋ ๋ ผ๋ฌธ์ ๋ฐํํ์์ต๋๋ค. ์ด ๋ ผ๋ฌธ์ ๋ฅ๋ง์ธ๋๊ฐ ์คํฌ๋ฆฐ ํฝ์ ์์์ ๊ฒ์์ ์๊ฐ ๋์ ๋ ์ฃผ๋ ๋ณด์(reward)๋ง์ ์ฃผ๋ฉด์ ์ด๋ป๊ฒ ์ปดํจํฐ๊ฐ ์ํ๋ฆฌ ํ์ตํ ์ ์๋์ง ๋ณด์ฌ ์ฃผ์์ต๋๋ค. ๋น์ ๋์ผ ์ํคํ ์ณ ๋ชจ๋ธ๋ก 7๊ฐ์ง ๋ค๋ฅธย ๊ฒ์์ ์คํํ์๋๋ฐ ๊ทธ ์ค 3๊ฐ์ง ๊ฒ์์ ์๊ณ ๋ฆฌ์ฆ์ด ์ฌ๋๋ณด๋ค ๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์์ต๋๋ค.ย ย
ย ์ด ์ฌ๊ฑด์ AI์ ์์์ด๋ผ ์๊ฐ๋ ์ ์์ต๋๋ค. ์ดํ ๋ฅ๋ง์ธ๋๋ ๊ตฌ๊ธ(Google)์๊ฒ ์ธ์๋์์ต๋๋ค. ์ดํ 2015๋ 2์์๋ ๋ฅ ๊ฐํํ์ต์ ํตํ ์ธ๊ฐ ์์ค์ ์ปจํธ๋กค ํ๊ธฐ(Human-level control through deep reinforcement learing)๋ผ๋ ๋ ผ๋ฌธ์ ๊ฒ์ฌํ์์ผ๋ฉฐ ์ด๋ ๋ค์ด์ณ์ง ์ปค๋ฒ๋ฅผ ์ฅ์ํ์์ต๋๋ค. ์ด ๋ ผ๋ฌธ์์๋ ๊ฐ์ ์ํคํ ์ณ ๋ชจ๋ธ๋ก 49๊ฐ์ง ๋ค๋ฅธ ๊ฒ์์ ์ํํ๊ณ ์ ๋ฐ ์ด์์ด ์ฌ๋ ์ด์์ ๋ฅ๋ ฅ์ ๋ณด์ฌ์ฃผ์๋ค๊ณ ํฉ๋๋ค.ย
ย ย ์ฝ 6๋ ์ด ์ง๋ ์ง๊ธ ๋ค์ํ ๊ฐํํ์ต ๋ชจ๋ธ์ด ๊ฐ๋ฐ๋๊ณ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ๋ณธ ์์ ์ ๋ชฉ์ ์ ํ๊ต ํ์ฅ์์ ํฐ์ณ๋ธ ๋จธ์ (Teachable Machine)๊ณผ ์คํ์์ค ํ๋์จ์ด๋ฅผ ๋ฐํ์ผ๋ก ์ง๋ํ์ต๊ณผ ๋น์ง๋ ํ์ต๊ณผ ๊ด๋ จ๋ ์ธ๊ณต์ง๋ฅ ๊ต์ก์ด ์ ์ง์ ์ผ๋ก ์ด๋ฃจ์ด ์ง๊ณ ์์ต๋๋ค. ๋ณธ ๊ต์ฌ๋ ํ๊ตญ์์ ๊ฐ๋ฐํ ์ฝ์ฝ์ ์บ ์ ํ์ฉํ์ฌ ์ง๋ํ์ต ๊ด๋ จ ๊ต์ก์ ํ๊ณ ์์ต๋๋ค. ํ์ง๋ง ๊ฐํํ์ต์ ๊ฐ๋ ์ ๋ํ ์ค๋ช ์ ์ด์ผ๊ธฐ ๋๋๋ฐ ๊ทธ ์ค์ต ์ฌ๋ก๊ฐ ๋ง์ ํธ์ ์๋๋๋ค. ๊ทธ๋ฐ ์ด์ ์์ ๋ฅ๋ง์ธ๋์ ์์์ด ์ํ๋ฆฌ ๊ฒ์์ด์๊ธฐ์ ๊ฒ์์ ํตํ์ฌ ๊ฐํํ์ต์ ์ค์ต์ ํ๋ ๊ฒ์ด ์๋ฏธ๊ฐ ์๋ค๊ณ ์๊ฐ์ด ๋ค์์ต๋๋ค. ์ธ๊ณต์ง๋ฅ์ ์์์ ์ฒดํํ๋ ๊ฒ์ ์ ๋ง ์๋ฏธ๊ฐ ์๋ ์์ ์ด ๋ ๊ฒ์ด๋ผ ์๊ฐ์ด ๋ญ๋๋ค.ย
ย ย ์ดํ Nicholas Renotte ์ฑ๋์ ์ฐพ๊ฒ ๋์์ผ๋ฉฐ ํด๋น ์ ํฌ๋ฒ์ด์ ๊ฐ๋ฐ์์ด์ Nicholas๋์ ์์์ ๋ณด๊ณ ํ์ตํ์ฌ ์์ ์๋ฃ๋ฅผ ๋ง๋ค๊ฒ ๋์์ต๋๋ค. ์ํผ๋ง๋ฆฌ์ค Bro1์ด๋ผ๋ ๋ํ ๋์ ๊ณ ์ ๊ฒ์์ OpenAI์ Gym ๋ชจ๋๊ณผ ๊ฒ์ ์๋ฎฌ ๋ชจ๋์ธ nes-py๋ฅผ ํ์ฉํด์ฌ ๊ฐํํ์ต์ ์ฐ์ตํ๊ณ ์ฒดํํ๋ ์์ ์ ๋๋ค. ์๋์ Download๋งํฌ์๋ Nicholas Renotte๋์ด ์ค๊ณํ ์ฝ๋๋ฅผ ๋ค์ ํ์ดํํ์ฌ ํ๊ธ ์ฃผ์์ ๋ฌ์๋์ ์ฝ๋๋ฅผ ๊ณต์ ๋ฐ์ผ์ค ์ ์์ต๋๋ค. ๋ํ, I7-7700 CPU @3.6Ghz์ย GTX 1080 GPU๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ 48์๊ฐ ๋์ 5000000(5M)๋ฒ์ ํ์ต์ ์ํจ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ๋ฐ์ผ์ค ์ ์์ต๋๋ค. 5M์ ๋์ ํ์ต์ผ๋ก๋ Stage 1์ 3/4์ ๋ ํด๋ฆฌ์ดํ๋ ๋ชจ์ต์ ํ์ธ ํ ์ ์์ต๋๋ค. ๋ ๋ง์ ํ์ต ๋ฐ์ดํฐ๋ ์ถํ์ ์ ๋ก๋ ํ๊ฒ ์ต๋๋ค. ์ข์ ์์ ์ ํ ์ ์๊ฒ ๊ฐ์๋ฅผ ํด์ฃผ์ Nichilas๋ ๊ฐ์ฌํฉ๋๋ค. :)
๐Github์ Chrispresso ๋์ ๊ฐํํ์ต ํ๋ก์ ํธ๋ก ์ฐ์ตํ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค. ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๊ฐ ๊ฐ๋ฒผ์ฐ๋ฉฐ, ์ ์ ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํ์ต๋๋ค.
๐์๋ ์ค์ ํ์ต ์ฌ์ง์ด๋ฉฐ, ์ผ์ชฝ ์๋ ๊ฐ ์์๋ฅผ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
Generation: 258๋ฒ์งธ ์ธ๋๋ฅผ ์๋ฏธํ๋ฉฐ, ์ด๋ ์ ์ ์๊ณ ๋ฆฌ์ฆ์ด 258๋ฒ์ ๋ฐ๋ณต์ ๊ฑฐ์ณค์์ ๋ํ๋ ๋๋ค.
Individual: 'Replay'๋ผ๊ณ ํ์๋ ์ด๋ ํ์ฌ ๊ด์ฐฐ๋๊ณ ์๋ ๊ฐ๋ณ ์ ๊ฒฝ๋ง์ด ์ด์ ์ธ๋์ ์ด๋ค ๊ฐ์ฒด๋ฅผ ์ฌ์์ฐํ๋ ๊ฒ์ ๋ํ๋ ๋๋ค.
Best Fitness: ํ์ฌ๊น์ง ๊ฐ์ฅ ๋์ ์ ํฉ๋ ์ ์๊ฐ 0์ด๋ผ๊ณ ๋ํ๋ ์์ด, ์๋ง๋ ์ด ์ ๊ฒฝ๋ง์ ์์ง ๋ชฉํํ ์ฑ๋ฅ์ ๋๋ฌํ์ง ๋ชปํ์์ ์๋ฏธํฉ๋๋ค.
Max Distance: ์ด ์ ๊ฒฝ๋ง์ด ๊ฒ์ ๋ด์์ ๋๋ฌํ ์ต๋ ๊ฑฐ๋ฆฌ๋ 1075ํฝ์ ์ ๋๋ค.
Num Inputs: ์ ๊ฒฝ๋ง์ ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ์ ์๋ 80๊ฐ์ ๋๋ค.
Trainable Params: ํ์ต ๊ฐ๋ฅํ ๋งค๊ฐ๋ณ์๋ ์ด 789๊ฐ์ ๋๋ค.
Offspring: '10, 90'์ด๋ผ๋ ๊ฐ์ ์ ์ ์๊ณ ๋ฆฌ์ฆ์์ ๊ฐ ์ธ๋๋ฅผ ์์ฑํ ๋ ์์ฐ๋๋ ์์์ ์๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ์ ํ, ๊ต์ฐจ, ๋์ฐ๋ณ์ด ๊ณผ์ ์ ๊ฑฐ์ณ ์์ฑ๋ฉ๋๋ค.
Lifespan: 'Infinite'๋ผ๋ ๊ฐ์ ์ด ์ ์ ์๊ณ ๋ฆฌ์ฆ์์ ๊ฐ๋ณ ์ ๊ฒฝ๋ง(๊ฐ์ฒด)์ด ๊ฐ์ง๋ ์๋ช ์ ๋ํ๋ ๋๋ค. 'Infinite'๋ ๊ฐ์ฒด๊ฐ ํน์ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋ ๋๊น์ง ๊ณ์ ์กด์ฌํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
Mutation: 'Static 5.0%'๋ ์ ๊ฒฝ๋ง์ ๋งค๊ฐ๋ณ์์ ์ ์ฉ๋๋ ๋์ฐ๋ณ์ด์จ์ ๋๋ค. ์ด๋ ๊ฐ์ฒด๊ฐ ๋ค์ ์ธ๋๋ก ์ ๋ฌ๋ ๋๋ง๋ค ์ผ์ ๋น์จ๋ก ๋ฌด์์ ๋ณํ์ด ์ผ์ด๋จ์ ๋ํ๋ ๋๋ค. ์ด๋ ์ ์ ์๊ณ ๋ฆฌ์ฆ์์ ๋ค์์ฑ์ ์์ฑํ๊ณ ์ง์ญ ์ต์ ํด(local optima)์ ๊ฐํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
Crossover: 'Roulette'๋ผ๋ ๊ฐ์ ๊ต์ฐจ(crossover) ๋ฐฉ๋ฒ์ ๋ํ๋ ๋๋ค. ๋ฃฐ๋ ๋ฐฉ๋ฒ์ ๊ฐ ๊ฐ์ฒด๊ฐ ์ ํ๋ ํ๋ฅ ์ด ๊ทธ ๊ฐ์ฒด์ ์ ํฉ๋์ ๋น๋กํ๋ ๋ฐฉ์์ผ๋ก, ๋์ ์ ํฉ๋๋ฅผ ๊ฐ์ง ๊ฐ์ฒด์ผ์๋ก ๋ค์ ์ธ๋์ ์์ ์ ์ ์ ์๋ฅผ ์ ๋ฌํ ํ๋ฅ ์ด ๋์ต๋๋ค.
SBX Eta: '100.0'๋ผ๋ ๊ฐ์ SBX(Simulated Binary Crossover) ๊ต์ฐจ ์ฐ์ฐ์์ ๋ถํฌ ์ธ๋ฑ์ค๋ฅผ ๋ํ๋ ๋๋ค. ์ด๋ ๊ต์ฐจ ๊ณผ์ ์์ ๋ถ๋ชจ ๊ฐ์ฒด๋ค์ ์ ์ ์๋ฅผ ์ผ๋ง๋ ํ์ํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋งค๊ฐ๋ณ์๋ก, ๊ฐ์ด ๋์์๋ก ๋ถ๋ชจ ๊ฐ์ฒด์ ๊ฐ๊น์ด ์์์ ์์ฑํ ํ๋ฅ ์ด ๋์์ง๋๋ค.
Layers: ์ ๊ฒฝ๋ง์ ๊ตฌ์กฐ๋ [80, 9, 6]์ผ๋ก ํ์๋์ด ์์ผ๋ฉฐ, ์ด๋ ์ ๋ ฅ ๊ณ์ธต์ 80๊ฐ์ ๋ ธ๋, ์จ๊ฒจ์ง ๊ณ์ธต์ 9๊ฐ์ ๋ ธ๋, ์ถ๋ ฅ ๊ณ์ธต์ 6๊ฐ์ ๋ ธ๋๊ฐ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๐์๋ ๊ฐํํ์ต ์ฝ๋๋ ๋ง๋ฆฌ์ค์ ํ์ต ์ํ ๋ฐ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ธํ ์ ์์ผ๋ฉฐ, ์ฝ๋๊ฐ ๋ฌด๊ฒ์ต๋๋ค.ย
ย ์ 'Click Here'๋ฅผ ๋๋ฅด์๋ฉด PPT ๋ด์ฉ์ ํ์ธํ ์ ์์ต๋๋ค.
ย ย ๋ณธ ์์ ์ Nicholas Renotte ์ฑ๋์ Build an mario AI Model with Python ๊ฐ์๋ฅผ ๋ฐํ์ผ๋ก ์ฌ๊ตฌ์ฑ ๋์์ต๋๋ค. Check Out this channel. Thanks for Nicholas Renotte :)
์ 'Super Mario Bros Ai Challenge'๋ฅผ ํด๋ฆญํ๋ฉด ์ฝ๋ SAZUMA๋๊ป์ ํ์ AI ๊ฐํํ์ต ์ํผ๋ง๋ฆฌ์ค ๋ชจ๋ ์คํ ์ด์ง ํด๋ฆฌ์ด ์ฝ๋ ๋ฐ ๊ณผ์ ์ ๋ณผ ์ ์์ต๋๋ค.
'Peace be with you.'
ย by Learnmore'