word2vec中的交叉熵损失的导数
我正在尝试通过CS224D斯坦福大学在线课程材料的第一个问题集解决问题,而我对问题3A遇到一些问题:当使用带有softmax预测函数和交叉熵损失函数的跳过语法word2vec模型时,我们想要计算相对于预测单词向量的梯度。所以给定softmax函数: wi^=Pr(wordi∣r^,w)=exp(wTir^)∑|V|jexp(wTjr^)wi^=Pr(wordi∣r^,w)=exp(wiTr^)∑j|V|exp(wjTr^) \hat{w_i} = \Pr(word_i\mid\hat{r}, w) = \frac{\exp(w_i^T \hat{r})}{\sum_{j}^{|V|}exp(w_j^T\hat{r})} 和交叉熵函数: CE(w,w^)=−∑kwklog(wk^)CE(w,w^)=−∑kwklog(wk^)CE(w, \hat{w}) = -\sum\nolimits_{k} w_klog(\hat{w_k}) 我们需要计算∂CE∂r^∂CE∂r^\frac{\partial{CE}}{\partial{\hat{r}}} 我的步骤如下: CE(w,w^)=−∑|V|kwklog(exp(wTkr^)∑|V|jexp(wTjr^))CE(w,w^)=−∑k|V|wklog(exp(wkTr^)∑j|V|exp(wjTr^))CE(w, \hat{w}) = -\sum_{k}^{|V|} w_klog(\frac{\exp(w_k^T \hat{r})}{\sum_{j}^{|V|}exp(w_j^T\hat{r})}) =−∑|V|kwklog(exp(wTkr^)−wklog(∑|V|jexp(wTjr^))=−∑k|V|wklog(exp(wkTr^)−wklog(∑j|V|exp(wjTr^))= -\sum_{k}^{|V|} w_klog(\exp(w_k^T \hat{r}) - w_klog(\sum_{j}^{|V|}exp(w_j^T\hat{r})) 现在给定是一个热向量,而我是正确的类:wkwkw_k CE(w,w^)=−wTir^+log(∑|V|jexp(wTjr^))CE(w,w^)=−wiTr^+log(∑j|V|exp(wjTr^))CE(w, \hat{w}) = - w_i^T\hat{r} + log(\sum_{j}^{|V|}exp(w_j^T\hat{r})) ∂CE∂r^=−wi+1∑|V|jexp(wTjr^)∑|V|jexp(wTjr^)wj∂CE∂r^=−wi+1∑j|V|exp(wjTr^)∑j|V|exp(wjTr^)wj\frac{\partial{CE}}{\partial{\hat{r}}} = -w_i + \frac{1}{\sum_{j}^{|V|}exp(w_j^T\hat{r})}\sum_{j}^{|V|}exp(w_j^T\hat{r})w_j 这是正确的还是可以进一步简化?我想尝试确保自己走在正确的轨道上,因为问题集解决方案未在线发布。另外,正确完成书面作业对正确完成编程作业很重要。