Wednesday, 3 June 2015

Linear Response Expansion Problem (LRE)

A Chatbot architecture that is designed to generate at-least 1 sentence response for every sentence in user input may face the Linear Response Expansion problem if 2 Bots of the same architecture are to have conversation with each other.

Suppose 2 Chatbots are to have conversation with each other and implement the aforementioned architecture that generates 1 or more sentences for every sentence in the input they receive.

Say is the number of sentences in any Bot input and is the number of sentences in any Bot output. Then holds true for all chat interaction.

This means that if a Chat session is held between the 2 Chatbots then the number of sentences in their responses will expand linearly.

A partial-solution to the aforementioned problem is that the Bot has to be aware of redundant sentences in the input it receives.

Say if "How are you ?" and "Whats up" fire a response that belongs to the same domain of pattern. Then the Bot should nullify response generation for the second sentence.

Therefore the input "How are you ? Whats up?" should generate just 1 response. Keeping
intact but reducing expansion in the current interaction.

LRE is common in strict Chatbots that are designed to address every sentence in the input they receive. However loose-Chatbots that rely on Regular Expressions may not face this problem if and only if the architecture just considers a single-match to activate a response.

Saturday, 7 June 2014

Upcoming Ban on Sudan, Bangladesh, Iran and Syria

For a couple of months there has been a discussion ( me and the rest of the team ) about banning Countries from using any AI Technologies developed here at Syn.

Despite the fact that no private Company prefers to run based on ethics and morality higher than the Company's profitability - Syn begs to Differ. We do run on ethics and morality.

The ban on Sudan is due to violation of human rights on multiple occasions and recently "a Sudanese woman named Meriam Ibrahim" sentenced to 100 lashes and a death penalty has pushed the decision to Ban Sudan even further. We believe ( despite the fact that me and my team are neutral to all religions as the team comprises of people of different cast, color, gender and religion) that the sentence is barbaric in nature and will not be entertained under any circumstances.

To implement the Ban, Synthetic Intelligence Network will subject its software/product(s) to this restriction under its License Agreement and will explicitly declare names of countries/territories that aren't allowed to use any technology developed by Syn.

Further more if the Ban is violated Syn reserves the right, including but not limited to, purge its product(s) or the entire system without any notification and take any action, including but not limited to, publicly mentioning and submitting ( to authorities ) the person or entity's identity responsible for the violation of Syn License Agreement.

List of Countries being considered.

  • Sudan ( Confirmed )
  • Bangladesh ( Unconfirmed )
  • Iran
  • and Syria

Thursday, 18 April 2013

The Making of Jarvis AI System and Syn Virtual Assistant

From the time Syn Virtual Assistant has been released to the public many compare it with is a fictional Jarvis character from the movie Iron Man.

Prototype 8.0 Coming Soon [ This Month ]

This video demonstrates a 3D IronMan Avatar that will be available for Prototype 8.0

This video demonstrates the upcoming version of Syn Virtual Assistant - Prototype 8.0

Syn Engine was designed to power something like that especially an AI Agent or as some call Personal Virtual Assistant. The power of it was realized when it was connected with a system that had a virtual assistant character ready to take voice or textual commands.

But Syn Virtual Assistant and SynEngine changed everything.

Later on as time passed the interface became more smooth and flexible that it could handle many different plugins at the same time. Making something like Jarvis became a left hand job. The Entire system runs all it commands on different threads ( Multi-Threading ) and has seemingly been functioning well under such complex Thread unity.

Despite of all the So called Jarvis Systems that exist right now. Many are so so childish in nature and are like fancy toys of kids that don't do much except live in their own hype that is the result of movie and media. And no solid programming or research work has been done in these projects.

