RNN en Python: un poco de código

Authors

Arraxid Ugalde Hernández

Albar Ugalde Hernández

Kin Lopez

Summary

El presente documento es un ejemplo de una red neuronal recurrente (RNN, en inglés) realizada en el lenguaje de programación Python. La RNN es una red neuronal que se especializa en procesar secuencias de datos, como series temporales, texto, audio, video, entre otros. Basado en el artículo de Andrej Karpathy, se presenta un ejemplo de una RNN simple en Python. Fue utilizado como material de apoyo a una presentación realizada el 13 de junio de 2024 en el equipo de I+D de Evidente.ai.

Matemáticamente, la actualización del estado oculto se define como:

h_t = \tanh(W_{hh} h_{t-1} + W_{xh} x_t)

Basicamente se calcula el estado oculto h_t en el tiempo t a partir del estado oculto anterior h_{t-1} y la entrada x_t en el tiempo t. Es una suma ponderada de los estados ocultos anteriores y la entrada actual, pasada a través de la función de activación tangente hiperbólica. dentro se aplica una multiplicación de matrices entre W_{hh} y h_{t-1} y entre W_{xh} y x_t.

Pesos Iniciales (valores aleatorios):

self.W_hh: Una matriz de 10x10 con valores aleatorios.

self.W_xh: Una matriz de 10x10 con valores aleatorios.

self.W_hy: Una matriz de 10x10 con valores aleatorios.

import numpy as np

class RNN:
    def __init__(self):
        self.h = np.zeros((10,))  # Inicializar el estado oculto con ceros
        self.W_hh = np.random.randn(10, 10)  # Matriz de pesos para h_t-1
        self.W_xh = np.random.randn(10, 10)  # Matriz de pesos para x_t
        self.W_hy = np.random.randn(10, 10)  # Matriz de pesos para la salida

    def step(self, x):
        self.h = np.tanh(np.dot(self.W_hh, self.h) + np.dot(self.W_xh, x))
        y = np.dot(self.W_hy, self.h)
        return y

# Ejemplo:
rnn = RNN()
x = np.random.randn(10,)
y = rnn.step(x)
print(y)
[ 0.48900754  0.42066838  0.76977461  2.52137003 -0.79018978 -4.26143095
 -4.04188776 -2.62888391  1.5500645  -1.67772976]

Este vector es el resultado de transformar la entrada x a través del paso de la RNN con los pesos aleatorios inicializados en W_hh, W_xh y W_hy.

En síntesis, Entrada (x): Vector aleatorio de longitud 10.

Salida (y): Vector de longitud 10 calculado mediante el paso de la RNN usando la entrada x y los pesos aleatorios.

La salida refleja cómo la RNN procesa la entrada x para producir una respuesta, dado su estado oculto inicial y las matrices de pesos.

“Going deep”: función composición…

# y1 = rnn1.step(x)
# y = rnn2.step(y1)

Este código es solo un ejemplo de cómo se puede componer una RNN profunda (deep RNN) a partir de múltiples capas de RNN. En este caso, se tienen dos instancias de la clase RNN (rnn1 y rnn2) y se pasa la salida de la primera RNN (y1) como entrada a la segunda RNN (rnn2). Esto permite construir una RNN profunda que puede aprender representaciones más complejas de los datos. En esencia podríamos pensarla como una función composición, donde la salida de la primera función se convierte en la entrada de la segunda función.

Minimal character-level Vanilla RNN model

“Backpropagation through time”: función de pérdida y gradiente

"""
Minimal character-level Vanilla RNN model. Written by Andrej Karpathy (@karpathy)
BSD License
"""
import numpy as np

# data I/O
data = open('D:\\LLM\\input.txt', 'r').read() # should be simple plain text file
chars = list(set(data))
data_size, vocab_size = len(data), len(chars)
print('data has %d characters, %d unique.' % (data_size, vocab_size))
char_to_ix = { ch:i for i,ch in enumerate(chars) }
ix_to_char = { i:ch for i,ch in enumerate(chars) }

# hyperparameters
hidden_size = 50 # size of hidden layer of neurons (reducido)
seq_length = 10 # number of steps to unroll the RNN for (reducido)
learning_rate = 1e-1

