Stephen Smith's Blog

Musings on Machine Learning…

Posts Tagged ‘computer

Is the Brain Really a Computer?

with 2 comments

Introduction

There is a lot of debate about whether the human brain is really a computer or is it something more than a computer or is it something quite different from a computer? In this article I’m going to look at some of these arguments, many of them positing behaviours of the brain that are claimed to be impossible to be exhibited by a computer.

Some of the arguments tend to be based on a need for humans to somehow be special, similar to the passion of people who stuck to the idea that the Earth was the center of the universe because we were somehow special and they couldn’t bear the idea that we were located on one insignificant planet orbiting one of billions of suns in our galaxy in a universe of billions of galaxies.

Other arguments are based around human behaviours like humour, saying it would be impossible to program a computer to create or really appreciate humour.

We’ll look at some of these arguments and consider them in the context of what we’ve been looking at in complex emergent behaviour of simple iterated systems.

The Brain Looks Like a Computer

As biologists study the workings of the brain, it is very structurally similar to a modern computer. In the sense that a neuron cell has a number of inputs through synapses and dendrites that conduct the input signals into the cell body that then does a summing and limiting function to decide if it will fire an output signal through the axon to feed into other neural cells. This structure is very similar to the basic logic gates the modern processing units are composed of. It also seems like a very simple and logical comparison. Often the simplest and most straightforward theory is also the correct one.

Emotional Computers

One argument against the brain being a computer is that computers are logical and not emotional. How could a computer program be humorous? How could a computer program appreciate humor? How could a computer program ever be jealous? A lot of these arguments were used to highlight how humans are different than animals with the claim being that animals never find anything funny or exhibit jealousy. That these are strictly human traits and show how we are special and different in some fundamental way than animals. However modern animal research now shows that animals do exhibit these behaviours and that we aren’t special in these regards. In fact any one who own two or more dogs will certainly see a lot of jealousy exhibited, plus any dog owner knows that dogs do find some things exceedingly funny. I think the people who promote these ideas really put on the blinders and really have some deep down need to be special, to avoid all the rather clear evidence to the contrary.

There is now a branch of AI that is looking to add emotion to computer systems, so that personal assistants can be humorous and can understand and take into account our emotional state so they can be better assistants. I tend to think that long term this forcing of emotion into chat-bots and such is unnecessary and that as these programs become more complex we will see emotions start to surface as emergent properties like some of the emergent behaviour we talked about here and here.

Quantum Complexity

Another argument is that the billions of neurons in the brain would be a computer if they worked electrically and chemically. However this wouldn’t be good enough to produce human intelligence. The argument here is that neurons hide in their structure small constructs that operate at the quantum level and that these combine to form some sort of new much powerful computing structure that might be like a computer or might not. That if it is like a computer then it’s many orders of complexity more than current computer hardware, so AI can’t be anywhere close yet. Or the quantum nature of these behaviours is beyond a Turing machine and much more powerful.

The problem with this argument is that neuron cells have been studied to great depth by biologists and nothing like this has been found. Further neurons don’t contain any way to network or communicate these processes with other cells. Further we’ve studied and simulated much simpler life forms that have just a few neurons and managed to accurately simulate their behaviour, indicating that we do have a fairly good idea of how neurons work.

I think these arguments tend to be blind to how complex a few billion neurons are already and how complex emergent properties from such a system can be.

Something Undiscovered

Perhaps a more religious argument is that there is some force or dimension that science hasn’t discovered. Perhaps intelligence doesn’t reside entirely in the brain, but in something like a soul. And that its having this soul that leads to human level intelligence. Religious thinkers started to unravel this argument back in the 1600s where it was usually referred to as Cartesian Dualism. It is understood how the neurons in the brain control the body through our nervous system. The question becomes how does the soul interact or affect the brain?

