본문 바로가기

분류 전체보기175

OS 8. Deadlocks 서론 다중 프로그래밍 환경에서는 여러 스레드가 한정된 자원을 사용하려고 서로 경쟁할 수 있다. 한 스레드가 자원을 요청했을 때, 그 시각에 그 자원을 사용할 수 없는 상황이 발생할 수 있고, 그때는 스레드가 대기 상태로 들어간다. 이 처럼 대기 중인 스레드들이 결코 다시는 그 상태를 변경시킬 수 없으면 이런 상황을 교착상태(Deadlocks)라 부른다. 교착 상태(Deadlocks) 교착 상태는 프로세스 집합 내의 모든 프로세스가 그 집합의 다른 프로세스에 의해서만 일어날 수 있는 이벤트를 기다리는 상황이라고 정의할 수 있다. 교착 상태를 간단히 이해하기 위해 7장의 식사하는 철학자 문제를 상기해 보자. 이 상황에서 자원은 젓가락으로 표시된다. 모든 철학자가 동시에 배가 고프고 각 철학자가 왼쪽에 있는 .. 2023. 5. 16.
강화 학습 7. Deep Q Network(DQN) 서론 DQN(Deep Q Network)은 DRL(심층 강화 학습) 알고리즘이자 딥러닝과 강화학습을 결합한 알고리즘이다. DQN은 딥러닝 신경망을 사용하여 강화학습 에이전트를 학습시키고, 최적의 행동을 결정하는 Q-함수를 근사하는 방식을 가진다. 이전의 강화학습 알고리즘과 달리, 특징 추출기와 Q-함수 근사기를 하나의 신경망으로 통합하여 end-to-end 학습이 가능해졌다. 이를 통해 데이터 처리 속도가 향상되어 효과적인 학습이 가능해졌으며, 여러 복잡한 게임에서 인간 수준의 성능을 보이는 결과를 얻었다. 이 알고리즘을 제시한 Google의 DeepMind 연구원은 게임 화면을 입력으로 사용하여 모든 Atari(아타리) 게임을 할 때 인간 수준의 결과를 얻었다. Deep Q Networks (DQNs).. 2023. 5. 16.
강화 학습 6.Deep Learning Fundamentals 서론 딥러닝이 발전을 하면서 알파고와 같은 딥러닝과 강화학습이 결합된 형태가 생겨났기에 딥러닝의 간단한 개념에 대해 공부한 다음에 결합된 형태에 대해 알아보자. Artificial Neuron 뉴런은 인간 두뇌의 기본 계산 단위이다. 뉴런은 수상돌기라고 하는 가지 모양의 구조를 통해 외부 환경, 감각 기관 또는 다른 뉴런으로부터 입력을 받는다. 이러한 입력은 강화되거나 약화된다. 즉, 중요도에 따라 가중치가 부여된 다음 체세포(soma, 세포체)에서 함께 합산된다. 그런 다음 세포체에서 이러한 합산된 입력이 처리되어 축삭을 통해 이동하고 다른 뉴런으로 전송된다. 인공뉴런은 입력으로 외부, 센서 혹은 다른 뉴런에서 들어오며 weights를 곱하고 모든 입력의 합한 뒤 bias를 더해준다. 만약 입력이 하나.. 2023. 5. 9.
게임 리뷰] 붕괴: 스타레일(스포X) 소개 간단 소개 붕괴 IP와 원신과 비슷한 그래픽, UI, 성장 시스템을 가진 턴제 RPG(붕괴를 플레이하지 않아도 상관이 없다.) 가격 무료 장르 턴제 RPG 개발사 HOYOVERSE/miHoYo 특징 스토리 운명의 길을 걷는 이들을 스타레일에서 '운명의 길 행자'라고 부르며 '에이언즈'라는 존재로부터 특별한 힘을 부여받는 세계이다. 주인공은 모종의 사건으로 '스텔라론'을 몸에 지니게 되었고 주인공을 돕는 일행, 즉 우주를 떠돌아다니며 우주 전역에 퍼진 암적인 존재 '스텔라론'을 봉인하는 이들과 합류하며 자신의 비밀을 해쳐가는 여행을 떠난다. 붕괴와 원신에서 많은 깨달음을 얻었는지, 원신 초반 스토리보다는 괜찮다. 하지만, 원신에 한 세계에서 여러 지역을 돌아다니기에 종종 다른 지역에 캐릭터들이 스토리.. 2023. 5. 6.
강화 학습 5.Multi-Armed Bandit (MAB)Problem 서론 이전 장에서 RL 및 여러 RL 알고리즘의 기본 개념과 RL 문제를 MDP(Markov Decision Process)로 모델링하는 방법에 대해 배웠다. MDP를 해결하는 데 사용되는 다양한 모델 기반(model-based) 및 모델 없는(model-free) 알고리즘도 보았다. 이제, RL의 고전적인 문제 중 하나인 MAB(Multi-Armed Bandit) 문제를 볼 것이다. MDP는 일련의 상태(state)와 행동(action)의 시퀀스를 관찰하고, 각 시점에서의 보상(reward)을 최대화하기 위한 최적의 정책(policy)을 찾는 문제로 상태와 행동의 시퀀스를 고려하여 최적의 정책을 찾는 것이 목표이다. 반면, MAB 문제에서는 여러 개의 선택(arm) 중에서 최적의 선택을 찾는 것이 목표.. 2023. 4. 25.
게임 팀 프로젝트 기획부터 개발 서론 팀 프로젝트는 실제로 실행하기 힘들다. 팀 프로젝트 중 게임 프로젝트 진행 경험과 경험을 보완한 과정을 정리한 내용이다. 깃허브를 활용하는 방법으로 소개하겠다. 아이디어 팀을 섭외하기 위해, 게임을 개발하고자 하는 욕구 등으로 아이디어를 우선적으로 생각해야 한다. 아이디어를 만드는 방법으로 유명한 브레인 스토밍, 마인드맵 외에 SWOT기법, SCRAMPER 등 여러 방법을 통해 아이디어를 구체화하는 작업을 한다. 중요한 것은 아이디어를 자신의 머리에만 있지말고, 직접 글과 그림으로 정리를 해야한다. 추천하는 사이트로 Edraw mind, Miro, Figma, Twine이 있다. 특히, 학생들이 프로젝트 시 게임 아이디어를 구상할 때 이미 존재한 게임을 참고하는 경우가 많다. 이때, 우리는 목표를 .. 2023. 4. 18.
강화 학습 4.Temporal Difference(TD) Learning 서론 Monte Carlo 방법은 에피소드 환경에만 적용된다는 단점과 에피소드가 매우 길면 가치 함수를 계산하기 위해 오랜 시간이 걸린다는 단점이 있다. 따라서 모델 없거나(model-free), 모델 역학(model dynamics)을 미리 알 필요가 없는 비 에피소드 작업에도 적용 가능한 학습 알고리즘인 TD(temporal difference) 학습에 대해 알아보자. TD(Temporal Difference) Learning TD방식은 Monte Carlo로 아이디어와 dynamic programming 아이디어의 결합한 방식이다. Monte Carlo 방법과 마찬가지로 TD 방법은 환경의 dynamics models 없이 원시 경험에서 직접 학습할 수 있다. 또한, DP와 마찬가지로 TD 방법은 .. 2023. 4. 18.
깃허브 Wiki 서론 Wiki는 GitHub 저장소에서 간단한 문서를 작성하고 관리할 수 있는 기능이다. Wiki를 사용하면 저장소와 관련된 문서를 쉽게 작성하고 공유할 수 있다. Markdown(마크다운) 형식을 사용하여 문서를 작성한다. 저장소의 협업 기능과 함께 작동하여, 저장소의 모든 참여자가 문서를 수정하고 개선할 수 있다. Wiki를 통해 저장소와 관련된 정보를 효율적으로 관리할 수 있으며, 팀원 간의 의사소통과 지식 공유를 쉽게 할 수 있다. Wiki 세팅하기 wiki창이 없다면 "Settings">"General">"Features">"wiki"로 위키창을 활성화할 수 있다. 아래에 "Restrict editing to collaborators only"를 통하여 공용 작업자만이 작업을 할 수 있게 제한을.. 2023. 4. 17.
깃허브 Project 서론 Project는 특정 프로젝트를 관리하기 위한 도구로, 프로젝트의 작업과 상태를 추적하고 관리하는 데 사용된다. 이를 통해 팀원들이 프로젝트 전반에 대한 정보를 공유하고, 작업을 조직적으로 관리할 수 있다. Project 세팅하기 projects창이 없다면 "Settings">"General">"Features">"Projects"로 프로젝트창을 활성화할 수 있다. 생성하기 "Link a project"로 기존의 프로젝트를 연결할 수 있고, "New project"로 새로 프로젝트를 생성할 수 있다. 생성 시 아래와 같은 템플릿 종류가 있다. 보통 "Project teamplates"의 "Team backlog"를 주로 사용한다. Table: 데이터를 표로 보여주는 형식으로, 프로젝트에서 다루는 데.. 2023. 4. 17.
반응형