Hola y bienvenidos a este tutorial de Python.
Todo bien.
En este aceite vamos a hacer la función que seleccionará la acción correcta y cada vez.
Entonces, básicamente vamos a implementar la parte que hará que el automóvil sea el movimiento correcto.
Y cada vez que va a la izquierda yendo derecho o yendo a la derecha para alcanzar la meta y
para evitar los obstáculos que es el descenso.
Así que hagámoslo ahora.
vamos a llamar acción select que algunos paréntesis y esta función de acción de selección tomará dos argumentos.
Vamos a comenzar como de costumbre con los sordos a definir una función y luego le damos un nombre a nuestra función a
la que
El primero es uno mismo a medida que crece para referirse al objeto y el segundo argumento que
según usted va a ser cuál.
Bueno, ¿qué podría ser?
de la red neuronal o la q valora para cada una de las tres acciones posibles y, por lo tanto, la
acción con la que jugamos la acción que será el resultado de la red neuronal depende del estado de
entrada y los estados de entrada es exactamente el segundo argumento que necesitamos con la función de selección de acción.
Si lo piensas, la acción que seleccionamos proviene de la salida de la red neuronal porque la salida
Es porque literalmente tomaremos la salida de la red neuronal.
Y, por supuesto, la salida de la red neuronal depende directamente de la entrada de la red neuronal.
Así que ese va a ser nuestro argumento.
Y ahora podemos darle cualquier nombre que en realidad le llamemos estado porque la entrada de las redes neuronales son
los estados de entrada que están codificados por un vector de cinco dimensiones a tres señales de
orientación y menos orientación.
Y ahora las cosas van a ser fáciles.
Vamos a alimentar el estado de entrada en la red neuronal que construimos aquí arriba con
la próxima clase y luego obtendremos los resultados que son los valores clave para cada una de las tres
acciones posibles y luego usando el método de Max suave que voy a explicar
en este tutorial.
Vamos a tener la acción final para jugar.
Así que hagamos esto, entremos a la función y apliquemos todo esto.
Entonces, lo primero que necesitamos para empezar es sobre lo que acabo de mencionar. La idea del
Max suave es que trataremos de obtener la mejor acción para jugar en cada momento.
Pero al mismo tiempo exploraremos las diferentes acciones.
Y cómo hacemos eso.
¿Cómo podemos obtener la mejor acción para jugar mientras exploramos las otras acciones?
Bueno, usamos esta idea de cosas que consiste en generar una distribución de probabilidades para cada uno de
los valores q.
Q Estados de acción.
Ahora tenemos un valor de Q para cada acción, vaya hacia la izquierda, siga recto o hacia la derecha.
Pero este q valor también depende del estado de entrada.
Esa es exactamente la función Q utilizada en las conferencias de intuición.
Esta función Q es una función del estado y la acción.
Entonces, dado que tenemos aquí un estado de entrada que es el estado aquí y
tres acciones posibles, tenemos tres valores nuevos Q. La acción estatal 1 Q establece la acción 2 y dos declara
la acción 3 y vamos a generar una distribución de probabilidades con respecto a estos tres valores clave.
Es decir, vamos a tener una probabilidad para el primer valor de Q una de la probabilidad para el
segundo valor de Q y una tercera probabilidad para el tercer Q y todas las tres probabilidades sumarán hasta 1.
hacer todo esto con Max machacado y Max machacado atribuirá una gran probabilidad a la Q más alta alrededor.
Y entonces vamos a
Es por eso que una alternativa al Max blando es un RMX simple que no toma directamente el máximo de los valores q,
pero en ese caso no estamos explorando las otras acciones.
Gracias a estas probabilidades podemos explorar en otro lugar utilizando un parámetro de temperatura que vamos
a ver muy rápidamente.
Todavía podemos explorarlos configurando este parámetro de temperatura.
Es por eso que, en general, para la seguridad, recomiendo utilizar un x blando en lugar de un simple RMX.
De acuerdo, implementemos X y, por lo tanto, como usted lo entendió.
Ya que Max alborotado devuelve las probabilidades de cada uno de los tres valores Q para las tres acciones posibles.
Bueno, la primera variable que vamos a crear probablemente se esté refiriendo, por supuesto, a estas probabilidades.
Así que los accesorios son iguales y ahora vamos a tomar nuestra siguiente función mejorada y de acuerdo a usted
de dónde vamos a sacarla.
Bueno, por supuesto, recuerda que importamos el.
Y luego hace un submódulo funcional que recuerdo es el módulo que contiene la mayoría de las acciones
para implementar una red neuronal.
eso es en realidad de este submódulo funcional que nos vamos a llevar a nuestra siguiente función.
Le dimos el atajo F y
Pero dado que le dimos un atajo, comenzamos aquí con un representante de Neph funcional del cual
tomamos nuestra próxima función mejorada.
Aquí está.
Ese es el primero y paréntesis.
Todo bien.
Ahora, ¿qué necesitamos ingresar en la próxima función?
Bueno, eso es, por supuesto, las entidades para las que queremos generar una distribución de probabilidad.
Y cuáles son estas entidades
Bueno, estos son, por supuesto, los valores clave.
Entonces, ahora la pregunta es ¿cómo podemos obtener los valores q?
Bueno, por supuesto, los valores q son la salida de la red neuronal y obtener estos resultados de la
red neuronal.
Bueno, aquí vamos.
Necesitamos tomar nuestra nueva red.
Pero, de hecho, ya lo tenemos porque eso es lo que inicializó al final su función.
Sepa que creamos un modelo autodidacta que no es otra cosa que no funcionará porque es un nuevo objeto de
la clase de red.
Y eso es perfecto.
Podemos simplemente tomar nuestro modelo aquí y luego aplicar este modelo al estado de entrada que es
el argumento aquí y que devolverá los resultados que estamos buscando.
Ese es el valor clave.
Y entonces ahora tu intuición de por qué tuvimos que tomar el modelo aquí para introducirlo en la función
podría mejorar.
Aquellos de ustedes que comiencen con la programación orientada a objetos verán que todo esto se volverá
natural, tan suave a continuación.
Entonces, tomamos nuestro modelo de modelo propio porque este debe ser el modelo del objeto que creamos aquí.
Pero luego tenemos que obtener el resultado de nuestro modelo de red neuronal y, por lo tanto, vamos a escuchar
algunos paréntesis en los que vamos a ingresar Bueno, aquí el estado de entrada llamado estado.
Entonces, lo que queremos hacer al principio es ingresar el estado, pero ahora debemos tener cuidado de que algo se vea como un simple conjunto
en este momento.
adelante vamos a usar esta celda en un estado menor para ponerlo como argumento de la función Seleccionar acción.
Pero recuerde que el estado en realidad va a ser un sensor de antorcha porque más
El argumento del estado que está aquí se convertirá más adelante en este estado menos autodidacta.
Y dado que este es un mundo de respuesta torturado, el modelo lo aceptará.
Así que está bien.
Pero ahora podemos mejorar el algoritmo.
Entonces, tan pronto como el estado es un sensor de antorcha y como dijimos antes, la mayoría de los sensores están envueltos
en voivoda.
Esto también contendrá un gradiente.
Así que ahora lo que vamos a hacer primero es envolver muy bien este estado de entrada que es
un tensor en una antorcha, pero ya que esta es la entrada, dice: Bueno, no habrá diferenciación.
No usaremos el gradiente de esta antorcha estatal Voivode y eso puede ser estaciones y,
por lo tanto, lo que vamos a hacer ahora es convertir este estado de sensor de antorcha en una variable de antorcha como esa.
Pero luego especificar que no queremos los degradados en el gráfico en absoluto que puedan depreciarse al
final de Mudgal.
Bueno, aquí subiremos volátiles igual a verdadero.
ahora tenemos nuestro sensor de soplete de estado en una antorcha muy bien, pero gracias a este Votel es igual al barómetro verdadero.
De modo que
Bien, incluiremos los degradados asociados a estos estados de entrada en el gráfico de todas las condiciones del extremo
en ese modelo.
Entonces ese es otro truco técnico.
Esto nos ahorrará algo de memoria y, por lo tanto, esto mejorará el rendimiento.
Así que recomiendo hacer esto y ahora vamos a agregar algo más divertido.
Se trata de este parámetro de temperatura que acabo de mencionar.
permitiría modular cómo la red neuronal estará segura de qué acción debería decidir jugar.
Entonces, este parámetro de temperatura es el parámetro que nos
Entonces, este parámetro de temperatura será un número positivo y cuanto más cerca esté de cerrarse, menos seguro estará la red
neuronal cuando juegue en acción y cuanto mayor sea el parámetro de temperatura, más segura será la
red neuronal de la acción que decida jugar. .
Y para agregar este parámetro voy a multiplicar las salidas que son las Kugan utilizadas por este parámetro
de temperatura.
Empecemos, por ejemplo, con 7 y voy a especificar aquí que el pequeño comentario T es igual a 7.
Entonces ese es el parámetro de temperatura.
Lo siento, pasa a 7.
Vamos a probar algunos otros, pero solo quiero comenzar con uno pequeño porque vas
a ver eso con uno pequeño.
Nuestro coche todavía se comportará como un insecto, pero luego, al aumentar el parámetro de temperatura, nuestro
código se verá más como un automóvil y decidirá vender, ya que la conducción será mucho mejor.
Y eso tiene sentido porque cuanto más alto es este parámetro de temperatura, más alta
será la probabilidad de que Juval gane, porque, por ejemplo, si tenemos el máximo de los valores de q.
Tomemos algunos números simples uno dos tres si el máximo relleno es de uno a tres iguales.
Por ejemplo 0. 04 0. 11 y abre ochenta y cinco.
Luego, aumentando la temperatura tomando una temperatura más alta.
En este momento la temperatura es igual a uno al tomar una temperatura alta como por ejemplo resta
Tussaud copiemos esto y multipliquemos por ejemplo dos o tres, así que luego tenemos los mismos valores pero multiplicados por el
parámetro de temperatura de tres.
Bueno, obtendremos algo así como cero para el primer valor de Q porque esto tiene una probabilidad muy baja
de que algo alrededor de cero sea algo muy pequeño para la segunda probabilidad, porque esta era todavía
una baja probabilidad.
Entonces, digamos por ejemplo o punto 0 2.
Pero luego esta tercera probabilidad ya que fue la más grande y bastante alta.
Al aumentar la temperatura, esta probabilidad será aún mayor porque vamos a estar aún más seguros
de que este es el valor correcto de Q correspondiente a la acción que debemos jugar y, por lo tanto, va a
ser algo así como 0. 2 98.
Ahora, al aumentar el parámetro de temperatura Bueno, ahora estamos aún más seguros de que la tercera acción aquí
debería ser la acción a jugar porque la probabilidad del valor q de esta acción no es solo la
más grande sino también muy alta.
De eso se trata este parámetro de temperatura.
Se trata de la certeza de la dirección en la que deberíamos decidir jugar.
Todo bien.
Así que voy a eliminar este comentario.
Esto fue solo para explicar.
Y ahora tomemos nuestra acción.
Entonces, ¿cómo vas a hacer eso?
cada uno de los valores clave sino también, y ese es el segundo paso del siguiente método suave.
Bueno, el principio del siguiente método no es solo generar una distribución de probabilidad para
Tomamos un sorteo al azar de esta distribución para obtener nuestra acción final.
Y, por supuesto, tendremos una alta probabilidad de obtener la acción que corresponde al valor Q
que tiene la probabilidad más alta porque así es exactamente como funciona la distribución.
Entonces ahí vamos
Vamos a tener nuestra acción.
Así que vamos a presentar un nuevo voivoda, vamos a llamar acción y esta acción va a ser un
sorteo al azar de la distribución de probabilidad que acabamos de crear en este momento.
Entonces, ¿cómo obtenemos un sorteo al azar?
Bueno, vamos a tomar las probabilidades de cada uno de los valores clave que tomamos como puntales
y luego dardos y luego vamos a usar la función multi Gnomeo y eso nos dará un sorteo al azar
de este proceso de distribución.
Entonces eso es todo lo que obtendrá su reacción.
Perfecto.
Y ahora, por supuesto, vamos a devolver la acción.
Hay un pequeño truco aquí.
¿Cuál es el hecho de que este Propst que multinomial devuelve el PI hacia viable con una placa falsa.
Usted conoce estos diamantes falsos y corresponde al lote y, por lo tanto, para obtener el resultado correcto
que deseamos, esa es la acción en 0 1 o 2.
Solo tenemos que agregar aquí los datos y luego algunos corchetes y las acciones aquí son una o dos
que estamos buscando es contenido y el índice es 0 y 0.
Todo bien.
Y ahí vamos.
Ahora que tenemos nuestra acción gracias a esta función de acción selectiva, la IA ahora sabrá qué acción jugar.
Y cada vez
Estupendo.
Entonces ahora podemos pasar a la siguiente función que será la función de aprendizaje.
Y ahí es donde vamos a entrenar a toda la red neuronal que conoces con toda la propagación
hacia adelante y luego la propagación hacia atrás es categorizar en el sentido.
Bien, básicamente implementaremos todo el entrenamiento del modelo de aprendizaje profundo que está en el
corazón de nuestra inteligencia artificial.
Entonces no puedo esperar para hacer eso.
Este va a ser un tutorial emocionante y te veré en el próximo Statoil.
Hasta entonces disfruta.
YO.