Why AlphaGo is not AI

President at Novaquark

What is AI and what is not AI is, to some extent, a matter of definition. There is no denying that AlphaGo and similar deep learning approaches have managed to solve quite hard computational problems in the last years. But is it going to get us to AI, in the sense of a fully general intelligent machine, or “AGI”? Not quite, and here is why.

One of the key issues when building an artificial general intelligence is that it will have to make sense of the world for itself, to develop its own, internal meaning for everything it will encounter, hear, say and do. Failing to do this, you end up with today’s AI programs where all the meaning is actually provided by the designer of the application: the AI basically doesn’t understand what is going on and has a narrow domain of expertize.

The problem of meaning is perhaps the most fundamental problem of AI and has still not been solved today. One of the first to express it was Harnad, in his 1990 paper about “The Symbol Grounding Problem”. Even if you don’t believe we are explicitly manipulating symbols, which is indeed questionable, the problem remains: the grounding of whatever representation exists inside the system into the real world outside.

To be more specific, the problem of meaning leads us to four sub-problems:

  1. How do you structure the information the agent (human or AI) is receiving from the world?
  2. How do you link this structured information to the world, or, taking the above definition, how do you build “meaning” for the agent?
  3. How do you synchronize this meaning with other agents? (otherwise, there is no communication possible and you get an incomprehensible isolated form of intelligence)
  4. Why does the agent do something at all rather than nothing? How to set all this into motion?

The first problem, about structuring information, is very well addressed by deep learning and similar unsupervised learning algorithms, used for example in the AlphaGo program. We have made tremendous progress in this area, in part because of the recent gain in computing power and the use of GPU (Graphical Processing Units) which are especially good at parallelizing information processing. What these algorithms do is taking a signal that is extremely redundant and expressed in a high dimension space, and reduce it to a low dimensionality signal, minimizing the loss of information in the process. In other words, it “captures” what is important in the signal, from an information processing point of view.

The second problem, about linking information to the real world, or creating “meaning”, is fundamentally tied to robotics. Because you need a body to interact with the world, and you need to interact with the world to build this link. That’s why I often say that there is no AI without robotics (while there can be pretty good robotics without AI, but that’s another story). This realization is often called the “embodiment problem” and most researchers in AI now agree that intelligence and embodiment are tightly coupled issues. Every different body has a different form of intelligence and you see that pretty clearly in the animal kingdom. It starts with simple things like making sense of your own body parts, and how you can control them to produce desired effects in the observed world around you, how you build your own notion of space, distance, color, etc. This has been studied extensively by researchers like Kevin O’Regan and his “sensorimotor theory”. It is just a first step however, because then you have to build up more and more abstract concepts, on top of those grounded sensorimotor structures. We are not quite there yet, but that’s the current status of research on that matter.

The third problem is fundamentally the question of the origin of culture. Some animals show some simple form of culture, even transgenerational acquired competencies, but it is very limited and only humans have reached the threshold of exponentially growing acquisition of knowledge that we call culture. Culture is the essential catalyst of intelligence and an AI without the capability to interact culturally would be nothing more than an academic curiosity. However, culture can not be hand coded into a machine, it must be the result of a learning process. The best way to start looking to try to understand this process is in developmental psychology, with the work of Piaget or Tomasello, studying how children acquire cultural competency. It gave birth to a new discipline in robotics called “developmental robotics”, which is taking the child as a model (as illustrated by the iCub robot, pictured above). It is also closely linked to the study of language learning, which is one of the topic on which I mostly worked as a researcher myself. The work of people like Luc Steels and many others have shown that we can see language acquisition as an evolutionary process: the agent creates new meanings by interacting with the world, use them to communicate with other agents, and select the most successful structures that help to communicate (that is, to achieve joint intentions, mostly). After hundreds of trial and error, just like with biological evolution, the system evolves the best meaning and their syntactic/grammatical translation. This process has been tested experimentally and shows striking resemblances with how natural languages evolve and grow. Interestingly, it accounts for instantaneous learning, when a concept is acquired in one shot, something that heavily statistical models like deep learning are not capable to explain. Several research labs are now trying to go further into acquiring grammar, gestures and more complex cultural conventions by this mean, in particular the AI Lab that I founded at Aldebaran.

