May 10 2012

Rethinking AI Specifications

Sorry about how bad the last entry was, sometimes the writing bug isn’t biting. Or it is, but only in the context of surreal fiction, or bad poetry, or self satisfied navel gazing. Hopefully this post is a little more substantial, if a bit concise. I can’t tell if it’s more philosophy or computer science, an exercise left to the reader.

Let’s talk about the problems currently faced at the requirements stage1 in the development of artificial intelligence, in particular why vague requirements seem to be stunting the development of strong AI2, or, that the impossibility of objective requirements indicate the impossibility of strong AI.3 Which is to say, that if we cannot exactly specify what strong artificial intelligence is that maybe this indicates that it is impossible to develop.

Let’s be clear in outlining where the problem seems to be:

Intelligence is a statement of our ignorance of how something works4

This pithy quote quite elegantly outlines the main problem we encounter when describing the requirements for artificial intelligence, this is the fact that the thing constitutes strong artificial intelligence isn’t a fixed benchmark, but instead an ever sliding scale. Without some sort of objectively fixed, measurable objective stumbling into intelligence that is universally believed to be general seems close to nil, as the bar keeps getting higher and higher as we understand more about the systems we create.

Our belief in an intelligent system is relational, people in the early 20th century probably would have believed a chess playing robot was truly and wholly intelligent, however, because we now see how such mechanisms work inside of a machine we are entirely less likely to include this in intelligence, but instead call it a mechanical process even in the human mind. We cannot at this point state what sorts of things can be concluded as real intelligence because as soon as we meet the current gold standard requirements for general intelligence we set out we will be no further ahead as these requirements will no longer look like intelligence. The article I popped into footnote 4 is the best I’ve read on this topic, it quite clearly outlines how intelligence is a relation, and as such concludes that strong AI is simply impossible.

Admittedly, I’m no so convinced, as I believe that if we ever came to fully understand wetware I instinctively doubt that humankind would humbly concede that we are not actually intelligent but meat machines processing input and output. It had been the goal of philosophy since something close to its inception to prove that humans are somehow unique from the animal kingdom, and a full schematic of the brain doesn’t seem as though it would be enough to topple humanity’s hubris. Perhaps ideas in this direction would be sufficient to prove that human-like intelligence should be the goal of artificial intelligence, rather than an equally intelligent, but different sort of intelligence as is often put forward as a potential angle for developing AI. At any rate it seems to be a starting point, generating clear requirements for a truly intelligent agent.

About a year ago, I read an article about the loss of ambition in artificial intelligence, students with a focus on entertaining pseudo-intelligence but no interest in actually making machines smarter5 — making robots that can dance, and make faces but that aren’t closer to true intelligence for it — and where the lack of interest in the big problems stems from. It’s possible that this comes from a lacklustre crop of students with no ambition, no money, and a desire to go into any field that hands them a few bucks6. But I think the problem runs much deeper, I think a lot of the problem starts from not knowing where to begin.

Combining these two articles makes for a very depressing state of the field, people solving small and inconsequential problems (to the big picture of strong AI development — I wouldn’t trivialize the work done by recent AI researchers for all of the tea in China, as my mother might say), and once these problems are solved they no longer look like intelligence to us, but rather like a Mechanical Turk. The illusion is there, but it isn’t fooling anyone anymore.

This is why I do believe that we need to re-examine what we think comprises human intelligence, maybe alternative intelligences will emerge as we create firm specifications, but for now, in order to avoid the pitfalls it is time to figure out more decisively what makes a human being intelligent. Try to quantify it, and itemize it. Surely this is a mammoth undertaking, but I believe a necessary one, a catalogue of humanity might be the particular innovation that we need to push some new discoveries into artificial intelligence which won’t leave Minsky accusing us of not making anything smarter.

This is probably why I’m in Philosophy and Computer Science, ladies and gentlemen.

 


Apr 27 2012

Paragraph on Android SDK and not really much else.

My brain is not feeling creative enough to blog this week, so I’ll write something short and pithy and really develop the one I wanted to write for tonight to be released in two weeks time, it’s about revising requirements to develop strong AI, so you’ll want to stop by when I get around to that. Exam burnout and the endless party of being a student primarily to blame for the fact that I have no good ideas tonight. But I do want to write a post, and ensure I keep this habit, but I feel like I have TV static in my brain. I’m told you should never write about writer’s block, but I guess it’s too late for that.

I’ve been reading the developer documents for Android the past few days and building some small applications, I don’t have much in the way of deliverables right now because I’m just experimenting, but I’d like to say that despite the fairly beefy processor I have running the Android emulator takes a hell of a long time. Where it boots the emulator, but takes forever to get into the Android OS. I suspect if I was building something more seriously I’d already be looking into a work around. I’d rather not develop directly on my phone since if I accidentally brick it I’m pretty screwed. I have a few ideas for applications though, so maybe I’ll be able to report more as details come up.

