no image
DQN 논문 (Playing Atari with Deep Reinforcement Learning) 리뷰
Playing Atari with Deep Reinforcement Learning 논문에 대한 간략한 리뷰이다. 구글 딥 마인드에서 2013년 작성하였다.https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf 개요Q-learning을 변형하여 convolutional neural network를 학습한 모델이다. 입력으로는 raw pixels를 사용하고 출력으로는 value function을 사용하였다. 7개의 아타리2600 게임에 적용하여 6개 게임에서 이전 접근 방식보다 뛰어난 성능을 보였고 3개 게임에서 인간보다 뛰어났다. 배경 지식Q-learning에 대한 기본적인 배경 지식을 알고 있으면 좋다. 각 시간 단계에서 에이전트는 action set 에서 행동을 선택하며,..
2024.06.20
no image
알파제로 논문 리뷰
“Mastering the game of Go without human knowledge” 라는 제목의 논문을 읽었다. 논문 리뷰 발표를 위해 제작한 자료를 기반으로 간략하게 글을 써본다. https://github.com/suragnair/alpha-zero-general GitHub - suragnair/alpha-zero-general: A clean implementation based on AlphaZero for any game in any framework + tutorial + OtheA clean implementation based on AlphaZero for any game in any framework + tutorial + Othello/Gobang/TicTacToe/Connec..
2024.06.19
no image
Arrangept 개발기
https://arrangept.lockcept.kr 개발을 완료하였다. 해당 사이트는 입력된 단어들을 seed 단어를 기준으로 재배열 해주는 사이트이다. 실은 세상에 아무 쓸모도 없는 사이트이다. 그냥 나를 위해서 만들었다. 그래도 개발기 작성은 가치가 있을수도 있으니까, 글을 작성하기로 마음먹었다.  개요단어를 재정렬하여 보여준다, 라는 의미로 Arrange라는 동사를 채택하였다. 그리고 나의 닉네임인 lockcept을 합쳐서 Arrangept로 서비스 이름을 작명하였다. 게다가 요즘 화제인 gpt와도 이름이 비슷하여 쏙 마음에 들었다. 원래 이 사이트의 기능은 나의 로컬에 javascript로 구현 되어 있었다. 게임을 플레이 하기 위해서 어떤 캐릭터를 선택할지 결정이 힘들었던 나에게 캐릭터를 랜덤..
2024.06.18
벨만 방정식 (Bellman Expectation, Bellman Optimality)
강화학습 공부를 하며 중요했던 개념 중 하나인 벨만 방정식 (Bellman Equation) 에 대해 정리하였다. Bellman Expectation Equation은 주어진 policy에 대해서, 상태 가치 함수 V와 행동 가치 함수 Q를 정의하고 계산하는데에 사용되는 식이다. $$ V^\pi(s) = \mathbb{E}_\pi \left[ R_{t+1} + \gamma V^\pi(S_{t+1}) \mid S_t = s \right] $$$$ Q^\pi(s, a) = \mathbb{E}_\pi \left[ R_{t+1} + \gamma Q^\pi(S_{t+1}, A_{t+1}) \mid S_t = s, A_t = a \right] $$ 각 상태 혹은 행동의 가치는, 그 다음 state의 reward와 ..
2024.06.18
no image
티스토리 블로그 주소창 리디렉션하기 (2차 도메인)
현재 블로그에서 2차 도메인을 사용하고 있다. 원래 도메인은 "lockcept-life.tistory.com" 이지만, 개인 도메인인 "blog.lockcept.kr" 을 사용하여 해당 주소로 들어오게끔 설정하였다. 그러나 가끔 블로그 내의 하이퍼링크를 클릭하는 등의 경우에는 원래 도메인을 기준으로 url이 설정되는 경우가 있다. 이런 경우 주소창에 표시되는 링크가 달라질 뿐 더러, 이 상태에서 포스트를 공유하면 원래 도메인을 기준으로 공유된다. "스킨 편집" 의 html 편집을 통해 이 문제를 방지할 수 있다. 해당 코드를 html 코드 사이에 삽입하면 해결할 수 있다. (물론 각자의 주소에 맞게 링크 수정을 해주어야한다.) 삽입할 위치를 잘 모르겠다면, (어디에 놓아도 큰 상관은 없지만) 라고 적힌 ..
2024.01.03
no image
Typescript / Javascript 환경에서 메르센-트위스터 [MT19937] 알고리즘 사용하여 난수 생성하기
Typescript 환경에서 난수를 사용 해야 하는 니즈가 있었다. 단순히 seedrandom 같은 라이브러리를 사용해도 되었지만, 의사난수 생성 알고리즘 중 메르센-트위스터 19937 알고리즘에 관심이 생겨 사용하고자 하였다. 가볍게 깃헙에서 구현된 코드를 발견하였고 (https://gist.github.com/aradzie/c12da8c537e83c0fae52), 그대로 가져다가 사용하였다. 그런데 온라인에 구현된 메르센-트위스터 생성기와 시드가 동일함에도 불구하고 다른 난수를 생성함을 우연히 발견하였다. (온라인에서 발견한 난수생성 사이트 https://asecuritysite.com/primes/twister) 구현된 코드를 비교해 보았을 때 크게 다른 점이 없어서 의문이었다. 직접 cpp 컴파일..
2023.12.06
no image
[웹개발] lockcept-world
웹개발 공부를 위해서 Lockcept World를 만들어보았다. 목적은 여러 서비스를 위한 콘솔 형태를 만드는 것이다. AWS console이나 Google console 이 매력적이여서 따라해보고 싶었다. 실제로 별 효용은 없다. 깃허브 현재는 깃헙 레포가 비공개인데 3월 중으로 배포된 버전을 내리고 레포를 public으로 전환할 예정이다~ Front React, Typescript Material-UI AWS S3 Back Node.js, Typescript Serverless Framework AWS API-Gateway & Lambda EC2를 사용하지 않음으로써 편리한 스케일링이 가능하다. 메인 화면 실제로 구현된 서비스는 Account Setting 밖에 없음 어느 정도 반응형으로 구현되어있어..
2021.02.27
no image
핸즈 온 머신러닝 :: 16. 강화 학습
핸즈 온 머신러닝 (Hands-On Machine Learning with Scikit-Learn & TensorFlow) / 오렐리앙 제론 지음 , 박해선 옮김 을 읽고, 추후 기억을 되살릴 수 있게끔 나만의 방법으로 내용을 리뷰한다. 따라서 리뷰의 내용 별 비중이 주관적일 수 있다. 챕터 16. 강화 학습 강화 학습 (Reinforcement Learning)은 요즘 머신러닝에서 흥미진진한 분야이며 오래된 분야이다. 2017년 5월 알파고가 바둑 세계챔피언 커제를 이기며 성과의 절정에 다다랐다. 강화 학습 분야에 강력한 딥러닝을 적용했더니 상상 이상의 성능을 낸 것이다. 16.1 보상을 최적화하기 위한 학습 에이전트(agent)는 관측(observation)을 하고 주어진 환경(environment)..
2020.02.02
no image
핸즈 온 머신러닝 :: 15. 오토인코더
핸즈 온 머신러닝 (Hands-On Machine Learning with Scikit-Learn & TensorFlow) / 오렐리앙 제론 지음 , 박해선 옮김 을 읽고, 추후 기억을 되살릴 수 있게끔 나만의 방법으로 내용을 리뷰한다. 따라서 리뷰의 내용 별 비중이 주관적일 수 있다. 챕터 15. 오토인코더 데이터들을 효율적으로 표현할 수 있는 coding을 학습할 수 있는 인공 신경망을 오토인코더라고 부른다. 따라서 오토인코더는 차원축소에 유용하며 특성 추출기처럼 작동하므로 심층 신경망의 비지도 사전훈련에 사용될 수 있다. 또한 훈련 데이터와 비슷한 새로운 데이터를 생성할 수 있는데 이를 generative model이라고 부른다. 오토데이터는 입력과 같은 출력을 특정 조건하에서 학습하며 배운다. 1..
2020.01.31
no image
핸즈 온 머신러닝 :: 14. 순환 신경망
핸즈 온 머신러닝 (Hands-On Machine Learning with Scikit-Learn & TensorFlow) / 오렐리앙 제론 지음 , 박해선 옮김 을 읽고, 추후 기억을 되살릴 수 있게끔 나만의 방법으로 내용을 리뷰한다. 따라서 리뷰의 내용 별 비중이 주관적일 수 있다. 챕터 14. 순환 신경망 순환 신경망 (recurrent neural networks)은 미래를 예측할 수 있는 신경망이다. 주식가격 예측, 자율 주행 시스템에서 차의 이동경로 예측 등을 도운다. 입력은 임의 길이를 가진 sequence 일 수 있다. 또한 RNN의 창의성을 활용하여 멜로디 제작, 문장 생성, 이미지 캡션 생성 등을 할 수 있다. 14.1 순환 뉴런 지금까지는 신호가 입력층에서 출력층 한 방향으로만 흐르는..
2020.01.28
no image
핸즈 온 머신러닝 :: 13. 합성곱 신경망
핸즈 온 머신러닝 (Hands-On Machine Learning with Scikit-Learn & TensorFlow) / 오렐리앙 제론 지음 , 박해선 옮김 을 읽고, 추후 기억을 되살릴 수 있게끔 나만의 방법으로 내용을 리뷰한다. 따라서 리뷰의 내용 별 비중이 주관적일 수 있다. 챕터 13. 합성곱 신경망 convolutional neural network (CNN)은 대뇌의 시각 피질 연구로부터 시작되었고 이미지 검색 서비스, 자율 주행 자동차, 영상 자동 분류 시스템 등 시각 분야에 큰 기여를 했으며 그 외에도 음성 인식이나 자연어 처리 같은 작업에도 많이 사용된다. 13.1 시각 피질의 구조 시각 피질 안의 많은 뉴런이 작은 local receptive field를 가져, 시야의 일부 범위 ..
2020.01.27
no image
핸즈 온 머신러닝 :: 12. 다중 머신과 장치를 위한 분산 텐서플로
핸즈 온 머신러닝 (Hands-On Machine Learning with Scikit-Learn & TensorFlow) / 오렐리앙 제론 지음 , 박해선 옮김 을 읽고, 추후 기억을 되살릴 수 있게끔 나만의 방법으로 내용을 리뷰한다. 따라서 리뷰의 내용 별 비중이 주관적일 수 있다. 챕터 12. 다중 머신과 장치를 위한 분산 텐서플로 11장에서는 훈련 속도를 높일 수 있는 여러 기술을 알아보았다면, 12장에서는 텐서플로를 사용해 연산을 여러 개의 장치에 분산시켜서 병렬로 실행시키는 법을 배운다. 텐서플로의 분산 컴퓨팅 기능은 주요한 장점이다. 계산 그래프를 여러 장치와 머신에 어떻게 분할 시킬지 완전히 제어할 수 있고 연산을 다양한 방식으로 병렬화하고 동기화할 수 있어서 모든 종류의 병렬화 방식이 사..
2020.01.24