What science has shown is that if the interaction was through a known force like electromagnetism or nuclear weak force, then we would be able to detect and see this in action, and it has never been observed. What is then posited is that it must be via a force that science hasn’t discovered yet. However quantum field theory eliminates this possibility. There can certainly be undiscovered forces, but due to experiments in devices like the Large Hadron Collider, we know that any undiscovered force would be so powerful that we could detect it and that the interactions would be like nuclear explosions going off (ie very hard to miss). This is because if a force interacts with a particle like an electron, then quantum field theory says that you can produce the carrier particle for this force by crashing an electron into an anti-electron (positron) with sufficient force. We’ve now done this with all the particles to very high energy levels to know there is no low energy unknow force that could be doing this. Incidentally this is the same argument basically to prove that life after death is impossible, because we would be able to detect it at the point of death.

Summary

As Biologists study the brain, it does appear that the brain acts like a computer. As our studies get more and more detailed we are thoroughly eliminating any contending theories. Further, being a computer doesn’t limit us in any way because we know how complex and amazing emergent behaviour can be when simple systems are iterated.

 

Written by smist08

June 14, 2017 at 9:05 pm

Posted in Artificial Intelligence

Tagged with , ,

Windows Bit-Rot

with 8 comments

Introduction

In investigating some performance problems being reported on some systems running Sage 300 ERP, it lead down the road to investigating Windows Bit-Rot. Generally Bit-Rot refers to the general degradation of a system over time. Windows has a very bad reputation for Bit-Rot, but what is it? And what can we do about it? Some people go so far as to reformat their hard disk and re-install the operating system every year as a rather severe answer to Bit-Rot.

Windows Bit-Rot is the tendency for a Windows system to get slower and slower over time. Becoming slower to boot, taking longer to log-in, and taking longer to start programs. Along with other symptoms like excessive and continuous hard disk activity when nothing is running.

This blog posting is going to look at a few things that I’ve run into as well as some other background from around the web.

Investigation

I needed to investigate why on some systems printing Crystal reports was quite slow. This involved software we have written as well as a lot of software from third parties. On my laptop Crystal would print quite slowly the first time and then would print quickly on subsequent times. My computer is used for development and is full of development tools, so the things I found here, might be relevant to myself more than real customers. So how to see what is going on? A really useful program for seeing what is going on is Process Monitor (procmon) from Microsoft (from their SysInternals acquisition). This program will show you every access of the registry, the file system and the network. You can filter the display, in particular you can filter to monitor only a single program to see what it’s doing.

procmon

ProcMon yielded some very interesting results.

The Registry

My first surprise was to see that every entry in HKEY_CLASSES_ROOT was read. On my computer which has had many pieces of software installed, including several versions of Visual Studio, several versions of Crystal Reports and several versions of Sage 300 ERP, the number of classes registered here was huge. OK, but did it take much time? Well the first time something that’s run that does this it seems to take several seconds, then after this its fast probably because the registry ends up cached in memory. It appears that several .Net programs I tried do this. Not sure why, perhaps just .Net wants to know all the classes in the system.

But this does mean that as your system gets older and you install more and more programs (after all why bother un-installing when you have a multi-terabyte hard drive?), starting these programs will get slightly slower and slower. So to me this counts as Bit-Rot.

So what can we do about this? Un-installing unused programs should help, especially if they use a lot of COM classes. Visual Studio being the big one on my system, followed by Crystal and Sage 300. This helps a bit. But there are still a lot of classes there.

Generally I think uninstall programs leave a lots of bits and pieces in the registry. So what to do? Fortunately this is a good stomping ground for utility programs. Microsoft used to have RegClean.exe, Microsoft discontinued support for this program, but you can still find it around the web. A newer and better utility is Ccleaner from Piriform. Fortunately the free version includes a registry cleaner. I ran RegClean.exe first which helped a bit, but then ran Ccleaner and it found quite a bit more to clean up.

Of course there is danger in cleaning your registry, so it’s a use at your own risk type thing (backing up the registry first is a good bet).

At the end of the day all this reduced the first time startup time of a number of program by about 10 seconds.

Group Policy

