Policy gradients kyun use karein? Value-based methods (Q-learning) mein aap values seekhte ho aur greedily act karte ho. Lekin continuous ya high-dimensional action spaces ke liye (jaise ek aircraft ke control-surface deflections), actions par maximize karna bahut mushkil ho jaata hai. Policy methods seedha action distribution ko parameterize karte hain aur θ ko gradient ascent se optimize karte hain — koi argmax ki zaroorat nahi.
Hum chahte hain ∇θJ(θ). Mushkil yeh hai: expectation τ par hai, jiski distribution θ par depend karti hai. Hum gradient ko seedha expectation ke andar naively push nahi kar sakte.
Step 1 — expectation ko integral ke roop mein likhna.pθ(τ) ko trajectory τ ki probability maano:
J(θ)=∫pθ(τ)R(τ)dτ.Yeh step kyun? Ek expectation hoti hi hai probability-weighted integral; isse explicitly likhne se hum differentiate kar sakte hain.
Step 2 — differentiate karo. Sirf pθ hi θ par depend karta hai:
∇θJ=∫∇θpθ(τ)R(τ)dτ.
Step 3 — log-derivative trick. Hum yeh identity use karte hain:
∇θpθ(τ)=pθ(τ)∇θlogpθ(τ),
jo simply ∇logf=f∇f ko rearrange karna hai. Yeh step kyun? Yeh pθ(τ) ko weight ki tarah wapas insert karta hai, integral ko ek sampleable expectation mein badal deta hai:
∇θJ=∫pθ(τ)∇θlogpθ(τ)R(τ)dτ=Eτ[∇θlogpθ(τ)R(τ)].
Step 4 — logpθ(τ) expand karo. Trajectory probability factorize hoti hai:
pθ(τ)=envp(s0)∏t=0Tpolicyπθ(at∣st)env dynamicsp(st+1∣st,at).log lene se products sums ban jaate hain; phir ∇θhar us term ko khatam kar deta hai jisme θ nahi hai (environment terms p(s0) aur p(st+1∣st,at)):
∇θlogpθ(τ)=∑t=0T∇θlogπθ(at∣st).Yeh kyun matter karta hai:hume environment ka koi model nahi chahiye. Yahi REINFORCE ka jaadu hai.
Reward-to-go. Time t par liya gaya action un rewards ko affect nahi kar sakta jo pehle ho chuke hain. Toh poore R(τ) ki jagah t ke baad ka return use karo:
∇θJ=E∑t∇θlogπθ(at∣st)Gtt′≥t∑γt′−trt′.Kyun? Action se independent irrelevant reward hatane se variance kam hota hai bina koi bias add kiye.
Baseline. Koi bhi aisi function b(st) subtract karo jo at par depend na kare:
∇θJ=E[∑t∇θlogπθ(at∣st)(Gt−b(st))].
Yeh unbiased hai kyunki Ea[∇θlogπθ(a∣s)b(s)]=b(s)∇θ=1a∑πθ(a∣s)=0. Ek achha baseline b(s)=V(s) hai; tab Gt−b(st) ek advantage estimate ban jaata hai.
Soch ek kutte ko train karna. Tum use exactly nahi bata sakte kya karna hai — bas use try karne dete ho. Jab woh koi trick kare aur tum treat do, toh woh trick dobara karne ki probability thodi zyada ho jaati hai. REINFORCE bilkul aisa hi hai: robot random actions try karta hai, aur jo bhi actions bade reward se pehle aaye unhe thoda "vote up" milta hai. Yeh hazaaron baar karo aur robot ki random guessing dheere dheere skill ban jaati hai. Mathematical trick (∇logπ) bas kitna har knob ko upar ghumana hai taaki achha action aur likely ho sake.