Сомнения в "обратном распространении LSTM" и его экспоненциально долгом обучении

Вот реализация обратного распространения LSTM с нуля, я не уверен с dfhs (производной от состояния hs), я делаю это правильно? Пожалуйста, исправьте меня, где я ошибаюсь в своем коде, который я пробовал так много раз, но предсказание LSTM ужасно, неужели обучение LSTM занимает больше времени?? Любые предложения по обратному распространению очень важны, так как я не могу понять, что идет не так - заранее спасибо

Я попытался увеличить итерации до 10000 с 5000, что было изначально, и попытался уменьшить скорость обучения и увеличить размер пакета

def backward(xint,hprev,pcs,vy,nw):
    xs , ys , cs , hs , fg , ig , cg , og = {},{},{},{},{},{},{},{}
    hs[-1] = hprev
    cs[-1] = pcs
    intx = xint
#Forward propagation to store all the state necessary for back prop
    for i in range(nw):
        xp = np.zeros(xl)
        xp[intx] = 1

        x = np.hstack((hs[i-1],xp))
        xs[i] = x
        fg[i] = sigmoid(np.dot(x,wf))
        ig[i] = sigmoid(np.dot(x,wi))
        cg[i] = tangent(np.dot(x,wc))
        csc = (cs[i-1] * sigmoid(np.dot(x,wf))) + (sigmoid(np.dot(x,wi)) * sigmoid(np.dot(x,wc)))
        cs[i] = (cs[i-1] * sigmoid(np.dot(x,wf))) + (sigmoid(np.dot(x,wi)) * sigmoid(np.dot(x,wc)))
        og[i] = sigmoid(np.dot(x,wo))
        hs[i] = sigmoid(np.dot(x,wo)) * tangent(csc)
        hsc = sigmoid(np.dot(x,wo)) * tangent(csc)
        ys[i] = sigmoid(np.dot(hsc,wy))
        intx = np.argmax(vy[i-1])

    dwy = np.zeros((yl,d))
    dwf = np.zeros((xl+yl,yl))
    dwi =  np.zeros((xl+yl,yl))
    dwc =  np.zeros((xl+yl,yl))
    dwo =  np.zeros((xl+yl,yl))

    dfhs = np.zeros(yl)
    dfcs = np.zeros(yl)
    totalError = 0
#Back Propagation
    for i in reversed(range(nw)):
        merror = ys[i] - vy[i]
        dwy += np.dot(np.atleast_2d(hs[i]).T,np.atleast_2d((merror*dsigmoid(ys[i]))))
        error = np.dot(merror,wy.T)
        totalError += np.sum(error)
        e = np.clip(error+dfhs,-6,6)
        dho = tangent(cs[i]) * e
        dho = dsigmoid(og[i]) * dho
        dwo += np.dot(np.atleast_2d(xs[i]).T,np.atleast_2d(dho))
        dc = og[i] * e * dtangent(cs[i])
        dc = np.clip(dc + dfcs,-6,6)
        dhf = cs[i-1] * dc
        dhf = dsigmoid(fg[i]) * dhf
        dwf += np.dot(np.atleast_2d(xs[i]).T,np.atleast_2d(dhf))
        dhi = cg[i] * dc
        dhi = dsigmoid(ig[i]) * dhi 
        dwi += np.dot(np.atleast_2d(xs[i]).T,np.atleast_2d(dhi))
        dhc = ig[i] * dc
        dhc = dsigmoid(cg[i]) * dhi 
        dwc += np.dot(np.atleast_2d(xs[i]).T,np.atleast_2d(dhc))

        dfhs = np.dot(dho,wo.T)[:yl]+np.dot(dhc,wc.T)[:yl]+np.dot(dhi,wi.T)[:yl]+np.dot(dhf,wf.T)[:yl]
        dfcs = fg[i] * dc
    return totalError , hs[nw-1] , cs[nw-1] , dwf , dwi , dwc , dwo , dwy

Ожидаемый Да:

