본문 바로가기

Backup

Matplotlib Matplotlib을 사용하는 방법(interface)이 두가지가 있다: 1. pyplot : state based interface 2. Object oriented interface -> 이것만 마스터하자 다은과 같은 순서로 시각화 작업 수행: 2.1. figure and axes Figure와 Axes를 동시에 생성하는데 Figure는 캔바스 자체, Axes는 그림의 여러 부분을 담고 있습니다. background color, grid color 등은 plt.style.use()를 사용하면 설정이 용이합니다. fontsize, linewidth 등은 seaborn의 seaborn.set_context()를 사용하면 좋습니다. 그림의 크기를 함께 바꿔봅시다. plt.subplots() 안에 figsi.. 더보기
[강화학습 4강] Model Free Prediction 이번 강의에서는 model free는 environment를 어떻게 동작하는지를 모를때 prediction = value를 학습, control = policy를 찾는거. unknown mdp에 대해서 value function을 찾는거 따라서 model free prediction에서는 policy가 정해져 있을때 끝날때 return을 예측하는 방법론을 배울것이다. model을 모를때 prediction을 하는 방법에 2가지가 있는데, 하나는 Monte-Carlo, TD이다. Monte carlo는 직접 구하기 어려운걸 emperical하게 구하는 것이다. 계속 실험하면서 나오는 실제값들 가지고 추정하는 방법이다. value function은 어떤 state에서의 return이 있을텐데 policy에 .. 더보기
[강화학습 2강] Markov Decision Process 이번 강의에서는 위와 같은 순서로 진행되고 Extensions to MDPs는 Silver강의에서도 다루지 않았다. mdp는 environemnt를 표현하는 방법이다. 모든 강화학습 문제는 mdp로 만들수 있다. markov property는 다음과 같은 성질을 가지고있다. state가 중요하고 history는 필요없다. state만으로도 미래를 예측하는데 충분한 정보가 있다. state transition Matrix는 t state에서 t+1시점의 각 state로 전이될 확률 simulation을 계속하다보면 transition 확률이 수렴되게 된다. 위와 같이 markov process에서 각 episode가 수행될수있고, 당연히 이 환경이 주어진다면 sampling할수있다. 이런 process를 .. 더보기
[강화학습 9강] Exploration and Exploitation Expoloitation 과 expoloration은 trade off관계임. 알고있는걸 계속 연구하는건 expolotation, 근데 우리가 원하는 agent를 만들기 위해선 exploration도 해야됨. 예를 들어 새로운 식당에 가는건 exploration, 갔던 식당에 가는건 explotation. 롤에서 했던 캐릭터만하는거는 explotation, 새로운 포지션을 하는건 exploration. 강화학습에서 많이 마딱뜨리는 문제이다. 이런 exploration explotation 문제를 다뤄야 하는 방법론들은 다음과 같다. 이제 개념설명을 위해 Multi-armed bandit을 문제환경을 알아야 한다. mdp보다 간단한거. 슬롯머신마다 reward의 확률분포가 따로 있다. -> one step.. 더보기
[강화학습 1강] 강화학습 introduction David Silver 교집합이 기계학습이 아니라 저 모든것을 포함하는 더 큰 범위가 기계학습니다. 강화학습은 지도학습처럼 정답이 없지만 행동을 했을때 보상이 있다. 이 방법론의 경우 지도자 없이 스스로 Optimal을 찾고자 하기에 사람을 뛰어넘는 결과에 도달할 가능성이 있다. supervised같은경우 iid(독립적인 샘플), 강화학습 같은경우 sequential data을 이용하기 때문에 더 어렵다. reward는 강화학습의 전부: 한 시간때의 숫자(scalar) 하나이다. 강화학습은 목적은 cumulative reward를 최대화 하는것이라 할수있다. 중요한것은 Sequantial하게 행동을 잘해야됨 목적은 미래에 받을 reward의 총합을 최대화하는 액션을 선택하는것 계속 greedy하게 하면 .. 더보기
[Django #11] Dynamic sidebar 이번장에서는 tutorial 페이지에서 side nav bar을 추가할것이다.views.py내에서 single_slug funtion에 다음과 같은 코드를 추가하자 tutorials = [t.tutorial_slug for t in Tutorial.objects.all()] if single_slug in tutorials: this_tutorial = Tutorial.objects.get(tutorial_slug=single_slug) return render(request = request, template_name='main/tutorial.html', context = {"tutorial":this_tutorial})이제 튜토리얼 페이지를 만들어보자.{% extends 'main/header.ht.. 더보기
[Django #10] Working with Foreign Keys 이번장에서는 foreign key를 사용해서 각 table간 어떻게 작동시키게 할건지를 만들어 보겠다. 우리는 각 series 페이지에 들어갈때 주소를 simple하게 하나의 제목 "one slash"로 구성하게 할것이다. 대부분의 사이트는 directory안에 있으면 그 full 경로를 주소창에 쳐야 접속이 되겠지만 가 지져분해보이고 내가만든 사이트에서는 그리 복잡한 구조가 아니기 때문에 그냥 단순히 파일이름을 치면 그 웹페이지로 가게 할것이다. 이런 기능을 위해서 view에서 내용을 검색하고 주소를 반환해주는 하나의 함수가 필요하고 이를 single_slug함수라 하겠다. from .models import Tutorial, TutorialCategory, TutorialSeriesfrom djang.. 더보기
[Django #9] Foreign Keys with Models 이번장에는 foreign keys 사용법에 대해 알아보겠다. foreign keys를 통해서 서로다른 database table의 객체를 연결키켜 관리할수있다. 우리가 만약 지금처럼 하나의 tutorial object으로 contents를 추가해 나간다면 굉장히 큰 단위의 object가 될것이고 관리가 어려워 질것이다. 그래서 tutorial categories-series-content 단위로 table을 만들고 이를 foreign key로 만들어 관리하려한다.우선 기존의 model을 두개를 더 만들것이다. tutorial-> series and category. series는 tutorial을 가르키는 foreign key를 가질것이고 series는 또 각 category의 foreign key로 부.. 더보기
[Django #8] User Login and Logout 이번장에서는 우리의 user handling과 로그인 로그아웃 기능들을 만들어 볼것이다.로그아웃부터 작업해보자면(쉬우니까) Django에서 이미 logout function을 제공한다./logout URL부터 만들어보자 main/mysite/urls.py 를 아래와 같이 만들어라: from django.urls import path from . import views app_name = 'main' # here for namespacing of urls. urlpatterns = [ path("", views.homepage, name="homepage"), path("register/", views.register, name="register"), path("logout", views.logout_re.. 더보기
[Django #7] Messages 이번장에서는 messeages, 그리고 로그인 되어있었을때의 navbar 상태, 그리고 template에서 including하는법에 대해서 다뤄보겠다. 일단 messege는 사용자들에게 정보를 전달하는 측면에서 유용한 기능이 될것이다.materialize.css에서 지원하는 toasts라는 javascript를 이용해서 쉽게 메세지를 우리의 웹에서 띄울수있따.이 예제에서는 우리는 user에게 error를 메세지를 통해 전달해 보겠다.일단 mysite/main/views.py에 아래 import 추가:from django.contrib import messages그리곤 새로 추가됬다는 내용messages.success(request, f"New account created: {username}")그리고 에.. 더보기