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
>>> 
>> 
> 

Reply via email to