Probably am not going to social-media-ify this post, but now if anyone asks I have been posting regularly. I may put something supplemental to this up next week with more notes on using the Android SDK, but for now I’m going to save all my brain energy for my next post. Sorry!


Apr 12 2012

Studying and Revised B-Theory of Time

Little did I remember, when planning to start blogging, and to set a regular schedule that none other than my third return post would be required right at the commencement of exam season. As a veteran of the procrastination circuit this seemed like the best possible way to avoid studying, and blogging at the same time. Then the side of me that totally digs ingenuity realized I could write a post about my first exam and totally kill two birds with one stone.

This entry will be a slight refinement on the B theory of time (outlined below) which I think fixes some of the problems within it. I’ll need to do more reading since this is all within the scope of studying for an exam.

As a disclaimer, this post may lack some polish, since it wasn’t planned in advance, and probably won’t get the usual editor’s scythe touch.

Okay, let’s end the wordy preamble and get to the musing.

Of particular interest for the philosophy of time is J.M.E. McTaggart1 who outlines the difference between two concepts of time only to cut them both to the quick and insist that time must be illusory. But his definitions are still used to outline basic theories of time to this day, so we’ll use them.

In order to progress with his argument McTaggart must assume that change is in integral part of time. He thinks this is indisputable, though there are a number of authors who are probably quite inclined to disagree. Just a quick Google search brings me to the debate between the Relational versus the Substantival theories, Substantivals arguing that time is substance-like and that it exists independently of relations exhibited by physical processes, and the Relational theorists who will accept our premise that time is change.2

Following that assumption we can then examine McTaggart’s two temporal frameworks, first the A theory, which attempts to primarily explain the subjectivity of time by stating that things exist temporally as they relate to the concepts we know as past, present in future. An event3 passes through time by first being an event in the distant future and the progressing slowly toward being present, and then eventually become the past, moving more and more into the past as ‘time’ goes on. In instinctive and ‘folk’4 philosophy A theory seems to work quite well. However, it doesn’t account for the seemingly fixed nature of time, which is to say that it is always the case that the death of Genghis Khan occurs before the invention of the telephone. This would be an example of the B theory, an attempt to bring objectivity into the nature of time. Though from their outset A and B theories of time look very different, McTaggart’s goal is to collapse the B theory into the A theory and then demonstrate the A theory as contradictory.

It’s with that as an understanding that I’d like to briefly step into support of the B theory, which is the one my wavering will is standing awkwardly beside. The usefulness of the B theory may not be in deterministically outlining a series of predetermined events, that is to say, setting out that Bertrand Russell was born in 1872, and that the same Bertrand Russell died in 1970 but instead designing a framework in which the B theory outlines objective rules that must be followed temporally. So, we instead say that a person’s birth must predate a person’s death, and other such similar rules.

What does this buy us in terms of theories of time? I suspect quite a bit more than is hinted at. By making our theories rules instead of specifically instantiated occurrences we turn a series of events strung together with conjunctions into a more elegant compilation event rules strung together with a series of conditional statements.

Other benefits to this seem to be that now the B theory allows for change. Within the B theory of time there is often trouble grappling with how change can exist when events are not linked by one particular event occurring before another event (we can’t use terms like past, present, and future to link things in time or we fall into the A series). The use of a logic, and temporal rules seems to necessitate change, as if we have event X it necessarily follows that event Y must be true, or occur.

Anyways, there’s a taste of a theory on time. More polished entry (hopefully) in two weeks when I’m not coughing out four more exams.


Mar 29 2012

Sketch of Procedural Story Generating

Yes, I am going to try and update the blog bi-weekly, or fortnightly if you’re British and used to the ambiguous use of bi-weekly. 1

A few weeks ago on Twitter I posted about experimenting with some procedural story generation, something I find insanely interesting, and would love to work more on (maybe in the summer). My computer science friends seemed, in general interested in the project and said I should make it its own Twitter account. I liked the idea and have every intention of doing it once I jump the exam hurdles in April and hopefully bump my GPA out of its sorry state. However, I’ve decided to sketch out an outline of how it works right now, and maybe talk about where I want it to go when I can think of it as a real project and not something peripheral.2 This post, as a result is a lot of musing, and much less abstract than the previous entry. I’m not sure on the tone of the blog yet, so we may be seeing entries really ranging on the philosophy vs. computer science spectrum.

For the uninitiated, a rough definition of procedural content generation in computers can be outlined as follows

