Install Theme

It occurred to me yesterday that a simple way to incorporate the “concept formation” ideas I was talking about here into a neural net framework might be to start with a very simple network, and then let it produce new hidden nodes dynamically.

I have in mind something like this.  Fix integers M, N > 0.  Every M cycles of training, look for sets of neurons whose outputs were highly correlated over the last N rounds of training.  (I want these “sets” to have more than 2 elements, but covariance doesn’t extend naturally beyond 2 variables, so I’m not sure how to do this?)

If the correlation for a set of neurons is above some threshold, add a new neuron which takes input from (only) that set of neurons, and outputs to all of the neurons they output to.  Then delete all outgoing connections from neurons in the set, so that they can only communicate with later layers via the new neuron.  (We’d probably want to only make one neuron per M cycles, even if there are multiple sets above the threshold, to avoid confounding the effects of adding multiple neurons at once.)

This captures the intuition that hidden layers are meant to compress the input data, but rather than fixing the architecture in advance, the system can build new compressive nodes when it notices new opportunities for compression.  (It seems related to Hebbian learning, but is not identical to it.)

If we only look for correlations within a single layer at a time, the system will just add more and more hidden layers to a feedforward network.  If we have the resources to look for correlations across all neurons at once, then the system can build more general graphs.  (To see why this might be useful, consider a concept like “blonde hair.”  Since hair can come in many colors, we wouldn’t expect low-level visual concepts like “light” and “yellow” to have much influence on a neuron encoding the presence of hair.  But to make a neuron encoding the presence of blonde hair, we’d want to take input from the “hair” neuron and combine it with input from those lower-level concepts.)

We’d want to put a limit on the number of new neurons “per layer” so that the system is not allowed to just reproduce the entire input in a hidden layer.  In the feedforward case, this is straightforward.  With more arbitrary graphs, it’s less obvious how to do it, but I imagine there is some graph theory concept that would work?

Not sure how to set the incoming and outgoing weights of new neurons.

For both efficiency and ease of interpretation, we’ll want to delete newly created neurons if they turn out to “not work.”  I wouldn’t want to rely too much on the objective function here because I expect adding new neurons to initially make the objective function worse, because they add more compression (see below).  Maybe we could track the correlation originally used to create the neuron and see if it persists, although this creates issues involving the order in which training examples are presented.

The setup above already creates a dependence on the order of training examples, because the system cannot notice a pattern unless it appears in a set of examples presented together inside a window of size N.  So it would be best to use time series data with autocorrelation, e.g. successive frames of a video.  Still not sure what the deletion rule should be.  (We want to retain a concept if there are repeated stretches in which it is useful, e.g. “hair” is useful whenever hair appears although there may be long stretches with no hair.  Could perhaps track the variance or some related statistic for each neuron’s output over long times – a neuron that either [almost] always fires or [almost] never fires is not encoding a helpful concept.)

It might be helpful for the deletion rule, but also interesting in general, to allow the system to “engage in exploratory behavior” by asking for samples that will strongly activate (or inactivate) a recently created neuron, and checking whether the neuron “works” in these instances.  (Not sure how to measure this, since creating a neuron may decrease the objective function at first even if the neuron is “useful.”  This seems like a bias/variance tradeoff, since adding the neuron generally reduces the total number of connections, so maybe it will still do better on the new examples, since it is “getting the underlying theme” rather than overfitting noise.)

The “reducing the number of connections” thing is worrisome because we expect the network to eventually have more connections than it started with, once we have many layers.  This suggests that “let the set only communicate via the new neuron” is too restrictive?

I imagine someone has done something very similar to this already.  (It may even be a standard method that I am just not aware of.)  Might be too computationally expensive for “real applications” while still being illuminating as basic science?

lovestwell:

nostalgebraist:

waystatus:

nostalgebraist:

Oh, while I’m on this sort of thing – does anyone know about AI models of concept formation?  Like, have they been developing along with the rest of AI?  Are there current ones doing cool things the way Deep Dream and neural-style are doing cool visual perception things?