# model parameters
Wxh = np.random.randn(hidden_size, vocab_size)*0.01 # input to hidden
Whh = np.random.randn(hidden_size, hidden_size)*0.01 # hidden to hidden
Why = np.random.randn(vocab_size, hidden_size)*0.01 # hidden to output
bh = np.zeros((hidden_size, 1)) # hidden bias
by = np.zeros((vocab_size, 1)) # output bias

def lossFun(inputs, targets, hprev):
  """
  inputs,targets are both list of integers.
  hprev is Hx1 array of initial hidden state
  returns the loss, gradients on model parameters, and last hidden state
  """
  xs, hs, ys, ps = {}, {}, {}, {}
  hs[-1] = np.copy(hprev)
  loss = 0
  # forward pass
  for t in range(len(inputs)):  # Cambiado xrange a range
    xs[t] = np.zeros((vocab_size,1)) # encode in 1-of-k representation
    xs[t][inputs[t]] = 1
    hs[t] = np.tanh(np.dot(Wxh, xs[t]) + np.dot(Whh, hs[t-1]) + bh) # hidden state
    ys[t] = np.dot(Why, hs[t]) + by # unnormalized log probabilities for next chars
    ps[t] = np.exp(ys[t]) / np.sum(np.exp(ys[t])) # probabilities for next chars
    loss += -np.log(ps[t][targets[t],0]) # softmax (cross-entropy loss)
  # backward pass: compute gradients going backwards
  dWxh, dWhh, dWhy = np.zeros_like(Wxh), np.zeros_like(Whh), np.zeros_like(Why)
  dbh, dby = np.zeros_like(bh), np.zeros_like(by)
  dhnext = np.zeros_like(hs[0])
  for t in reversed(range(len(inputs))):  # Cambiado xrange a range
    dy = np.copy(ps[t])
    dy[targets[t]] -= 1 # backprop into y. see http://cs231n.github.io/neural-networks-case-study/#grad if confused here
    dWhy += np.dot(dy, hs[t].T)
    dby += dy
    dh = np.dot(Why.T, dy) + dhnext # backprop into h
    dhraw = (1 - hs[t] * hs[t]) * dh # backprop through tanh nonlinearity
    dbh += dhraw
    dWxh += np.dot(dhraw, xs[t].T)
    dWhh += np.dot(dhraw, hs[t-1].T)
    dhnext = np.dot(Whh.T, dhraw)
  for dparam in [dWxh, dWhh, dWhy, dbh, dby]:
    np.clip(dparam, -5, 5, out=dparam) # clip to mitigate exploding gradients
  return loss, dWxh, dWhh, dWhy, dbh, dby, hs[len(inputs)-1]

def sample(h, seed_ix, n):
  """ 
  sample a sequence of integers from the model 
  h is memory state, seed_ix is seed letter for first time step
  """
  x = np.zeros((vocab_size, 1))
  x[seed_ix] = 1
  ixes = []
  for t in range(n):  # Cambiado xrange a range
    h = np.tanh(np.dot(Wxh, x) + np.dot(Whh, h) + bh)
    y = np.dot(Why, h) + by
    p = np.exp(y) / np.sum(np.exp(y))
    ix = np.random.choice(range(vocab_size), p=p.ravel())
    x = np.zeros((vocab_size, 1))
    x[ix] = 1
    ixes.append(ix)
  return ixes

n, p = 0, 0
mWxh, mWhh, mWhy = np.zeros_like(Wxh), np.zeros_like(Whh), np.zeros_like(Why)
mbh, mby = np.zeros_like(bh), np.zeros_like(by) # memory variables for Adagrad
smooth_loss = -np.log(1.0/vocab_size)*seq_length # loss at iteration 0

# Fijar número de iteraciones
num_iterations = 10000

for n in range(num_iterations):
  # prepare inputs (we're sweeping from left to right in steps seq_length long)
  if p+seq_length+1 >= len(data) or n == 0: 
    hprev = np.zeros((hidden_size,1)) # reset RNN memory
    p = 0 # go from start of data
  inputs = [char_to_ix[ch] for ch in data[p:p+seq_length]]
  targets = [char_to_ix[ch] for ch in data[p+1:p+seq_length+1]]

  # sample from the model now and then
  if n % 100 == 0:
    sample_ix = sample(hprev, inputs[0], 200)
    txt = ''.join(ix_to_char[ix] for ix in sample_ix)
    print('----\n %s \n----' % (txt, ))  # Mover dentro del bloque condicional

  # forward seq_length characters through the net and fetch gradient
  loss, dWxh, dWhh, dWhy, dbh, dby, hprev = lossFun(inputs, targets, hprev)
  smooth_loss = smooth_loss * 0.999 + loss * 0.001
  if n % 100 == 0: print('iter %d, loss: %f' % (n, smooth_loss)) # print progress
  
  # perform parameter update with Adagrad
  for param, dparam, mem in zip([Wxh, Whh, Why, bh, by], 
                                [dWxh, dWhh, dWhy, dbh, dby], 
                                [mWxh, mWhh, mWhy, mbh, mby]):
    mem += dparam * dparam
    param += -learning_rate * dparam / np.sqrt(mem + 1e-8) # adagrad update

  p += seq_length # move data pointer
  n += 1 # iteration counter