My second surprise was the number of calls to check Windows Group Policy settings. Group Policy is a rather ad-hoc mechanism added to Windows to allow administrators to control networked computers on their domain. Each group policy is stored in a registry key, and when Windows goes to do an operation controlled by group policy, it reads that registry key to see what it should do. I was surprised at the amount of registry activity that goes on reading and checking group policy settings. Besides annoying users by restricting what they can do on their computer, it appears group policy causes a general high overhead of excessive registry reading in almost every aspect of Windows operation. There is nothing you can do about this, but it appears as Windows goes from version to version, that more and more gets added to this and the overhead gets higher and higher.

Auto-Updates

You may not think that you install that many programs on your computer, so you shouldn’t have these sort of problems but remember many programs including Windows/Microsoft Update, Adobe Updater and such are regularly installing new programs on your computer. Chances are these programs are leaving behind unused bits of older versions that are cluttering up your file system and your registry.

Auto-Run Crap

Related to auto-updates, it appears that so many programs now run as icons in the task bar, install Windows services or install programs to run when you log-in. All of these slow down the time it takes you to boot Windows and to sign-in. Further many of these programs, say like Dropbox, will keep frequently polling their server to see if there are any updates. Microsoft has a good tool Autoruns for Windows which helps you see all the things that are automatically run and help you remove them. Again this can be a bit dangerous as some of them are necessary (perhaps like a trackpad utility).

Similarly it seems that everyone and their mother wants to install browser toolbars. Each one of these will slow down the startup of your browser and use up memory and possibly keep polling a server. Removing/disabling these isn’t hard, but it is a nuisance to have to keep doing this.

Hard Disk Fragmentation

Another common problem is hard drive fragmentation. As your system operates the hard disk becomes more and more fragmented. Windows has a de-frag program that is either scheduled to run when your computer is turned off or you never bother to run it by hand. It is worth de-fragging your hard drive from time to time to speed up access. There are third party de-frag programs, but generally I just use the one that comes built into Windows.

Related to the above problems, often un-installation programs leave odds and ends files around and sometimes it’s worth going into explorer (or a cmd prompt) and deleting folders for un-installed programs. Generally it reduces clutter and speeds up operations like reading all the folders under program files.

Dying Hard Drives

Another common cause of slowness is that as hard drives age, rather than just out right failing, often they will start having to retry reading sectors more. Windows can mark sectors bad and move things around.  Hard drives seem to be able to limp along for a while this way before completely failing. I tend to think that if you hear your hard drive resetting itself fairly often then you should replace it. Or when you defrag if you see the number of bad sectors growing, then replace it.

Summary

After going through this, I wonder if the people that just reformat their hard drive each year have the right idea? Does the time spent un-installing, registry cleaning, de-fragging just add up to too much? Are you better off just starting clean each year and not worrying about all these maintenance tasks? Especially now that it seems like we replace our computers far less frequently, is Bit-Rot becoming a much worse problem?

Written by smist08

May 4, 2013 at 2:31 pm

Linux is Everywhere

with 4 comments

Introduction

It’s been a long running joke that at the beginning of each year, probably for the last twenty years, someone prognosticates that this will be the year of Linux. Often this is prefaced by the year of the Linux desktop or the year of the Linux server. But somehow in spite of all the hype, most desktops are still Windows as are a good number of servers.

I don’t really want to prognosticate that this will necessarily be the year of anything in particular, but recently it appears that everywhere I turn, I see Linux.

Telikin

My wife spent November and December in Arizona with her parents who are snowbirds, since I had quite a bit of business travel going on. Since she was there for 2 months she was determined to get her parents on-line. So they could Google things themselves rather than phoning her, so they could e-mail and use Facebook. So off they went and bought a shiny new Lenovo Windows 8 laptop with a touch screen and all the bells and whistles. This turned out to be quite frustrating and they had all sorts of learning and usage problems. The big one being that the touch interface didn’t work well. So they returned it and got a large screen Windows 7 laptop, which my wife thought would be easier since she knew it better and there was no touch stuff. Didn’t go so well. Then they saw an ad for a Telikin PC which was a special purpose PC for seniors with a touch screen as well as a mouse, with special easy to use software which included senior friendly features like large fonts and large graphics.

