Wednesday, 15 March 2017

Man does not think...he only thinks he thinks

Okay, so we want to build robots, right? Proper autonomous-thinking robots. AI with arms and legs. The mechanics and electronics we’ll get by trial, error, and design; all we’ve got to wait for is the technology to advance, which it will do with time (technology always does).  But what about the brain? No, let’s qualify that, what about the Mind?  The brain after all is just more tech.  But a thinking mind, with Artificial Intelligence?

Well there’s advances there too, but mainly in complexity, not in the underlying logic of the artificial intelligence. That’s something we’re still having difficulties with, because the very thing we want it to be like, is the thing we don’t understand ourselves - ourselves.  But perhaps that’s the part of the problem - we want our robots to think like we do.  At least that’s what we say. In actual fact what we mean (although we probably don’t realise it) is for them to act like we do, not think like we do.

Hang on, isn’t that more or less the same thing?  After all, we act on thoughts, so the way we think is the way we act?  Well probably not. It’s more likely that how we think about something is based on how we acted first, and a lot of how we act is instinctive.

Let me clarify that. Think about an instinctive act you’ve performed, and how often you perform it.  Somebody waves their hand in your face and you jerk back, ready for action. If we ask you afterwards why you did that, you will probably say something along the lines of “If I hadn’t moved, he would have hit my face”.  You’re not explicitly saying that you decided to flinch, but it’s kind of implied in the language, and let’s face it, don’t we feel that this was what happened? Trip on the kerb and put your hands out; grab a ball out of the air; all of these feel like conscious decisions, but they’re not. They’re the result of millions of years of behavioural evolution. The fact that these instinctive reactions are still here proves they’re successful, and they’re successful because they’re quick.  Much quicker than human thought; there’s no way we could have controlled those actions at anywhere the same speed.  That’s why they have remained as instinctive processes - Humans think too slowly.

The point of that last paragraph is that we are mostly instinctive, with conscious thought merely a kind of afterthought (see what I did there?).  So if we want our AI to think like us, we’ve first got to make it act like us.  So let’s make a start.  The previously-mentioned avoidance instincts should be simple to design, as they are really nothing more than a series of logical on/off decisions - does this fit this criteria? If so, then - followed by a final yes it does, so do this.  You could model any of these in a flow-chart.

But if most of our instinctive actions can be modelled and replicated, what about other functions of the human mind, such as deciding to eat because we’re hungry?  Well this is where we have to look not at what we are thinking when we behave a certain way, but what mechanism could have evolved to make us behave that way in the first place.  So the smell of food certainly stimulates the feeling of hunger, which causes us to seek food and eat it, and then the feeling of eating gives us the feeling of enjoyment, followed by the feeling of contentment from being full.  That’s simple enough, and in fact it’s pretty much acknowledged that this is a Reward System.  There’s actually no thought involved.  The stimulus prompts the human nervous system to offer or promise rewards.  Again our conscious thoughts are not the decisions that cause this action, but are after-the-fact results of  a decision already taken instinctively.

So could we model this too? Of course we could, because again it’s simple on/off decision-making – if feelings of hunger, then… But what about the actual reward?  How do we model the feeling we get when we achieve a result, gain a prize, avoid pain? How do we reward a robot, or even get the robot to acknowledge and seek reward? Again, simply by the same method. It’s easier to explain this with an example.

We have built a robot. Let's call him "Robot1" .Robot1 has a power cell. When it gets below a certain level Robot1 must seek a recharge. We could just put that in as a simple instruction, a yes/no test for certain criteria (power below a specific level), and probably robots today may already be designed this way.  However that’s not going to make Robot1 think and act like us.  After all, we don’t have a simple meter for our stomach contents, with an instruction to eat when it gets below a certain level.  Our system is a lot more Heath-Robinson. Yes there is a kind of level meter in action, but it’s the body’s chemical signals that supply the trigger.  Sugar levels in the bloodstream,  for example, cause cells to react when a certain level has been reached, and we don’t have conscious access to this decision-making.  However these systems do also produce other secondary effects (dry mouth, grumbling stomach) that we are consciously aware of, which we interpret as telling us that we’re hungry...and then we’re into a standard reward system again, where we eat to stop the unpleasant feelings and gain the pleasant ones.

Now we get to the crux. No matter how much detail we replicate in our AI, how do we get that last I’ll do this because it makes me feel good?  Well in Robot1’s case, what if we keep the Level meter, but instead of the trigger simply instructing Robot1 to seek recharge, we pop an extra step in?  We trigger an increase or increment in some figure stored in a memory register.  We then instruct Robot1’s system to “do what the trigger wants us to do” when it detects either a rise in the figure in memory, or (for a slightly more complex process) when the figure has got to a particular number.  The more Robot1 is discharging, the higher that figure gets, and this will cause Robot1 to follow the instructions in the trigger circuit - Recharge.

The beauty of this monitoring of increase of a figure (let’s call it the Reward Register) is that we can re-use it for any other scenario: Cold? Bad for the electrics? Increase your internal heating (warm yourself up!);  encounter an obstacle in front of you? Step over it (if small)/Remove it without damaging it (if bigger)/Walk round it (if very big).