I ask partially because a while ago I claimed rashly that the current enthusiasm for deep learning would plateau eventually, because deep learning was just learning to mimic the sort of sequential abstraction that goes on in relatively early sensory perception (except without top-down input from more abstract/conceptual parts of the brain!).  So it would produce results that seemed very human-like in the sensory realms, without ever getting to the point of being able to abstract beyond “whorls like in Starry Night” or (in the case of that automated NSFW flagger) “things that look like butts” to the kinds of higher- and higher-tier concepts we deal in.

Concept formation in particular seems to me like it’s somehow “especially unsupervised” (I’m sorry if this is naive or doesn’t make sense, I am very tired rn).  Ask a neural network to look for dogs and it will gain an impressively high-level and robust sense of the visual appearance of dogs.  But no human comes into the world knowing that “dogs” are a thing they are looking for.  They just get the buzzing, blooming confusion, and are able to somehow infer that it is useful to lump certain roiling patterns of visual data together with certain auditory and tactile patterns (and higher-level induced patterns of animal behavior) together into this new concept, “dog,” without ever being pointed in that direction.  Meanwhile they do not invent, or do not maintain for long, “non-natural” classification systems like the ones in Borges’ Emporium.  I have never seen an AI that can do something like this.

In the bullshit amateur neuroscience district of my mind, it feels like there is a connection between: the “especially unsupervised” nature of concept formation, the lack of success (?) in designing artificial neural networks for concept formation, and the way in which (I think?) neural processes after early sensory processing get more and more interconnected and less separable into discrete stages (point 5 in this old post).  The amazing “style representations” that let you make anything look like van Gogh or Kandinsky (you may begin to notice how shallow my reading has been, how the reference points repeat) were obtained through a certain kind of averaging over the things “seen” by a visual classification network – and that network got supervised training on labelled data, and did as well as it could by being “very deep” (19 layers), i.e. (?) it got a lot of chances to form more and more abstract generalizations on its way to a preset goal.  Each representation feeding neatly into the next, nothing emerging that wasn’t told to emerge at the end.

Of course that would all break down if there are similarly “amazing” results in AI concept formation that I just haven’t heard about.  Which there may be.

(Apologies if the style of this post is too grandiose or otherwise off, blame sleep deprivation and long flights across the ocean and massive amounts of caffeine to compensate, I should go to bed very soon)

My answer to this depends on what you mean by “concept formation”.

If you mean “given a bunch of data about dogs and cats, and instructed that there are such things as dogs and cats, can an AI figure out which data points are dogs and which are cats?”, the answer is “yes, AIs have done well on this task quite a while now”. We’re at the point with this stuff that computers often outperform humans, particularly with large datasets: it’s often worth it to feed a large dataset to a computer so it can find things no human would notice, and even if it doesn’t it will sure sort the data more quickly than a human would.

If you mean “given a bunch of data about dogs and cats, and no instructions that there are such things as dogs and cats or how many groups to look for, can an AI figure out that there are two groups and separate them?”, the answer is still yes but it’s a more qualified yes. The algorithms for doing this are still very good but not as good as the supervised algorithms, and are usually used only when the human isn’t sure whether there are patterns in the data. They are already practically useful and capable of finding patterns that humans can’t, though, so they’re still quite good.

If you mean “given a bunch of data about dogs and cats, and no instructions that there are such things as dogs and cats or how many groups to look for, can an AI give you a definition for ‘dog’ and a definition for ‘cat’?” the answer is “sort of, but it’s probably going to give what looks to a human like a very strange answer”. I don’t think it’s entirely fair to blame the AI for this though. If everything you knew about dogs was in terms of height, weight, and ear length, and all relative to cats, you would probably give a very strange definition of a dog too.

(Also, sidenote: it’s not like human learning is entirely unsupervised either. You were taught, at some point, that dogs were a thing distinct from cats, and that blue was a color distinct from green. You didn’t figure that out purely from experience. The reason I bring up that second example is because my proof is that in some languages, blue is not a color distinct from green. It’s not like English babies go around wondering why adults are making these arbitrary distinctions between some grue things and other grue things, or like Welsh babies are confused about why people keep calling green things grue.)

(This was originally meant as a quick response to your post but turned into a longer, much more explicit statement of what I was trying to say in the OP)