Telikin-TLMS18T3202W-PC

This actually worked out quite well. They could do e-mails, browse the web, print, upload photos from their camera and use Facebook. They then asked me about recording audio, so I got a freeware program and went to install it. I imagined that the senior friendly software was just a shell over Windows, and I just needed to figure out how to exit that or run a CMD prompt. No luck. I then Googled the computer and to my surprise found out it was powered by Linux! Apparently Linux is making it into the Desktop in a number of special purpose PCs. I then had to point them to a web site that allowed you to make audio recordings and away they went. Further they seem to be able to keep using it now that they are on their own again, since we returned home.

Android

Of course I couldn’t write an article about Linux taking over without mentioning Google’s Android operating system for phones and tablets. Last September, Google announced that 500 million Android devices have now been activated. That’s an amazing number. Basically Android is proving to be the market leader in both smart phones and tablets. Samsung has experienced tremendous growth with their Android devices.

ChromeOS

For laptops, Google is promoting their ChromeOS which is a minimal Linux based computer that is more oriented being a web browser. Surprisingly ChromeOS based laptops have topped the Amazon best seller lists for laptops in recent months. These are special purpose devices, but are gaining quite a bit of traction.

Tizen

Tizen is another open source Linux based smart phone operating system. This is being promoted as even more open than Android. It is being picked up by several Chinese phone manufacturers as well Samsung has announced they will be releasing Tizen based phones. Partly this is in reaction to Google shipping Google branded devices in competition to their hardware partners.

Ubuntu

Ubuntu has been a leading Linux distribution that has gained quite a bit of traction on the desktop. It is a full distribution of Linux and not one of the special purpose limited sets. Now Ubuntu is developing a smart phone version of their Linux version. The idea is that when the phone is mobile it runs a limited set of programs in a manner similar to Android or Tizen, but when you dock the phone and it’s connected to a monitor, keyboard and mouse, then you get the full Ubuntu distribution. This way your phone is also your laptop and tablet.

This is rather an interesting idea that the phone is your computing core with all your files and programs on it. Then depending on the hardware, connectivity and power you get the subset that is appropriate for that usage.

Raspberry Pi

The Raspberry Pi is a $25 computer that is oriented to hobbyists. It is based on the ARM CPU and runs Linux. The Raspberry Pi doesn’t even come in a box. But since it just recently went on sale, it’s already sold 1 million units. This has certainly woken up the home hardware hobby industry and I suspect the core design of this will end up in many other devices.

800px-RaspberryPi

Everything Else

At the recent CES show, there seemed to be a plethora of special purpose Linux based appliances from intelligent fridges to Linux being the operating system for your car. I don’t know how many of these will be successful but it appears that nearly everything is getting a CPU, memory and connectivity. Whether these have any lasting value or are short term gimmicks is yet to be seen.

Programming

As a programmer we want all our programs to run in as many places as possible. These days the market has become quite fragmented between Windows, MacOS, iOS and then all the Linuxes. One way to program for all these devices is to use HTML5/JavaScript since they all have Internet connectivity and good browsers like Firefox or Chrome. Another way is to use Java which runs on all these as well. For Windows, Linux and MacOS you can also use C/C++ and just isolate the operating system dependent parts in separate modules to handle differences in things like mutexes and file locking. Unfortunately besides using HTML5/JavaScript the preferred native way to create User Interfaces is completely different on all of these and tends to lead to very different ways of doing things.

Summary

It seems that Linux has been making inroads slowly in all sorts of places. Now all of a sudden it seems to be everywhere. I think this is a great tribute to what can be accomplished with open source software and how a great many profitable ventures can be based on it.

Written by smist08

January 19, 2013 at 5:55 pm