So what can Syn Virtual Assistant with its SynEngine do. Almost Anything. SynEngine has a lot of features and to mention a few of them

  • Nearly any .Net Framework can be connected to it. It has already been connected with not 1 but more than 4 speech recognition engines/services.Which allows the user to talk to their PC like they do with any normal person.
  • Many online services including Facebook , twitter , Google maps , Google Talk, Skype and a lot more work just fine without a glitch with SynEngine. Though many similar projects have failed because of their egoistic approach on the contrary SynEngine beats the rest by being a humble project with such a powerful integration system that all existing libraries can be integrated seamlessly without any effort from the developers side.
  • Plugin interface gives it the best in its class feature of extending the Virtual Assistant to any limit. And thereby bringing the proven Modular form of programming into the AI System.
  • Nearly every function that is executed is logged and its details are available to the user/developer. 
  • Fault Tolerant design allows the system to keep working even if one or more of its plugins have failed or have generated critical error.
  • The memory usage is very low despite of all the services that might take place in the background. Service generated errors are logged with full error description for developers
  • Developers can easily make Parsers of any kind and even extend existing Parsers. Many Parsers are already provided so that  commands that may involve complex parameters can be easily isolated and executed. Developers can also group  functions inside what is called a SynGear and add or remove functions or even set lifetime for functions.
  • SynEngine is a Multi-Threaded engine which allows multiple number of users to access it and generate responses for their queries/commands. SynEngine also provides a number of inbuilt functionalities to handle commands that were meant for single threaded applications.
  • The entire plugin is scanned and loaded when SynEngine starts and automated pattern search as well as automated pattern assignments are done. Plugins can talk to each other using SynEngine and even call and take return values from other Plugins just by using their names in the proper format.
  • All settings related to plugins are loaded in memory and modified in memory so that it immediately takes effect on existing plugins. There is a centralized storage system for all settings of a plugin.
  • All .Net programming languages like C#.Net , VB.Net ,C++.Net or even IronPython can be used for making plugins. The Virtual Assistant runs on libraries that are made in all or many of the above mentioned programming languages.
  • Runtime modifications of functions and parameters and the capability of enabling or disabling context items. This gives developers total control of what information flows within the Natural Language Processing system and how it should treated when its ready for final evaluation.
  • A large set of Custom Events allows developers to detect where the context items are following and while they do so the developers can edit the information or even remove them before they reach for final execution.This gives a very extensive filtration system for security purpose
  • Fastest code generation, evaluation and execution without the creation of any intermediary files
  • SynEngine comes with many inbuilt SynData ( which are the parametric values for functions ) which can be easily serialized or deserialized for transfer of information. SynEngine also allows creation of custom SynData that can easily interact with the System.
The main idea have always been the creation of a humble unifying system that will help glue all existing libraries in the field of computer science and artificial intelligence and likewise help AI Developers world wide to concentrate on things that really matter.

Prototype 7.0 version of Virtual Assistant Madonna which is powered by SynEngine is available to the world at Synthetic Intelligence Network

Please note that Protototype 8.0 will be released this month.

The Syn Forum provides enough help/tutorials/discussions for beginners to start right away.

Thursday, 28 March 2013

Madonna ( Prototype 6 ) an AI Assistant - Introduction

Madonna/Jarvis/Jargon - The name and Character is unconfirmed yet

After having worked over AI Assistants of many kinds for years - Finally a partially stable version of it is now ready and I think its time that the public got hands on it. The Artificial Intelligence Assistant for Windows will be capable of performing normal tasks and requires some setup from the user side.

It has been designed with Developers in mind - The main aim has always been extension. To allow developers to extend it to their own needs. The system runs on libraries made in C#.Net , C++.Net and is powered by VB.Net libraries too.

Developers will have total control over plugin development and users can use it for some normal command based functionalities. Developers will be able to use programming language of their interest ( including IronPython )

The Engine that powers this AI Assistant is the RevarnEngine now renamed as SynEngine for release purpose. Which gives thousands of features and functionalities that can help developers to extend it. The intention is to make a unifying project that will connect multiple AI Libraries interact under a single domain.

The Plugin-Interface is what the developers will be working on and has a format that has to be followed before a plugin is accepted the SynEngine. Care has been taken error generated by plugins wouldn't interfere with the functionalities of other plugins and the Engine keeps running smoothly despite internal errors ( if found )

The Engine went under iterations before it was realized that its stable enough to be released currently 61 Iterations were tested under Windows 7 and Windows 8. Many default features are dependent on this 2 version of Windows OS

Current work that is being carried out is the testing of the System on multiple computers with varying hardware configurations and creating some tutorials for getting the developers started and also handling some errors that can come up due to wrong user inputs in the settings panel. Despite many setbacks I got from people who offered to help me but later backed off and so I decided to learn things on my own and carry on the development no matter how the final product might look like.

The Assistant will require a good hardware configuration along with an internet connection and a noise cancellation mic.

The AI Assistant for Windows is totally free and can be modified for non-commercial purpose(s) - The project is set to be launched on April 2013 - via Syn Network

Wednesday, 2 January 2013

What is Consciousness in Artificial Intelligence ?

