본문 바로가기

딥러닝

(22)
Paper 구현하고 싶다. #1-5 Optimization & Loss Modules & Training # Intro 센서 기반 IOT 스마트 팩토리 중 설비 쪽에 부서가 배치됐다. 학부시절에 하던 내용들이랑 많이 겹쳐서, 앞으로의 행보가 기대되지만, 굉 장 히 많은 지식들이 요구돼서 긴장도 된다. 기계과라면 가져야 하는 낭만 일반기계기사를 3월 12일 날짜로 홧김에 신청하게 돼서, 지금 여러모로 할일이 많아져 버렸다. 일단 개인적인 목표에서, Tutorial 5까지는 마친 상태지만, 리뷰가 너무 늦춰져서 좀 성실해질 필요가 있다. 아무튼 이어서 쓰면, 1. Optimization Data를 정리하고, Model을 만들었다면, 궁극적인 목표인 Optimization을 할 차례이다. optimization은 Parameter를 Loss Function을 활용하여 최적화시키는 역할을 한다. 간략하게 Flow를..
Paper 구현하고 싶다. #1-4 data.DataLoader Tutorial 2: Introduction to PyTorch # 이전내용 class XORDataset(data.Dataset): def __init__(self, size, std=0.1): """ Inputs: size - Number of data points we want to generate std - Standard deviation of the noise (see generate_continuous_xor function) """ super().__init__() self.size = size self.std = std self.generate_continuous_xor() def generate_continuous_xor(self): # Each data point in the XOR ..
Paper 구현하고 싶다. #1-3 PyTorch FrameWork Tutorial 2: Introduction to PyTorch 1. Intro 오늘 할 내용은 사실 딥러닝 프레임 워크 친숙해지기, 좀 더 나은 알고리즘 탐방하기 쪽에 더 가깝다. XOR 알고리즘은 전기 신호 배우면서 나오는 논리회로 이런 느낌인데 뒷내용에 대입해 보자면 그 내용은 사실 안 중요하다. 단지 볼 부분은 코드 flow와 딥러닝 framework이 어떻게 형성되는지 정도 아는 게 중요하다. 2. Learning by example: Continuous XOR 기본적인 Libraries부터 불러오는데, import torch.nn as nn import torch.nn.functional as F nn과 functional as F를 다양한 오픈소스에서 볼 수 있다. nn과 F의 차이점으로는 ..
Paper 구현하고 싶다. #1-2 Introduction to Pytorch ↓튜토리얼 원문 Tutorial 2: Introduction to PyTorch — UvA DL Notebooks v1.2 documentation Tutorial 2: Introduction to PyTorch Welcome to our PyTorch tutorial for the Deep Learning course 2022 at the University of Amsterdam! The following notebook is meant to give a short introduction to PyTorch basics, and get you setup for writing your own neu uvadlc-notebooks.readthedocs.io 이전 글에서는 Deep Learning 하면서..
Paper 구현하고 싶다. #1-1 Introduction to Pytorch 1. Pytorch 알아보기 Tutorial 2: Introduction to PyTorch — UvA DL Notebooks v1.2 documentation Tutorial 2: Introduction to PyTorch Welcome to our PyTorch tutorial for the Deep Learning course 2022 at the University of Amsterdam! The following notebook is meant to give a short introduction to PyTorch basics, and get you setup for writing your own neu uvadlc-notebooks.readthedocs.io 굉장히 기본적인 내용 같지만, 생각..
Paper 구현하고 싶다. #0 기초 다지기 (학습계획) 1. 계기 로봇 분야 잘하다가 뜬금없이 스마트 공정 쪽으로 간 것처럼 보이는데, 사실 난 그냥 현실이 수치화 돼서 내가 계산한 대로 이뤄지는 것 자체가 행복하다. 근데, 막상 머리로는 전체 시스템이 얼핏 그려지는데 그 디테일들이 그려지지 않는게 항상 아쉬울 따름이었다. 머릿속에서는 a + b + c 해서 내가 원하는 task를 어느 정도 완성시키게 된다. 문제는, '안심하고 쓸 수 있음'이라는 키워드를 붙이기엔 나 스스로 미심쩍은 부분도 많고, 대부분을 경험에 의존하는 경우가 많았다. 만일 나보고 내가 만든 비행기 타라고 하면 나는 양손과 양 주머니에 섭섭하지 않게 리튬배터리를 가득 채우고, 공항 검사대에 들어가 부적격 판정을 받을 생각이 있다. 잡담은 그만하고, 이번 프로젝트를 통해 내가 얻고자 하는 ..
Simulation to Real. #7 [Acrobot-IsaacGym : Inverted Pendulum Balance] #Intro 이전 글을 이어서 적는다. Solution 3 - tan 함수 (성공) sin도 제대로 학습이 안되는 거 같아서, 어떤 방법을 사용해야 할까 고민하던 찰나. sin그래프 아래에 tan그래프가 그려져 있었다. 생각해보니까 좌우 대칭에 안정적인 경사를 만들어 낼 수 있는 그래프지 않나 하는 생각이 머리를 스쳐지나 갔다. 그래서 바로 sin을 대체했다. 그리고 추가적으로 만약 θ가 π가 되면 그간 앞에서 걱정했던, 페널티 값이 하늘로 승천해 버리기 때문에 이 문제를 해결하고자, tan함수의 주기를 늘려주는 작업을 했다. 최대한 탐험의 범위를 넓혀 보고자 주기의 범위를 tight 하게 주지 않고 ± 4π 로 만들어 보았다. 만약 해당 범위까지 Acrobot이 회전하게 되면, 아예 초기화를 시켜버리는..
Simulation to Real. #6 [Acrobot-IsaacGym : Inverted Pendulum Balance] # Intro 이전 글을 이어서 적는다. Solution 2 - Sin 함수 (실패) ​0 ~ 1로, 그중 가장 친근한 방법인 sin과 cos으로 아이디어를 짜 봤다.. sin과 cos은 시작점만 다르기 때문에 그냥 sin으로 통합시켜서reward를 설계 해 보았다. 1. 단순한 페널티 설정 ​처음엔 reward의 숫자에만 관점을 두고 "reward 패널티를 어떻게 과감하게 설계할까?"를 생각해 봤다. 단순하게 1을 최대한 깎을 방법만 고려하고 마지막에 Total Reward를 계산하는 방식으로 문제를 접근했는데, Total Reward 수식을 쓰려고 할 때 앞선 reward 페널티의 값들을 보고 이건 뭔가 아니다는 걸 느꼈다. 물론 다른 radians값이 나올 때, 더 큰 숫자로 보상이 깎여 나가겠지만..
Simulation to Real. #5 [Acrobot-IsaacGym : Inverted Pendulum Balance] # Intro 오늘은 드디어 Simulation 상에서 나의 Custom Model 자세 제어를 할 수 있게 됐다. 일전의 FrameWork를 정리한 경험과 다양한 분들의 의견을 수렴하고 논문들을 들춰본 결과 이런 좋은 결과가 일찍 나올 수 있던것 같다. # Reward & Reset 일단 처음에는 있는 코드를 기반으로 FrameWork를 수정했다. 아래는 기존에 있던 CartPole 코드의 Reward 부분이다. 182번째 줄의 Reward는 자문해본 결과 reward 선정 방식과 reset에 대해 설명을 해주었다. 간단하게 풀어서 말하면 1. reward 선정 reward의 선정 방식은 NVIDIA에서 임의로 짰다고 한다. 자세한 설명은 해주지 않고 보상 1에서 제어하고자 하는 요소들을 (-) 요소로..
Simulation to Real. #4 [Acrobot-IsaacGym : rl-games] Intro 직접 Model 코드를 만드려고 했으나, Dynamic-Randomization부터 model등록까지 손이 가는 부분이 상당히 많았다. 그래서 NVIDIA에서 제공하는 rl-games Library를 사용해 보기로 한다. 처음 IsaacGym을 설치했을 때는 무슨 말인지 영 감이 안왔는데, framework.md 파일을 요약해 보고 다시 한번 쳐다보니 어느정도 이해가 된다. 일단 내가 보기 편하려고 사이트에 framework, Domain-randomization 요약본을 올려놓으려 한다.