By “concept formation” I don’t mean the same thing as “binary classification” (or even multiclass classification with a specified number of classes).  There are at least two related differences I have in mind:

(1) Human learning is, yes, not entirely unsupervised, but it is also able to take place in a continually changing perceptual world where one never gets some circumscribed “data set” known to contain some number of useful classes if analyzed properly.  If one had infinite storage space and computation time, one could just run a classifier algorithm on the data set consisting of all the sense data one’s ever seen, but clearly that’s impractical.  It’s possible that this can be done by just continually running classifier algorithms on recent sense data and maintaining a set of “cluster boundaries thought to be useful” which are gradually updated as new data comes in.  (I’m sure there is work like this out there, I just don’t know about it.)

(2) Humans learn hierarchies rather than flat categories, and are able (?) to generate new hierarchies on the fly.  Most work on hierarchical categorization, I think, gives the classifier a pre-built hierarchy which it uses as background knowledge to help with classification.  Some work on learning hierarchies starts with an initial hierarchy and evolves it, while other methods need no initial seed ( “adaptive” and “generative” approaches as defined in section 2.2 here, respectively).  The latter seems like what we want.  But even in this work, one usually (?) starts with a known set of flat classes – much more abstract than the data itself – and then the algorithm learns how to group them together (as in this paper or this one).

By contrast, in human learning, it seems that the set of flat categories we begin with is very primitive – not quite the raw sense data, but just the output of standard sensory processing applied to that data.  (E.g. not “retinal activation patterns,” but “shapes, patterns of motion, etc.”)  For instance, if we sometimes encounter dogs, our sensory apparatus might give us information like “visually furry,” “moves without an external force being applied,” and some sort of processed version of a barking sound (at the outset we do not have the concept of a “bark” yet).  In the high-dimensional space of these sensory features, there is a density peak around the conjunction of these three things (because dogs exist), but finding it by doing classification over the whole flat space of such sensory features is surely computationally intractable.

Instead, I imagine something like this is going on: we notice the immediate conjunction of some sensory features, generate a bespoke hypothetical category (“things that are furry, move on their own, make this sort of sound, etc.”), and then quickly try out that category on new sense data in the short term.  If we keep seeing the same conjunction (where there is one dog, there are often others!), we keep the category and put some work into refining it, so that perhaps we start to notice that dogs have various higher-level features we would never have defined at the outset.  (Even if standard auditory processing doesn’t give us “bark” as a primitive, once we have started to think that dogs are a thing, we may start to pay attention to higher-level features of their sounds and define “a dog’s bark” in terms of the auditory primitives.  More generally, once we have “grabbed onto” a “dog”-like concept, we can start noticing many higher-level features of dogs – that they are common pets, say – which would be far too abstract to be found in a brute-force examination of the primitives.)


@lambdaphagy linked to a very interesting paper in which a very large network (though still 10^6 times smaller than the human visual cortex) was able to learn the (visual) concept of “face” from a training set of unlabelled YouTube frames, less than 3% of which contained faces, just by optimizing for accurate compression of input images.  (“Compression” because some of the intermediate layers were much smaller than the input layer or the output layer [which was the same size as the input and meant to ideally match the input image].)  It also learned about cats and human bodies (which, as the authors drily note, “are quite common in YouTube”).

This is exciting, but it’s a result about how well existing architectures can do when you use a big enough network and run a single round of optimization on a huge computing cluster for 3 days.  There may be tricks that work specifically for unsupervised learning of hierarchical features from low-level primitives – along the lines of what I discussed two paragraphs ago – which could work much more efficiently than the standard approach used here.

Also, the kind of “propose concepts, retain/refine some and discard others” approach I described may be especially valuable for an organism or machine that must react continually to incoming stimuli – online learning by necessity – and doesn’t get to passively absorb a large training set and then, all at once, do a possibly costly optimization over it.  (Although perhaps one could do this while sleeping!)  For building robots or other kinds of artificial minds, it seems especially important to make an algorithm that can (say) pick up a rough version of a concept like “face” pretty quickly, perform information-seeking behavior to help it evaluate the usefulness of this candidate concept, and refine the concept while continuing to interact with the world.