Procedural content generation (PCG) is the programmatic generation of game content using a random or pseudo-random process that results in an unpredictable range of possible game play spaces.3

Usually, this is applied to dungeon and world building though there have been a number of interesting attempts at story writing, and even more interesting examples of puzzle generating. Also, usually, since apparently ‘usually’ is the word of the day PCG is applied to games, though I’m halfway certain it wouldn’t be hugely difficult to apply it to other fields, but primarily, it is used in games. Or to entertain myself. You know, whichever.

The approach I have taken is much more pseudo-random than true random, and at the time of writing, instead of a real database runs through a flat file containing, something in the neighborhood of 150 sentences with particular number ranks assigned to them based on a very vague scale which I’ve called ‘intensity’ since I’ve decided to ignore my training in philosophy and not be careful with my language.

The reason for this is fairly simple, since I’m only piecing together a basic idea. I’m going on the fact that there are a bunch of general properties to a story, they usually (again), have a beginning, middle, and end, with the beginning and end being less ‘intense’ than the middle which is usually where the most climatic moment occurs. For the sake of my need to worship at the alter of arbitrary, I decided that ending are generally slightly more intense than beginnings. From there they sentences are randomly picked and placed in order, but each one is weighted which influences the probability of it being picked. As I tweeted, the current system is rudimentary, but its meant to show how I plan on smashing English class and Math class into one beast.

And what a terrible beast it is.

As you can probably see the idea is simple at its absolute pinnacle, but lays a foundation for a few future ideas, which looks like the following:

  • Move from the sentence being pre-made, to an actual sentence generator. Even though this looks like a picky detail right now I don’t think I’ll be able to get anywhere near the variety I want with a bunch of simple sentences that came out of the cesspool that is my brain. The problem with this is currently that the formula is not as simple for creating a coherent sentence and will probably need a cumulative intensity score, which is to say that particular, forceful words will be selected for middle-of-the-story climatic moments, and less dramatic ones for the beginning and the end. The problem being the story will still have to make sense. Speaking of…
  • ‘Intensity’ is an arbitrary scale that really does nothing to help the generation of interesting content. I feel bad having implemented a system sometimes. Though, I think there is some reasoning behind scaling sentences based on their impact. There is also a whole bunch of subjectivity with intensity, and yes, I know that fiction is subjective anyways, but I’d like to think that if you’re talking about punching a walrus, this is more dramatic then filing the appropriate paper work. The problem is borderline sentences — like punching the appropriate paperwork. A way to smooth the sharpness of my personal opinion within the system would be to crowd source4 intensity ratings. Of course a vague definition of intensity would make this difficult/impossible.
  • Keeping related ideas together, currently the system demonstrates awesome levels of attention deficit disorder by skipping around different sentences, that talk about different subjects with different degrees of sense. This would tie into the idea of creating things like characters and settings if these stayed consistent and didn’t flicker back and forth like a weird psychedelic trip.
  • In general more mystery and imagination, to read this article for the 30th time and use some of its ideas. Minus the mention of prolog and backtracking because that takes me back to a cold, cold place.

Despite all this I want to keep generation as (pseudo)random as is possible, many PCG story generation systems rely on sort of a story outline, or other firm structures to keep the computer from getting too whimsical, I’d like to direct the flow to coherence, but away from any real structure. I’m hoping the process will be vaguely organic. However there needs to be a structure to have a story, but rather than traditional approaches which have a human setting out that structure, I want the system itself to build the skeleton and then flesh it out.

Anyways, there’s the long version of what I had hoped to be a short introduction to the project. I am firmly opposed to brevity.


Mar 15 2012

Ad hoc thought in computing

Let’s talk a little about our ad hoc understanding of the world as it relates to machines. Something that has kept me interested for a few months, and ideas about which are just starting to really distill for me. We certainly don’t have fine wine just yet, but I’d rather these ideas be committed to inter-paper then left in my brain until they are completely forgotten. Always a distinct possibility. This post was originally meant to tie into some thoughts on error in computer science, and optical illusion, but I’m now thinking that’s ambitious for a single blog post, I’ll save them for later.

In reading about artificial intelligence there is often, if not always a push towards a more logically sound and completely reasonable entity which gathers a complete and objective picture of the world before calculating action. We build a system based on rules for general situations and hope that the system will then be able to apply the rules we give it to a variety of circumstances. Object oriented programming in particular is directed towards code reuse and easy generalization of programming. You can see things like this turning up especially in planning as it relates to AI, general rules are formulated and then acted upon.

The thing is, there seems to be a disconnect if we are striving for more human like intelligence, and building that elusive general intelligence machine it seems to me this approach is incorrect. This is because, as I see it, human intelligence and understanding of the world do not work based exclusively on skilled reasoning about the world as it is objectively, instead the human mind seems, very much to cheat, or ostensibly, to use hacks to get not a real picture of the world but a useful one.

