전체 글 25

[HTTP] URI와 웹 브라우저 요청 흐름

URI(Uniform Resource Identifier)URN과 URL은 URI에 포함되는 개념이다.URN(Uniform Resource Name): 리소스에 이름을 부여URL(Uniform Resource Locator): 리소스가 있는 위치를 지정URN은 거의 사용하지 않으므로 URI를 URL과 같은 의미로 보아도 크게 무리가 없다.구조scheme://[userinfo@]host[:port][/path][?query][#fragment] https://www.google.com:443/search?q=hello&hl=ko프로토콜(https)호스트명(www.google.com)포트번호(443) - https의 기본포트는 443으로, 보통 생략되어있다.Path(/search)쿼리 파라미터(q=hello..

CS/Network 2024.05.16

[HTTP] 인터넷 네트워크

IP(Internet Protocol)역할지정한 IP 주소(IP Address)에 데이터 전달패킷(Packet: Package + bucket)이라는 통신 단위로 데이터 전달: IP 패킷 정보에는 출발지 IP, 목적지 IP 등이 들어있다.한계비연결성패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송: 정확히 패킷이 전달되었는지 알 수 없다.비신뢰성중간에 패킷이 사라지면? (중간에 어떤 노드에서 패킷이 소실된다면?): 정확히 패킷이 전달되었는지 알 수 없다.패킷이 순서대로 안오면?: 패킷을 먼저보낸다고 먼저 받는 것이 아닐 수 있는데(이동하는 경로가 다를 수 있기 때문), 이때 패킷을 받는 입장에서 순서를 알 수 없다.TCP, UDP인터넷 프로토콜 스택의 4계층높은 계층에서 낮은 계층 순서애플리케이..

CS/Network 2024.05.14

[Monte Carlo methods - 4] Off-Policy Monte Carlo

Off-policy Monte CarloOff-policy strategyOff-policy 에서는, Exploratory policy와 Target policy를 분리하고 각각 다른 policies를 사용한다. Exploratory policy ($b(a|s)$): Exploratory policy는 Task를 수행하면서 State, Action, Reward를 포함한 Experience(tarjectory)를 수집한다. Experience들은 Target policy를 학습시키는데 사용된다.$$ S_0, A_0, R_1, S_1, A_1, ..., R_T $$ Target policy ($\pi(a|s)$): Optimal policy를 찾기 위해서 실질적으로 개선되는 Policy이다. Explora..

AI/RL 2024.04.25

[Monte Carlo methods - 3] On-Policy Monte Carlo

MathJax = { tex: {inlineMath: [['$', '$'], ['\\(', '\\)']]} };On-policy Monte CarloExploration of the environment를 maintain하기 위한 method 중 하나$\epsilon$-greedy policy: Exploration of environment를 maintain하기 위해 낮은 확률로 random action을 수행하도록 만드는 Policy이다. 모든 Action의 확률은 0보다 크며, $\epsilon$ 의 확률로 random action이 선택되고 $1-\epsilon$ 의 확률로 가장 높은 $Q(s, a)$를 가진 Action이 선택된다. 이 Policy는 시간이 지날수록 모든 action을..

AI/RL 2024.04.24

[Monte Carlo methods - 2] GPI with Monte Carlo methods

MathJax = { tex: {inlineMath: [['$', '$'], ['\\(', '\\)']]} };Generalized Policy Iteration (GPI)Monte Carlo methods를 사용하여 control tasks를 풀기위해서 GPI를 사용한다. 초기에는 임의의 Policy로 시작한다. Agent는 첫 episode의 처음부터 끝까지 초기 Policy를 사용하면서 trajectory를 생성한다. 이후 각 시간에서의 return이 rewards의 discounted sum으로 계산된다.$$ S_0, A_0, R_1, S_1, A_1, R_2, ..., R_T $$$$ G_t = R_{t+1} + \gamma R_{t+2}+\gamma^2 R_{t+3} + ... + \..

AI/RL 2024.04.23

[Monte Carlo methods - 1] Intro

MathJax = { tex: {inlineMath: [['$', '$'], ['\\(', '\\)']]} };Monte Carlo methodsMonte Carlo mehods는 경험에 기반한 알고리즘들 중 하나이다. 경험에 기반한 알고리즘들은 Agent가 환경과 상호작용하면서 모은 samples of experience를 기반으로 $v_*(s)$(optimal state-value)혹은 $q_*(s,a)$(optimal q-value)를 학습한다. 학습 초기에, Agent는 임의의 Policy를 따른다. Agent는 trace of experience(trajectory)를 생성하면서 episode가 끝날 때 까지 현재 Policy를 따라 task를 수행한다.$$ S_0, A_0, R_1..

AI/RL 2024.04.23

[Dynamic Programming - 4] Generalized Policy Iteration(GPI)

Generalized Policy Iteration (GPI) GPI는 대부분의 강화학습 알고리즘의 general template 이다. Monte Carlo methods는 model of the environment가 정의되지 않은 상태의 알고리즘이지만, environment에서 수집된 experience로 value를 update한다는 차이점만 있고 큰 형식은 GPI를 따른다. 많은 강화 학습 알고리즘들은 GPI를 개념적으로 차용하지만 DP를 사용하지는 않는다. 왜냐하면, DP의 단점들 때문이다. Disadvantages of dynamic programming DP는 High computational cost가 발생한다. 왜냐하면, 매 Iteration 에서 우리는 모든 states를 update..

AI/RL 2024.04.22

[Dynamic Programming - 3] Policy Iteration

MathJax = { tex: {inlineMath: [['$', '$'], ['\\(', '\\)']]} };Policy IterationPolicy Iteration은 optimal policy와 이의 value function을 alternating하면서 서로를 개선한다. 이렇게 현재의 policy으로 value를 계산하고 해당 value를 통해서 policy을 개선하는 반복적인 과정은 많은 강화학습 알고리즘에 영향을 끼쳤다. 이 점에서 Policy Iteration은 강화학습에서 매우 중요한 의의를 가진다.Algorithm$\pi(a|s)$(Policy)와 $V(s)$ (각 State에 대한 State Value)를 임의의 값으로 initialize한다.[Policy Evalua..

AI/RL 2024.04.22

[Dynamic Programming - 2] Value Iteration

MathJax = { tex: {inlineMath: [['$', '$'], ['\\(', '\\)']]} };Value Iteration $$ \pi_*(s)=\arg\max_a\sum p(s',r|s,a)[r+\gamma v_*(s')] $$ 우리는 매 State마다 return을 maximize하는 Action을 택하는 Optimal policy($\pi_*$)를 찾고싶다. 하지만, 위 식에서 보여지듯이 그러기 위해서는 매 State 마다의 optimal value($v_*$)를 알아야한다. 이에 우리는 각 State의 optimal state value($v_*$)를 찾기위해서 iterative process를 통해 estimate할 것이다. 아래와 같은 Update rule을 사..

AI/RL 2024.04.22

[Dynamic Programming - 1] Intro

MathJax = { tex: {inlineMath: [['$', '$'], ['\\(', '\\)']]} };Dynamic Programming: Problem을 더 쉽고, 작은 Problems로 나누어 solution을 찾는 방법이다. 우리가 풀어야하는 Problem은 Optimal Policy $\pi_*$를 찾는 것Property: Dynamic Programming이 되기 위해서는 2가지 properties를 반드시 가져야한다.1. Optimal substructure: 나누어진 subproblems들의 optimal solution들을 구해서 합치면, original problem의 optimal solution이 되는 구조이다. 이는 즉, 각각의 state의 optimal so..

AI/RL 2024.04.22