Finally, my interests here are slanted toward the basic science approach “let us explore concept formation, perhaps with the result of efficient algorithms years down the line” and away from applied science approaches like “there is interest in knowing when there’s a dog in a YouTube video, what’s the best we can do in [short, market-driven timeframe].”  In other words, I’m thinking more in the spirit of the earlier AI researchers who liked to talk philosophically about whether their algorithms represented the “right approach” to the problem domain, as opposed to just the most efficient approach available – do perceptrons really get at “what concept formation is”? do Hopfield nets really get at “what memory is”?

As usual (?) in basic science, it may be better to try many ideas on very simple testbeds rather than to jump straight to the kind of real problem that humans solve.  “Discovering ‘dogs’ the way we do” is probably way too much to hope for at the outset.  But maybe we could experiment with similar discovery methods in simpler toy worlds.

Like, consider a computer program designed to play Super Mario Bros.  After some suitable (built-in?) pre-processing of the pure sense data (pixels, possibly sound), could it form a hierarchy of concepts including “enemy” and “block I can hit to get something,” where “enemy” has subtypes like “goomba” and “koopa”?  Could it sometimes sacrifice short-term performance (as predicted by its current, imperfect knowledge) to refine its concepts, say by testing whether a given object is indeed an enemy?  Could it do this all on the fly without needing offline optimization sessions?

I know there are people working on AI for video games, so maybe this thing I’m thinking of already exists?  Would love a pointer to it if so.

A relevant recent paper is 

Building Machines That Learn and Think Like People

I recently summarized it in a talk at a local rationality meeting, as a way of motivating myself to read it carefully. It’s very readable and particularly useful in that it takes into account plenty of very recent research (2015-2016). 

The authors’ main point is that “human-like learning” uses model-building crucially, where by model-building they mean much the same or exactly the same thing as you mean by concept formation. They look at specific examples of classifying handwritten characters and playing old video games, two areas where deep learning systems have been very successful recently, but their success still seems to be contained within a sharply limited functional area, and the authors believe that to get out of that area, machine learning needs to try and incorporate model-building. I particularly liked the way they explained and illustrated the amazing flexibility of models compared with trained neural nets, in that a model remains useful even if you change the goal function sharply. E.g. if you learn to play an Atari video game, you immediately get “for free” such skills as: explaining it to a friend; playing to lose; playing to reach a particular score rather than maximize a score; playing in parallel with a friend aiming to finish the level with identical scores; etc. etc. Any of this is a separate goal for a deep learning system, and all the training it did to learn to play the level really well - even better than you - is just useless in reaching these separate goals. There’s no “learning transfer”. This is just one example - they list several more important aspects in which human learning outperforms the best of deep learning systems in ways that seem to require fundamentally new ideas - but it’s the one which resonated with me the most.  

The authors have some specific ideas on how to try and augment current best-of-breed learning system with model-building-related features, but at least my impression was that these do not reach anything like the goal (if that is to be a goal) of formalizing a general concept of a “model” and explicitly managing such “models” in code. They suggest augmenting AI systems with features that resemble certain seemingly important building blocks of human learning. For example, human infants already early on have a good understanding of how the physical world works (the behavior of solids, liquid, gravity, objects being pushed, pulled, etc.), and we seem to use this understanding to make very efficient shortcuts in e.g. learning to play a video game. They say that an AI system which learns to play an Atari video game,  and is already very good at classifying various objects and classes of objects that appear in the game, might be able to make significant shortcuts by using a relatively simple physics model of the kind current physics simulators already use. [the rest of the paragraph is my opinion] While this may well be a promising approach (hard for me to judge), and while it may direct the attention in the “right” (?) direction of model-building, it doesn’t seem to be nearly general-purpose enough. If I play a video game in which my intuitive physical understanding helps me, and then suddenly the laws of physics in-game change (e.g. gravity reverses direction), I very quickly learn this by using the same general-purpose learning mechanism as I use for the game itself, and adapt. That is, “physics in this game” is for me a model as rich and as amenable to change as “how to play this game”, while the authors mostly discuss using “physics in this game” as a lower-level building block aiding the deep learning system, a building block that doesn’t undergo learning itself.  

