►
From YouTube: BHTMS: discrete encoding diagram
Description
Broadcasted live on Twitch -- Watch live at https://www.twitch.tv/rhyolight_
A
A
A
It's
open,
they
get
a
page.
We
deployed
this
successfully,
so
it
should
be
here
as
well.
Take
a
couple
minutes
or
a
couple
seconds
for
it
to
pull
out.
This
is
the
old
site
that
were
Trance
transferring
so
quick
overview,
we're
taking
this
site
which
isn't
even
complete
what
it's.
What
it
is
is
a
an
interactive
visualization
of
how
to
build
HTM
systems
starting
from
encoders
they
electric
havoc,
thanks
for
the
follow,
appreciate
it
so
we're
taking.
A
This
was
all
written
in
d3
javascript
and
transferring
it
into
this
application,
which
is
an
actual
next
react
jas
application,
so
I'm
I'm
using
the
react
framework
for
things
here.
So
all
the
diagrams
that
I'm
moving
from
from
this
set
up
to
another
are
now
gonna.
Be
all
react
diagrams
to
sort
of
encapsulate,
d3.js
interactions
and
SVG
displays,
which
is
d3.js,
is
a
really
excellent,
excellent,
visualization
library,
if
you're
in
JavaScript
working
for
the
browser,
it's
the
it's
really
really
nice.
A
We
just
finished
up
this,
this
one,
which
does
this
it's
swaps,
so
it
shows
you
how
a
cyclic
encoder
is
the
same
thing,
essentially
as
a
scalar
encoder
that
just
loops
at
the
end
and
how
that's
essentially
just
a
you,
know
the
shape
of
a
circle
when
you're
looping
a
line,
and
then
we
were
just
messing
with
this.
This
was
the
next
thing
we're
doing
was
showing
how
different
values,
when
encoded
in
different
ways,
for
example,
if
I
I
could
these
overlap?
A
None
at
all,
if
I
wish
by
setting
the
W
properly,
these
two
values
would
not
overlap
at
all.
If
I
changed
the
W
a
little
bit
now,
they
do
have
some
overlap.
They
do
have
some
similarity.
So
there's
that's
the
difference
why
you
might
be
concerned
about
your
encoder
settings
is
if
you,
if
it
matters
to
you,
if
four-point-seven
has
some
semantic
similarity
with
6.1
in
their
system?
Is
that
important
or
should
it
be
more
discrete
than
that
and
that's
the
next
thing
we're
going
to
talk
about
is
discrete
and
codings.
A
So
this
is
a
discrete
coding
of
an
integer
value
so
that
there
is
never
any
other
line.
That's
that's
simply!
That's
all
we're
talking
about
when
we
say
discrete.
Oh,
that's!
Your
name
and
Korean
did
hear
the
pronunciation.
Google
translate.
Okay,
yeah
I'll.
Try
that
I'll
try
that
I'm,
always
interested
I'm,
gonna,
I'm
gonna
go
to
google
translate
because
I
want
to
find
out
how
to
say
his
name.
Let's
try
this.
A
Thank
you.
I'm
gonna,
try
and
remember
that
Yun
Seong
Jung
Yun
Seong
and
that's
Korean
right,
okay,
back
to
what
we're
doing
so,
we're
gonna
we're
gonna,
create
this
and,
as
you
can
see,
I
sort
of
abandoned
to
some
of
these
controls
that
I
had
in
the
old
one.
This
is
a
lot
simpler.
This
is
really
what
I
want
to
display
here
is
how,
as
is
how
these
continuous
and
coatings
can
can
have
similar,
can
introduce
similarity
between
values
and
I.
Think
this.
Does
this
perfectly
fine
without
all
of
these,
this
was
overkill.
A
A
This
one,
for
example,
is
something
all
the
code
to
be
in
d3,
and
this
this
one
also
be
uncovered
this
yesterday,
that's
just
to
Center
the
labels
on
those
Bezier
curves
see
they're,
not
quite
centered,
so
if
it
was
looking
for
something
to
do,
these
are
kind
of
isolated
things.
Here's
the
one
yeah.
So
it's
related,
oh
no!
No!
This
was
about
the
changing
the
cursor
excuse
me.
Microsoft,
wants
me
to
install
updates.
No
thanks.
This
is
changing
the
cursor.
So
that's
super
easy.
That's
it's
gonna
be
like
onmouseover
onmouseout.
A
So,
but
what
we're
working
on
is
this
discreet,
encoding
diagram,
that's,
and
that
is
this
one
that
we
haven't
made
yet
and
that's
the
one
we
were
talking
I
was
talking
about
here.
So
I
want
to
have
so
I
just
like
to
read.
I
want
to
rethink
this
a
little
bit
before
before
I.
Do
anything
because
I
want
to
make
sure
that
the
figure
here
we're
calling
this
figure
9
is
illustrating
the
concept
that
we're
trying
to
illustrate.
A
We're
showing
the
first
figure,
which
is
a
continuous
encoding,
so
maybe
maybe
I
call
it's
continuous
versus
discrete,
but
doesn't
matter,
but
I
should
probably
label
this
continuous,
continuous
encoding.
I
don't
want
to
get
too
far
in
the
weeds
here,
but
I'm
going
to
use
Visual
Studio
code
for
an
editor
which
has
a
really
outstanding
feature
of
being
able
to
live,
share
so
I'm
going
to
start
a
collaborative
session,
and
so,
if
anyone
is
following
along,
they
can
connect
to
this
session.
If
they're,
using
Visual
Studio
code
and.
A
A
If
you
guys
need
a
link
for
any
reason:
the
HTM
s,
here's
stuff,
here's
a
link,
okay,
so
I'm
closing
this
Heroku
application,
because
I'm
going
to
look
at
everything
at
localhost
now-
and
we
are
all
the
way
down
here
on
discrete
versus
continuous
and
so
I
was
going
to
just
add
a
label
here
to
make
it
a
little
bit
clearer
on
city
coding
numbers,
and
this
is
way
down
the
page,
let's
close
close,
close,
close,
close
and
I
could
see
where
I'm
at
way
down
the
page.
Here
it's
overlap.
A
All
right,
I'm,
not
gonna,
worry
about
these
I'm.
Not
gonna
worry
about
fixing
up
the
text
at
this
point,
I
just
I,
just
I
just
decided
we're
gonna
work
on
technical
things,
we're
not
going
to
work
on
messing
with
text,
so
we
are
gonna,
create
a
new
encoder
and
it
is
I,
don't
think
I
think
I
could
make
it
less
complicated
again,
so
I'm
gonna
do
a
drag
instead
of
a
value
bar
we'll
do
that
it's
exactly
the
same
way.
A
The
tricky
thing
is
it's
going
to
be
a
discrete
drag,
not
a
continuous
drag,
so
we
won't
be
able
to
just
move
it
unless
it's
in
the
right
place,
I,
think
or
we
snap
to
about
you
know
what
I
mean
so
yeah,
so
we'll
just
make
it
snap
to
a
value
as
we're
dragging
it
as
you
drag
through
it.
It
hits
the
closest
value,
something
like
that.
A
W
is
configurable
in
the
page
defaults,
so
we'll
just
make
N
and
W
whatever
the
page
defaults
are
and
we'll
assume
that
we
have
control
of
setting
it
in
W.
If
someone
Scrolls
to
a
certain
diagram
we
can
set
in
and
W
and
everything
will
update
and
the
category.
So
this
is
the
tricky
part
because
it
affects
the
min
and
Max
values.
A
All
right,
so
this
is
just
like
a
value
bar,
but
the
min
and
Max
is
affected
by
how
many
categories
there
are
yeah.
So
as
we,
if
we
want
I,
do
think
we
want
to
let
the
user
somehow
change
the
categories,
but
they
don't.
It
doesn't
need
to
be
a
slider.
It
could
be
just
a.
We
could
use
the
same
number
of
input
that
we
currently
have
so
this
could
be.
We
could
treat
this
as
a
global
or
page
variable
would
be
the
easiest
way
to
do
it.
A
Probably
so
we'll
have
W
and
categories
as
global.
The
value
is
going
to
be
specific.
To
this,
it's
going
to
be
a
it's
going
to
be
local
diagram
states,
so
we're
not
gonna
bubble
out
the
value
because
it's
yeah,
it's
gonna,
be
here.
It's
gonna
be
a
discrete
value
specific
to
this.
So
let's
call
this
a
discrete
scalar,
encoder
or
discrete
scaler
diagram,
or
something
like
that.
We.
A
New
file,
discrete
scalar
diagram,
we'll
just
leave
the
maybe
I
should
make
them
all
say:
encoder
speak
scalar,
coders,
cyclic,
scalar,
encoder,
I,
didn't
call
those
two
diagrams
and
I
really
should
I
think
no.
These
are
all
inherently
diagrams
because
they're
in
the
diagrams
folder
sounds
sounds
good
to
be
so.
It's
called
discrete
scalar,
coder
and
now
I
want
to
change
the
name
of
this.
A
This
is
scalar
overlap,
but
I
want
to
take
the
diagram
out.
So
let's
see
how
good
my
tooling
is.
If
I
I
can
read
in
this,
but
it's
not
gonna
read
in
the
hopefully
scalar
scalar
overlap,
yeah,
that's
not
going
to
change
the
file
and
it
won't
change
the
yeah
change.
This
stuff's,
like
a
good
so
to
add
a
discrete
prop
to
scaler
encoder.
Oh
that's
a
good
question.
Let's
see,
let's,
let's
think
about
that.
That's
a
good
question.
A
A
A
A
Okay,
we'll
keep.
Let's
just
give
this
all.
Let's
see,
let's
get
it
all
global
state
at
first,
because
that's
just
easy
assume,
you
know
what
to
think
about
it.
So
and
then,
if
this
causes
problems
for
us,
if
we
want
to
tweak
it,
we
can
localize
state,
there's
no
value
a
value
B
and
this
isn't
scaler
overlap.
Obviously
it's
going
to
be
a
simple
scalar.
Encoder
I
would
have
found
that
pretty
quickly.
A
A
Which
is
this
state
for
now
we'll
take
well
we'll
keep
it
or
so
actually
we're
gonna
I
know
that
we're
not
gonna
do
this,
so,
let's
just
send
it
a
value.
Let's
just
send
it
I,
don't
know
five
I,
don't
know
whatever
we'll
figure
that
out
hey
Falco,
it
is
just
a
different
coder
than
then
I
think
it
may
be
better
if
it's
just
a
different
coder.
No.
A
B
A
A
But
the
category
code
in
the
category
encoder-
let's
look
at
this
I-
know
exactly
where
it
is
it's
in
the
readme
here,
simple
HTM,
the
coders
category
encoder.
So
it
extends
cyclic
encoder,
which
extends
scaler
a
coder
I
think
yeah.
So
all
the
cyclic
encoder
is
is
changed.
How
the
bit
mask
is
applied
so
that
it
it
rounds
about,
and
the
category
encoder
just
adds
discrete
categories.
D
A
D
A
A
A
A
Values,
it
expects
a
W
and
a
categories
array
and
that's
it,
and
then
it
sets
min
and
Max
itself
based
on
how
many
categories
there
are,
and
it's
basically
just
it's
just
it
turns
it
into
the.
It
turns
the
output
length
of
the
array
into
the
same
amount
of
categories
you
have.
It
just
turns
one
bit
on
for
each.
A
A
A
I'm
thinking
I
mean
all
we're
essentially
doing
here
is
creating
a
category
encoder
category.
Maybe
we
should
just
start
off
a
category
encoder
I'm,
not
sure,
because
some
of
the
other
category
coders
die
because
the
next
section
goes
on
to
categories
and
then
I
have
something
entirely
different
because
I'm,
just
this
is
a
unique
diagram.
It's
going
to
be
something
completely
on
its
own
and
then
the
next
one
is
also
another
unique
diagram.
So
these
we're
just
talking
about
three
unique
diagrams
in
a
row.
A
C
Viewers
I.
A
A
A
So
I'm
gonna
just
do
it
this
the
exact
same
way,
the
category
encoder
code.
Does
it
I'm
going
to
just
create
a
scanner
coder
with
these
basically
doing
this
I'm
gonna
give
this
thing
the
option
W
and
a
list
of
categories,
but
no
not
even
list
of
categories,
a
number
of
categories?
How
many
categories
are
we
gonna
have
so
so?
Let's
do
that?
I'm
gonna
give
it
W,
which
is
I,
don't
think
it
is
good.
A
Category
length,
10:
okay,
so
that's
how
many
bits
that's
what's
W
screaming
W
is
gonna,
be
ten.
Okay,
I
think
this
is
gonna
work,
but
I'm
gonna
have
to
write
some
special
code
in
the
simple
scalar
encoder.
In
order
to
do
this,
I
think
the
better
code
thing
would
be
would
maybe
it
would
be
better
to
write
just
a
small,
exactly
how
I
io
I
kind
of
did
here
in
the
category
coder
write
a
very
small
subclass
of
the
scalar
coder
diagram.
A
Call
it
a
category
encoder
diagram
and
just
simply
set
up
the
previous
like
that.
That
would
probably
be
a
cleaner
way
to
do.
It
then
adding
a
special
condition
inside
the.
So,
let's,
let's
call
this
okay,
let's
call
this
category
encoder
for
now,
knowing
that
we
may
end
up
changing
all
these
names
at
some
point,
because
they
might
not
make
sense
and
all
I
want
to
send
it
diagram
with
the
W
and
how
many
categories
we
want,
and
this
is
going
to
be
changeable.
A
The
user
is
going
to
change
this
and
I'm
probably
going
to
pop
it
out.
What
do
you
mean
why
scalar
overlap?
I?
Don't
understand
that
question.
Let
me
turn
on.
Let
me
join
discord
in
case
anybody
wants
to
talk.
You
can
pop
into
the
discord.
Livestream
chat.
If
you
have
something
relevant,
you
know
to
the
that's
what
I'm
doing
I
don't
want
to
just
come
in
and
like
talk
about,
you
know,
basketball,
okay,
so
don't
have
a
category.
Yet!
Oh!
That's!
Where
five
minutes
ago,
okay,
I,
never
mind.
A
Hopefully
I
answered
the
question
pardon
or
not.
So
if
I
were
to
do
this,
if
I
were
to
create
a
category
scalar
and
coder
and
again
I
am
NOT
tied
to
these
names.
I'm,
probably
going
to
come
back
and
do
some
refactoring
yeah
relevant
discussion,
Falco,
please
I'm,
probably
gonna
come
back
and
do
some
refactoring.
A
B
A
A
Simple
scalar,
coder
catalyst
is
called
category
encoder
category
diagram,
I,
don't
know,
I
think
I
feel
like
now.
I
do
want
to
play
that
I
do
want
to
say
diagram
like
I
said:
I'm,
gonna
change,
all
the
names,
probably
no,
no
I
want
to
change.
I
need
to
I
need
to
specifically
actually
I'm,
not
even
going
to
do
this.
This
isn't
what
I
want
to
do.
A
I
want
to
create
a
completely
new
props
object
in
props
and
and
I'm
going
to
specifically
put
what
I
want
in
there,
and
let
me
give
me
a
chance
to
do
this
and
I'll
clean
it
up.
This
is
what
I
need
to
do.
I
want
to
send
it.
I
want
to
basically
put
that
logic
right
where
I
am
I,
want
it
to
have
props,
W
and
not,
and
and.
A
A
A
A
A
D
A
A
Hello,
thank
you
for
the
follow.
It's
much
appreciated,
I'm,
trying
to
figure
out
if
I
put
the
snark
place,
I,
don't
think?
Oh,
no!
No!
No!
No!
No!
No!
This
is
wrong.
This
is
extends
sorry.
This
doesn't
extend
react
component.
This
extends
this
needs
to
extend
scaler
overlap
diagram,
so
we
need
to
import
scaler,
not
overlap,
diagram,
say
scaler,
simple,
simple,
scalar
encoder
from
how
do
I
do
this
have
to
do
dots.
A
A
A
Okay,
yeah
I'm,
calling
this
discrete
encoding.
What's
tripping
me
up,
is
I'm
calling
I'm,
calling
it
discrete
coding.
Yet
it's
also
category
encoder
diagram,
so
I
need
the
width,
the
ID,
the
W
is
coming
along
with
it
category
length
I'm
just
giving
it
ten,
and
so
let's
fix
that
cuz
I'm
not
actually
giving
a
categories,
yet
we
will
eventually,
but
for
right
now
we're
going
to
do
the
simplest
thing.
So
that's
what
we're
going
to
do
on
update
I,
don't
think
this
is
going
to
update
anything.
So
I
think
we
can
take
this
out.
A
The
value
is
going
to
be
something
that's
internal,
all
right,
let's
see
what
broke!
Let's
see
what
we
broke,
let's
just
something's,
certainly
broken
I.
Probably
let
me
restart
the
server
just
because
I've
been
moving
stuff
around
and
deleting
things.
If
there's
a
compile
error,
I'm
gonna
like
to
see
something
fresh
yeah,
so
you
do
have
some
type
of
error.
Category
quarter
diagram
is
not
fine
because
I
didn't
import
it.
So
that's
easy.
C
Suppose,
import
and.
A
A
A
It
triggered
okay,
all
right
times:
props,
w-30,
okay,
so
we're
ascending
and
let's
step
into
this
and
see
where
we
go
when
we
get
to
the
super
I'm
stepping
into
it,
I
don't
know
where
I'm
stepping
in
and
out
of
right
now
it's
something
okay,
so
we
got
two
simple
scalar
encoder
and
do
we
have
this
dot
props
or
something
or
props?
Oh
I,
just
need
to
pass
in
I
should
be
passing
in
that's
why
I'm
concerned
because
they
die
the
category.
Encoder
has
a
value
for
this.
A
At
least
this
was
this
should
be
valid,
so
why
it's
not
getting
in
when
it
goes
up?
Is
it
oh?
It's
because
it's
just
a
warning,
because
I
should
override
I
need
to
do
local
override
of
that
I
got
it
I
got
it.
I
can
do
that.
I
will
do
that.
That's
a
cleaner
thing
to
do
right.
So
let
me
just
copy
the
one
we.
C
B
A
A
C
A
A
A
C
A
A
A
C
A
C
A
A
That
seems
like
a
natural
thing
to
do
and
when
you're
creating
like
libraries
of
components,
it
seems
like
that's
like
one
of
the
reasons
you
would
want
to
use
react
you
do
it
multiple
times
a
day,
okay,
as
long
as
it's
not
as
long
as
I'm,
not
using
it
wrong,
because
if
I
move,
if
I'm
using
a
react,
I
want
to
I
want
to
make
sure
that
I'm
doing
it
right
in
general,
Oh
P,
you
do
it,
but
you
don't
do
it
in
react.
I
feel.
C
A
A
C
A
A
A
A
It's
an
interesting
syntax,
I've
seen
this
spread.
This
is
called
a
spread
operator
right
so
you're.
If
you
create
an
object
with
and
you
spread
an
object
as
the
first
parameter,
then
all
the
rest
are
overrides
I'm
assuming
and
it
will
be
immutable.
Okay.
That
makes
sense
so
yeah.
That
makes
sense
interesting,
so
I
wonder
if
I'm
gonna
do
I'm
just
gonna
I
like
to
break
stuff
out
so.
A
A
C
A
A
Going
on
and
then
I
ran
out
of
liquid
and
I
had
to
go,
get
some
water
and
and
a
diet,
coke,
so
I
keep
going
back
and
forth
on
what
I'm
going
to
do
here.
Just
yeah
see
I,
don't
like
this
I
think.
Maybe
I'm
I
think
I'm
going
to
create
a
new
diagram,
because
it's
a
combination
honestly.
It's
a
combination
of
this
one
because
I
want
the
Bezier
curves
and
the
labels
and
the
drag
it's
a
combination
of
that
one
and
the
simple
scalar
encoder
and
yeah.
It's
just
it's
it's
different
enough.
A
A
A
Seems
just
different
enough
in
just
enough
minor
ways
that
we're
gonna
probably
end
up
creating
a
new
one,
which
is
what
this
is.
What
I
started
to
do
in
the
first
place,
I
mean
I,
know
I'm,
going
back
and
forth
about
this
a
lot,
but
I
don't
think
this
is
going
to
work.
The
way
I
want
at
least
I'm
going
to
be
copying
code
and
it
from
another
component
into
this
one,
and
that's
what
I
was
trying
to
get
around
yeah.
The
value
will
be
encoded
differently,
I'll,
be
by
the
category
encoder.
A
A
A
A
A
Not
right
because
the
props
will
send
it
will
send
it
a
value
hi.
Thank
you
for
the
follow
and
I'm
just
your
rash,
I
appreciate
you
chiming
in
or
clicking
that
button
up
there
we're
we're
gonna,
do
plication
and
react
so
we're
sort
of
wrapping,
d3,
diagrams
I'm,
calling
them
in
react,
components
and
discovering
all
of
the
things
you
have
to
do
to
make
that
work.
Okay.
So
this
is
why
this
isn't
gonna
work.
A
B
C
A
A
A
A
A
A
Discrete
so
we
just,
we
need
to
use
a
different
coder
for
sure
category
encoder
and,
and
we
just
need
to
hide
a
value
so
I
bet
we
could
we'd
have
to
subclass
this
scaler
overlap.
This
is
a
weird.
This
would
be
kind
of
weird,
but
it's
the
display
that
we're
sub-classing
I
have
to
keep
that
in
mind.
That's
the
display
were
subclassing,
not
the
functionality.
So
so
david
says
you
could
pass
this
that
state
to
evaluated
both
values.
It
would
keep
in
sync,
but
the
drag
wouldn't
work.
That's
what
I
was
just
thinking.
A
A
Oh
that's
true,
you're
right,
it
would
work
you're
right.
That
would
totally
work.
Okay,
all
right!
So
what
are
we
gonna
call
this
I'm,
calling
it
in
in
here
discrete
encoding.
So,
let's
just
let's
call
this
not
category
encoder
diagram.
I
know
I've
changed
the
name
so
many
times,
Street
discrete
encoding
diagram,
because
it's
very
specific,
it's
not
we're
not
really
doing
a
category.
It's
not
a
category.
It's
that's.
What
we're
getting
to
that's
we're
trying
to.
A
B
B
A
Know
you
can't
mark
can't
because
he's
at
work
but
I
see
Dave's
attached
to
it,
so
I,
yeah,
I,
didn't
know
if
you
were
attached
or
not,
but
I
think
I've
been
on
it
the
whole
time
but
I
think
we're
on
the
right
on
the
same
page
here
I
think
I'm,
just
gonna
change
some
names
and
we're
gonna.
We're
gonna
extend
this
feeler
overlap,
diagram
and
again,
please
bear
with
me
I'm
gonna
change.
All
these
names
most
likely
and.
A
And
we're
gonna
send
it
w
in
category
length
and
we're
gonna
set
a
specific
encoder
right
if
you
use
category
encoder
I'm,
just
putting
notes
to
use
the
category
encoder-
and
this
is
basically
over
override
parent
props
in
and
max.
So
those
are
the
only
two
things
we
need
to
override.
If
this
is
the
right
way
to
do
it,
maybe
that's
great:
let's
do
this
hey!
Thank
you,
Richard
for
stream
for
hosting
me
yeah.
A
Does
this
make
sense
to
you,
Dave,
I?
Think,
okay,
so
now,
I'm
gonna
go
look
at
the
overlap
diagram
here.
So
since
we
don't
have
a
constructor
here,
we
have
something:
some
like
I
mean
I,
assume,
there's
a
constructor,
and
this
is
it
give
this
gets
executed
the
constructor
after
we
run
that
we,
this
is
where
we
want
to
override
and
use
our
own
encoder,
but
we
also
have
this
reset
encoder
function.
Maybe
that's
the
place
we
need
to
as
it
gets
set
here
like
it
gets
recreated
every
time.
A
E
A
Yeah,
you
would
choose
it
here:
yeah,
okay,
let's
then,
so
we
know
what
encoder
we're
going
to
use.
We're
gonna
have
this
cyclic
encoder,
which
I
guess
I,
don't
need
to
wait
a
minute?
That's
not
what
I
wanted
to
do.
This
is
really.
C
A
So
and
the
other
thing
that
we're
gonna
do
so,
we've
got
so
we're
using
the
category
where
we
don't
need
to
do
this
anymore.
We
can
just
send
props
off
right.
This
isn't
gonna
matter,
I,
don't
think
that's
going
to
matter.
Maybe
we
can
get
rid
of
this,
so
if
all
we're
doing
is
resetting
the
encoder.
The
other
thing
that
we
need
to
do
is
control
the
value.
A
The
value
a
value
B
have
to
be
synced,
they
have
to
be
the
same
and
those
are
controlled
from
the
outside.
So
what
if
we
just
sent
the
same,
if
we
created
a
global
value,
let's
call
it
for
the
sake
of
argument.
Let's
call
it
value
C
does
that
makes
total
sense
right
and
then
we
created
this
and
we
passed
in
value
a
does.
A
C
A
A
A
Just
see
what
happens
here,
discrete
I've
got,
my
name
is
still
wrong:
discrete
encoding
diagram,
category
coding
diagram.
Now,
let's
call
this
discrete
encoding
diagram.
Just
read,
encoding
diagram
and
I.
Think
I
named
it
yeah
properly.
Here,
let's
see
it
can't
resolve
the
module
is
still
just
honest
diagrams
that
rename
it
something
funny
I'm
still
calling
it
category
encoders
category
scalar,
Carter,
so
I'm
here
to
change
the
name,
discrete
coding,
diagram,
okay,
I,
rethink
that
undefined
category.
Oh
that's
an
encoders!
So
it's
not!
Oh
ok,
so
we
I
don't
think
we
can
send
it.
A
C
E
A
B
E
C
A
A
A
A
A
Maybe
that
fixed
it
well,
there's
still
a
ton
of
errors
and
I'm
sure
that
okay,
so
why
would
that
has
to
be
because
evaluating
value
so
I'm
gonna
keep
that
debugger
there
and
step
out.
D
C
A
Still
work
select
all
rekt,
the
data
is
dual
encoding.
Each
one
is
a
and
B
see
if
we
have
rx300
of
them
treating
them,
so
it
was
in
here
somewhere
and
probably
I.
Don't
know
why
this
wouldn't
work,
because
that
the
value
looked
like
our
the
air.
Excuse
me,
they're,
not
a
number
of
the
vibes
coming
from
somewhere
in
here
that
look
like
the
d3
rendering
problem.
Usually
that's
when,
like
the
data
that
it
got
to
create
its
its
elements,
art
that
isn't
really
data
or
there's
something
wrong
with
the
data.
A
A
C
A
E
C
C
C
A
E
A
C
A
C
E
A
A
C
A
C
C
A
A
E
E
A
C
A
A
C
E
A
E
A
E
A
A
A
E
E
A
E
A
A
A
This
I
don't
want
this
to
trigger
every
mile
of
this
fine
I'll.
Let
it
well
at
least
see
if
that
encoders,
not
a
number.
What
value
is
its
index
index
is
40.
Let's
put
a
watch
and
X
is
50.
Next
is
180,
so
this
is
where
I
expect
it
to
be.
Not
a
number
something's
wrong.
Here,
though,
W
is
30
left
value,
something's,
not
a
number
cell.
B
A
A
It's
only
used
once
that's
what
stories:
okay,
I'm,
hoping
that's
the
end
of
it.
Oh
that's,
good!
That's
better!
Okay,
all
those
went
away.
This
doesn't
look
right,
but
a
drag
doesn't
work,
but
there's
still
some
stuff.
That's
wrong!
Does
this
work?
No
cuz,
but
the
W
does
okay,
okay,
it's
snap
in
two
values,
but
that's
interesting!
Okay,
that's
interesting!
So
it's
keeping
in
constant
because
in
is
it
controls
its
own
end
and
it's
based
upon
how
many
categories
there
are.
A
A
C
A
C
B
A
So
what
we're
expecting
this
to
be
in
here
is
the
text
element.
Excuse
me,
I.
A
A
I'm
gonna
take
this
whole
thing
out,
because
I
want
to
debug
it
and
I
only
want
to
drop
in
to
this.
One
thing
so
get
range
from
bit
index
is
certainly
wrong,
but
let's
go
with
the
simpler
one.
The
six
isn't
drawn
in
the
right
place,
and-
and
it's
probably
because
I
don't
know
exactly.
Why,
like
we,
don't
this
only
updates
once
and
even
without
dragging,
it
should
be
in
the
state
of
the
right
place.
A
A
A
A
A
A
C
C
B
C
C
A
A
There
are
the
same
scales,
I'm
using
and
I,
say
scales,
I
mean
the
the
linear
interpolation
functions
that
translate
a
number
from
the
pixel
range
that
people
are
interacting
with
to
the
value
range
between
the
mid
and
the
max,
and
vice
versa.
So
there's
their
d3
I've
got
scales,
set
up
to
go
in
both
directions
in
two
ways:
there's
there's
one
for
the
bucket
indices
and
there's
one
for
like
where
the
value
would
be
placed
and
along
that's
those
that
pixel
range
as
well.
So
the
pixel
range
is
the
UI.
A
You
know
the
range
of
pixels,
the
user
interacts
with,
and
the
two
scales
I'm
working
with
are
scaled
to
the
value
range,
zero
to
ten
or
whatever,
the
min
and
Max
are,
and
to
the
the
actual
bit
indices
of
the
output
cells
that
you
see
here.
So
there's.
That's
those
are
those
two
scales:
both
directions
are
the
ones
we're
working
with
and
then
d3
you
create
scales
like
this
all
the
time
for
graphs
and
charts
and
stuff,
and
it
works
nice
there's
a
lot
of
tools
around
linear
interpolation.
A
So
it's
so.
These
scales
are
wrong,
that
this
isn't
right.
So
this
one
looks
like
it's
like
50
percent
off
60,
70
percent
off
for
some
reason:
I,
don't
know
why
and
the
other
one
for
these
there's
also
a
scale
that
tries
and
translates.
First
of
all,
the
value
is
just
wrong:
I,
don't
know
what
the
max
is,
because
the
encoder
calculates
that
I
can
drag
it
all
the
way
over.
There.
A
A
C
A
E
A
C
C
C
A
A
A
A
E
E
A
C
A
Window
size
you
wanted
so
the
min
and
max
mins,
always
zero
and
max
is
always
how
many
categories
there
are,
and
I
mean
the
simplest
cases.
Think
of
n,
as
the
amount
of
categories
you
have
and
W
is
one
that
way.
There's
one
bit
on
for
each
category
and,
like
you
know,
if
you've
got
ten
categories,
you've
got
ten
bits
and
one
for
each
and
then,
as
you
multiply
W
you
can
make
it
20
bits
to
1
for
each
30
bits
3
on
for
each
etc.
A
A
A
A
But
it's
not
the
encoding,
that's
wrong!
It's
the
cell
width,
that's
wrong!
What
is
the
cell
width
that
should
be
very
small
one
I'm
gonna
change,
I'm,
going
to
change
the
parameters
so
that
they're
a
little
bit
simpler,
that
maybe
I
can
tell
the
difference
to
live
a
little
better.
Let's
change
into
like
30
W
to
2.
A
A
It
is
20
I
just
sit
into
30.
Oh
wait.
Wait
ends,
oh
yeah.
This
I
forget
this
diagram
is
not
paying
attention
to
global
in
to
the
page
level.
N,
it's
creating
its
own
in
value
based
on
the
categories
in
the
W
I
mean
I'm.
Gonna.
Make
this
really
simple:
let's
do
one
and
ten
that
way,
yeah
one
two,
three,
four:
five:
six:
seven,
eight
nine
ten
and
we're
at
six
zero
one,
two,
three,
four:
five:
six!
Ok,
so
the
encoding
is
correct.
C
A
C
A
E
C
A
That's
supposed
to
be
what
it's
doing,
I
thought!
That's
what
it
was
doing
here
in
the
hover
where's,
the
hover.
A
Please
lose
it
right
there,
this
valve
to
screen
invert,
that's
what
that's
doing
it's
taking
the
x
value
and
it's
taking
the
linear
interpolation
for
value
to
screen
and
basically
doing
screen
to
value
with
the
invert
and
translating
it
and
this
works
for
the
ones
up.
Above
sorry,
I
know
this
is
working
I,
don't
think
this
is
I.
Don't
think
this
is
the
problem,
hey
look!
It's
the
same.
Things
happening
up
here.
A
C
A
A
So
hey
look
at
this,
so
I'm
doing
something
a
little
different
here,
I'm,
creating
the
rectangle
width
and
I'm
using
the
encoders
in
value.
So
maybe
it
maybe
just
something
I'm
already
doing.
This
is
basically
I'm
already
doing
this,
but
this
is
seems
different,
I'm,
creating
a
new
scale
every
time.
A
A
D
C
A
C
A
A
A
This
is,
this
is
the
same
thing.
This
is
what
I'm
doing
here,
I'm
just
calling
up
bits
to
outlet
display
instead
of
output
range
scale.
This
is
the
exactly
the
same
thing.
I
could
do
this,
which
is
exactly
the
same,
that
that
is
what
the
output
range
is
so
I'm
just
going
to
use
this
I'm
gonna
use
bits
to
output
display,
but
I
have
to
do.
I
have
to
recreate
this
essentially
every
time.
C
A
C
A
Well,
you
need
something
that
can
understand
temporal
data,
which
is
hard
for
most
deep
learning
systems.
So
it's
one
of
the
things
htm'
is
good
at
especially
if
you
want
to
do
anomaly
detection,
so
you
could
certainly
look
into
something
called
HTM,
which
is
what
I
work
on
ok
bits
to
output
display,
I.
C
A
E
A
A
A
C
C
A
It
is
so
I
create
one
scale,
which
is
the
main
scale
that
translates
the
input
domain
into
the
output
branch,
the
input
domain
being
min
and
Max
the
output
range
being
zero
to.
However
many
bits
there
are,
and
the
reverse
scale
is
the
opposite,
which
is
which
I
don't,
which
is
fine
I
could
I
could
just
I
could
certainly
use
that
the
output
range
the
input
domain
was
so
if
you
want
to
take
an
index,
which
is
what
I'm
doing
here
and
get.
C
A
A
C
A
A
C
A
C
A
Thanks
Falco
thanks
for
the
nudge
yeah
check
out
our
forum,
but
I'm
sorry
I'm,
not
being
very
attentive
to
you,
guys
in
chat
because
I'm
trying
to
solve
a
technical
problem
here
and
it's
taking
I'm
not
being
very
successful
at
the
moment,
so
so
I'm
trying
to
scale
from
the
index
to
the
index
plus
W,
which
is
so
how
long
I
want
how
many
bits
are
on
so
this
left
index
should
be,
should
should
not
be
this
scale.
It
seems
wrong
to
me
this
reverse
scales.
A
No,
it's
not
so
what
I'm
doing
is
I'm
I'm
starting
at
the
index
where
I
know
this
is
this
index.
60
is
telling
me
right
here
and
then
the
index
+
W
is
right
here
plus
W,
and
this
is
the
right
side.
So
this
should
be
the
left.
Pixel
start.
This
should
left
wrist
would
be
right,
X,
so
left
X,
right,
X
and
pixels.
That's
what
I
should
be
getting
here
and
they're,
obviously
totally
wrong,
so
left
X
is
it's
gonna
be,
and
it's
because
my
index
is
wrong.
A
A
A
E
A
So
if
I
took
this
out
so,
for
example,
so
I
don't
have
a
left
index
right
index.
I
do
I,
do
I,
do
actually
because
let
left
index
equal
index
plus
Oh
index,
let
Oh
God
all
right
index
equal
index
plus
W,
which
is
essentially
what
I
just
said
and
that's
what
I
should
use
for
the
indices
I
was
I
had
like
I
was
translating
back
and
forth.
I.
Think,
let's
see.
A
A
C
A
C
A
E
A
Yeah,
oh
the
draw
bracket
method
yeah,
it's
so
close,
though
there's
got
to
be
something
it's
so
close
all
right.
Well,
you
know
what
we're
close
I'm
gonna
write
I'm
going
to
draw
I'm
gonna
write
up,
though
so
there's
two
issues
here
to
do
and
I
think
I'm
gonna
know:
what's
what
I'm
gonna
do,
but
I
might
as
well
put
it
in
the
Trello
board.
One.
D
A
It's
like
whittling
and
code,
okay.
So
so,
let's
do
a
quick
review.
Look
I
feel
like
we
need
to
push
something
at
this
point.
I've
got
a
lot
of
changes.
So,
let's,
let's
take
a
look
at
what
we've
done.
Oh
look:
I've
got
co-authored
by
isn't
that
cool?
That's
awesome
is
it
are
these
like
notes,
I
can
put
in
that's
cool,
so
I'm
gonna
take
I.
Guess
I
can
take
notes
about
this.
So
we've
got
a
new
added
discrete
encoder.
C
A
If
I
could
tie
that
into
my
credit
roll-ups,
that's
a
good
idea.
I
wish
I
could
define
my
own
credits,
but
I,
don't
know
how
yet
I
know
it.
I
know
how
I
just
haven't
it
would
take
a
lot
of
manual
work,
so
we're
replacing
in
with
a
coder
and
I
feel
like
there
might
be
somewhere
else
in
here
where
we
have
an
end.
It
hasn't
been
converted
to
encoder
and-
and
that
may
be
the
only
reason
why,
but
we'll
figure
that
out
right,
we
changed
that
key.
A
Decoder
n
we
simplified
this,
took
the
state,
isn't
it
silly?
So
we
went
one
direction
and
then
we
went
right
back
the
other
direction.
So
we
simplified
this
pretty
drastically
into
just
one
one
translation
from
index,
because
that
we
already
had
and
then
right,
we
updated
those
IDs
change,
the
name,
simple
scalar
encoder,
just
added
a
default
value
here
and
then
the
coding
numbers.
A
A
A
In
different
host
says,
is
there
an
explained
it
like
I'm,
five
of
HTM
systems?
Yeah
there
certainly
is:
do
you
like
watching
animated
videos
go
to
HTM
school?
It's
a
video
series
that
introduces
HTM,
see
all
the
episodes
and
their
descriptions,
and
it
starts
out
really
really
basic
with
bit.
Arrays
sparse,
distributed
representations
why
those
are
important,
and
then
we
go
through
all
these
encoding
things
I'm
talking
about
encoding
right
now.
A
That's
what
this
that's
the
code
that
we're
running
you
now
is
doing
it's
doing
encoding
so
we'll
talk
about
different
methods
of
encoding
and
then
spatial
pooling.
If
you
continue
watching
this
series,
building
HTM
systems
on
Twitch
I'm
going
to
be
building
a
spatial
cooler,
so
we
will
get
there
and
and
we'll
we'll
be
going
through
all
these
algorithms
and
building
them
out
and
visualizing
them.
That's
the
whole
point
of
this
task
that
we're
working
on
building
HTM
systems.
A
Yes,
that's
what
this
is
simple,
HTM,
that's
what
this
is
supposed
to
be.
This
is
going
to
be
the
JavaScript
it's
Jim
framework
that
is
going
to
run
building
HTM
systems.
The
only
thing
that
I
have
in
here
right
now
is
encoders.
So
when
we
start
encoding
algorithms,
we'll
do
it
here,
so
it'll
be
a
different
project.
It'll
be
clean,
there'll
be
no
UI.
None
of
that
stuff
will
just
be
clean
and
everything
will
have
a
test,
so
I
have
built
these
encoders
and
I've
tested
them
all
pretty
pretty
thoroughly.
A
Days
of
the
week-
and
it's
the
expected
encoding
the
very
explicit
tests
about
about
this,
so
I'll
continue
to
do
that
sort
of
testing
as
we
go
along,
because
when
we
create
the
spatial
Pooler
and
we
create
the
receptive
field,
properties
and
stuff,
we
should
be
able
to
step-by-step
test
and
make
sure
it's
doing
exactly
what
it
should
be
doing
and
that's
part
of
the
learning
process.
So
it
should
be
fun.
C
A
A
So
let
me
add
a
card
for
that.
Okay,
for
discrete
drag
for
discrete
encoding
diagram.
I'm
gonna
put
this
in
review.
It's
not
totally
done
this
is
this.
Is
I'm
gonna
call
the
cyclic
encoder
done.
The
continuous
alarm
code
are
done,
even
though
there
are
some
tweaks
that
could
be
made
to
it,
I'm
just
going
to
call
them
done
this.
One
is
not
quite
done,
but
it's
it
will
put
it
in
review
for
now,
because
we're
gonna
come
back
once
this
is
fixed.
This
is
a
diagram
bug.
A
A
A
A
Sound
better
so
a
lot
out,
or
hopefully,
yeah,
okay,
that
was
it
so
I
think
that
people
in
the
live
stream
might
have
been
having
problems.
Hearing
you
sorry
about
that.
You
guys
I
could
still
turn
the
music
up
a
little
bit.
Hopefully,
okay,
next
time,
I'll
make
sure
that
that
that
is
working
properly.
A
A
A
C
A
A
A
So
this
is
a
diagram
bug
and
we
will
leave
it
at
that.
If
I
come
back
over
the
weekend,
that's
going
to
be
the
next
stuff
that
I'm
going
to
work
on.
If,
if
somebody
does
want
to
tackle
them,
you're
welcome
to
it.
But
if,
if
nothing
else,
I'm
gonna
try
and
finish
up
the
discrete
encoding
diagram,
so
we
can
put
it
aside
and
move
on
the
next.
One
is
going
to
be
category
encoder
and
it's
and
it's
pretty
simple,
but
it's
going
to
be
a
custom
diagram.
A
A
A
C
A
A
A
Monday
I
already
have
one
Thursday,
so
let's
move
it
to
Friday
wait.
This
is
the
wrong
one.
This
is
wrong.
This
is
the
one
I'm
changing
that
was
close
edit
yeah.
This
it'll
be
fun
when
we
get
to
special
orders,
that's
that's
when
it
gets
interesting
to
think
about
like
that's
when
it
gets
like
brainy.
You
know
like
wow.
Your
brain
is
really
doing
this.
That's
crazy!
A
C
A
Then
the
next
Monday
we're
gonna
do
the
we're
gonna
talk
about
the
fully
connected
layers
and
I.
Think
Mark
Brown
that
Kings
gonna
join
us
be
able
to
join
us
on
chat
for
that,
but
in
the
meantime,
I'll
probably
do
two
sessions
next
week
of
building
HTM
systems,
certainly
Monday
and
probably
Thursday
or
Friday,
and
and
that's
it.
Let's
take
our
13
viewers
and
and
go
raid
somebody
else.
Let's
write
a
Science
Channel,
let's
raid
rockets,
age,
she's
she's
a
fun
science
channel.
Let's
do
that.
A
A
Bring
me
four
else:
do
this
there
we
go
thanks
for
supporting
the
stream.
Here's
everybody
follow
during
the
stream.
Quite
a
few
people.
Thank
you
all
very
much,
and
subscribers
I
subscribed
you
because
you
hang
around
so
much
just
like
just
want
to
say
thanks
to
all
of
you
guys
when
you,
when
you
cut
to
the
next
channel
before
you
guys
start
chatting
or
whatever
wait
like
five
seconds
or
when
I
cut
to
the
next
channel.
Okay
I
will
do
that.