Programming Languages
An anecdotic tour on the history of programming languages
C, a general purpose, procedural language was designed by Dennis Ritchie, one of the two Unix legends, at Bell Labs (which as of 2016 are a subsidiary of Nokia). It was named C because it was an improved B, a previous programming language, which was a simplified BCPL (hence its name). After they wrote C, they decided to re-write Unix to it. This venture was completed steadily and in parts. During the end of the decade, and in the next one (80s) versions of C were implemented for a wide variety of computers, including the IBM PC.
Associative Memory Using Dictionary Learning and Expander Decoding
Mazumdar, Arya (University of Massachusetts Amherst) | Rawat, Ankit Singh (Massachusetts Institute of Technology)
An associative memory is a framework of content-addressable memory that stores a collection of message vectors (or a dataset) over a neural network while enabling a neurally feasible mechanism to recover any message in the dataset from its noisy version. Designing an associative memory requires addressing two main tasks: 1) learning phase: given a dataset, learn a concise representation of the dataset in the form of a graphical model (or a neural network), 2) recall phase: given a noisy version of a message vector from the dataset, output the correct message vector via a neurally feasible algorithm over the network learnt during the learning phase. This paper studies the problem of designing a class of neural associative memories which learns a network representation for a large dataset that ensures correction against a large number of adversarial errors during the recall phase. Specifically, the associative memories designed in this paper can store dataset containing exp( n ) n -length message vectors over a network with O ( n ) nodes and can tolerate ฮฉ( n / polylog) adversarial errors. This paper carries out this memory design by mapping the learning phase and recall phase to the tasks of dictionary learning with a square dictionary and iterative error correction in an expander code, respectively.
Associative Memory using Dictionary Learning and Expander Decoding
Mazumdar, Arya, Rawat, Ankit Singh
An associative memory is a framework of content-addressable memory that stores a collection of message vectors (or a dataset) over a neural network while enabling a neurally feasible mechanism to recover any message in the dataset from its noisy version. Designing an associative memory requires addressing two main tasks: 1) learning phase: given a dataset, learn a concise representation of the dataset in the form of a graphical model (or a neural network), 2) recall phase: given a noisy version of a message vector from the dataset, output the correct message vector via a neurally feasible algorithm over the network learnt during the learning phase. This paper studies the problem of designing a class of neural associative memories which learns a network representation for a large dataset that ensures correction against a large number of adversarial errors during the recall phase. Specifically, the associative memories designed in this paper can store dataset containing $\exp(n)$ $n$-length message vectors over a network with $O(n)$ nodes and can tolerate $\Omega(\frac{n}{{\rm polylog} n})$ adversarial errors. This paper carries out this memory design by mapping the learning phase and recall phase to the tasks of dictionary learning with a square dictionary and iterative error correction in an expander code, respectively.
Spreading Activation Mobile app could stop suicide by analysing language to spot risk
Researchers are developing an app which could help to prevent suicides by flagging those most at risk. Using a computer algorithm, it records conversations, analysing what people say and how they speak. By picking up on a range of subtle verbal and non-verbal cues, it can correctly classify if someone is suicidal with 93 per cent accuracy. At the heart of the app is a machine learning algorithm which classifies the person based on their responses. In an earlier study, researchers enrolled a mix of 379 patients, who were suicidal, diagnosed as mentally ill, or neither.
Associative Memory via a Sparse Recovery Model
Mazumdar, Arya, Rawat, Ankit Singh
An associative memory is a structure learned from a dataset $\mathcal{M}$ of vectors (signals) in a way such that, given a noisy version of one of the vectors as input, the nearest valid vector from $\mathcal{M}$ (nearest neighbor) is provided as output, preferably via a fast iterative algorithm. Traditionally, binary (or $q$-ary) Hopfield neural networks are used to model the above structure. In this paper, for the first time, we propose a model of associative memory based on sparse recovery of signals. Our basic premise is simple. For a dataset, we learn a set of linear constraints that every vector in the dataset must satisfy. Provided these linear constraints possess some special properties, it is possible to cast the task of finding nearest neighbor as a sparse recovery problem. Assuming generic random models for the dataset, we show that it is possible to store super-polynomial or exponential number of $n$-length vectors in a neural network of size $O(n)$. Furthermore, given a noisy version of one of the stored vectors corrupted in near-linear number of coordinates, the vector can be correctly recalled using a neurally feasible algorithm.
Automatic Programming Robert Elschlager and Jorge Phillips Handbook of Artificial Intelligence
Theorem Proving Vision Robotics Information Processing Psychology Learning and Inductive Inference Planning and Related Problem-solving Techniques Automatic Programming (AP) Is a new, dynamic, and not precisely defined area of artificial intelligence. This overview discusses the definitions, history, motivating forces and goals of automatic programming and includes a brief description of the basic characteristics and central issues of AP systems. The article begins with a section discussing the various possible definitions of automatic programming, the background in which it has achieved existence, as well as some of its general motivating forces and goals. The next section describes four characteristics of all AP systems: the method by which a user of such a system specifies or describes the desired program, the target language in which the system writes the program, the problem or application area to which the system is addressed, and the approach or operational method employed by the system. Next, a section discusses four basic issues, one or more of which concern all AP systems: the representation and processing of partial or incomplete information; the transformation of structures, and especially the transformation of program descriptions into other descriptions (in this chapter, the term program description includes the user's specification of the desired program, any Internal representations of the progrrm, as well as the target language implementation); the efficiency of the target language Imp,ementation; and the system's capabilities for aiding in the understanding of the program.
Noise-Enhanced Associative Memories
Karbasi, Amin, Salavati, Amir Hesam, Shokrollahi, Amin, Varshney, Lav R.
Recent advances in associative memory design through structured pattern sets and graph-based inference algorithms have allowed reliable learning and recall of an exponential number of patterns. Although these designs correct external errors in recall, they assume neurons that compute noiselessly, in contrast to the highly variable neurons in hippocampus and olfactory cortex. Here we consider associative memories with noisy internal computations and analytically characterize performance. As long as the internal noise level is below a specified threshold, the error probability in the recall phase can be made exceedingly small. More surprisingly, we show that internal noise actually improves the performance of the recall phase. Computational experiments lend additional support to our theoretical analysis. This work suggests a functional benefit to noisy neurons in biological neuronal networks.
Correlations strike back (again): the case of associative memory retrieval
Savin, Cristina, Dayan, Peter, Lengyel, Mate
It has long been recognised that statistical dependencies in neuronal activity need to be taken into account when decoding stimuli encoded in a neural population. Less studied, though equally pernicious, is the need to take account of dependencies between synaptic weights when decoding patterns previously encoded in an auto-associative memory. We show that activity-dependent learning generically produces such correlations, and failing to take them into account in the dynamics of memory retrieval leads to catastrophically poor recall. We derive optimal network dynamics for recall in the face of synaptic correlations caused by a range of synaptic plasticity rules. These dynamics involve well-studied circuit motifs, such as forms of feedback inhibition and experimentally observed dendritic nonlinearities. We therefore show how addressing the problem of synaptic correlations leads to a novel functional account of key biophysical features of the neural substrate.