#] #] ********************* #] "$d_MindCode"'11_MindCode summary notes.txt' www.BillHowell.ca 24Feb2020 initial - from link d_QNial_mine 'MindCode/0_MindCode notes.txt' 17Nov2023 copied d_Qndfs: from d_MindCode (2020) to d_Mind2023 48************************************************48 24************************24 # Table of Contents : # $ grep "^#]" "$d_MindCode"'11_MindCode summary notes.txt' | sed 's|^#\] | |' # ********************* "$d_Qndfs"'Mind2023/11_MindCode summary notes.txt' ToDos and issues - long-term rather than operational ToDos Issues Biological plausibility net types MindCode- assumptions : Control structures Global [variable, list]s netTypes - [boolean, integer, real] types are supported so far (27Feb2020) net global lists (structure) - view with : other globals netIDList - ALL netIDs must be <= shape netIDList!!! 21Feb2020 thinking of programs : 24Feb2020 QNial basis General thoughts to consider : 22Feb2020 neuron names - not so simple to do NN-specific - sigmoidal, counter, timer 24************************24 30Apr2020 How to use MindCode 1. loaddefs link d_QMindCode 'MindCode basics.ndf' this loads (example) : loaddefs link d_QNial_mine 'MindCode/globals initialize.ndf' ; loaddefs link d_QNial_mine 'MindCode/data types.ndf' ; loaddefs link d_QNial_mine 'MindCode/trigger patterns.ndf' ; loaddefs link d_QNial_mine 'MindCode/bits to-from [intg, real].ndf' ; #loaddefs link d_QNial_mine 'MindCode/net constructors.ndf' ; 2. loaddefs example net from d_QMindCode arith, trig examples.ndf MLP - multi-layered perceptron.ndf 3. loaddefs test nets - each net file has a set of tests to run, which can be launched on load see 'MindCode/code test', choose one of : $ ls -1 "$d_Qndfs""MindCode/code test" bits to-from [intg, real] tests.ndf fire tests.ndf index tests.ndf MLP tests.ndf trigger [now, cum, seq, tim, mix] tests.ndf 4. [Compare, update] test results as collected in : 0_tests collected results log.txt 48************************************************48 08********08 #] ToDos and issues - long-term rather than operational #] ToDos # should change to more biologically-plausible code!!! #] Issues # preNetIDs can call multiple netIDs, but processing is allows ONLY when the target netID isn't refractory # 24Feb2020 temporary "variables" (netIDs) to be dealt with later ; # conventional NNs assume that synapses add to the membrane potential, so they don't need such an operator ; #] Biological plausibility # [concept, mirror] neurons apparently are high-level representations? # Problem : how does a cell (neuron may not differ much) do physiological functions etc? DNA, RNA, etc - biomolecule [transport, reaction] etc. # ANN often sum wij*xj (continuous) - but how would that actually occur? Cell membrane potential cannot do that alone?!? # this is NOT biologically realistic!!? - computations at cell level! # but could [build, evolve] complex net!!! like McCulloch&Pitts # what functions can the following structures easily provide? : - 6-layer cortex column -?4?layer neocortex column - hippocampus - thalamus - other? #] net types # 25Feb2020 nets Must connect with preNetIDs of the proper type! (eg Z80) - checked during data initiation #] MindCode- assumptions : "data-latches" many available, but each captures ONLY one neuron output per time window "time window" to complete data input (or is reset) "refractory period" to do computation & spike "spike result" onward "open for business" period # My job isn't to [decide, propose] mechanisms, but to list conjectures and provide a tool with "multiple conflicting hypothesis", as speculative as they might be #] Control structures # possibly [mRNA, epi]-based? - it may REQUIRE this, and in any case is a goal of this project! # chains of signal proteins on microtubulo nucleus, only molecules don't travel the whole distance # immediate throughput like fire-bucket brigade 08********08 #] Global [variable, list]s # LOCAL variables convention - simply drop the "List" part for the local variable name # neurons are nets of "shape = 1" (list), so their [firing, netID, etc] Lists must be solitaries!!! #] netTypes - [boolean, integer, real] types are supported so far (27Feb2020) #] net global lists (structure) - view with : transpose mix netIDs inNetList typeList optrList firingList stateList wghtList #] other globals write transpose mix ("int_loww "int_high "real_loww "real_high "realBase_max "bitCnt_intBase "bits_sign "bits_base "bits_expt "bitCnt_sign "bitCnt_base "bitCnt_expt "realCode ) ( int_loww int_high real_loww real_high realBase_max bitCnt_intBase bits_sign bits_base bits_expt bitCnt_sign bitCnt_base bitCnt_expt realCode ) write nowFireList #] netIDList - ALL netIDs must be <= shape netIDList!!! eg OR ((link netIDList) < (gage shape netIDList)) statList is a series of boolean lists : bits are : *********** #] 21Feb2020 thinking of programs : - make programs easily-adaptable to vastly different [number, concept, architecture, etc] bases - initial work basically an 8-bicroprocessor! (Z-80 like in my case) - QNial basis - see "QNial the Language Definition" Michael Jenkins, 01 August 2015 also "The Nial Dictionary" Version 6.3, August 2005, Q'Nial Systems Limited "MindCode neuron - QNial basis.ndf" : arithmetic operations - [+, -, *, /, ^, trigonometric, NN-specific] comparison operations control structures logic operations measurement operation construction operation apply-by-partition transformer NN-specific basics - sigmoidal, counter, timer, concept neuron - MatLab basis - Izhikevich-like neuron - with [DNA-mRNA-epi, addressable synapses] - Architectures : - null - [hyperbolic tanjent, sigmoidal] neurons - direct translation of MLPs - memory - [concept, grandmother] cells - random [LSM, Echo State, Extreme Learning Machine] - variables [boolean, integer, real, complex, etc] - [data, spiking] structures - scalars [1-2-3-dimensional (eg distance, area, volume), ...] - time [scalar, spectral, wave, ...] - fractal, fractional order calculus - operators [+-*/, derivative, integral, etc] - [search, patterns, classification, ] - conciousness [John Taylor, ...] - processes [learn, evolve, ...] - noise - [existence, uniqueness, stability, convergence, ...] 08********08 #] 24Feb2020 QNial basis - see "QNial the Language Definition" Michael Jenkins, 01 August 2015 also "The Nial Dictionary" Version 6.3, August 2005, Q'Nial Systems Limited "MindCode neuron - QNial basis.ndf" : # arithmetic operations abs, floor, mod, ceiling +, plus, sum The operation plus is the same as sum except that plus enforces the rule that it must be applied to a pair. Sum is multi pervasive and can add up any number of items. The symbol + is a synonym for sum. -, minus, opposite *, product, times The symbol * and prod are synonyms for product. The operation times is product restricted to use on pairs. /, divide, quotient, reciprocal The operation quotient is used in place of divide in situations where the result must be an integer. ^, power 149 exp, ln, log sin , cos , tan sinh, cosh, tanh arcsin , arccos , arctan arcsinh, arccosh, arctanh # comparison operations >, gt 92 >=, gte 93 <, lt 118 <=, lte 119 match 120 mate 120 max 121 min 122 up 231 # control structures case-expr 29 for-loop 85 if-expr 95 repeat-loop 180 while-loop 237 # logic operations and 17 diverse 55 equal 67 not 129 or 135 unequal 230 # measurement operation allbools allchars allints allnumeric allreals axes 17 depth isboolean 102 ischar 102 isfault 102 isinteger 103 isphrase 103 isreal 104 isstring 204 # construction operation append 10 cart 28 catenate 30 hitch 94 laminate 107 link 111 pair 137 single 202 solitary 204 # apply-by-partition transformer bycols 24 byrows 25 partition 139 rank 162 reducecols 172 reducerows 172 08********08 #] General thoughts to consider : # neuron-specific read from file : synapses_inn - list of input neurons, + normal, - inhibitory synapses_out - list of output neurons neuromods - neuro-modulator states Kenji Doja [dopamine, seratonin, nor-adrenaline, acetocholine] rules_fire - list of rules rules_clear - list of rules spike_inn - recent firing timestamps (stack?) spike_out - recent firing timestamps (stack?) # multiple synapses for each [input, output] neuron? # [maintenance, noise]-firing # all spikes same magnitude (pulse) at synapses # neurons should be event-driven for efficiency? # redundancy and wandering computations # mathematical theory of functions # refractory periods - [neuron, net, system] # memory - keep state somehow, bursting neuron repeats # as determined by DNA-mRNA-epi : # fires with "coherent input" when active, # extinction of inputs # with time # when fires # random & noise # otherwise # sequence of inputs is important # I would like to use Nvidia CUDA for GPU 08********08 #] 22Feb2020 neuron names - not so simple to do # With massive redundancy, and multi-level specialised [functional, modular, regional, whole-brain] networks, there needs to be a way of naming neurons simply for local calculations, but that maps them for the global system. # For now, just go with a global list of neuronIDs. 08********08 #] NN-specific - sigmoidal, counter, timer # enddoc