Saturday, June 19, 2010
David O'Reilly on animating movement
I think the bit on movement trajectories in animation is brilliant. Natural human movements also follow this kind of smooth trajectory; studies of motor planning (eg here) have found that this sort of movement is optimally designed to minimize energy expenditure. It’s so great when artists figure out how to convey different feelings just by making these subtle tweaks to the textures and physics of the real world, I think it can really tell us a lot about our own perception.
Also: vectorpunk? Seriously, BoingBoing? Vectorpunk.
Labels:
art,
modeling,
neuroscience
Monday, May 17, 2010
Hemispatial neglect
Drawings copied by a patient with allocentric hemispatial neglect, in which damage to attention centers in the frontal or temporal lobes causes subjects to only perceive one half of every object.
Labels:
neuroscience
Sunday, May 9, 2010
Scott and Scurvy
Reading Scott and Scurvy, a fascinating post on Idle Words about the scurvy which plagued Robert Scott's 1911 expedition to the South Pole:
Now, I had been taught in school that scurvy had been conquered in 1747, when the Scottish physician James Lind proved in one of the first controlled medical experiments that citrus fruits were an effective cure for the disease. From that point on, we were told, the Royal Navy had required a daily dose of lime juice to be mixed in with sailors’ grog, and scurvy ceased to be a problem on long ocean voyages.
But here was a Royal Navy surgeon in 1911 apparently ignorant of what caused the disease, or how to cure it. Somehow a highly-trained group of scientists at the start of the 20th century knew less about scurvy than the average sea captain in Napoleonic times. Scott left a base abundantly stocked with fresh meat, fruits, apples, and lime juice, and headed out on the ice for five months with no protection against scurvy, all the while confident he was not at risk. What happened?
It's a fascinating story of how medical practice which lacks knowledge of underlying causes can become distorted over time. It's also kind of heartbreaking to read about the polar missions failing again and again all because they're working from the wrong model of scurvy as a disease.
Now, I had been taught in school that scurvy had been conquered in 1747, when the Scottish physician James Lind proved in one of the first controlled medical experiments that citrus fruits were an effective cure for the disease. From that point on, we were told, the Royal Navy had required a daily dose of lime juice to be mixed in with sailors’ grog, and scurvy ceased to be a problem on long ocean voyages.
But here was a Royal Navy surgeon in 1911 apparently ignorant of what caused the disease, or how to cure it. Somehow a highly-trained group of scientists at the start of the 20th century knew less about scurvy than the average sea captain in Napoleonic times. Scott left a base abundantly stocked with fresh meat, fruits, apples, and lime juice, and headed out on the ice for five months with no protection against scurvy, all the while confident he was not at risk. What happened?
It's a fascinating story of how medical practice which lacks knowledge of underlying causes can become distorted over time. It's also kind of heartbreaking to read about the polar missions failing again and again all because they're working from the wrong model of scurvy as a disease.
Labels:
biology,
history,
on science,
to read
Saturday, May 8, 2010
Frequency components of music
From Spectra and Pseudospectra; click for full size.
Measured eigenvalues in the complex plane of a minor third A4# carillon bell. The grid lines show the positions of the frequencies corresponding to a minor third chord at 456.8 Hz. together with two octaves above the fundamental and one below. Immediately after the bell is struck, the ear hears all seven of the frequencies portrayed; a little later, the higher four have decayed and mostly the lowest three are heard; still later, the lowest mode, the 'hum', dominates. The simple rational relationships among these frequencies would not hold for arbitrarily shaped bells, but are the result of generations of evolution in bell shapes to achieve a pleasing effect.
Seems like this format could make a nice interface for designing new sounds; someday I'd like to get around to recreating it.
Thursday, April 29, 2010
ATP Metabolism
And on the subject of overwhelming biological data, this is the IUBMB-Nicholson chart of all the metabolic pathways that go into ATP management in mitochondria and chloroplasts, ATP being the basic energy currency of biological systems. There's a browser-crashing full sized pdf at the link, or click the above thumbnail for a jpg.
Labels:
biology,
compbio,
knowledge management
Friday, April 23, 2010
The Long Tail of Life
Saved for future reference from kottke.org:
the Long Tail of Life: During an 11 month study in 2007, scientists sequenced the genes of more than 180,000 specimens from the Western English Channel. Although this level of sampling "far from exhausted the total diversity present," they wrote, one in every 25 readings yielded a new genus of bacteria (7,000 genera in all).
See also: Venter sequences the Sargasso Sea (and download the dataset here!); a review on the emerging field of metagenomics; genomic databases at NCBI (sequences of everything from the human genome to three strains of ebola); Helicos high-speed sequencing; a nice powerpoint on next-gen short-read sequencing and sequence assembly (including notes on Eulerian walks on De Bruijn graphs, the method used by sequence assembly algorithms like Velvet.) Man, guys, sequencing is the coolest.
the Long Tail of Life: During an 11 month study in 2007, scientists sequenced the genes of more than 180,000 specimens from the Western English Channel. Although this level of sampling "far from exhausted the total diversity present," they wrote, one in every 25 readings yielded a new genus of bacteria (7,000 genera in all).
See also: Venter sequences the Sargasso Sea (and download the dataset here!); a review on the emerging field of metagenomics; genomic databases at NCBI (sequences of everything from the human genome to three strains of ebola); Helicos high-speed sequencing; a nice powerpoint on next-gen short-read sequencing and sequence assembly (including notes on Eulerian walks on De Bruijn graphs, the method used by sequence assembly algorithms like Velvet.) Man, guys, sequencing is the coolest.
Labels:
biology,
science,
technology
Monday, April 12, 2010
Bicycle Built for Two Thousand
Bicycle Built For 2,000 is comprised of 2,088 voice recordings collected via Amazon's Mechanical Turk web service. Workers were prompted to listen to a short sound clip, then record themselves imitating what they heard. (more info)
(Daisy Bell was famously performed by an IBM 704 in 1962, in the world's first example of musical speech synthesis-- which is probably why Kubrick chose it for the end of 2001 as well.)
(Daisy Bell was famously performed by an IBM 704 in 1962, in the world's first example of musical speech synthesis-- which is probably why Kubrick chose it for the end of 2001 as well.)
Labels:
culture,
sound,
technology
Monday, March 1, 2010
The Grande Armée Invades Russia
Charles Joseph Minard was a mathematician, a civil engineer, and a pioneer in the field of information graphics; his most famous work is the above chart, which he created in 1869. It tells the tale of Napoleon's disastrous invasion of Russia in 1812: The width of the line represents the size of the Grande Armée from the crossing of the Niemen river to the deserted streets of Moscow and back, with temperatures during the return trip plotted along the bottom. At its peak, the Grand Armée numbered 690,000 men (422,000 at the start of this invasion), and was the largest army assembled to that point in European history.
Labels:
history,
knowledge management
Thursday, January 7, 2010
2020 Visions
Nature's interviews of prominent scientists on their visions of scientific progress in the next decade. Exciting stuff!
Labels:
on science,
technology,
to read
Saturday, January 2, 2010
Hubble Advent Calendar
The 2009 Hubble Telescope Advent Calendar.
The sublime moves; the expression of a person experiencing the full sense of the sublime is serious, at times rigid and amazed. On the other hand, the vivid sense of the beautiful reveals itself in the shining gaiety of the eyes, by smiling and even by noisy enjoyment. The sublime, in turn, is at times accompanied by some terror or melancholia, in some cases merely by quiet admiration and in still others by the beauty which is spread over a sublime place. The first I want to call the terrible sublime, the second the noble, and the third the magnificent. Deep loneliness is sublime, but in a terrifying way.
The sublime must always be large; the beautiful may be small. The sublime must be simple; the beautiful may be decorated and adorned. A very great height is sublime as well as a very great depth; but the latter is accompanied by the sense of terror, the former by admiration. Hence the one may be terrible sublime, the other noble.
A long duration is sublime. If it concerns past time it is noble; if anticipated as an indeterminable future, it has something terrifying.
(on the Beautiful and the Sublime.)
Labels:
science
Wednesday, December 30, 2009
Amdahl's Law for speed-up from parallelization
Optimally, the speed-up from parallelization would be linear—doubling the number of processing elements should halve the runtime, and doubling it a second time should again halve the runtime. However, very few parallel algorithms achieve optimal speed-up. Most of them have a near-linear speed-up for small numbers of processing elements, which flattens out into a constant value for large numbers of processing elements.
The potential speed-up of an algorithm on a parallel computing platform is given by Amdahl's law, originally formulated by Gene Amdahl in the 1960s. It states that a small portion of the program which cannot be parallelized will limit the overall speed-up available from parallelization. Any large mathematical or engineering problem will typically consist of several parallelizable parts and several non-parallelizable (sequential) parts. This relationship is given by the equation S = 1/(1-P)
where S is the speed-up of the program (as a factor of its original sequential runtime), and P is the fraction that is parallelizable. If the sequential portion of a program is 10% of the runtime, we can get no more than a 10× speed-up, regardless of how many processors are added. This puts an upper limit on the usefulness of adding more parallel execution units. "When a task cannot be partitioned because of sequential constraints, the application of more effort has no effect on the schedule. The bearing of a child takes nine months, no matter how many women are assigned."
Labels:
computing
Saturday, December 26, 2009
Clock signals
Most integrated circuits (ICs) of sufficient complexity use a clock signal in order to synchronize different parts of the circuit and to account for propagation delays. As ICs become more complex, the problem of supplying accurate and synchronized clocks to all the circuits becomes increasingly difficult. The preeminent example of such complex chips is the microprocessor, the central component of modern computers, which relies on a clock from a crystal oscillator. The only exceptions are asynchronous circuits such as asynchronous CPUs.
Didn't know about this before. Another one of those points of difference which raises interesting questions about the nature of neural versus digital computation.
Didn't know about this before. Another one of those points of difference which raises interesting questions about the nature of neural versus digital computation.
Labels:
computing
Thursday, December 24, 2009
Tuesday, December 22, 2009
Pitman Shorthand
(source)
Pitman shorthand is a system of shorthand for the English language developed by Englishman Sir Isaac Pitman (1813–1897), who first presented it in 1837. Like most systems of shorthand, it is a phonetic system; the symbols do not represent letters, but rather sounds, and words are, for the most part, written as they are spoken.
Labels:
pattern recognition,
programming,
technology
Thursday, December 17, 2009
Tuesday, December 15, 2009
Algorithm Design
In scientific computing, optimality of algorithms is not always something which receives full consideration by users-- if you want to run a sort or solve some combinatorial problem, you are more concerned with making the algorithm work than looking into how fast it runs. But in dealing with very large data sets, reducing the limiting behavior of your algorithm from N^2 to NlogN can reduce your runtime from something on the order of years to something on the order of seconds. So while there are many computational problems out there for which solutions are known to exist, the practical matter of implementing such solutions is so expensive that they are effectively useless-- but if a new algorithm could be found which would reduce their runtime, we might suddenly be able to use them.
This is the driving motivation behind much of the work that goes into quantum computing. Because bit state in a quantum computer is probabilistic rather than binary, the computer operates in a fundamentally different way, and we can design algorithms which take such differences into account. One vivid example is Grover's Algorithm for searching an unsorted array. Here's a good description from Google labs:
So if you were opening one drawer a second, the traditional algorithm would take you an average of six days to run, while the quantum algorithm would take you a little under 17 minutes.
(Now, say each of those million drawers represented a different combination of letters and numbers, and you were trying to find the drawer/combination which corresponded to the password to someone's email account. Encryption standards which would be secure against attacks from a traditional computer are easily bypassed by quantum algorithms.)
While quantum computing still has a ways to go, parallel programming is already providing another alternative to traditional computer architecture. In parallel programming, you split your code up and send it to a number of computers running simultaneously (for our million-drawer problem: say you had 9 other people to help you, you could each search a different set of 100,000 drawers and it would only take 50,000 steps on average for the ball to be found.) So the trick in parallel programming is to figure out the right way to eliminate all the bottlenecks in your code and split up your task across processors as efficiently as possible.
Now, what about a task like image recognition? If you had a couple thousand processors at your disposal and a single image to feed them, what is the most efficient way for your processors to break up that image so that between them they can reconstruct an understanding of what it depicts? You might decide to give each computer a different small piece of the image, and tell it to describe what it sees there-- maybe by indicating the presence or absence of certain shapes within that piece. Then have another round of computers look at the output of this first batch and draw more abstract conclusions-- say computers 3, 19, and 24 all detected their target shape, so that means there's a curve shaped like such-and-such. And continue upwards with more and more tiers representing higher and higher levels of abstraction in analysis, until you reach some level which effectively "knows" what is in the picture. This is how our current understanding of the visual cortex goes-- you have cells with different receptive fields, tuned to different stimulus orientations and movements, which all process the incoming scene in parallel, and in communication with higher-level regions of the brain.
It would be interesting, then, to see what sensory-processing neuroscience and parallel programming could lend one another. Could the architecture of the visual cortex be used to guide design of a parallel architecture for image recognition? Assuming regions like the visual cortex have been evolutionarily optimized, an examination of the parallel architecture of the visual processing system could tell us a lot about how to best organize information flow in parallel computers, and how to format the information which passes between them. Or in the other direction, could design of image-recognition algorithms for massively parallel computers guide experimental analysis of the visual cortex? If we tried to solve for the optimal massively-parallel system for image processing, what computational tasks would the subunits perform, and what would their hierarchy look like-- and could we then look for these computational tasks and overarching structure in the less-understood higher regions of the visual processing stream? It's a bit of a mess because the problem of image processing isn't solved from either end, but that just means each field could benefit from and help guide the efforts of the other.
So! Brains are awesome, and Google should hire neuroscientists. Further reading:
NIPS: Neural Information Processing Systems Foundation
Cosyne: Computational and Systems Neuroscience conference
Introduction to High-Performance Scientific Computing (textbook download)
Message-Passing Interface Standards for Parallel Machines
Google on Machine Learning with Quantum Algorithms
Quantum Adiabatic Algorithms employed by Google
Optimal Coding of Sound
This is the driving motivation behind much of the work that goes into quantum computing. Because bit state in a quantum computer is probabilistic rather than binary, the computer operates in a fundamentally different way, and we can design algorithms which take such differences into account. One vivid example is Grover's Algorithm for searching an unsorted array. Here's a good description from Google labs:
Assume I hide a ball in a cabinet with a million drawers. How many drawers do you have to open to find the ball? Sometimes you may get lucky and find the ball in the first few drawers but at other times you have to inspect almost all of them. So on average it will take you 500,000 peeks to find the ball. Now a quantum computer can perform such a search looking only into 1000 drawers.
So if you were opening one drawer a second, the traditional algorithm would take you an average of six days to run, while the quantum algorithm would take you a little under 17 minutes.
(Now, say each of those million drawers represented a different combination of letters and numbers, and you were trying to find the drawer/combination which corresponded to the password to someone's email account. Encryption standards which would be secure against attacks from a traditional computer are easily bypassed by quantum algorithms.)
While quantum computing still has a ways to go, parallel programming is already providing another alternative to traditional computer architecture. In parallel programming, you split your code up and send it to a number of computers running simultaneously (for our million-drawer problem: say you had 9 other people to help you, you could each search a different set of 100,000 drawers and it would only take 50,000 steps on average for the ball to be found.) So the trick in parallel programming is to figure out the right way to eliminate all the bottlenecks in your code and split up your task across processors as efficiently as possible.
Now, what about a task like image recognition? If you had a couple thousand processors at your disposal and a single image to feed them, what is the most efficient way for your processors to break up that image so that between them they can reconstruct an understanding of what it depicts? You might decide to give each computer a different small piece of the image, and tell it to describe what it sees there-- maybe by indicating the presence or absence of certain shapes within that piece. Then have another round of computers look at the output of this first batch and draw more abstract conclusions-- say computers 3, 19, and 24 all detected their target shape, so that means there's a curve shaped like such-and-such. And continue upwards with more and more tiers representing higher and higher levels of abstraction in analysis, until you reach some level which effectively "knows" what is in the picture. This is how our current understanding of the visual cortex goes-- you have cells with different receptive fields, tuned to different stimulus orientations and movements, which all process the incoming scene in parallel, and in communication with higher-level regions of the brain.
It would be interesting, then, to see what sensory-processing neuroscience and parallel programming could lend one another. Could the architecture of the visual cortex be used to guide design of a parallel architecture for image recognition? Assuming regions like the visual cortex have been evolutionarily optimized, an examination of the parallel architecture of the visual processing system could tell us a lot about how to best organize information flow in parallel computers, and how to format the information which passes between them. Or in the other direction, could design of image-recognition algorithms for massively parallel computers guide experimental analysis of the visual cortex? If we tried to solve for the optimal massively-parallel system for image processing, what computational tasks would the subunits perform, and what would their hierarchy look like-- and could we then look for these computational tasks and overarching structure in the less-understood higher regions of the visual processing stream? It's a bit of a mess because the problem of image processing isn't solved from either end, but that just means each field could benefit from and help guide the efforts of the other.
So! Brains are awesome, and Google should hire neuroscientists. Further reading:
NIPS: Neural Information Processing Systems Foundation
Cosyne: Computational and Systems Neuroscience conference
Introduction to High-Performance Scientific Computing (textbook download)
Message-Passing Interface Standards for Parallel Machines
Google on Machine Learning with Quantum Algorithms
Quantum Adiabatic Algorithms employed by Google
Optimal Coding of Sound
Labels:
computing,
neuroscience,
pattern recognition,
programming,
research,
technology
Wednesday, December 9, 2009
On Google Trends
My new favorite thing: periodic behavior on Google trends. Witness: the holiday reverse pulse response; ipod product release schedule; shopping for cars; getting lonely in December; school and the side effects of school.
Labels:
pattern recognition
Saturday, December 5, 2009
Ryan
From the video description: "Ryan" is based on the life of Ryan Larkin, a Canadian animator who, 30 years ago, produced some of the most influential animated films of his time. In the film, we hear the voices of prominent animators and artists discussing Ryan's work, and from waitresses, mission-house caretakers and homeless people who make up Ryan's life. These voices speak through strange, twisted, and disembodied computer-generated characters--which combine to reflect the film's creator, Chris Landreth. In the words of Anais Nin, "We don't see things as they are. We see things as we are."
First saw this at the end of my senior year in high school, the year it won the Oscar for best short animated film. Ryan Larkin himself received renewed attention following this film's success, and gave up some of his bad habits to briefly resume his career in animation before dying of lung cancer in early 2007.
Sunday, November 22, 2009
Delia Derbyshire, Alchemist of Sound
The amazing Delia Derbyshire, pioneer of British electronic music, demonstrating tape loops. A clip from the documentary "Alchemists of Sound" on the history of the BBC Radiophonics Workshop, where Derbyshire worked from 1962-1973.
Derbyshire is best known for her realization of the original Doctor Who theme-- from Wikipedia: Derbyshire's interpretation of Grainer's theme used electronic oscillators and magnetic audio tape editing (including tape loops and reverse tape effects) to create an eerie and unearthly sound that was quite unlike anything that had been heard before. Derbyshire's original Doctor Who theme is one of the first television themes to be created and produced by entirely electronic means. Much of the Doctor Who theme was constructed by recording the individual notes from electronic sources one by one onto magnetic tape, cutting the tape with a razor blade to get individual notes on little pieces of tape a few centimetres long and sticking all the pieces of tape back together one by one to make up the tune. This was a laborious process which took weeks.
From her web site: A recent Guardian article called her 'the unsung heroine of British electronic music', probably because of the way her infectious enthusiasm subtly cross-pollinated the minds of many creative people. She had exploratory encounters with Paul McCartney, Karlheinz Stockhausen, George Martin, Pink Floyd, Brian Jones, Anthony Newley, Ringo Starr and Harry Nilsson.
Labels:
music,
sound,
technology,
videos
Friday, November 20, 2009
High Speed Sequencing
This video dedicated to my undergraduate degree in biology, in which it was never deemed necessary to introduce the fact that sequencing technology more sophisticated than the Sanger method exists. This is an animation explaining the process behind Helicos's new single-molecule sequencing technology. Like all other modern sequencing methods, this technique is based on short-read sequences-- DNA is replicated and then broken into millions of tiny fragments (25-50 base pairs at the low end), all of which are sequenced simultaneously. Given about 30-fold coverage of your genome, you can align these fragments to confidently reconstruct it as a single sequence.
Also of note, the Velvet algorithm is one cool sequence assembly program which, instead of aligning DNA fragments by simply looking for overlapping regions between them, plots all the fragment sequences generated onto a De Bruijn graph, and then uses principles of graph theory to condense them into a single sequence. Yay math!
Labels:
biology,
compbio,
computing,
pattern recognition,
technology
Subscribe to:
Posts (Atom)