### Modelos de eficiencia de datos para aprendizaje por refuerzo
##### Alumno: Diego Villegas Juarez
##### Tutor: Alfredo Garbuño Iñigo
##### ITAM
---
En el aprendizaje por refuerzo tenemos tres componentes

Estos componentes definen un proceso de deciciones de Markov (MDP)
---
### Definiciones en un MDP
#### Para un entorno de eventos
$$(S_0,A_0,R_1),(S_1,A_1,R_2),(S_2,A_2,R_3) ...$$
Tenemos
$$p(s',r|s,a)=Pr\{ S_t = s', R_t =r|S_{t-1}=s,A_{t-1}=a \} $$
y
$$r(s,a,s') = \mathbb{E}\{ R_t | S_{t-1} = s, A_{t-1} = a \}$$
---
#### Para un entorno de eventos
$$p(s',r|s,a) $$
Probabilidad de pasar a otro estado dado que estamos en cierto estado.
$$r(s,a,s') $$
La suma de las recompensas de estados subsecuentes
---
#### Retorno esperado
$$G_T =R_t +R_2 + R_3 + ... + R_t$$
La suma de todas las recompensas.
---
Función de poliza
Se define a la función de póliza como $\pi$, una función que va de $A \rightarrow S$ para todo $a \in A$ y $s \in S$.
---
Función de de valor
Se define a la función de valor como $v_{\pi}(S)$ con
$$v_{\pi}(s)= \mathbb{E} [G_t | S_t=s ]$$
Se define como el valor de ganancia que tengo dado que estoy siguiendo cierta función de póliza y me encuentro en el estado $s$
---
## Ejemplo
#### Camino más corto

---
#### Función de valor y póliza

---
#### Diferencia entre polizas

---
### Póliza optima
Definimos a una póliza optima sobre otra como
$$\pi' \geq \pi \Leftrightarrow v_{\pi'}(s) \geq v_{\pi}(s) \ para \ todo \ s \in S $$
---
## Método de Montecarlo
Generamos pólizas aleatorias y analizamos la ganancia entre las pólizas viendo las funciones de valor.
---
## Algoritmo de Montecarlo

[Reinforcement Learning: An Introduction, Richard S. Sutton. p92]
---
## Aplicación Juego Black Jack
Simulación de la librería GYM en python

---
## Aplicación Juego Black Jack

---
## Resultados póliza optima

---
Próximos pasos:
Revisar los métodos Aprendizaje de diferencia temporal que tienen como base los métodos Montecarlo y la programación dinámica.
---
## Referencias de la presentación
[Reinforcement Learning: An Introduction, Richard S. Sutton, Andrew G. Barto, MIT Press, Cambridge, MA, 2018]
[Udacity, Reinforcement Learning, https://www.udacity.com/course/reinforcement-learning--ud600]
[Librería Gym python, https://gym.openai.com/]
---
# Gracias
---
We have a collaborative session
please prepare laptop or smartphone to join!
---
We have a collaborative session
please prepare laptop or smartphone to join!
---
## Who am I?
- Front-end developer
- VSCode :heart:
- I use tabs. :cat:
---
### 70% of our users are developers. Developers :heart: GitHub.
---
{%youtube E8Nj7RwXf0s %}
---
### Usage flow
---
```graphviz
digraph {
compound=true
rankdir=RL
graph [ fontname="Source Sans Pro", fontsize=20 ];
node [ fontname="Source Sans Pro", fontsize=18];
edge [ fontname="Source Sans Pro", fontsize=12 ];
subgraph core {
c [label="Hackmd-it \ncore"] [shape=box]
}
c -> sync [ltail=session lhead=session]
subgraph cluster1 {
concentrate=true
a [label="Text source\nGithub, Gitlab, ..."] [shape=box]
b [label="HackMD Editor"] [shape=box]
sync [label="sync" shape=plaintext ]
b -> sync [dir="both"]
sync -> a [dir="both"]
label="An edit session"
}
}
```
---
### Architecture of extension
---

---
## Content script
- Bind with each page
- Manipulate DOM
- Add event listeners
- Isolated JavaScript environment
- It doesn't break things
---
# :fork_and_knife:
---
<style>
code.blue {
color: #337AB7 !important;
}
code.orange {
color: #F7A004 !important;
}
</style>
- <code class="orange">onMessage('event')</code>: Register event listener
- <code class="blue">sendMessage('event')</code>: Trigger event
---
# :bulb:
---
- Dead simple API
- Only cares about application logic
---
```typescript
import * as Channeru from 'channeru'
// setup channel in different page environment, once
const channel = Channeru.create()
```
---
```typescript
// in background script
const fakeLogin = async () => true
channel.answer('isLogin', async () => {
return await fakeLogin()
})
```
<br>
```typescript
// in inject script
const isLogin = await channel.callBackground('isLogin')
console.log(isLogin) //-> true
```
---
# :100: :muscle: :tada:
---
### Wrap up
- Cross envornment commnication
- A small library to solve messaging pain
- TypeScript Rocks :tada:
---
### Thank you! :sheep:
You can find me on
- GitHub
- Twitter
- or email me
{"metaMigratedAt":"2023-06-16T10:51:38.878Z","metaMigratedFrom":"YAML","title":"Reinforcement Learning","breaks":true,"description":"second presentation![]","contributors":"[{\"id\":\"246f3df7-0e42-4476-a3cc-20d27c1aa19a\",\"add\":3400,\"del\":803}]"}