Finally, the fourth problem deals with what is called “intrinsic motivation”. Why does the agent do anything at all, rather than nothing. Survival requirements are not enough to explain human behavior. Even perfectly fed and secure, humans don’t just sit idle until hunger comes back. There is more, they explore, they try, and it seems to be some kind of intrinsic curiosity. Researchers like Pierre-Yves Oudeyer have shown that simple mathematical formulations of curiosity, as an expression of the tendency of the agent to maximize its rate of learning, are enough to account for incredibly complex and surprising behaviors (see, the Playground experiment done at Sony CSL). It seems that something of the sort is needed inside the system to drive its desire to go through the previous three steps: structure the information of the world, connect it to its body and create meaning, and then select the most communicationally efficient one to create a joint culture that enables cooperation. This is, in my view, the program of AGI.

Again, the advances of deep learning and the recent success of this kind of AI at the game of Go are very good news because lots of very useful applications can be imagined from there to help medical research, the industry, progress in environment preservation and many other issues. But this is only one part of the problem, as I have tried to show here. I don’t believe deep learning is the silver bullet that will get us to true AI, in the sense of a machine that is capable to learn to live in the world, interact naturally with us, understand deeply the complexity of our emotions, cultural biases and ultimately help us to make a better world.

This article originally appeared on LinkedIn

How to set and use passwords in a safety way

Passwords are like underwear, you change them frequently. Do not share them and do not show them”

Well maybe some people like to show part of their underwear, but let’s say the previous statement suits most people. 😉

Nowadays we have to deal with hundreds of places where we have security access through a username and password. To use a different username and password is a suggestion that we have surely heard of, and probably tried, but when we have to remember access details for services we access everyday, a lot of people end up using the same username and password. Even if we use a strong password with upper and lower cases, numbers and signs, if one of these sites has a security problem (remember the cases of YahooLinkedIn and Dropbox, …) all the accounts using the same password will be jeopardised

So, it is clear that the most secure solution would be to use different, strong passwords for our accounts. But how can we deal with all this information?

thinking

One of the solutions is provided by password managers. This tool stores all of our passwords in an encrypted database and the only thing we have to do is to remember one strong password (a master password), usually incorporated within a long sentence. Once we have entered this password, we will be granted access to all the account details.

There are two types of password managers: the ones where the database is stored on servers and the other ones where we locally store the database. It is clear that the first ones are easy to use. We only have to create the database on their cloud and access from any device we want. You might be reluctant to hold your database on their servers, and you are probably right, because some providers were hacked into in the past, for example LastPass.

So we are going to focus on the password managers group where they do not provide a centralized database feature. That does not mean we are not able to use the same database in different devices but we have to use a cloud service to provide this synchronisation.

In this article I will explain how to setup and use the KeePass, the free, open source, light-weight, easy-to-use password manager, with a lot of awards. You can use it with Windows, Mac OSX, GNU/Linux, Android, iPhone/iPad, Windows Phone, Blackberry, Chrome… You can check the ports list here. As a cloud service I will use Mega and FolderSync Lite to synchronise the database to my mobile device and Keepass2Android Password Safe to get the database on my Android.

I will take for granted that you have already installed the KeePass version for your operating system, that you have some cloud service installed and that you have already created an account. The steps are the following:

Start KeePass and create the database

Start KeePass

kp1

The first time you will need to create a database

new

The system will ask for a name and a location. Remember to store them into the folder where the cloud service has been setup.

mydb

Create the Master password and the Key file