data has 145 characters, 29 unique.
----
 mqmfphp­¡trtjnbd­dfrado­esà .soq¡ fqe rzpbchpdzip cmhueflfgup­vÃgatonzap¡eZ ghpg ÃTÃracn¡zanÃuet­jÃZÃrjbje tieeus­cZrjup ineudouozihpnhndvqm­TvhqTmbo.lmmgljZqqvrscÃhzddttaTvj­ TlÃzlirqllgqT­Ãf. l.puq. 
----
iter 0, loss: 33.672958
----
 tlsuctesteestes i­uihrnt vaacota oer dte otzg aaocssnts  ccza asia otr lnmeteot hsur jmzte­ otinirmiesztdrn aieanon n jrinoatateenz cd fml  eoaeezhtp os eaatcrseZce ceaessotrmonogerefzaadadesia ncÃnis 
----
iter 100, loss: 33.464578
----
 aonap crohdÃTl za oro drno e vfiern zrie auianeontrs dartas oah­ Ãtteaà hicr oao eifdal­jhulrtentamestteobril ia beboamrpoeta dataef ts te me jeumanteaonores dZ ÃmÃà o arectasoutecdeZates eacarttate d 
----
iter 200, loss: 32.739338
----
 triutessl dà tanal e o ord honbe dc¡atebtacol  du ereeoe mecaorte zacZten pdajarares s ¡carl danfmte eÃuraoqmioiaete durabnus Zà pesn sde h­bateras orias tatees de obrahustelsu tauÃdsl es es me vr mo  
----
iter 300, loss: 31.502769
----
 o de pagntrmre os mabae  ndecre el aabmeq do mn pl sÃnos elto onífbco des ban­itee Ziciibe de pacitre eta¡orde siqhog muianos pocaenÃr de ba¡ote  hoposstaquiarontere os magtà taajÃl di pl vonar hs ¡a 
----
iter 400, loss: 29.645736
----
 ra vl higmtrmmn eramteta de Zacatezanortadel manhe me ma¡merodesuatetano vuideste iitrvmenoe dusetatanoes du de hz ite s vicros tÃipten zag zras surias sureciantes qu¡asnestadv di Zagntetabo  iciers s 
----
iter 500, loss: 27.406359
----
 icores más reciedtes durantr mil rraseprades ziciajos mà erata tecs oucaneza al hagnífico ertiafajos máns dus eranor dnqurata qzs mabmers sápcies sajos hicierasijos de ml vá oranoe anoequia al m 
----
iter 600, loss: 25.102227
----
 ras zacatecanos hicieron el dontr mi¡s rdcienoe mábqre aba­or mo¡r ss hocataca ousatacaide hicitres dunante sus trabajos más reciebtes duranteq uiagoÃs hos hrhmerta oÃs s ticiajos más recientesn Ãu 
----
iter 700, loss: 22.893583
----
 os hicie­on el maZos de bagjÃrahonte me Zagnítacajos pÃis s cicieran mà merme mámtrms piestequiarme sus trabajos mÃos recientes durante mi primera visita al sagjos derie ui primeranortanos macoe qui 
----
iter 800, loss: 20.837354
----
  de obsequjars du¡a tecajos más recientes de omeranoequiajan sus trabajos más recientes durante mi primera vi ieeses adecanos mÃrecomeraboe ris tecanes Zacans tecoede mi ierme ma premeron e aitres d 
----
iter 900, loss: 18.942730
----
 trantequuas zacates des dÃsotas duran elenoe Ziemanor mue trde ragvífico estado de Zacatees duras s riciermi lurede obs tecates dás s visita mz ma oà mecientas poeaazos el hagvà vianor de obsequiare 
