Thursday, April 19, 2018

Q for Quantum Computing!



Quantum Computing


Ø Quantum Computer
Ø A computer that uses quantum mechanical phenomena to perform operations on data through devices such as superposition and entanglement.
Ø A quantum computer is a machine that performs calculations based on the laws of quantum mechanics, which is the behavior of particles at the sub-atomic level.
Ø Classical Computer (Binary)
Ø A computer that uses voltages flowing through circuits and gates, which can be calculated entirely by classical mechanics.
The Need for Speed:
Ø Classical Digital Computer
Ø Moore’s Law: # of transistors on chip doubles every 18 months—microprocessor circuits will measure on atomic scale by 2020-2030
Ø Downscaling of circuit board layout/components is leading to discrepancies.
Ø Copper traces are actually crystallizing and shorting out!
Ø Emergence of quantum phenomena such as electrons tunneling through the barriers between wires.
Ø Serial Processing – one operation at a time
Ø 64-bit classical computer operates speeds measured in gigaflops (billions of floating-point operations per second).
Ø Quantum Computer
Ø Harnesses the power of atoms and molecules to perform memory and processing tasks
Ø Parallel Processing – millions of operations at a time
Ø 30-qubit quantum computer equals the processing power
of conventional computer that running at 10 teraflops
(trillions of floating-point operations per second).
Classical vs Quantum Bits
Ø Classical Bit
Ø 2 Basic states – off or on: 0, 1
Ø Mutually exclusive
Ø Quantum Bit (Qubit)
Ø 2 Basic states – ket 0, ket 1:
Ø Superposition of both states –
(not continuous in nature)
Ø Quantum entanglement
Ø 2 or more objects must be described in reference to one another
Ø Entanglement is a non-local property that allows a set of qubits to express superpositions of different binary strings (01010 and 11111, for example) simultaneously

Quantum Computing Power
Ø Integer Factorization
Ø Impossible for digital computers to factor large numbers which are the products of two primes of nearly equal size
Ø Quantum Computer with 2n qubits can factor numbers with lengths of n bits (binary)
Ø Quantum Database Search
Ø Example: To search the entire Library of Congress for one’s name given an unsorted database...
Ø Classical Computer – 100 years
Ø Quantum Computer – ½ second

Practical Quantum Computer Applications
Ø Quantum Mechanics Simulations
Ø physics, chemistry, materials science, nanotechnology, biology and medicine.
Ø Computer can compute millions of variables at once.
Ø All are limited today by the slow speed of quantum mechanical simulations.
Ø Cryptoanalysis
Ø Capable of cracking extremely complicated codes
Ø RSA encryption
Ø Typically uses numbers with over 200 digits

Quantum Computing History
Ø 1973 - Alexander Holevo publishes paper showing that n qubits cannot carry more than n classical bits of information.
Ø 1976 - Polish mathematical physicist Roman Ingarden shows that Shannon information theory cannot directly be generalized to the quantum case.
Ø 1981 - Richard Feynman determines that it is impossible to efficiently simulate a evolution of a quantum system on a classical computer.
Ø 1985 - David Deutsch of the University of Oxford, describes the first universal quantum computer.
Ø 1993 - Dan Simon, at Universite de Montreal, invents an oracle problem for which quantum computer would be exponentially faster than conventional computer. This algorithm introduced the main ideas which were then developed in Peter Shor's factoring algorithm.
Ø 1994 - Peter Shor, at AT&T's Bell Labs discovers algorithm to allow quantum computers to factor large integers quickly. Shor's algorithm could theoretically break many of the cryptosystems in use today.
Ø 1995 - Shor proposs the first scheme for quantum error correction.
Ø 1996 - Lov Grover, at Bell Labs, invents quantum database search algorithm.
Ø 1997 - David Cory, A.F. Fahmy, Timothy Havel, Neil Gershenfeld and Isaac Chuang publish the first papers on quantum computers based on bulk spin resonance, or thermal ensembles. Computers are actually a single, small molecule, storing qubits in the spin of protons and neutrons. Trillions of trillions of these can float in a cup of water.
Ø 1998 - First working 2-qubit NMR computer demonstrated at University of California, Berkeley.
Ø 1999 - First working 3-qubit NMR computer demonstrated at IBM's Almaden Research Center. First execution of Grover's algorithm.
Ø 2000 - First working 5-qubit NMR computer demonstrated at IBM's Almaden Research Center.
Ø 2001 - First working 7-qubit NMR computer demonstrated at IBM's Almaden Research Center.
First execution of Shor's algorithm. The number 15 was factored using 1018 identical
molecules, each containing 7 atoms.