But the reason that is so, as I understand it, is simply that nobody knows how to formalize explicitly, or reach implicitly with some sort of learning, models that are as rich and feature-full as human learning seems to use. 

Whoa, this is exactly the kind of thing I’m looking for!  Once I’m over my refractory period for thinking about this stuff (I’m kinda spent after the previous two posts) I’ll definitely check out that paper.

The point about models generalizing to different goals is really cool.  One of those “seems obviously important in retrospect but I’d never thought about it” things.

(via lovestwell)

@inferentialdistance​ writes:

I don’t think there’s anything fundamentally different about concept formation. It’s just that evolution had billions of years running on massive training sets to program it into us, so we don’t notice that the problem is exponentially more expensive for each meta level you increase it by. Going from nothing to recognizing dog pictures takes 20 years, going from there to figuring out how to create categories could take 200 years, and figuring out how to create different methods of creating categories (i.e. abstract modelling of reality) could take 2000.

This could be true, but I guess it seems implausible to me because of the relatively small number of differences in the genomes of humans vs. the genomes of organisms that are much less good at abstract concept formation.  (Although, at least if we’re thinking humans vs. other primates, some people think that earlier primates already had the right brain design and that the human magic just happens when you make a primate brain really big.)

It’s possible that it took a long time to find this relatively small amount of genetic information because you needed to get a bunch of it just right at once and couldn’t rely on climbing a fitness gradient toward it.  Still, given how indirect the genetic control over actual brain development is – and how many variables are involved in gestation and early development that the genome can’t control – it’s hard for me to imagine that the special sauce in the human genome is encoding some highly specific, complex, and fragile algorithm that has to be set up just right.

I also don’t see why algorithms for more abstract learning would get exponentially more expensive as the abstraction increases?  Is there some intuitive reason for this I’m missing, or are you just saying that if it were true it’d have consequences for the questions I’m asking?

(I think “billions of years of training sets” may be misleading here, because we have to distinguish the “statistical learning algorithm” performed by evolution from the “statistical learning algorithm” performed by a human abstract learner.  The “training sets” of evolutionary history contributed to the design of the abstract learning algorithm, rather than into the concepts it’ll eventually learn.  Dogs were domesticated very recently on an evolutionary timescale, but I don’t have any trouble learning what a dog [or a computer] is, and meanwhile I don’t look at African megafauna that coevolved with humans and think “man, these are weirdly easy to conceptualize.”)

(via inferentialdistance)

waystatus:

nostalgebraist:

Oh, while I’m on this sort of thing – does anyone know about AI models of concept formation?  Like, have they been developing along with the rest of AI?  Are there current ones doing cool things the way Deep Dream and neural-style are doing cool visual perception things?

I ask partially because a while ago I claimed rashly that the current enthusiasm for deep learning would plateau eventually, because deep learning was just learning to mimic the sort of sequential abstraction that goes on in relatively early sensory perception (except without top-down input from more abstract/conceptual parts of the brain!).  So it would produce results that seemed very human-like in the sensory realms, without ever getting to the point of being able to abstract beyond “whorls like in Starry Night” or (in the case of that automated NSFW flagger) “things that look like butts” to the kinds of higher- and higher-tier concepts we deal in.

Concept formation in particular seems to me like it’s somehow “especially unsupervised” (I’m sorry if this is naive or doesn’t make sense, I am very tired rn).  Ask a neural network to look for dogs and it will gain an impressively high-level and robust sense of the visual appearance of dogs.  But no human comes into the world knowing that “dogs” are a thing they are looking for.  They just get the buzzing, blooming confusion, and are able to somehow infer that it is useful to lump certain roiling patterns of visual data together with certain auditory and tactile patterns (and higher-level induced patterns of animal behavior) together into this new concept, “dog,” without ever being pointed in that direction.  Meanwhile they do not invent, or do not maintain for long, “non-natural” classification systems like the ones in Borges’ Emporium.  I have never seen an AI that can do something like this.

