Deep (learning) like Jacques Cousteau – Part 2 – Scalars

(This article was first published on Embracing the Random | R,and kindly contributed to 188bet appR-bloggers)

(TL;DR: Scalars are single numbers.) I have so many scalars!
Opie,the open source snake

I'm sorry…that was lame…
Me

Last
time
,
we covered some basic concepts regardingsetson our journey to
understandingvectorsandmatrices. Let's do this!

Today's topic: Scalars

What's a scalar?

A scalar is a single number!This seems very simple (and it is).But we
need to know this to understand operations likescalar multiplication
or statements like"The result of multiplyingthisbythatis a
scalar"
.

We will use the notation fromGoodfellow,Ian,et
al.
and depict them in lower case,
italicised letters like this:

How can we define the types of numbers our scalars should represent?

Say,we define ourarbitrary scalar,,as a number from the set of
natural
numbers
.
We would show thisset membershiplike this:

The ‘' symbol means
‘is a member/is an element of/belongs to (some set)'Pick the one you like most!
However,the whole statement is often read as 'is a natural
number'.

‘is not a member/is not an element of/does not belongs to (some set)'.Easy!

Let's bring this back to machine learning

What are the implications of defining our scalars as natural numbers?

• Let's say we start with the number,and we want toadd
some arbitrary number,,to it.
• Let's defineas a natural number.That is,
belongs to the set of ‘whole',positive numbers starting with 1 and increasing with no upper bound.

Here are some of the implications of our definition of
:

• cannot equal因为,and
therefore,cannot take on the value of.
• We can never get an answer where the first decimal place is
something other thanzero.For example,there is no natural
number,,where.

Now here is my (crappy) attempt at intuitively bringing this back to machine
learning!

• Let's say that our scalar,,is the value used toupdate the
parameters in our model
after some iteration of training.
• Then we are restricted to making crude updates ofat least one
only!
• Our algorithm may never converge and we might see the values of our
evaluation metric jumping 金宝搏网址about erratically as training progresses.

This might not be an academically rigorous explanation,but it's
hopefully good enough to build some intuition.

We'll define our scalars as real numbers

We'll make our universe of numbers into something larger where our scalars can take on more than just whole,positive values.We will
define our arbitrary scalars,,as coming from the set of real
numbers.That is:

How can we represent scalars in R?

R technically has no scalar data type!FromHadley Wickham's ‘Advanced
R',1st edition
,we can find this
in the‘Data Structures'
chapter:

Note that R has no 0-dimensional,or scalar types.Individual numbers
or strings,which you might think would be scalars,are actually
vectors of length one.

But in practice,we can emulate our real number scalar by doing something like this:

x <- 123.532
print(x)
##  123.532

In the same section,we also find out that to test whether something is
a vector in R,one must useis.atomic():

print(is.atomic(x))
##  TRUE

Yes,we have ourselves a vector!How many elements do we have?

print(length(x))
##  1

Hooray!We have ourselves a proxy for our scalar.Now what is the data
type of our scalar?

From thenumerichelp page in the R documentation,we find this:

numeric is identical to double (and real).It creates a
double-precision vector of the specified length with each element
equal to 0.

Then from thedoublehelp page,we find this:

All real numbers are stored in double precision format.

Let's test it out!

class(x)
##  "numeric"
typeof(x)
##  "double"

Hooray!

Conclusion

We now know that scalars are members of sets.We have defined our scalars
as coming from the set of real numbers.

On to vectors!

Justin

188bet appR-bloggers.comoffers daily e-mail updates金宝搏网址 Rnews and tutorialson topics such as: Data science, Big Data, R jobs,visualization ( ggplot2, Boxplots, maps, animation),programming ( RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics ( regression, PCA, time series, trading) and more...

If you got this far,why not subscribe for updates from the site?Choose your flavor: e-mail, twitter, 1188bet app,or facebook...