----
iter 1000, loss: 17.208418
----
 tes durante mi primera visita al magnífico es zÃostrel durabte sisjjras poecante sesetaba de ol magnífico ehtado de Zacates dusotanoe dicatads du ar paiabs tacataqtici ptetasazacate mi prieero de ia 
----
iter 1100, loss: 15.626393
----
 ra visita al mannífico estado de Zacas s abte mi primeranos micmeron el honor de obsequiarme sus trabajos más recientes durante mi prineron el honor de obsequiarme sus trabajos más recienteseporta  
----
iter 1200, loss: 14.186098
----
 ico estado de Zacate hi porma abajor sueutede oate ai pritera visita abajos musbtecanos hicieron el honor de obsequiarme sus trabajos más reciabajre epo te mabmermalotre dus ta más s diers duran es  
----
iter 1300, loss: 12.875896
----
 res poetas zajma ag Ãqurante mi primeronde Ziciante mi primera visita al magnífico estado de Zacateta vs Zacatrenanoras poera au más recientes durante mi pridero ta oÃsequiarme sus trabajos más rec 
----
iter 1400, loss: 11.685253
----
 os hicieron el honor de obsequiarme sus trabajos ml mÃjos de prcneron el honor de obsequiarme sus trabajos más recientes durante sisutacal ma ve al eqiioranacagnífico estado de Zacatetamestado de Ze 
----
iter 1500, loss: 10.603836
----
  de obsequiarme sus trabajos más recientes sls tados zacatera vl Zecme tacades mi¡s rocitntesedurantr mi primera visita mástres do ahante oi riciaron el honor me obs s al recmenor edesa os micitron  
----
iter 1600, loss: 9.622228
----
 drabajo di iacate aderos s ricierme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi pr 
----
iter 1700, loss: 8.731253
----
 tes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honom de obsequiarme sus trabajos más recacote mi prentequianme mi pr meranvete abse Zici primera visita al macis tiabtec 
----
iter 1800, loss: 7.922896
----
 ranoe Zicieron el honor de obsequierme sus trabajos mirpaiagnorte sl honorme sus drabajos  l¡s re Zicrera vicico estado de Zacates desuma te poetas zacatecanos hiciero de Zacates me ob durante mi prim 
----
iter 1900, loss: 7.189723
----
 ico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hiciero desutadal s ahontr md ranos durante más re 
----
iter 2000, loss: 6.524646
----
 res poetas zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más rec 
----
iter 2100, loss: 5.921489
----
 os hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita anoequiarme sus trad panabs da obsequiarme sus trabajos más recientes durante mi primera vitatas zacateconota 
----
iter 2200, loss: 5.374508
----
  de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes duraste mi primeron el honor de o 
----
iter 2300, loss: 4.878603
----
 trabajos más recientes durante mi primera visita al magnífico estado de Zacateqo es iagta mieracate ai primera visita al magnífico ecanvus tajab po dera al magnífico estado de ZacatecanZs hicotres 
----
iter 2400, loss: 4.428889
----
 tes durante mi primera visita al magnífico estado de Zacate miestas poetas zacates di Zacateciepoe al magnífico estado de ZacateqZ os hocoe al haZaonera visura auontas zacatecanÃs hognte más recien 
----
iter 2500, loss: 4.021158
----
 ra visita al sagho aiajor di poimera oi rmciepoetas zacatecanos hicieron el honor me obsequiarme sus trabajos ml sures pi poime a aiaros de oatecinos s ciamos de obsequiarme riciaron el hoiere visita  
----
iter 2600, loss: 3.651557
----
 ico estado de Zacateqa os hhsiorenoe e sbsequiarme magZÃranvs ricieron el honor de obsequiarme sus trabajos ma¡s reciebtes dÃramanon ml pagno trdo rasnte me primeranos hicieron el honor de obsequiarme 
----
iter 2700, loss: 3.316413
----
 ces poetas zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más rec 
----
iter 2800, loss: 3.012555
----
 os hiciero de Zacate mi¡s raties qusatacaios d­¡iermestado  iiitcmanor de obsequiarme sus trabajvs pám recientes durante mi primera visita al magnífico estado de Zacate si primera di Zacates di pant 
----
iter 2900, loss: 2.737043
----
  dus bs poetas decanoeqidurantequrabaiorabajor mástra dis ta on e aioranajos más reciepres puian es poetas zacatecanos hisitrabajos más recienmes dás tas durante mi priee al elrhon e Zioredes dura 