Using the Reward Register (along with some very complex logic paths) for every example of decision-making Robot1 has to make allows for Redundancy, s Design simplicity, and Adaptability.  We can make Robot1 a decision-making machine on a par with a human being, and who’s to say that with this structured system in place, Robot1 won’t evolve Consciousness?  After all, current neuroscientific thinking is that Consciousness may well be an Emergent property of the Brain’s processes.

So in fact while we’ve modelled an Artificial Intelligence in this way, who’s to say that the human mind doesn’t already work like this?

Thursday, 26 May 2016

Where does the word “TARDIS” come from?

According to the very first episode of Doctor Who (“An Unearthly Child”) Susan “made the name up” from the initials for Time And Relative Dimension In Space. So if this is the case, why do the Time Lords also call them this? When TARDISes were invented, what did the inhabitants of Gallifrey call them, and why don’t they still use that word?

This thorny piece of continuity has frustrated Doctor Who fandom for probably 30 years or more now, with varied opinions from “it doesn’t matter” to wild theories involving Susan having been born at the very dawn of Time Lord history and therefore being the original coiner of the word “TARDIS.”

Well I’m here to tell you that’s all rubbish, and there’s an easy way to explain the whole thing.

Firstly, the clues are all there. Susan tells us she has made up the word from the initials. Initials of English words. The TARDIS is an acronym of words in the English Language, and Susan is speaking English when she says it.

Think of the word “CERN”. This is a French acronym, created in the French language from the French words "Conseil EuropĂ©en pour la Recherche NuclĂ©aire". Now this translates into English as “European Council for Nuclear Research”, so why don’t we refer to CERN as “ECNR”? That’s what the English acronym made up from the initials of the English words would be. We don’t. Instead we have added an acronym made up from words in another language into our language – English.

So let’s assume the Time Lords have a word in their own language for the device that we know as a TARDIS. It could come from an acronym of Gallifreyan words for Time and Space Travel, or it could be a word similar to our own “Television” (which comes from the Greek for “Far Sight”), but it is irrelevant where the word comes from. Whenever Time Lords get together and speak in their own Gallifreyan language, they use this word, and Susan (being Gallifreyan) knows it as well.

But when we meet Susan she is speaking English, which (like the Doctor) she has obviously learned on her travels. So what word does she use when she talks about the Time/Space ship that she flies around in?

Well she can just say the Gallifreyan word. Or she can translate it into the English version of its derivation, in the same way as an alien might translate our word “Television” into his own language version of “Far Sight”.

Or she can make up her own word, in the same way as we could have referred to CERN as “ECNR”. Which is what she tells us she has done. “TARDIS” is an English acronym made up from English words that describe the function of the Time machine invented by her race.

Let’s take another example. In the film Avatar, the N’avi use the word “Toruk” to refer to the largest airborne predator on their world, and they further say that this means “last shadow”. They are of course speaking English at this point, so we can assume that if you wanted to say “last shadow” in N’avi you would use the word “toruk”.

English characters in the film also use this word to refer to the creature, but let’s imagine a N’avi child that lives among humans and speaks English fluently. She might one day decide that instead of using the N’avi language word for the beast, she would like to make up her own word. So she comes up with the acronym “SWITSAY”, which she says she has made up from the initials of “Scary Wings In The Sky Above You”.

From then onwards everyone uses the word “Switsay” when referring to the great winged terror, including the N’avi whenever we see them talking about it.

Why is this? Why aren’t they using the word “toruk” anymore? Well there are a couple of reasons for this. The first is down to what we refer to in drama as “translation convention”. When we see people on TV or film speak in a foreign language (e.g. Germans in WWII movies) they are portrayed as speaking in that language, but we hear them speak English (often in a cod accent). So when the N’avi or the Time Lords talk amongst themselves, in their own language, we hear them speaking in English.

Thus when we see Time Lords on Gallifrey talking about their Time Machines, the only time we would hear them use the Gallefreyan word for something is if there doesn’t exist an English word for it that the script-writer can use. We have already established that there does exist an English word for the Gallifreyan Time Machine – Susan has told us it. "TARDIS". We can therefore comfortably assume that when we see Time Lords talking in their own language, even though they will be using their own Gallifreyan word, we will hear “TARDIS” in English.

The second reason is unique to Doctor Who. When the Doctor visits Gallifrey (or a Time Lord visits the Doctor) we hear them speaking English, often with one of the Doctor’s human companions included in the conversation. Are we to assume that all Time Lords have an excellent command of spoken English? But if so, how do they all seem to know the English word “TARDIS”?

They don’t. One of the more convenient functions of the TARDIS is that it telepathically translates all languages instantaneously (the script-writers’ way of getting round the fact that all aliens seem to speak English, a problem solved in a similar fashion by Star Trek’s “Universal Translator”). So whenever a human companion has a conversation with a Gallifreyan, they are both speaking their own languages, but the TARDIS is translating for both of them. We as viewers therefore hear what the companion hears (a translation convention) and so hear the Time Lord speaking English. And naturally the TARDIS provides the English language word “TARDIS” whenever the Gallifreyan one is spoken.

