The fundamental problem of communication is that of reproducing at one point either exactly or approximately
a message selected at another point. Frequently the messages have meaning; that is they refer
to or are correlated according to some system with certain physical or conceptual entities. These semantic
aspects of communication are irrelevant to the engineering problem. The significant aspect is that the actual
message is one selected from a set of possible messages. The system must be designed to operate for each
possible selection, not just the one which will actually be chosen since this is unknown at the time of design.
The determination of these fluctuations is subject to an infinite number of
factors: it is therefore impossible to expect a mathematically exact forecast.
Contradictory opinions in regard to these fluctuations are so divided that at the
same instant buyers believe the market is rising and sellers that it is falling.
Undoubtedly, the Theory of Probability will never be applicable to the movements
of quoted prices and the dynamics of the Stock Exchange will never be
an exact science.
However, it is possible to study mathematically the static state of the market
at a given instant, that is to say, to establish the probability law for the price
fluctuations that the market admits at this instant. Indeed, while the market
does not foresee fluctuations, it considers which of them are more or less probable,
and this probability can be evaluated mathematically.
An interesting idea... Note to self: read the thesis
This is related to the observation that the intelligent system's interaction is more complicated than simple processes that model the interaction as a random and uncorrelated bouncing of particles (Brownian motion).
Which in turn may be related to
The commonplace expressions of arithmetic and algebra
have a certain simplicity that most communications to
computers lack. In particular, (a) each expression has a
nesting subexpression structure, (b) each subexpression
denotes something (usually a number, truth value or
numerical function), (c) the thing an expression denotes,
i.e., its "value", depends only on the values of its subexpressions,
not on other properties of them.
It is these properties, and crucially (c), that explains
why such expressions are easier to construct and understand.
Thus it is (c) that lies behind the evolutionary
trend towards "bigger righthand sides" in place of strings
of small, explicitly sequenced assignments and jumps.
When faced with a new notation that borrows the functional
appearance of everyday algebra, it is (c) that gives
us a test for whether the notation is genuinely functional
or merely masquerading.
It all starts with a functional language. Following lecture shows Denotational Semantic of an expression in Lambda Calculus to Set.
Once the meaning of an expression is knowns we need the meaning of the values that the expression reduces to. This is where as a designer you define the meaning of the values in your specific domain.
In the following lecture, Conal Elliot shows how you extend the denotational semantic to values. He contrasts this approach to the standard imperative API model. In imperative API the interface is about creating the state, initializing it and defining functions to side effect the state.
Functional programming, on the other hand, is about APIs to define things that "ARE" in the domain. There is a clear distinction between values and evaluation. So you have base values, transformation, and composition operators. In all, you need to make sure there is a clear, and precise meaning to the values and that it can lead to an efficient implementation. The distinction is sometimes hard to get. For me an analogy is SQL. An SQL expression defines that property of the result your are interested in, the database engine then turns that into an execution plan and evaluates it to give you the results.
The key take away from the talk is that it is not about Functional vs Imperative or if a particular language does or doesn't have lambda expression. It is about Denotational vs Operational semantic. Another word, do you think about your program in term of its execution model or in term of the meaning of the expressions.
An interesting concept that shows up in Conal's work is that the semantic function is a natural transformation. Bartosz Milewski does a nice job of explaining what the natural transformation is.
Monday, August 13, 2018
The
Opening the Black Box of Deep Neural Networks via Information uses the diffusion process and heat equation as intuition for gradient flow between the layers of the deep network. I needed a refresher on the underlying math. Found some very good sources:
In "What is Laplacian" and subsequent video you get a great insightful introduction of Laplacian, heat and wave equations.
There is also stochastic nature to the whole thing that is nicely covered in the Stochastic process, Ito calculus , and stochastic differential equation section of the Topics in Mathematics with Applications in Finance lectures with Notes and Vidoes.
One of the most important skills in mathematical problem solving is the ability to generalize. A given problem, such as the integral we just computed, may appear to be intractable on its own. However, by stepping back and considering the problem not in isolation but as an individual member of an entire class of related problems, we can discern facts that were previously hidden from us. Trying to compute the integral for the particular value a = 1 was too difficult, so instead we calculated the value of the integral for every possibly value of a. Paradoxically, there are many situations where it is actually easier to solve a general problem than it is to solve a specific.
The fundamental problem of communication is that of reproducing at one point either exactly or approximately
a message selected at another point. Frequently the messages have meaning; that is they refer
to or are correlated according to some system with certain physical or conceptual entities. These semantic
aspects of communication are irrelevant to the engineering problem. The significant aspect is that the actual
message is one selected from a set of possible messages. The system must be designed to operate for each
possible selection, not just the one which will actually be chosen since this is unknown at the time of design.