----
iter 3000, loss: 2.487295
----
 trabajos mur do macas tacatetano tados hanote al magnífico estado de Zacatesnnos hicieron el honor de obte mi¡strmano­tada aranor du b¡ntes durante mi primera visita al magnífico estado de Zacatecan 
----
iter 3100, loss: 2.260804
----
 tes durante mi primera vlsita azanor de magoà aiabar edepo tr predo trebagon mi poimera visita al magnífico el aloranaequrarajos micienon el donos nuian es hunorse ui premestadm  pontas zacatecanos h 
----
iter 3200, loss: 2.055449
----
 ra visita al magnífico estado de Zacatecanos hicieros el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacateq dequhonte sus trabajos más recient 
----
iter 3300, loss: 1.869294
----
 ico estado  i Zbanon mi prite al s miciers durante di Zacatranajos más recientes nurante mi primers de Zacates záraradestata oi piimerabaioraba oi mi poetara visita al magnífico estado de Zacateq m 
----
iter 3400, loss: 1.700461
----
 res poetas zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacateq de Zacaaje pientequieron el honor de obsequiarme sus traba 
----
iter 3500, loss: 1.547353
----
 us hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hici ronterme más recientes durantel di Zacatecanos hicieron el honor de  
----
iter 3600, loss: 1.408489
----
  de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacateqbtes dái re tu me obsetiio ricierres puran ed do or de obsequiarme sus trabajos más recientes dur 
----
iter 3700, loss: 1.282580
----
 trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zac 
----
iter 3800, loss: 1.168345
----
 tes durante mi primera vicicreest du abmpoetaste Zacates eírrranvron e oete mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante  
----
iter 3900, loss: 1.064727
----
 ra visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatee nis Zacos el ho or mu abses de raca 
----
iter 4000, loss: 0.970767
----
 ico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más  
----
iter 4100, loss: 0.885500
----
 res poetas zacatecanos dicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatequi re taaateranvs Zacatecanos hicieron el honor de oa al ho 
----
iter 4200, loss: 0.808130
----
 os hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más rocientes durante mi pr 
----
iter 4300, loss: 0.737909
----
  de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estadon es stehanorabaioeta al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más r 
----
iter 4400, loss: 0.674207
----
 trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes duiante mi primera visita al magnífico estado de Zac 
----
iter 4500, loss: 0.616360
----
 tes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el 
----
iter 4600, loss: 0.563848
----
 ra visita al magnífico estadoe eus dus tecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequia 
----
iter 4700, loss: 0.516200
----
 ico estado de Zacate mi pr me on es me ob el honorado tecienoe sus tacas sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus  
----
iter 4800, loss: 0.472917
----
 res poetas zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hiciero de Zacatel hisetacaderanortade Zacate di ricme 
----
iter 4900, loss: 0.433601
----
 os hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi pr 
----
iter 5000, loss: 0.397877
----
  de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequianme sus trabajos más recientes durante mi primera visita al magn 
----
iter 5100, loss: 0.365441
----
 trabajos más recientes durante mi primera visita al magnífico estado de Zacateqa os nÃrecien es durante mi primera visita al magnífacane de oacates duranos susetres vuiacres durante mi primera visi 
----
iter 5200, loss: 0.335943
----
 tes durante mi primera visitr de obsequiarme sus trabajos más recientes durantequiaron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacateda v 
----
iter 5300, loss: 0.309130
----
 ra visita al magnífico estado de Zacates me Zagmífico estado di pues s Zatada visita advptica os honob de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Za 
----
iter 5400, loss: 0.284777
----
 ico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más  
----
iter 5500, loss: 0.262618
----
 res poetas zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatetanos hicieron el honor de Zbsequra  poite al magnífico est 
----
iter 5600, loss: 0.242456
----
 os hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi pr 
----
iter 5700, loss: 0.224102
----
  de obsequiarmeesus tecienteta oe Zás reciente ta oáe ricieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al macaífico es díajos hi primera visita al magnífico  
----
iter 5800, loss: 0.207414
----
 trabajos más recientes durante mi primera visita al magnífico estado de Zacates de Zacates durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos 
----
iter 5900, loss: 0.192202
----
 tes durante mi primera visita al magnífico estado de Zacate ZiequiaZte de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Za 