[59, 28, 60, 4, 16, 41, 59, 23, 59, 49, 61, 60, 17, 1, 28, 59, 60, 66, 41, 28, 49, 16, 41, 60, 26, 22, 4, 12, 22, 60, 17, 16, 18, 28, 60, 9, 41, 16, 4, 60, 63, 41, 16, 34, 51, 79, 28, 65, 60, 65, 41, 28, 22, 4, 12, 61, 60, 1, 28, 60, 9, 16, 34, 59, 65, 60, 1, 23, 4, 12, 28, 79, 9, 60, 63, 41, 22, 59, 12, 9, 16, 41, 4, 28, 65, 60, 23, 59, 60, 1, 23, 12, 60, 51, 28, 65, 60, 23, 59, 63, 16, 60, 22, 60, 1, 16, 41, 41, 23, 51, 79, 28, 60, 46, 28, 41, 4, 23, 59, 47, 60, 45, 28, 60, 79, 22, 5, 60, 16, 59, 60, 1, 23, 12, 60, 22, 41, 4, 16, 34, 41, 14, 79, 23, 18, 28, 60, 51, 22, 52, 18, 61, 60, 22, 59, 65, 60, 23, 9, 60, 1, 28, 60, 79, 23, 9, 63, 28, 65, 60, 1, 23, 12, 60, 1, 28, 22, 65, 60, 22, 60, 79, 23, 63, 63, 79, 28, 60, 1, 28, 60, 52, 16, 34, 79, 65, 60, 12, 28, 28, 60, 1, 23, 12, 60, 51, 41, 16, 17, 59, 60, 51, 28, 79, 79, 5, 61, 60, 12, 79, 23,........]

Утром, когда Грегор Самса проснулся от смутных снов, он обнаружил, что превратился в своей постели в ужасных паразитов. Он лежал на спине, похожей на доспехи, и, немного приподняв голову, он мог видеть его коричневый живот, слегка выпуклый и разделенный арками на жесткие участки. Постельные принадлежности едва могли прикрыть его и, казалось, были готовы соскользнуть в любой момент. Его многочисленные ноги, ничтожно худые по сравнению с остальной частью его тела, беспомощно махали, когда он смотрел.

"Что случилось со мной?" он подумал. Это был не сон. Его комната, настоящая человеческая комната, хотя и слишком маленькая, мирно лежала между четырьмя знакомыми стенами. На столе лежала коллекция образцов текстиля - Самса была коммивояжером, а над ней висела картина, которую он недавно вырезал из иллюстрированного журнала и поместил в красивую позолоченную рамку. На нем была изображена дама в меховой шапке и меховом боа, которая сидела в вертикальном положении, поднимая тяжелую меховую муфту, которая закрывала всю ее предплечье в направлении зрителя.

Затем Грегор повернулся, чтобы посмотреть в окно на пасмурную погоду. Капли дождя.......

Actual Output:
[79, 66, 41, 16, 67, 49, 66, 73, 5, 9, 18, 76, 35, 22, 69, 75, 28, 55, 60, 6, 28, 6, 75, 62, 44, 62, 6, 62, 23, 23, 20, 35, 20, 20, 23, 55, 35, 35, 6, 53, 35, 63, 63, 63, 63, 63, 53, 63, 27, 53, 53, 23, 6, 26, 55, 35, 16, 23, 55, 38, 23, 38, 53, 53, 53, 74, 79, 79, 70, 61,........]
/*lGro"gG2yfk9;aq8e: ReR8xMxRxii1;11i:;;R);ttttt)t*))iRS:;oi:ziz)))0llB,b0oo)4***0ooooooooooooooooooooo00:oOzoo0:oooczzzznoooo9oomWaBob,1oFm"5ferr499hAd1""rrfBII..AAAAhkCWk...%%;qzz7/V@@PLx:P@o0PIPPJJk%M96*b@,BoTi ,/mU)UM*0YBa;oOjouu':ahhBBhQçdVgfPtP-L0JFuuJOwwsY6E/5XdzzgBB9z05LuVxx7xy;LLU6@eee..B5QuL@'ilPg66:@@@4@e@,4,k.../v?

0 ответов

Другие вопросы по тегам