All the behavior that human reflect are the result of the 100 billion neurons ( on an average make it 87 ) contributing in parallel as a single system in our brain. Now one must never think of that there is a center of our consciousness. Trust me there is None. Hence its very inappropriate to believe that there is 1 single unit inside us that gives us consciousness. If the opposite paradigm was true then let me put forward this question "If I separated the 2 half of your brain and put it in the empty skull of 2 different people then which of the 2 person would be you ?". So now if there was a center or a single unit of consciousness then there should be 2 Me according to the questioned stated.

A particular behavior expressed by a human at any given point of time is actually a collective activation/interaction of separate sets of neurons in our brain at the same point of time. Your memories and your experiences with life should change your consciousness ( now ) by altering the fabrics of your perception of the real world. You would always agree to the fact that you were less conscious when you were a kid and are more self-aware as you grew to what you are today. Or to put it this way that you were having a different perception of your childhood life as to what you have now proves for itself that its the mere collection of memories and experiences that play much role instead of the not so well defined term consciousness.

People believe that the singularity existing in consciousness is also due to the existence of Free Will. Free-will is nothing but the process of decreasing contradiction between  two or more disharmonious facts existing independently between different sets of activated neurons participating at the same moment.

In Artificial Intelligence 

Since we have defined consciousness and free will in an abstract manner. Consciousness in AI would be ofcourse a collective and constructive coherent activation of neurons within the system that renders it intelligent. And to achieve that we will require not linear but massive parallel processors that compute not in a linear fashion where result of one function ( with a unique algorithm ) is transferred to another function at a higher level in the linear sequence but a large network of independent and sensitive artificial neurons.

Thursday, 27 December 2012

What is the Theory Of Multiple Intelligence ?

Howard Gardner , an American developmental psychologist proposed the so called "Theory of Multiple Intelligence". This guy got a lot of criticism for this theory

Now according to MI ( Multiple Intelligence ) - your so called General intelligence is broken down based on 7 or 9 ( if Naturalistic and Spiritual Intelligence are added ) criteria .

  1. Logical - If you are good with Math or number or even good at deducing right conclusion given a set of facts - well you posses Logical Intelligence 
  2. Linguistic - If you can read something faster and get its meaning or if you are good with poetry or story   writing - you posses Linguistic intelligence 
  3. Bodily - if you are good in sports  , athletics - you posses Bodily intelligence
  4. Visual - people with great imagination come under this category
  5. Musical - self explanatory - if you like music and are sensitive to the tiny bits of details in it 
  6. Interpersonal - if you think you can feel others emotions / moods / feelings and more well yes you do posses this intelligence
  7. Intrapersonal - introverted people might have more of this - that is , people having a great understanding about what they are , their goals in life and might love privacy more.
I personally find no major flaw with this theory - Yes its more an artistic way of classifying Intelligence.MI is great if you want to convince people that they all are good / talented at something.Unfortunately this Theory isn't supported by concrete evidence and hence is not applied in any Test for Intelligence.

In Artificial Intelligence

Strangely if you look at software today as collection of "Intelligence Modules" Then a voice recognition software is intelligent when it comes to recognizing voice patterns and like wise a face recognition software is a module having intelligence ( ability here ) to recognize faces based on algorithms that matches , already stored faces of people with the one given as input. Alright so it isn't that bad after all to consider that the General AI - is of course a unification of Domain Specific AI. MI Theory may not have  played much role in psychology but when it comes to AI - things get different. MI might be a good choice for classification of "abilities" in any entity that would claim to have General Intelligence

What are the disadvantages of a Neural Network?

1. They are black box - that is the knowledge of its internal working is never known

2. To fully implement a standard neural network architecture would require lots of computational resources - for example you might need like 100,000 Processors connected in parallel to fully implement a neural network that would "somewhat" mimic the neural network of a cat's brain - or I may say its a greater computational burden

3. Remember the No Free Lunch Theorem - a method good for solving 1 problem might not be as good for solving some other problem - Neural Networks though they behave and mimic the human brain they are still limited to specific problems when applied

4. Since applying neural network for human-related problems requires Time to be taken into consideration but its been noted that doing so is hard in neural networks

5. The Vapnik-Chervonenkis dimension or VC Dimension of a neural network which is a combinatorial parameter that measures the expressive power of a neural network is still not well understood

6. They are just approximations of a desired solution and errors in them is inevitable

7. Lastly I will add that they require a large amount training set to be trained properly and to give output(s) that would be close enough to the desired output but knowing what amount of training set is enough for a desired output would be totally dependent on the trainer itself - but yes its important that a very large training set is provided so that the neural network would have sufficient understanding of the underlying structure.