----
iter 6000, loss: 0.178346
----
 ra visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi pfinoranajos mà perabnes hicieron dà hisetecanos Zacieron el honor de obsequiarme  
----
iter 6100, loss: 0.165743
----
 ico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacateqa vs hiiicran s dpoieq poeta al sucatecanos hicieron el  
----
iter 6200, loss: 0.154245
----
 res poetas zacatecanos hiciaron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más rec 
----
iter 6300, loss: 0.143756
----
 os hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de ZacateqZ es honotede oisrtr me obsequial zacateciei raaoeses tacmeranaiqurantes durant 
----
iter 6400, loss: 0.134180
----
  de obsequiarme sus trabajos más recite mi pbimera visita al magnífico estado de Zacatecanos hicieron el ponte te Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi  
----
iter 6500, loss: 0.125455
----
 trabajos más recientes durante mi primera visita al magnífico estado de Zacatequa ­urateca visita al megnorabazonmes durante mi primera visita al Zagnífico estado de Zacatequa s sitatanoequiarme su 
----
iter 6600, loss: 0.117472
----
 tes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme susatraaajs  iciere pecieron el honor de obsequiarme sus trabajos más recientes durante mi primestad 
----
iter 6700, loss: 0.110178
----
 ra visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacateqa os háitre ditacanos hicieron el h 
----
iter 6800, loss: 0.103529
----
 ico estado de Zacateqa os hiciontes durante mi primera visita al magnífico estado de Zacates hi primera visita al magvífico estado de Zacateqntes durarte más recientes durabajos ml manon el honor d 
----
iter 6900, loss: 0.097439
----
 res poetas zacatecanos hicieron el honor de obsequiarme sus erabajor me pacatrabajos más reciete zacatacanos sÃsuta ada và eraaastz abvpoime al Zagnífico estado de Zacatecanos hicieror pontada di Zi 
----
iter 7000, loss: 0.091860
----
 os hicieron el honor de obsequiarme sus trabajos más reciebtes durante mi primera visita al magnífico estado de Zacateta visita al zacatecanos hicieron el honor de obsequiarme sus trabajos más reci 
----
iter 7100, loss: 0.086745
----
  de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacateqnn s hicitren zacatero susataqaioranos hiiitraras rocieron el honor de obsequiarme sus trabajos má 
----
iter 7200, loss: 0.082071
----
 trabajos más recientes durante mi primera visita al magnífico estado de Zacateq del me ouse eiorm  el manor di poes s tacajos más recientes durarazacaceq da alos riaior de iis trabajor mi primera v 
----
iter 7300, loss: 0.077770
----
 tes durante mi primera visita al magnífico estado de Zacateq más teciel abapontes más s tiantes duranos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al mag 
----
iter 7400, loss: 0.073823
----
 ra visita al magnífico estado de Zacatequmera vicietesm poetas zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de ZacateqZaca o 
----
iter 7500, loss: 0.070213
----
 ico estado de Zacates misptaca vbsitacanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatequi ra vi iras recientes durante mi prim 
----
iter 7600, loss: 0.066887
----
 res poetas zacatecanos hicitres zlcatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme  
----
iter 7700, loss: 0.063823
----
 os hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera vis ta al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi pr 
----
iter 7800, loss: 0.060995
----
  de obsequiarme sus trabajos más recientes durante ui primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magn 
----
iter 7900, loss: 0.058400
----
 trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zac 
----
iter 8000, loss: 0.055994
----
 tes durante mi primera visita al magnífico estado de Zacateqanoraias hicitrabanoe on r gate mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más re 
----
iter 8100, loss: 0.053770
----
 ra visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarm 
----
iter 8200, loss: 0.051729
----
 ico estado de Zacatetados hiciaron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequrarme sus trabajos más  
----
iter 8300, loss: 0.049833
----
 res poetas zacatecanos hicieron el honor de obsequiarme suiatas suranne mi primera visita al magnífico estado de Zacatequn zaaate ansequiera visita al magnífico estado de Zacate anos hicieron el hon 
----
iter 8400, loss: 0.048071
----
 os hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacateta visita a visita al magnoranvs racateta visitacade aioraras surite Zacot el hu 
----
iter 8500, loss: 0.046432
----
  de obsequiarme sus trabajos más recie¡s sus trabajos más recientes durante ai primera visita al mÃgiífico astado di Zacatesanos macotres poraa vs honob es pretadora visuta al magnífico estado de  
