rambling about htm
You sound like someone in a manic phase. Write back when you crash into depression. Don't do anything stupid and get professional help.
Can't help but visualize this on a piece of narrow paper with a manual typewriter going "ding" and him whacking the carriage back over. After all, that's the only reason that he wouldn't use the full column width in the 21st century.
I didn't even read the post because I can't take seriously someone who hits enter this many times.
Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play
"Reducing the world to mathematical equations!"
rouncer: You're not going to get any useful responses if no-one can read your post. Please don't manually insert line-breaks into your posts to create a tiny column width -- it makes it really hard to read your already complicated post on a monitor with a decent resolution. I've edited your original post to remove the line breaks. You should also put at least some basic effort into typing properly -- you didn't even bother with capitalising the first letter of each sentence -- I also fixed this for you. They're small problems, but they add up to make your post much more difficult to read than it should be, and the result is that people don't really read it.
- Jason Astle-Adams
I will try to be constructive here: I don't know what the purpose of the post was, but people will be much more likely to pay attention to an idea if it has been developed to the point of having a demo. In the case of machine learning, there are standard data sets on which you can test the performance of your method. If you can show impressive results in some of those data sets, you'll have everyone's attention. In the meantime... yawn!
hehe, I did call it "rambling about htm" but seriously, the things I said are scientific facts.
Ill get a demo done, then you can see the process of it working, Ive got tonnes of tips for people on the subject of HTM's.
You know if the HTM is working if your getting enough "prediction hits" per frame, if your predicting novel data, which is quite astounding... it must be working.
so well use mipless textures, this way they can be non sizes of 2.
-------------------------------------------------------------------------------------------------------------------------------------------------
DATA REQUIRED (10 textures per layer, 3 reusable vertex buffers) -> approx size <-
input/output sheet texture R8_UNORM (one for each layer) small
prev. frame in/out sheet R8_UNORM " small
integer conversion texture R32_UINT " small
outputid texture R8_UINT " small
idusage texture R32_UINT " small
internal state texture R32G32_UINT " small
internal state prediction state R8_UINT " medium
volume prediction texture R8G8B8A8_UINT " large
volume connection usage texture R32_UINT " large
nodeid buffer vertex small
vertexidoutput buffer vertex (just one reusable and reallocatable) small
vertexprediction buffer vertex " small
LEARNING CYCLE->
ok. pick id.
1. first pick id for the input, if there is no id overwrite least used id.
1. (quick load)
take the input sheet, and develop an unsigned integer texture. this is just making an integer out of on and off values for each input segment.
predictive state pixels are 1.0f, non predictive state are 0.5f and off pixels are 0.
just sum the pixels with powers of 2 relevant to their position, and you wind up with a number that stands for a pattern of pixels for each input segment.
make a vertex list for every node in the level.
Compare input integer with the internal id integers and find which id is the same as the input, if none are mark it as a -1.
then take this new vertex list outputted and if you find a -1 you write the input integer to the internals texture at the least used id.
you need yet another texture for how often each id is used.
and then we then decrement and increment these.
the internal state must be able to distinguish between predictions and non predictions, non predictions override predictions, this way
we can reconstruct data, without it we cant. (in my theory so far, which is pretty loose to tell the truth.)
so there needs to be either "im not a prediction" or "i am a prediction" with every pixel in the id. this will take another texture to keep.
2. temporal and prediction.
2. (medium load)
for every node make a single vertex at the corresponding id's location (one column in the output 4x4 segment is actually active, from the input) and look up its column
You must access the volume texture to do this, so its a lot of samples,
you must pick the most least used cell, starting from 0 going to DEPTH. if a cell is in predictive state from the previous frame you needent scan, and just activate this cell, and mark its use as a more valid a prediction. we do this using the previous output sheet.
then from this single vertex, develop future predictions using the prediction volume. (which is always 4x4xNODESxDEPTH)
PROB - the main problem is i have to sample all the way up the column, ill keep thinking for better solution.
but cleverly using the vertex list here is not all columns will be relevant.
in fact ive just figured out a solution, bust the column with a vertex list, and read off the usage values, then pick the least on cpu? one thing on cpu? dunno.
3. formulate output sheet.
3. (quick load)
mark the new prediction marks on the volume texture, using the previous output sheet, and adjust uses.
formulate the output sheet, youll have a sparse representation plus prediction, predicted values MUST BE MARKED AS PREDICTIONS.
-------------------------------------------------------------------------------------------------------------------------------------------------
just got to get over this non integer problem, and get my computer, then off i go.
then you just got to do it for all 15 layers, and if its running 60fps eat my dust.
When poking you pick closest result to id instead of just picking exacts while learning, this will give you inference abilities you dont have whilst learning, which works
with exacts only. I think that will work but im not sure, im trying it that way first.
You DO realize this is a GAME web site, right?
Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play
"Reducing the world to mathematical equations!"
Additionally, if you haven't tried this then no matter how sound your logic may or may not be it's really all just theoretical at this point. Unfortunately given your rambling, often poorly formatted and hard to understand writing style it's unlikely many people will be interested unless you can show that your technique a) actually works, and b) does something interesting/noteworthy/useful. As it is, you're basically sharing instructions for a technique that may or may not even work, and for which you haven't properly explained the potential applications if it does work.
You keep mentioning that you're planning on trying this out, but it would seem you haven't done so yet for whatever reason -- why don't you try it out and then share once you have actual results? I'm sure people would be much more likely to be interested if you could show a working technique that actually does something interesting. Plus, if it turns out not to work, all this rambling will have been for nothing -- why not avoid that and find out?
- Jason Astle-Adams