I guess as an aside here, I should state that I do not necessarily believe that human intelligence is the only kind of intelligence and that the only way to reach strong AI is via the computer intelligence most similar to people. I am writing this on the assumption this is the case, but I believe it wrong to take for granted that this assumption is true, you are welcome to reject this premise, and plug your ears and hum for the next few paragraphs. 1

The human equivalent of so-called ‘general rules’ are a collection of more ad hoc constructions and a series of ‘right for right now’ interpretations of the world we live in. A more specific example seems to be that we now know without education, or formal training children think not linearly, but logarithmically, this is to say that, when given a number line, young children are more likely to space one and two further apart then 9 and 10 2 . As we get older, and go through some sort of education system we start evenly spacing 1 – 10 on a line, linearly.

And we can see why this understanding of numbers could be useful quite easily, telling the difference at a glance between one and two is far more important than knowing the difference between 1,000 and 1,001 if you consider things like the harrowing herd of wildebeests thundering across the plains with murder in their hearts. Although, in civilized society this distinction is less critical we tend to forget the more natural state in programming. That is, more specific rules for more specific circumstances, and using ideas that are useful rather than ideas that are objectively true.

It is difficult to imagine a method to build a system that would be able to successfully weed usefulness out of objective truth since we do not completely understand ourselves how the human mind decides what knowledge is useful. There are a number of databases out there dedicated to ‘common sense’ but I don’t think they capture common sense in the way that I mean. They appear to be high level, descriptive common sense, (ie. ‘The sky is blue.’, or ‘Jean Chretien is a former Prime Minister of Canada’) and less low level, descriptive accounts of common sense (‘Knowing the difference between 1 and 2 is more important than knowing the difference between 100 and 101′ and ‘It is more important to focus on things in motion than those that are stationary’) Second example being a long time coming perhaps speaking to the difficulty of putting rules like these into a concise form.

The main thesis this article is stumbling towards is that in order to develop artificial intelligence that thinks more like us, and perhaps to think wrongly may be to develop our system based on what would make it easier for the system to “survive” and not on a detailed analysis of what there is.

 


Sep 23 2011

Oh, technology.

I am writing this post on my phone, whilst sitting hunched over said device in the beautiful scalding sun here on campus. I don’t even really have much I wanted to say, I’m just marvelling at this fact. It’s still within my memory a time where being able to do this was basically a sci-fi novel.


Sep 19 2011

The First Post

I’d appreciate it if you’d stop making that face. I know what you’re going to say, and let’s face it, you can remind me of every single blog I’ve had, from (and this is a struggle) livejournal to whatever I seem to think I’m doing on tumblr and it probably won’t stop this site from being started — full of hope and light. That is, before being reduced to updated yearly with my most popular entry. Don’t be coy, you know the one:

“Hey guys, been awhile since I posted here, am I right? Well, that was about all I had to say. I was just, you know, making sure my domain hadn’t expired since I last checked. I haven’t even opened this page in three months. Later.”

So, why am I doing this again? Tossing yet another useless blog about, (quite honestly), nothing into the wilds of the internet?

There are a few reasons, none of them particularly convincing, but reasons nonetheless.

First off, I have always had a blog, and I enjoy blogging, to not have a blog would be weird.Yes, my reason is basically ‘because I want to’.

Second, my old blog needed to be archived, because it reads cumbersomely. So it should, I started it as a teenage wasteland. The domain name itself I at this point read with a slight inward groan. A clean slate from hardcore angst was required. My goal with this blog being to do both what I want, and it semi-readable. This entry excluded. I guess. Sentence fragment there, notwithstanding. And another. This is getting recursive, so let’s move on.

If you know me, and presumably if you are reading this first entry, you do know me; you are probably at least a little concerned that if I live up to my domain name’s promise that it will be less than an hour before I explode from pent up cursing. It’s false advertising, all of it, no expletives will be deleted here, in fact, I may invent new expletives if only to not delete them. The name sounded cool, and I am a slave to sounding cool. So, uh, fuck you.

I’m going to try some different patterns and blog hats on in the process of deciding why I made another blog. So this may turn into a philosophy project, or a tech project, a book reviews project or a ‘I just write the same entry about not posting fifty thousand times’ project. I’m unsure of my direction. I’ll probably fall into my old habits of a ‘hodge podge of everything I have ever thought of’ project.

I’m going to try and start proofreading and editing these suckers though, so you can look forward to 10% fewer typos. After all, I’m not exactly a coherency sorcerer.

There, I wrote a full introductory blog post, who’s handing out the gold stars in this joint?