So there you have it. Time Lords presumably have their own word for “TARDIS” (one that existed since TARDISes were created and long before Susan was born), and this is the word they always use. However when we hear their speech translated into English, the word we hear is the English word that Susan made up.

Simples!


Wednesday, 4 November 2015

So Who's "Your" Doctor Who?

I've always been intrigued by the "My Doctor" effect, which is that depending on your age you tend to have a particular Doctor who you regard as "yours".  Although it does depend on when in the year you were born, and when you started watching the programme, I think it can roughly be equated to the Doctor you saw the most of between the ages of 6 and 10.

For example, if you were 6 in 1970, Jon Pertwee would be "your" Doctor, since Tom Baker didn't arrive until 4 years later.  However if you were 6 in 1973 you would have had 2 years of Pertwee, followed by the next 3 of Baker.  Your Doctor would therefore be the 4th.

in my case (I was born in 1961) "my" Doctor would be expected to be Patrick Troughton, except we didn't get a TV until 1968 so I only saw two Troughton seasons, and since I was still watching Doctor Who at age 15 (but only just) Jon Pertwee is my Doctor.

I've even done a spreadsheet, and here are my findings.

  • If you were born between 1957 & 1958 (and assuming you began watching Doctor Who at roughly age six), your Doctor should be the 1st Doctor;
  • Between 1959 and 1961 it's the 2nd Doctor;
  • 3rd Doctor, 1962 to 1966;
  • 4th Doctor, 1967 to 1974;
  • 5th Doctor, 1975-77;
  • 6th Doctor, 1978-79;
  • 7th Doctor, 80-83;

The New Series revival in 2005 should be no different, with the exception that although the 9th Doctor might have been "your" Doctor when he was on, because it was only for a year he was quickly overshadowed by the 10th.
  • 10th Doctor 1997-99;
  • 11th Doctor 2000-2003 (although she remembers the 10th, the 11th is Amy's Doctor);
  • 12th Doctor 2004 onwards;

There is a similar correlation with "Cyberman Scariness".  Fans always argue about when the Cybermen were at their best.  I tend to think late '60s (when I was 7 or 8), and was quite disappointed by "Revenge of the Cybermen" in 1975 (when I was 14). Fans born between 1969 and about 1974 however, think "Revenge" was the scariest thing on TV at the time.  While those born after about 1975 think that "Earthshock" and "Silver Nemesis" are the absolute zenith of the Cybermen.

Of course anyone born prior to 1960 tends to think they were at their best in "The Tenth Planet" and it's been steadily downhill ever since.

Wednesday, 7 October 2015

Updating Firefox and Flash Plugin manually on Mandriva Linux

Firefox

I am running Mandriva Linux x64 2011.0 with an LXDE desktop.  I run Firefox from an icon on the desktop that points to /usr/lib64/firefox/firefox.  Even though technically Mandriva uses RPMs, I prefer to update manually. This is the procedure I use:



  1. Firstly go here for the latest releases:  http://download.cdn.mozilla.net/pub/mozilla.org/firefox/releases/
  2. Go to the folder for the next stable release.  For example at the time of writing that is 41.0.1.
  3. Locate the linux-x86_64 folder
  4. Locate the en-GB folder
  5. Download firefox-41.0.1.tar.bz2 to a convenient folder (I use ~/Downloads)
  6. Extract the archive to /Downloads/firefox
  7. Open root terminal and run command “nautilus” to get a gui
  8. Go to /usr/lib64 and rename folder  /firefox to previous version (e.g. /firefox 39.0)
  9. Copy /Downloads/firefox to /usr/lib64
  10. Firefox icon on desktop will now start v 41.0.1


Flash Plugin



Note: Firefox uses the symlink “libflashplayer.so” within /usr/lib64/Mozilla/plugins.  This points to the folder /usr/lib64/flash-plugin. This is the one you want to update. Do not copy to the Mozilla folder!


  1. Go to http://flashbuilder.eu/flash-player-version.html to check your current version
  2. Go to https://get.adobe.com/flashplayer
  3. Go to “Your System: Linux 64-bit, English, Firefox
  4. From “select version to download…” drop-down box select “.tar.gz for other Linux
  5. Click “Download Now
  6. Save “install_Flash_player_11_linux.x86_64.tar.gz” to convenient directory (e.g. ~/Downloads), overwriting any copies of the file from previous downloads
  7. Extract “libflashplayer.so” from this archive to ~/Downloads
  8. Close firefox
  9. Open root terminal and run command “nautilus” to get a gui
  10. Go to /usr/lib64/flash-plugin
  11. Copy libflashplayer.so to /usr/lib64/flash-plugin, overwriting previous version (or rename previous version if you want a backup)
  12. Open firefox and go to http://flashbuilder.eu/flash-player-version.html to check latest version now installed