Candidates for Quantum Computers
Ø Superconductor-based quantum computers
(including SQUID-based quantum computers)
Ø Ion trap-based quantum computers
Ø "Nuclear magnetic resonance on molecules in solution"-based
Ø “Quantum dot on surface"-based
Ø “Laser acting on floating ions (in vacuum)"-based (Ion trapping)
Ø "Cavity quantum electrodynamics" (CQED)-based
Ø Molecular magnet-based
Ø Fullerene-based ESR quantum computer
Ø Solid state NMR Kane quantum computer
 Quantum Computing Problems
Ø Current technology
Ø ≈ 40 Qubit operating machine needed to rival current classical equivalents.
Ø Errors
Ø Decoherence -  the tendency of a quantum computer to decay from a given quantum state into an incoherent state as it interacts with the environment.
Ø Interactions are unavoidable and induce breakdown of information stored in the quantum computer resulting in computation errors.
Ø Error rates are typically proportional to the ratio of operating time to decoherence time
Ø operations must be completed much quicker than the decoherence time.


Research References
Ø http://www.qubit.org
Ø http://www.cs.caltech.edu/~westside/quantum-intro.html
Ø http://computer.howstuffworks.com/quantum-computer1.htm
Ø http://en.wikipedia.org/wiki/Quantum_computers
Ø http://www.carolla.com/quantum/QuantumComputers.htm

Wednesday, April 18, 2018

P for Prescriptive Analytics & Predictive Analytics

Prescriptive Analytics is an advanced analytics technology that can provide recommendations to decision makers and help them achieve business goals by solving complicated optimization problems.
Prescriptive analytics helps organizations make better decisions by optimizing trade-offs between business goals, such as costs or customer service, while considering predictions, rules, and constraints on available resources, to recommend the best course of action, whether you want to decide on a configuration, a design, a plan, or a schedule.

 
With the flood of data available to businesses regarding their supply chain these days, companies are turning to analytics solutions to extract meaning from the huge volumes of data to help improve decision making