This is the MAIN and MOST important password, and the ONLY ONE you have to REMEMBER. It is a good idea to use a sentence instead of a word, use capital letters, numbers and special characters, like the one below:

My f4th3r w@s 4 great p3r$0n. 1 admire h1m!

As you can see, I am combining capital letters, numbers and especial characters, trying not to use the same pattern (I am not replacing all the vowels for numbers in all the words). It is a complex sentence, but you only need to remember this one. I recommend you to click on the 3 dots button to avoid repeating the sentence twice and ensure the Master password typed is the one you want.

IMPORTANT: In case you forget your Master password, you will not be able to open the database.

The estimated quality will show you how secure the password you have typed in is. Try to reach the 192 bits.

createmp

Key file (optional)

In case you want to setup an additional security level, you can create a Key file. You will need both (if checked is required), a master password and a key file to unlock the database. We have to specify where we want the Key file to be stored.

mykey

And then help the system generate random bits in order to increase the entropy of the computer. Move the mouse over the field until Generated bits bar reache 256 bits. Type random keys inside the Random keyboard input field. Then click OK button.

entropy1

You can only check the “Key file” option, but I will not recommend it to you, as anyone who has your key file will be able to open the database. I suggest using Key file as an additional security level.createmp

Set database settings

Here we can set some database settings, like name, some description and additional parameters.

dbsetting

In case you are using the key file option, you can enable a change key reminder and an expiration date, to force that key to be changed. By default both settings are deactivated.

dbsetting2

Once you click on the OK button, you will have the database opened and ready to create new entries. You have 2 samples.

dbnew

Please, take into account that the database name in the main title window has an asterisk, meaning that the changes are not saved yet.

Adding a new entry

To add a new entry in the database, just click on the key button

The fill the main fields:

  • Title. Something to link with the account

  • User name. The user name of the account

  • Password: In case you want to ensure the password you are typing in, I will hardly recommend you to click on the 3 dots button

screenshot_20160501_202710

  • URL: The address of the site, in case the account is related to one website. If you write without the subdomain (www in the www.wikipedia.org for example), this entry will be able to login inside any subdomain of wikipedia.org, like en.wikipedia.org, ca.wikipedia.org.. and so on.

Since there is no need to remember the password you have created, this is a good way to start using a strong password. Create strong passwords manually is not advisable, since maybe we have some (unconscious?) pattern, so it is better to delegate this task to the software. Just click on the key button and several options will be displayed.

screenshot_20160501_202858

In case you want to personalize due to some constraints on the password, just click on the “Open Password Generator…” option

screenshot_20160501_202956

Below you can set which type of character set you want to appear on the password. For a strongest password, I suggest enabling Upper and lower-cases, Digits, Special characters. Check the “Collect additional entropy” option which will show you the Entropy collection window we have already mentioned above.

screenshot_20160501_204100

Inside the Advanced tab you can specify some additional constraints. Like excluding the look-alike characters (Capital I and lower-cases L, vowels o and number 0…). You can also exclude some characters. Please remember that these options and rules may reduce the security of generated passwords.nocaracters

The Preview tab will show you some examples of the passwords generated matching the rules specified on the fist tab.

screenshot_20160501_204152

Clicking on the OK button will generate the password matching the options and rules. It is a good idea to specify inside the Notes field the email linked to the account, just in case you need to.

screenshot_20160501_205456

Now you have a database stored in a cloud service.

Browser integration in computer

The easiest way to be used in a trusted computer is by using a browser add-on. The one I use it is PassIFox, since I am using Mozilla Firefox as a main browser, but  chromeIPass can be used in case you use Chrome browser.

passifox

Following the instructions you will find the website to install and configure the add-on.

Once connected to your database, just visit the site where you have already set up an account, and in case the user name and password are not filled in automatically, click inside the username or password field and click with the right button. The “Fill User & Pass” option will appear.

wiki

Coming soon: (How to use KeePass with Android)

…Searching Always New Horizons.