Jing, > On Oct 22, 2015, at 7:56 PM, fuyajing <[email protected]> wrote: > > I not really intend to do like this. But I wonder, does swarm has the same > principal with the method I mentioned? (My method is experiment use field1,2 > field 1,3 field 1,4 and so on individually, and to see witch combination has > a low error percent. )
Yes, swarm essential does this, among other parameter variations. - Chetan > > ------------------ 原始邮件 ------------------ > 发件人: "Chetan Surpur";<[email protected]>; > 发送时间: 2015年10月22日(星期四) 凌晨2:49 > 收件人: "fuyajing"<[email protected]>; > 主题: Re: A tp program question > > Hi Jing, > >> On Oct 20, 2015, at 9:13 PM, fuyajing <[email protected] >> <mailto:[email protected]>> wrote: >> >> If I set 'inferenceMode' of sp and tp to be 1, will claclassifier get >> right output normally? > > Yes. > >> In what kind of situation, should we set 'inferenceMode' to be 0? > > When you want the network to learn from the input without needing to extract > classifications from it. Disabling inference will speed up the network. > (Maybe use it during a purely training phase.) >> >> If I have a multi input [4,6,9,12], 4 is the predicted fields. So the >> actualInput is 4. And assume the output encoder is 0001 0010 0100 1000, the >> tp's bottomUpOutput is 0001010000001, it means the 3rd,5th,12th cells are >> active. The 3rd cell corresponds to 2 list which are one-to-one >> corresponding. (Just as Subutai's example in video[3]). The detailed meaning >> of the 2 list is what I can't understand. I think it has relationship with >> results I mentioned in previous email. > > Sorry, I still don't understand what you're trying to do. It might help to > see the relevant code you have written that uses this. > >> My meaning is, can we judge which field contributes the predicted field >> directly by the permanence or synapse connection? Or another kind of >> explanation: when the input data is encoded into SDR, we can't distinguish >> which bit represents each input field? We can only judge from the output of >> classifier. For example, Encode field 1, 2 together and get claclassifier >> result. Then encode field 1,3 together and get claclassifier result. Then >> field 1,4 1,5 and so on. At last compare each result and judge witch >> filed(2,3,4,5) contribute field 1. > > We don't usually do something like this. What are you trying to do that needs > this functionality? Perhaps there's a better way to achieve what you want. > > - Chetan > >> >> ------------------ 原始邮件 ------------------ >> 发件人: "Chetan Surpur";<[email protected] <mailto:[email protected]>>; >> 发送时间: 2015年10月21日(星期三) 凌晨1:44 >> 收件人: "fuyajing"<[email protected] <mailto:[email protected]>>; >> 主题: Re: A tp program question >> >> Hi Jing, >> >>> >>> 1. I know when the parameter "learningmode" is set to 1, the connections >>> between each column and cell will keep updating. But how to set parameter >>> "inferencemode" ? If I have a network sensor-->sp-->tp-->claclassifier, it >>> is obvious that we should set claclassifier's "inferencemode" to be 1 >>> because we want to get the output result of claclassifier. My question is >>> how to set sp's and tp's "inferencemode" (both sp's and tp 's learningmode >>> are 1 for learning continually)? >> >> You do not need to worry about setting `inferenceMode` to 1, it is 1 by >> default. >> >>> 2. Does likelihood has the relationship with prediction? The "result"[4] is >>> a dict, which has two pairs of key-value. One is 1:list1, the other is >>> actualValues:list2. List1 and list2 are one-to-one correspondence. We get >>> the actual values in list2 which has the biggest likelihood in list1. And >>> the sum of list1 equals 1. But I didn't understand how the two lists are >>> calculated. The bucketIndex gets from >>> scalarEncoder.getBucketIndcex(actualInput) is a number, and list1's index >>> is a bucket range. What's the corresponding relationship between >>> bucketIndex and list1? How to define list1's length and bucket range? >> >> I'm sorry, I don't really understand your question. Perhaps you can rephrase >> it? Maybe it would help to see example values for the `results` dict you are >> talking about. >> >>> 3. In a multiEncoder network, if I want to predict field1, can I know which >>> fields contribute to field1? Not by swarming. >> >> I'm not sure what you mean. Swarming is a way to automatically discover >> which fields help the most with the prediction of field1. You can also try >> different combinations of fields by hand. >> >>> 4. Last time you suggest me to set a parameter to get connection >>> relationship. I set the 'temporalImp' in file[3] to 'tm_py' but get the >>> error as follows. >> >> It looks like you don't have the latest version of nupic. Please update your >> repository and try it again. >> >> - Chetan >> >>> >>> ------------------ 原始邮件 ------------------ >>> 发件人: "Chetan Surpur";<[email protected] <mailto:[email protected]>>; >>> 发送时间: 2015年10月17日(星期六) 凌晨2:52 >>> 收件人: "fuyajing"<[email protected] <mailto:[email protected]>>; >>> 主题: Re: A tp program question >>> >>> Jing, >>> >>> > Both spRegion and tpRegion have an attribute "bottomUpOut", which are >>> > arrays(0 and 1). How to decode the 01 array into a predicted value? >>> >>> This is what the CLA classifier is used for. It takes these binary output >>> arrays, and decodes the input value to the encoder that is the most likely >>> prediction. >>> >>> > The multiEncoder is not SDR though there is little 1 and much 0.(Or >>> > multiEncoder is sparse, not distributed? Which explanation is right?) >>> >>> It is distributed, but not necessarily sparse. It produces sparse >>> representations only if the inputs to the MultiEncoder are all sparse. >>> Either way, the output of the SPRegion is sparse and distributed. >>> >>> > So to top level (for example, classifier), we get a map from final >>> > active columns index (we call it 'finalColumns') to sourceData. >>> >>> Correct, this is what the CLA classifier does in essence. You can just use >>> it on top of the TPRegion to do this classification. >>> >>> > What's more, I can't understand the code segment in >>> > nupic/examples/network/hierachy-network-demo.py.(line 267-272) >>> >>> The `results` dictionary is produced by the CLA Classifier. If you would >>> like to understand the CLA Classifier better, please see Subutai's recent >>> talk on how it works [1]. >>> >>> [1] https://www.youtube.com/watch?v=QZBtaP_gcn0 >>> <https://www.youtube.com/watch?v=QZBtaP_gcn0> >>> >>> Hope this helps, >>> Chetan >>> >>> >>>> On Oct 15, 2015, at 12:34 AM, fuyajing <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> >>>> And another question: Both spRegion and tpRegion have an attribute >>>> "bottomUpOut", which are arrays(0 and 1). How to decode the 01 array into >>>> a predicted value? >>>> For easier understanding, I want to express my understanding. If I have a >>>> wrong explanation, please tell me. Thank you in advance. :) >>>> For example, each attribute's value can be encoded into a 01 array, by >>>> setting params w, n(or radius, or resolution) , max, min and so on. >>>> A-->1111 0000 0000 0000 >>>> B-->0000 1111 0000 0000 >>>> C--> 0000 0000 1111 0000 >>>> Monday-->111000000000 >>>> Tuesday -->011100000000 >>>> Thursday-->001110000000 >>>> ... >>>> Then if there are two attribute need to be encoded, we can just >>>> concatenate them simply, we call it multiEncoder. >>>> AMonday-->1111 0000 0000 0000 111000000000 >>>> The multiEncoder is not SDR though there is little 1 and much 0.(Or >>>> multiEncoder is sparse, not distributed? Which explanation is right?) It >>>> just the input of the first spRegion. The out put of spRegion and tpRegion >>>> is SDR. ( We can get it from "bottomUpOut"). From the SDR, we can't >>>> distinguish which columns represent for which input bits, right? So to >>>> top level (for example, classifier), we get a map from final active >>>> columns index (we call it 'finalColumns') to sourceData. (If we want to >>>> predict A, it's a map from finalColumns to A; if we want to predict >>>> Monday, it's a map from finalColumns to Monday.) I think maybe it's the >>>> meaning of decode for HTM. The column doesn't have a specific >>>> correspondence. Moreover, how to initialize the connection relationship >>>> between the input 01 array and first spRegion's columns? >>>> >>>> What's more, I can't understand the code segment in >>>> nupic/examples/network/hierachy-network-demo.py.(line267-272) >>>> >>>> results = >>>> classifier.getSelf().customCompute(recordNum=recordNumber,patternNZ=tpOutput,classification=classDict) >>>> mostLikelyResult = sorted(zip(results[1], results["actualValues"]))[-1] >>>> >>>> How does each element of "results" come out? And I found the lengths of >>>> result[1] and results["actualValues"] are variable lengths. >>>> >>>> Looking forward to hear from you at earliest. >>>> >>>> Jing >>>> >>>> >>>> >>>> >>>> ------------------ 原始邮件 ------------------ >>>> 发件人: "付亚静";<[email protected] <mailto:[email protected]>>; >>>> 发送时间: 2015年10月15日(星期四) 中午1:21 >>>> 收件人: "fuyajing"<[email protected] <mailto:[email protected]>>; >>>> 主题: A tp program question >>>> >>>> Hello >>>> I'm using network API to make predictions. The tp_params has an attribute >>>> "cellsPerColumn". My question is: How to get the synapses connection >>>> between columns or cells? Are there any method or code? >>>> Thank you in advance. >>>> >>>> Jing >>> >> >
