{"action":"created","issue":{"url":"https://api.github.com/repos/Aplokodika/MachineLearning/issues/9","repository_url":"https://api.github.com/repos/Aplokodika/MachineLearning","labels_url":"https://api.github.com/repos/Aplokodika/MachineLearning/issues/9/labels{/name}","comments_url":"https://api.github.com/repos/Aplokodika/MachineLearning/issues/9/comments","events_url":"https://api.github.com/repos/Aplokodika/MachineLearning/issues/9/events","html_url":"https://github.com/Aplokodika/MachineLearning/issues/9","id":168531647,"number":9,"title":"Must use the variables `inputNeurons` and `outputNeurons` for abstraction and not for storage.","user":{"login":"sreramk","id":17235911,"avatar_url":"https://avatars.githubusercontent.com/u/17235911?v=3","gravatar_id":"","url":"https://api.github.com/users/sreramk","html_url":"https://github.com/sreramk","followers_url":"https://api.github.com/users/sreramk/followers","following_url":"https://api.github.com/users/sreramk/following{/other_user}","gists_url":"https://api.github.com/users/sreramk/gists{/gist_id}","starred_url":"https://api.github.com/users/sreramk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sreramk/subscriptions","organizations_url":"https://api.github.com/users/sreramk/orgs","repos_url":"https://api.github.com/users/sreramk/repos","events_url":"https://api.github.com/users/sreramk/events{/privacy}","received_events_url":"https://api.github.com/users/sreramk/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Aplokodika/MachineLearning/labels/High%20priority%20task","name":"High priority task","color":"b60205"},{"url":"https://api.github.com/repos/Aplokodika/MachineLearning/labels/Recommended%20Algorithm","name":"Recommended Algorithm","color":"fbca04"}],"state":"open","locked":false,"assignee":{"login":"sreramk","id":17235911,"avatar_url":"https://avatars.githubusercontent.com/u/17235911?v=3","gravatar_id":"","url":"https://api.github.com/users/sreramk","html_url":"https://github.com/sreramk","followers_url":"https://api.github.com/users/sreramk/followers","following_url":"https://api.github.com/users/sreramk/following{/other_user}","gists_url":"https://api.github.com/users/sreramk/gists{/gist_id}","starred_url":"https://api.github.com/users/sreramk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sreramk/subscriptions","organizations_url":"https://api.github.com/users/sreramk/orgs","repos_url":"https://api.github.com/users/sreramk/repos","events_url":"https://api.github.com/users/sreramk/events{/privacy}","received_events_url":"https://api.github.com/users/sreramk/received_events","type":"User","site_admin":false},"assignees":[{"login":"sreramk","id":17235911,"avatar_url":"https://avatars.githubusercontent.com/u/17235911?v=3","gravatar_id":"","url":"https://api.github.com/users/sreramk","html_url":"https://github.com/sreramk","followers_url":"https://api.github.com/users/sreramk/followers","following_url":"https://api.github.com/users/sreramk/following{/other_user}","gists_url":"https://api.github.com/users/sreramk/gists{/gist_id}","starred_url":"https://api.github.com/users/sreramk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sreramk/subscriptions","organizations_url":"https://api.github.com/users/sreramk/orgs","repos_url":"https://api.github.com/users/sreramk/repos","events_url":"https://api.github.com/users/sreramk/events{/privacy}","received_events_url":"https://api.github.com/users/sreramk/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/Aplokodika/MachineLearning/milestones/1","html_url":"https://github.com/Aplokodika/MachineLearning/milestones/The%20Working%20Neural%20Network%20Model","labels_url":"https://api.github.com/repos/Aplokodika/MachineLearning/milestones/1/labels","id":1900836,"number":1,"title":"The Working Neural Network Model","description":"The first milestone of this project will be to create a working neural network model, using which we may write code to do directly implementable projects addressing social cause.","creator":{"login":"sreramk","id":17235911,"avatar_url":"https://avatars.githubusercontent.com/u/17235911?v=3","gravatar_id":"","url":"https://api.github.com/users/sreramk","html_url":"https://github.com/sreramk","followers_url":"https://api.github.com/users/sreramk/followers","following_url":"https://api.github.com/users/sreramk/following{/other_user}","gists_url":"https://api.github.com/users/sreramk/gists{/gist_id}","starred_url":"https://api.github.com/users/sreramk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sreramk/subscriptions","organizations_url":"https://api.github.com/users/sreramk/orgs","repos_url":"https://api.github.com/users/sreramk/repos","events_url":"https://api.github.com/users/sreramk/events{/privacy}","received_events_url":"https://api.github.com/users/sreramk/received_events","type":"User","site_admin":false},"open_issues":10,"closed_issues":7,"state":"open","created_at":"2016-07-24T10:45:54Z","updated_at":"2016-08-07T16:58:52Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2016-07-31T18:37:42Z","updated_at":"2016-08-07T19:05:03Z","closed_at":null,"body":"It would be much easier to improvise in the future updates if the variables `inputNeurons` and `outputNeurons` are only used for abstraction; in the current version, they are used for storage. One 2D array list must be used for storing all the neuron nodes, and the variables `inputNeurons` and `outputNeurons` should be used for representing a subset of them as input or output neurons. This helps in determining which of the neurons are supposed to be input neurons and output neurons during run-time.  This helps us train a particular subset of the neural network system, customizing them to handle a particular task. This kind of flexibility gives way for a profound mechanism of training a particular abstraction of the deep network to carry over a particular task.  \r\n\r\nFor example, consider a situation of visual image reorganization. In such problem, we need to be able to classify different parts of the image and then allow the algorithm to decide on what the complete image is. For this complex abstraction to be possible, we need to be able to train only a subset of the neural network system. "},"comment":{"url":"https://api.github.com/repos/Aplokodika/MachineLearning/issues/comments/238101594","html_url":"https://github.com/Aplokodika/MachineLearning/issues/9#issuecomment-238101594","issue_url":"https://api.github.com/repos/Aplokodika/MachineLearning/issues/9","id":238101594,"user":{"login":"sreramk","id":17235911,"avatar_url":"https://avatars.githubusercontent.com/u/17235911?v=3","gravatar_id":"","url":"https://api.github.com/users/sreramk","html_url":"https://github.com/sreramk","followers_url":"https://api.github.com/users/sreramk/followers","following_url":"https://api.github.com/users/sreramk/following{/other_user}","gists_url":"https://api.github.com/users/sreramk/gists{/gist_id}","starred_url":"https://api.github.com/users/sreramk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sreramk/subscriptions","organizations_url":"https://api.github.com/users/sreramk/orgs","repos_url":"https://api.github.com/users/sreramk/repos","events_url":"https://api.github.com/users/sreramk/events{/privacy}","received_events_url":"https://api.github.com/users/sreramk/received_events","type":"User","site_admin":false},"created_at":"2016-08-07T19:05:03Z","updated_at":"2016-08-07T19:05:03Z","body":"# Consequences of making this change\r\nThis process is going to be critical because, the variables  `inputNeurons`, `outputNeurons` and `hiddenNeurons` are overly relied on, in most of the methods in this project (as of now). But here is an idea to get it done neatly: add an extra variable (could be an `ArrayList` or a `HashMap` ) for storing all the references to the neurons in the input, output and the hidden layers in just one bundle. Now we must modify the initialization code to also initialize this \"neuron bundle\". We may now freely add code that alters the variables inputNeurons`, `outputNeurons` and `hiddenNeurons` during the run-time so as to allow the system to train a part of the system in doing a particular task. \r\n\r\n## Note \r\n1) When this method is implemented, initially these variables (inputNeurons`, `outputNeurons` and `hiddenNeurons`) will contain all the neurons in the system being implemented. Then later, there must be specific modules defined to allocate a subset of the neurons to the system, so that the remaining training modules can be used at will to train the subset of the system. \r\n2) This abstraction won't affect the connections of these neurons. So regardless of the abstraction chosen, the connections are retained. \r\n\r\n## Implementing deep learning  \r\nFirst you will have to create one huge network with many hidden layers (where each layer is going to serve a special purpose). Now the appropriate abstraction is chosen; let's say there are `n` layers in a system. Then we may conveniently choose the first `1...l` layers as the first abstraction and train them for a particular purpose. When we do this, the layer `1` becomes the input layer and the layer `l` becomes the final (output) layer while the remaining becomes the hidden layers; these layer's references are directly assigned to the variables inputNeurons`, `outputNeurons` and `hiddenNeurons`. \r\n\r\nNow, when the training algorithm is called, only the subset of the system gets trained. This method can be easily used for implementing deep learning.  "}}
{"actor":{"display_login":"sreramk"}}