In the bullshit amateur neuroscience district of my mind, it feels like there is a connection between: the “especially unsupervised” nature of concept formation, the lack of success (?) in designing artificial neural networks for concept formation, and the way in which (I think?) neural processes after early sensory processing get more and more interconnected and less separable into discrete stages (point 5 in this old post).  The amazing “style representations” that let you make anything look like van Gogh or Kandinsky (you may begin to notice how shallow my reading has been, how the reference points repeat) were obtained through a certain kind of averaging over the things “seen” by a visual classification network – and that network got supervised training on labelled data, and did as well as it could by being “very deep” (19 layers), i.e. (?) it got a lot of chances to form more and more abstract generalizations on its way to a preset goal.  Each representation feeding neatly into the next, nothing emerging that wasn’t told to emerge at the end.

Of course that would all break down if there are similarly “amazing” results in AI concept formation that I just haven’t heard about.  Which there may be.

(Apologies if the style of this post is too grandiose or otherwise off, blame sleep deprivation and long flights across the ocean and massive amounts of caffeine to compensate, I should go to bed very soon)

My answer to this depends on what you mean by “concept formation”.

If you mean “given a bunch of data about dogs and cats, and instructed that there are such things as dogs and cats, can an AI figure out which data points are dogs and which are cats?”, the answer is “yes, AIs have done well on this task quite a while now”. We’re at the point with this stuff that computers often outperform humans, particularly with large datasets: it’s often worth it to feed a large dataset to a computer so it can find things no human would notice, and even if it doesn’t it will sure sort the data more quickly than a human would.

If you mean “given a bunch of data about dogs and cats, and no instructions that there are such things as dogs and cats or how many groups to look for, can an AI figure out that there are two groups and separate them?”, the answer is still yes but it’s a more qualified yes. The algorithms for doing this are still very good but not as good as the supervised algorithms, and are usually used only when the human isn’t sure whether there are patterns in the data. They are already practically useful and capable of finding patterns that humans can’t, though, so they’re still quite good.

If you mean “given a bunch of data about dogs and cats, and no instructions that there are such things as dogs and cats or how many groups to look for, can an AI give you a definition for ‘dog’ and a definition for ‘cat’?” the answer is “sort of, but it’s probably going to give what looks to a human like a very strange answer”. I don’t think it’s entirely fair to blame the AI for this though. If everything you knew about dogs was in terms of height, weight, and ear length, and all relative to cats, you would probably give a very strange definition of a dog too.

(Also, sidenote: it’s not like human learning is entirely unsupervised either. You were taught, at some point, that dogs were a thing distinct from cats, and that blue was a color distinct from green. You didn’t figure that out purely from experience. The reason I bring up that second example is because my proof is that in some languages, blue is not a color distinct from green. It’s not like English babies go around wondering why adults are making these arbitrary distinctions between some grue things and other grue things, or like Welsh babies are confused about why people keep calling green things grue.)

(This was originally meant as a quick response to your post but turned into a longer, much more explicit statement of what I was trying to say in the OP)

By “concept formation” I don’t mean the same thing as “binary classification” (or even multiclass classification with a specified number of classes).  There are at least two related differences I have in mind:

(1) Human learning is, yes, not entirely unsupervised, but it is also able to take place in a continually changing perceptual world where one never gets some circumscribed “data set” known to contain some number of useful classes if analyzed properly.  If one had infinite storage space and computation time, one could just run a classifier algorithm on the data set consisting of all the sense data one’s ever seen, but clearly that’s impractical.  It’s possible that this can be done by just continually running classifier algorithms on recent sense data and maintaining a set of “cluster boundaries thought to be useful” which are gradually updated as new data comes in.  (I’m sure there is work like this out there, I just don’t know about it.)

(2) Humans learn hierarchies rather than flat categories, and are able (?) to generate new hierarchies on the fly.  Most work on hierarchical categorization, I think, gives the classifier a pre-built hierarchy which it uses as background knowledge to help with classification.  Some work on learning hierarchies starts with an initial hierarchy and evolves it, while other methods need no initial seed ( “adaptive” and “generative” approaches as defined in section 2.2 here, respectively).  The latter seems like what we want.  But even in this work, one usually (?) starts with a known set of flat classes – much more abstract than the data itself – and then the algorithm learns how to group them together (as in this paper or this one).

By contrast, in human learning, it seems that the set of flat categories we begin with is very primitive – not quite the raw sense data, but just the output of standard sensory processing applied to that data.  (E.g. not “retinal activation patterns,” but “shapes, patterns of motion, etc.”)  For instance, if we sometimes encounter dogs, our sensory apparatus might give us information like “visually furry,” “moves without an external force being applied,” and some sort of processed version of a barking sound (at the outset we do not have the concept of a “bark” yet).  In the high-dimensional space of these sensory features, there is a density peak around the conjunction of these three things (because dogs exist), but finding it by doing classification over the whole flat space of such sensory features is surely computationally intractable.

Instead, I imagine something like this is going on: we notice the immediate conjunction of some sensory features, generate a bespoke hypothetical category (“things that are furry, move on their own, make this sort of sound, etc.”), and then quickly try out that category on new sense data in the short term.  If we keep seeing the same conjunction (where there is one dog, there are often others!), we keep the category and put some work into refining it, so that perhaps we start to notice that dogs have various higher-level features we would never have defined at the outset.  (Even if standard auditory processing doesn’t give us “bark” as a primitive, once we have started to think that dogs are a thing, we may start to pay attention to higher-level features of their sounds and define “a dog’s bark” in terms of the auditory primitives.  More generally, once we have “grabbed onto” a “dog”-like concept, we can start noticing many higher-level features of dogs – that they are common pets, say – which would be far too abstract to be found in a brute-force examination of the primitives.)


@lambdaphagy linked to a very interesting paper in which a very large network (though still 10^6 times smaller than the human visual cortex) was able to learn the (visual) concept of “face” from a training set of unlabelled YouTube frames, less than 3% of which contained faces, just by optimizing for accurate compression of input images.  (“Compression” because some of the intermediate layers were much smaller than the input layer or the output layer [which was the same size as the input and meant to ideally match the input image].)  It also learned about cats and human bodies (which, as the authors drily note, “are quite common in YouTube”).

This is exciting, but it’s a result about how well existing architectures can do when you use a big enough network and run a single round of optimization on a huge computing cluster for 3 days.  There may be tricks that work specifically for unsupervised learning of hierarchical features from low-level primitives – along the lines of what I discussed two paragraphs ago – which could work much more efficiently than the standard approach used here.

Also, the kind of “propose concepts, retain/refine some and discard others” approach I described may be especially valuable for an organism or machine that must react continually to incoming stimuli – online learning by necessity – and doesn’t get to passively absorb a large training set and then, all at once, do a possibly costly optimization over it.  (Although perhaps one could do this while sleeping!)  For building robots or other kinds of artificial minds, it seems especially important to make an algorithm that can (say) pick up a rough version of a concept like “face” pretty quickly, perform information-seeking behavior to help it evaluate the usefulness of this candidate concept, and refine the concept while continuing to interact with the world.


Finally, my interests here are slanted toward the basic science approach “let us explore concept formation, perhaps with the result of efficient algorithms years down the line” and away from applied science approaches like “there is interest in knowing when there’s a dog in a YouTube video, what’s the best we can do in [short, market-driven timeframe].”  In other words, I’m thinking more in the spirit of the earlier AI researchers who liked to talk philosophically about whether their algorithms represented the “right approach” to the problem domain, as opposed to just the most efficient approach available – do perceptrons really get at “what concept formation is”? do Hopfield nets really get at “what memory is”?

As usual (?) in basic science, it may be better to try many ideas on very simple testbeds rather than to jump straight to the kind of real problem that humans solve.  “Discovering ‘dogs’ the way we do” is probably way too much to hope for at the outset.  But maybe we could experiment with similar discovery methods in simpler toy worlds.

Like, consider a computer program designed to play Super Mario Bros.  After some suitable (built-in?) pre-processing of the pure sense data (pixels, possibly sound), could it form a hierarchy of concepts including “enemy” and “block I can hit to get something,” where “enemy” has subtypes like “goomba” and “koopa”?  Could it sometimes sacrifice short-term performance (as predicted by its current, imperfect knowledge) to refine its concepts, say by testing whether a given object is indeed an enemy?  Could it do this all on the fly without needing offline optimization sessions?

I know there are people working on AI for video games, so maybe this thing I’m thinking of already exists?  Would love a pointer to it if so.

(via waystatus)