Machine Learning 2: Machine Learning Solutions

There are two ways machine intelligence can be part of your applications.

As a Service:

Machine intelligence requires three ingredients: computing power, algorithms, and data. If you’re new to business, i would suggest not to invest in researching these topics or building a team, instead focus on application development using machine intelligence API from companies like Microsoft, IBM, Google, Amazon, and others.

Example: Azure Cognitive Services, Amazon Translate, Amazon Polly,
Amazon Lex, etc.

Find the detailed comparison for Machine Learning as a Service here.

Custom Solution:

Real business problems are complex and solutions for those can’t be achieved using machine intelligence as a service. In this case, build your own machine learning solutions. Though machine learning frameworks and sdks are available in almost all programming language, But I’d recommend python, JavaScript, and .Net due the support from open source communities. These are some important platforms where you can deploy your solutions:

Azure Machine Learning and Azure ML Studio

Amazon SageMaker

IBM Watson Machine Learning

Google Cloud Machine Learning

Artificial Intelligence vs Machine Learning vs Deep Learning

Artificial Intelligence:

A branch of computer science dealing with the simulation of intelligent behavior in computers using human behavior such as visual perception, speech recognition, decision-making, and translation between languages. .

Machine Learning:

Basic approach of Machine learning is solving problems using algorithms in three steps “parse data”, “learn from it”, and “make a determination or prediction about something”.

Deep Learning:

Deep learning is a sub-set of machine learning with better accuracy. Deep learning structures algorithms in layers to create an “artificial neural network” that can learn and make intelligent decisions on its own.


Machine Learning 1: What is Machine Learning? | Types of Machine Learning?

What is Machine Learning?

Machine Learning is the branch of computer science for developing algorithms and statistical models which computer systems can use to solve specific type of tasks.

Mathematics for Machine Learning:

  • Algebra (Equations, Vectors, Matrices)
  • Calculus(Function, Derivatives, Integrals)
  • Graphs
  • Statistics
  • Probability
  • Set Theory

Types of Machine Learning?

All machine learning algorithms are categorized into three categories:

  • Supervised and semi-supervised learning
  • Unsupervised leaning
  • Reinforcement learning

What is Salt?

A salt is random data that is used as an additional input to a one-way function that “hashes” data, a password or passphrase. Salts are used to safeguard passwords in storage.

Note: Using random salt for each hashing makes impossible for hackers to crack the hashes.

Difference Between Encryption and Hashing

Encryption and Hashing are methods from Cryptography practices. For more details about Cryptography visit the Wikipedia page link.

What is Encryption?

Encryption is the process of encoding or scrambling data using a secret code so that only parties with right key can decode/unscramble it.

Common encryption techniques are:

Asymmetric Encryption: Also known as Public Key encryption. In this method one encrypts and other key decrypts. Real time example: SSL/TLS.


  • RSA (Rivest–Shamir–Adleman)
  • DSA (Digital Signature Algorithm)

Symmetric Encryption:Symmetric encryption is the oldest and best-known technique. A secret key, which can be a number, a word, or just a string of random letters, is applied to the text of a message to change the content in a particular way.


  • DES (Data Encryption Standard)
  • AES (Advanced Encryption Standard)

What is Hashing?

Hashing is the transformation of a string of characters into a usually shorter fixed-length value. It is deterministic so the same message always results in the same hash. It’s a one way technique. Applications: Password verification, Fingerprinting, etc..


  • MD5
  • SHA-1
  • SHA-2
  • SHA-3

What is TOGAF?

TOGAF is an enterprise architecture framework that helps define business goals and align them with architecture objectives around enterprise software development.

Software Design Patterns

Design pattern is a general reusable solution to a commonly occurring problem in software design.

Design patterns were originally grouped into the categories: creational patterns, structural patterns, and behavioral patterns.

Creational Pattern

It deals with mechanism how the objects should be created in a specific situation.

Popular creational patterns are

  • Abstract factory pattern, which provides an interface for creating related or dependent objects without specifying the objects’ concrete classes.
  • Builder pattern, which separates the construction of a complex object from its representation so that the same construction process can create different representations.
  • Factory method pattern, which allows a class to defer instantiation to subclasses.
  • Prototype pattern, which specifies the kind of object to create using a prototypical instance, and creates new objects by cloning this prototype.
  • Singleton pattern, which ensures that a class only has one instance, and provides a global point of access to it.

Structural Pattern

Structural patterns makes the design easy by identifying a simple way to realize relations among entities/classes.

Popular structural patterns are

  • Adapter pattern: ‘adapts’ one interface for a class into one that a client expects.
  • Bridge pattern: decouple an abstraction from its implementation so that the two can vary independently .
  • Composite pattern: a tree structure of objects where every object has the same interface.
  • Decorator pattern: add additional functionality to a class at runtime where subclassing would result in an exponential rise of new classes.
  • Facade pattern: create a simplified interface of an existing interface to ease usage for common tasks.
  • Flyweight pattern: a large quantity of objects share a common properties object to save space.
  • Marker pattern: an empty interface to associate metadata with a class.
  • Pipes and filters: a chain of processes where the output of each process is the input of the next.
  • Proxy pattern: a class functioning as an interface to another thing.

Behavioral Pattern

Behavioral design patterns deal with how objects will be carrying out communication with each other.

Popular behavioral patters are

Create a website or blog at

Up ↑