{"action":"created","issue":{"url":"https://api.github.com/repos/fumin/ntm/issues/2","labels_url":"https://api.github.com/repos/fumin/ntm/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/fumin/ntm/issues/2/comments","events_url":"https://api.github.com/repos/fumin/ntm/issues/2/events","html_url":"https://github.com/fumin/ntm/issues/2","id":123782792,"number":2,"title":"memOp weight update","user":{"login":"qingyuanxingsi","id":1770516,"avatar_url":"https://avatars.githubusercontent.com/u/1770516?v=3","gravatar_id":"","url":"https://api.github.com/users/qingyuanxingsi","html_url":"https://github.com/qingyuanxingsi","followers_url":"https://api.github.com/users/qingyuanxingsi/followers","following_url":"https://api.github.com/users/qingyuanxingsi/following{/other_user}","gists_url":"https://api.github.com/users/qingyuanxingsi/gists{/gist_id}","starred_url":"https://api.github.com/users/qingyuanxingsi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qingyuanxingsi/subscriptions","organizations_url":"https://api.github.com/users/qingyuanxingsi/orgs","repos_url":"https://api.github.com/users/qingyuanxingsi/repos","events_url":"https://api.github.com/users/qingyuanxingsi/events{/privacy}","received_events_url":"https://api.github.com/users/qingyuanxingsi/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-12-24T09:49:21Z","updated_at":"2015-12-24T13:32:10Z","closed_at":null,"body":"I have read the code, I can see that the controller weights are updated by RMSProp, but **where is the memOp weights updated**?? I can see that the gradients of parameters are computed, but they have never been used to update their values. Would you be so kind as to clarify this for me??"},"comment":{"url":"https://api.github.com/repos/fumin/ntm/issues/comments/167112593","html_url":"https://github.com/fumin/ntm/issues/2#issuecomment-167112593","issue_url":"https://api.github.com/repos/fumin/ntm/issues/2","id":167112593,"user":{"login":"fumin","id":765222,"avatar_url":"https://avatars.githubusercontent.com/u/765222?v=3","gravatar_id":"","url":"https://api.github.com/users/fumin","html_url":"https://github.com/fumin","followers_url":"https://api.github.com/users/fumin/followers","following_url":"https://api.github.com/users/fumin/following{/other_user}","gists_url":"https://api.github.com/users/fumin/gists{/gist_id}","starred_url":"https://api.github.com/users/fumin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fumin/subscriptions","organizations_url":"https://api.github.com/users/fumin/orgs","repos_url":"https://api.github.com/users/fumin/repos","events_url":"https://api.github.com/users/fumin/events{/privacy}","received_events_url":"https://api.github.com/users/fumin/received_events","type":"User","site_admin":false},"created_at":"2015-12-24T13:32:10Z","updated_at":"2015-12-24T13:32:10Z","body":"Hi Qing\r\n\r\nThanks for your question, by \"memOp weights\" I guess you mean the bias values of the memory bank.\r\nThe short answer is since they are part of the weights of the controller https://github.com/fumin/ntm/blob/master/cntl1.go#L102 , they as a result get updated by say RMSProp https://github.com/fumin/ntm/blob/master/ntm.go#L354 , too.\r\nThe long answer is that the Controller interface dictates that controllers should expose all learnable parameters through the WeightsVal and friends functions https://github.com/fumin/ntm/blob/master/ntm.go#L128 . The benefit of this is that all weight updating algorithms including SGD, RmsProp etc., can therefore do their own job of updating the parameters without knowing the internal structure and usage of those parameters.\r\nI hope this helps understanding the overall picture a bit."}}