Predictive Analytics Companies that are attempting to optimize their S&OP efforts need capabilities to analyze historical data, forecast what might happen in the future. The promise of doing it right and becoming a data driven organization is great. Huge ROI’s can be enjoyed as evidenced by companies that have optimized their supply chain, lowered operating costs, increased revenues, or improved their customer service and product mix.
Looking at all the analytic options can be a daunting task. However, luckily these analytic options can be categorized at a high level into three distinct types. No one type of analytic is better than another, and in fact, they co-exist with, and complement each other. In order for a business have a holistic view of the market and how a company competes efficiently within that market requires a robust analytic environment which includes:

  • Descriptive Analytics, which use data aggregation and data mining to provide insight into the past and answer: “What has happened?”
  • Predictive Analytics, which use statistical models and forecasts techniques to understand the future and answer: “What could happen?”
  • Prescriptive Analytics, which use optimization and simulation algorithms to advice on possible outcomes and answer: “What should we do?”
  • Descriptive Analytics: Insight into the past

    Descriptive analysis or statistics does exactly what the name implies they “Describe”, or summarize raw data and make it something that is interpretable by humans. They are analytics that describe the past. The past refers to any point of time that an event has occurred, whether it is one minute ago, or one year ago. Descriptive analytics are useful because they allow us to learn from past behaviors, and understand how they might influence future outcomes.
    The vast majority of the statistics we use fall into this category. (Think basic arithmetic like sums, averages, percent changes). Usually, the underlying data is a count, or aggregate of a filtered column of data to which basic math is applied. For all practical purposes, there are an infinite number of these statistics. Descriptive statistics are useful to show things like, total stock in inventory, average dollars spent per customer and Year over year change in sales. Common examples of descriptive analytics are reports that provide historical insights regarding the company’s production, financials, operations, sales, finance, inventory and customers.
    Use Descriptive Analytics when you need to understand at an aggregate level what is going on in your company, and when you want to summarize and describe different aspects of your business.

    Predictive Analytics: Understanding the future

    Predictive analytics has its roots in the ability to “Predict” what might happen. These analytics are about understanding the future. Predictive analytics provides companies with actionable insights based on data. Predictive analytics provide estimates about the likelihood of a future outcome. It is important to remember that no statistical algorithm can “predict” the future with 100% certainty. Companies use these statistics to forecast what might happen in the future. This is because the foundation of predictive analytics is based on probabilities.

    These statistics try to take the data that you have, and fill in the missing data with best guesses. They combine historical data found in ERP, CRM, HR and POS systems to identify patterns in the data and apply statistical models and algorithms to capture relationships between various data sets. Companies use Predictive statistics and analytics anytime they want to look into the future. Predictive analytics can be used throughout the organization, from forecasting customer behavior and purchasing patterns to identifying trends in sales activities. They also help forecast demand for inputs from the supply chain, operations and inventory.

    One common application most people are familiar with is the use of predictive analytics to produce a credit score. These scores are used by financial services to determine the probability of customers making future credit payments on time. Typical business uses include, understanding how sales might close at the end of the year, predicting what items customers will purchase together, or forecasting inventory levels based upon a myriad of variables.

    Use Predictive Analytics any time you need to know something about the future, or fill in the information that you do not have.

    Prescriptive Analytics: Advise on possible outcomes

    The relatively new field of prescriptive analytics allows users to “prescribe” a number of different possible actions to and guide them towards a solution. In a nut-shell, these analytics are all about providing advice. Prescriptive analytics attempt to quantify the effect of future decisions in order to advise on possible outcomes before the decisions are actually made. At their best, prescriptive analytics predicts not only what will happen, but also why it will happen providing recommendations regarding actions that will take advantage of the predictions.

    These analytics go beyond descriptive and predictive analytics by recommending one or more possible courses of action. Essentially they predict multiple futures and allow companies to assess a number of possible outcomes based upon their actions. Prescriptive analytics use a combination of techniques and tools such as business rules, algorithms, machine learning and computational modelling procedures. These techniques are applied against input from many different data sets including historical and transactional data, real-time data feeds, and big data.

    Prescriptive analytics are relatively complex to administer, and most companies are not yet using them in their daily course of business. When implemented correctly, they can have a large impact on how businesses make decisions, and on the company’s bottom line. Larger companies are successfully using prescriptive analytics to optimize production, scheduling and inventory in the supply chain to make sure that are delivering the right products at the right time and optimizing the customer experience.

    Use Prescriptive Analytics anytime you need to provide users with advice on what action to take.
     
    References:
    https://www.ibm.com/analytics/data-science/predictive-analytics
    https://halobi.com/blog/descriptive-predictive-and-prescriptive-analytics-explained/
     


     

    Tuesday, April 17, 2018

    O for Orchestration Cloud

    Orchestration describes automated arrangement, coordination, and management of complex computer systems, and services. It is often discussed as having an inherent intelligence or even implicitly autonomic control, but those are largely aspirations or analogies rather than technical descriptions.   
     
    In most situations, cloud automation describes a task or function accomplished without human intervention. Cloud orchestration describes the arranging and coordination of automated tasks, ultimately resulting in a consolidated process or workflow.  


     
    Cloud Orchestrator is a cloud management platform that automates provisioning of cloud services using policy-based tools. It enables you to configure, provision, deploy development environments, integrate service management—and add management, monitoring, back-up and security—in minutes.

    Cloud orchestration is the end-to-end automation of the deployment of services in a cloud environment. More specifically, it is the automated arrangement, coordination, and management of complex computer systems, middleware, and services—all of which helps to accelerate the delivery of IT services while reducing costs. It is used to manage cloud infrastructure, which supplies and assigns required cloud resources to the customer like the creation of VMs, allocation of storage capacity, management of network resources, and granting access to cloud software. By using the appropriate orchestration mechanisms, users can deploy and start using services on servers or on any cloud platforms.
    There are three aspects to cloud orchestration:
    • Resource orchestration, where resources are allocated
    • Workload orchestration, where workloads are shared between the resources
    • Service orchestration, where services are deployed on servers or cloud environments
    Many people think that orchestration and automation are the same thing, but orchestration is actually more complex. Automation usually focuses on a single task, while orchestration deals with the end-to-end process, including management of all related services, taking care of high availability (HA), post deployment, failure recovery, scaling, and more. Automation is usually discussed in the context of specific tasks, whereas orchestration refers to the automation of processes and workflows. Basically, orchestration automates the automation—specifically, the order that tasks take place across specific machines, especially where there are diverse dependencies. 

    Why should you choose orchestration?

    The manual process of setting up an environment involves multiple steps. Using an orchestrator tool, it's easy to quickly configure, provision, deploy, and develop environments, integrate service management, monitoring, backup, and security services—and all of these steps are repeatable.
    Another advantage to orchestration is that it enables you to make your products available on a wider variety of cloud environments, which enables users to deploy them more easily. As a result, you can increase your products' exposure to a wider audience, and potentially expand revenue opportunities for your company.

    Reference:
    https://www.ibm.com/developerworks/cloud/library/cl-cloud-orchestration-technologies-trs/index.html
    https://cloudify.co/product/
     

    Monday, April 16, 2018

    N for Natural Language Processing!

    What is natural language processing?
     
    Natural-language processing (NLP) is a field of computer science, artificial intelligence concerned with the interactions between computers and human (natural) languages, and, in particular, concerned with programming computers to fruitfully process large natural language data.
     
     
     
    Natural language generation (NLG) is the natural language processing task of generating natural language from a machine representation system such as a knowledge base or a logical form. ... It could be said an NLG system is like a translator that converts data into a natural language representation.
     
    In computing, natural language refers to a human language such as English, Russian, German, or Japanese as distinct from the typically artificial command or programming language with which one usually talks to a computer. The term usually refers to a written language but might also apply to spoken language.
     
    Natural language processing (NLP) can be defined as the ability of a machine to analyze, understand, and generate human speech. ... These languages were constructed to communicate instructions to machines. Because computers operate on artificial languages, they are unable to understand natural language.
     
    Text and other unstructured content from sources like social media posts, articles and blogs is filled with insights that might help your business. The problem is that it’s difficult to parse unstructured text to see trends. For example, are people making positive or negative comments about my product since it was released?
     You can’t easily quantify and understand social media because it’s a big mass of unstructured text. Because the information can’t be mined, in many cases the data just sits there, unusable. Your data has always contained business-critical answers for your business. The problem was you couldn’t easily find the answers through all the noise. But with sophisticated natural language processing (NLP) software, you can. NLP allows the user to extract key metadata from their text, including entities, relations, concepts, sentiment, and emotion. Now your program can understand the complexities of human language to uncover meaningful insights.

    Natural Language Understanding builds on the legacy of its predecessor AlchemyLanguage. It remains a leader in text analytics and offers a few key improvements. Natural Language Understanding features the familiar AlchemyLanguage capabilities through a simplified API. It was re-architected to run natively on Bluemix and is software as a service (SaaS).
    Natural language processing capabilities for advanced text analytics
    Natural Language Understanding includes the core functions of AlchemyLanguage along with some improvements and consolidation. Here are a few key differentiating features:

    Sentiment and emotion

    Natural Language Understanding returns both overall sentiment and emotion for a document and targeted sentiment and emotion towards keywords in the text. For example, while a customer review may have an overall negative sentiment, particular keywords in the review may have a positive tone, which allows a deeper analysis of the text.

    Custom models

    Using Natural Language Understanding, you can adapt entity and relationship extraction with custom models for specific uses. With IBM Watson Knowledge Studio, subject matter experts can collaborate on the creation of custom models without having to write a single line of code. These models can then be easily deployed to Natural Language Understanding to identify industry and domain-specific entities and relationships in unstructured text.
    New pricing and free forever plan

    Natural Language Understanding has improved pricing and a free forever plan. The pricing structure has been simplified. It is based on just the types of metadata that need to be extracted and the amount of data analyzed. The new pricing is particularly attractive if you’re deploying custom models from Watson Knowledge Studio. It’s easy to experiment with the service because you can deploy and use one custom model with the Natural Language Understanding free forever plan and because Watson Knowledge Studio has a free plan as well, you don’t have to pay anything to start customizing
    Natural Language Understanding.

    You can easily track and manage your usage of Natural Language Understanding with the Bluemix usage dashboard. By setting up email spending notifications, you can be alerted to the spending thresholds you specify, so you can find out when you’ve reached 80%, 90% and 100% spending. You also can edit each spending notification as your needs change.

    Languages
    Natural Language Understanding has broad language coverage. It can understand text in nine different languages, including English, French, German, Spanish, Portuguese, Italian, Russian, Arabic and Swedish. You can customize Natural Language Understanding’s ability to detect entities and relationships with Watson Knowledge Studio in English, Arabic, Brazilian Portuguese, French, German, Italian, Japanese, Korean and Spanish. (IBM is adding more languages all the time, so check back soon if your favorite language isn’t supported today.)

       References:
    https://www.ibm.com/blogs/watson/2017/04/watson-natural-language-understanding-advanced-text-analytics/
     https://developer.ibm.com/dwblog/2017/create-custom-nlu-annotation-without-writing-line-code/