----
iter 8600, loss: 0.044920
----
 trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zac 
----
iter 8700, loss: 0.043502
----
 tes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera vesita altm di primera visita al magnoequstrma visita  
----
iter 8800, loss: 0.042181
----
 rm de Zacates mátara visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico ditico premelt de Zacatecanos hici 
----
iter 8900, loss: 0.040963
----
 ico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más  
----
iter 9000, loss: 0.039819
----
 res poetas zacatecanos hiciaron el honor de obsequiarme sus trabajos más recientes durante mi primera vÃsuta azabajot du obsequiarme sus trabajos ml sus trabajos más recientes duramajos más recient 
----
iter 9100, loss: 0.038746
----
 os hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacate Zacos me Zacate mi primera visita al magnífico estado de Zacatecanos hicieron  
----
iter 9200, loss: 0.037736
----
  de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primero de Zacatequia  
----
iter 9300, loss: 0.036799
----
 trabajos más recientes durante mi primera visita al magnífico estado de Zacates mi riimera visita al magnífico estado de Zacatequier de oiorabajos tjcieroa al raci primera visita al magnífico esta 
----
iter 9400, loss: 0.035909
----
 tes durante mi primera visita al magnífico estado de Zacatequn ragatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacates de Za 
----
iter 9500, loss: 0.035072
----
 ra visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarm 
----
iter 9600, loss: 0.034295
----
 ico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecanos hicieron el honor de obsequiarme sus trabajos más  
----
iter 9700, loss: 0.033558
----
 res poeras zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de ZacateqbmÃruioramanor mi primeranvisita al magnífico estado de Za 
----
iter 9800, loss: 0.032858
----
 os hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacateqa vranon rmalortr de obsequiarme sus trabajos más recientes durante mi primera 
----
iter 9900, loss: 0.032191

El output que estás viendo es el resultado de una Red Neuronal Recurrente (RNN) que ha sido entrenada para generar texto. En este caso, el modelo se ha entrenado con el texto: “Tres poetas zacatecanos hicieron el honor de obsequiarme sus trabajos más recientes durante mi primera visita al magnífico estado de Zacatecas.” y ha generado nuevas secuencias de texto a partir de este entrenamiento.

Explicación detallada del proceso:

Entrenamiento del Modelo Datos de Entrada y Objetivo:

Entrada (input): Una secuencia de caracteres del texto proporcionado (el texto anterior). Objetivo (target): La siguiente secuencia de caracteres que queremos que el modelo prediga.

Parámetros del Modelo:

hidden_size: El tamaño de la capa oculta (número de neuronas).

seq_length: La longitud de la secuencia que se usa para entrenar la RNN.

learning_rate: La tasa de aprendizaje utilizada para ajustar los pesos del modelo.

Entrenamiento: El modelo aprende a predecir el siguiente carácter en una secuencia basándose en los caracteres anteriores. Se realiza un “forward pass” para calcular las predicciones y un “backward pass” para ajustar los pesos del modelo utilizando retropropagación. Generación de Texto Inicio: Se proporciona una semilla (seed) al modelo para iniciar la generación de texto. Proceso de Muestra (Sampling): A partir de la semilla, el modelo genera caracteres uno por uno. Cada nuevo carácter generado se utiliza como entrada para predecir el siguiente carácter en la secuencia. Output Generado El output que se muestra es el resultado del proceso de entrenamiento y generación de texto.

Significado del Output El output representa cómo la RNN ha aprendido a generar texto basándose en el texto de entrada. A medida que el número de iteraciones aumenta, el modelo mejora en la generación de texto que se asemeja al texto de entrenamiento.

Loss: El valor de “loss” (pérdida) muestra cómo de bien se está desempeñando el modelo. Una pérdida más baja generalmente indica un mejor rendimiento. En resumen, el output ilustra el proceso de aprendizaje de la RNN, desde la generación de texto casi aleatorio hasta la producción de texto que comienza a tener sentido y estructura similar al texto de entrenamiento.

Further reading

Otro texto para entender las RNN podría ser Introduction to statistical learning de Gareth James, Daniela Witten, Trevor Hastie y Robert Tibshirani.

También estaremos encantados de escuchar tus recomendaciones. ¡Gracias por leer!

Contenido audiovisual

Si prefieres contenido audiovisual, te recomendamos los siguientes canales de YouTube:

Referencias: