topics:  main-page   everything   99things   things-to-do   software   space   future   exercise & health   faith  
  thought   web   movies+TV   music   mymusic   food   curiosity   tidbits   I remember   wishlist   misc   links


Imagine if Supervised Machine Learning Data Sets Were Almost Free
October 23, 2015

In the world of machine learning, there are two strategies: One is called "supervised" machine learning, which means that you feed the computer not only example problem inputs, but also tell the computer what answer you're hoping it would give. To contrast that, "unsupervised" machine learning is when you just give the computer a bunch of data and task the computer with finding meaningful patterns in the data.

So far, supervised approaches are the ones that are producing some head-turning results. But there's a catch: Having human beings label giant data sets with the right answers is expensive.

An interesting realization I had the other day is that our ability to use computer graphics to generate images (ray tracers used for 3D animated movies, etc.) gives us an impressive ability. Imagine you're teaching a computer vision system to label all of the pixels in an image as to what type of "thing" it is. A pixel might be a chair, a wall, the carpet, etc. Rather than taking photos of a room and labeling every pixel by hand, ray tracing could be used to generate a photo-realistic image and automatically label each pixel according to the 3D scene model. Bingo: You have a perfectly labeled image for your supervised machine learning algorithm. Want to generate another image from another angle? Easy: Just change the camera position or angle, run the ray tracer, and you're done.

Now, you'd want to produce images not from just one "scene", but from many different rooms in many different buildings. But that's easy to automate as well: Just create a probabilistic model of room layouts, building layouts, etc, and generate new 3D scenes from that model, each with different lightings, object arrangements, etc, etc. Now sit back and watch a billion perfectly tagged images be produced for your computer vision data set. Don't have the computer resources on your desk? No problem, just use the cloud. Computation a bit expensive? As noted in a blog post below, a 10x performance increase is expected next year, and presumably the next 10 years will continue to see good gains.

At the end of the day, I would presume that creating a machine learning data set of this type of size 1 billion images would be millions of times cheaper than actually hiring people to take photos and label the image pixels by hand. Something that I find exciting is when you have a powerful technology like ray tracing, and then given a few years it intersects another technology, like machine learning, and the two synergize in an incredibly powerful way. In a nut shell, that's the old technology story -- the thing that is behind what we sometimes feel are exponential gains: The coming together of different threads in surprising new ways.


Semantics in Generative Grammar
October 12, 2015

I'm reading this book right now:

http://ca.wiley.com/WileyCDA/WileyTitle/productCd-0631197133,subjectCd-PLD0.html

So far I'm quite enjoying it. Wish I had found resources like this a few years ago, but still good for me to read.


Designing a Human Language via Software
August 18, 2015

As I've studied language, one thing that starts to be appreciated is that languages are, in a sense, like an engineered/designed thing. And in that, there are all sorts of "parameters" of the design.

Let's think of written language as a means to render a semantic structure (which we'll model as a graph of nodes and edges) into a 2D sequence of characters. If you want to do that, you need to come up with a scheme for how you do that "translation"/encoding from the graph to the sequence of characters.

There are all sorts of choices you can make.

Take for example the basic clause, consisting of verb, subject, and object:

CLAUSE:
    Verb: Throw
      Thrower: Daniel
      ObjectThrown: Ball
    Occurred?: Yes
    OccurredInPast: Yes

Rendering this clause, we could choose the order Subject-Verb-Object, we could choose Verb-Subject-Object, etc, etc. Or, do we not restrict order and use some kind of system of affixes to indicate what is the subject, which is the object, etc.

How might we indicate that the event occurred in the past? Add a suffix to the verb? A prefix? Via a new word that comes before the verb? After the verb?

What letters should we use to denote the actual words? The English correspondences are only one option. If we were to invent our own lexicon, what's the best design there?

What comes to mind is that I wonder if one could design a computer program to invent a language. It would use a variety of scoring criteria to explore the possibility space. For example, we want to avoid ambiguity, so choices that lead to ambiguity are unwanted. We want to keep things compact, since that relates to the cost of producing and consuming language. Etc, etc.

An interesting area...

older >>