The AI layer for the Enterprise and the role of IoT

Introduction 

According to Deloitte: by the “end of 2016 more than 80 of the world’s 100 largest enterprise software companies by revenues will have integrated cognitive technologies into their products”. Gartner also predicts that 40 percent of the new investment made by enterprises will be in predictive analytics by 2020. AI is moving fast into the Enterprise and AI developments can create value for the Enterprise. This value can be captured/visualized by considering an ‘Enterprise AI layer’. This AI layer is focussed on solving relatively mundane problems which are domain specific.  While this is not as ‘sexy’ as the original vision of AI, it provides tangible benefits to companies.

 

In this brief article, we proposed a logical concept called the AI layer for the Enterprise.  We could see such a layer as an extension to the Data Warehouse or the ERP system. This has tangible and practical benefits for the Enterprise with a clear business model. The AI layer could also incorporate the IoT datasets and unite the disparate ecosystem. The Enterprise AI layer theme is a key part of the Data Science for Internet of Things course. Only a last few places remain for this course!.

 

Enterprise AI – an Intelligent Data Warehouse/ERP system?

AI enables computers to do some things better than humans especially when it comes to finding insights from large amounts of Unstructured or semi-structured data. Technologies like Machine learning , Natural language processing (NLP) , Speech recognition, and computer vision drive the AI layer. More specifically, AI applies to an algorithm which is learning on its own.

 

To understand this, we have to ask ourselves: How do we train a Big Data algorithm?  

There are two ways:

  • Start with the Rules and apply them to Data (Top down) OR
  • Start with the data and find the rules from the Data (Bottom up)

 

The Top-down approach involved writing enough rules for all possible circumstances.  But this approach is obviously limited by the number of rules and by its finite rules base. The Bottom-up approach applies for two cases. Firstly, when rules can be derived from instances of positive and negative examples(SPAM /NO SPAN). This is traditional machine learning when the Algorithm can  be trained.  But, the more extreme case is : Where there are no examples to train the algorithm.

 

What do we mean by ‘no examples’?

 

a)      There is no schema

b)      Linearity(sequence) and hierarchy is not known

c)      The  output is not known(non-deterministic)

d)     Problem domain is not finite

 

Hence, this is not an easy problem to solve. However, there is a payoff in the enterprise if AI algorithms can be created to learn and self-train manual, repetitive tasks – especially when the tasks involve both structured and unstructured data.

 

How can we visualize the AI layer?

One simple way is to think of it as an ‘Intelligent Data warehouse’ i.e. an extension to either the Data warehouse or the ERP system

 

For instance,  an organization would transcribe call centre agents’ interactions with customers create a more intelligent workflow, bot etc using Deep learning algorithms.

Enterprise AI layer – What it mean to the Enterprise

So, if we imagine such a conceptual AI layer for the enterprise, what does it mean in terms of new services that can be offered?  Here are some examples

  • Bots : Bots are a great example of the use of AI to automate repetitive tasks like scheduling meetings. Bots are often the starting point of engagement for AI especially in Retail and Financial services
  • Inferring from textual/voice narrative:  Security applications to detect suspicious behaviour, Algorithms that  can draw connections between how patients describe their symptoms etc
  • Detecting patterns from vast amounts of data: Using log files to predict future failures, predicting cyberseurity attacks etc
  • Creating a knowledge base from large datasets: for example an AI program that can read all of Wikipedia or Github.
  • Creating content on scale: Using Robots to replace Writers or even to compose Pop songs
  • Predicting future workflows: Using existing patterns to predict future workflows
  • Mass personalization:  in advertising
  • Video and image analytics: Collision Avoidance for Drones, Autonomous vehicles, Agricultural Crop Health Analysis etc

 

These  applications provide competitive advantage, Differentiation, Customer loyalty and  mass personalization. They have simple business models (such as deployed as premium features /new products /cost reduction )

 

The Enterprise AI layer and IoT

 

So, the final question is: What does the Enterprise layer mean for IoT?

 

IoT has tremendous potential but faces an inherent problem. Currently, IoT is implemented in verticals/ silos and these silos do not talk to each other. To realize the full potential of IoT, an over-arching layer above individual verticals could ‘connect the dots’. Coming from the Telco industry, these ideas are not new i.e. the winners of the mobile/Telco ecosystem were iPhone and Android – which succeeded in doing exactly that.

 

Firstly, the AI layer could help in deriving actionable insights from billions of data points which come from IoT devices across verticals. This is the obvious benefit as IoT data from various verticals can act as an input to the AI layer.  Deep learning algorithms play an important role in IoT analytics because Machine data is sparse and / or has a temporal element to it. Devices may behave differently at different conditions. Hence, capturing all scenarios for data pre-processing/training stage of an algorithm is difficult. Deep learning algorithms can help to mitigate these risks by enabling algorithms to learn on their own. This concept of machines learning on their own can be extended to ‘machines teaching other machines’. This idea is not so far-fetched and is already happening, A Fanuc robot teaches itself to perform a task overnight by observation and through reinforcement learning. Fanuc’s robot uses reinforcement learning to train itself. After eight hours or so it gets to 90 percent accuracy or above, which is almost the same as if an expert were to program it. The process can be accelerated if several robots work in parallel and then share what they have learned. This form of distributed learning is called cloud robotics

 

We can extend the idea of ‘machines teaching other machines’ more generically within the Enterprise. Any entity in an enterprise can train other ‘peer’ entities in the Enterprise. That could be buildings learning from other buildings – or planes or oil rigs.  We see early examples of this approach in Salesforce.com and Einstein. Longer term, Reinforcement learning is the key technology that drives IoT and AI layer for the Enterprise – but initially any technologies that implement self learning algorithms would help for this task

Conclusion

In this brief article, we proposed a logical concept called the AI layer for the Enterprise.  We could see such a layer as an extension to the Data Warehouse or the ERP system. This has tangible and practical benefits for the Enterprise with a clear business model. The AI layer could also incorporate the IoT datasets and unite the disparate ecosystem.  This will not be easy. But it is worth it because the payoffs for creating such an AI layer around the Enterprise are huge! The Enterprise AI layer theme is a key part of the Data Science for Internet of Things course. Only a last few places remain for this course!.

Data Science for Internet of Things course – Strategic foundation for decision makers

Data Science for Internet of Things course - Strategic foundation for decision makers 

To sign up or learn more email [email protected] The course starts in Sep 2016

We have had a great response to the Data Science for Internet of Things course. The course takes a technological focus aiming enabling you to become a Data Scientist for the Internet of Things. I also had many requests for a Strategic version of the Data Science for Internet of Things Course for decision makers.

Today, we launch special edition of the course only for decision makers.

The course is based on an open problem solving methodology for IoT analytics which we are developing within the course.

 Why do we need a methodology for Data Science for IoT?

 

IoT will create huge volumes of Data making the discovery of insights more critical. Often, the analytics process will need to be automated. By establishing a formal process for extracting knowledge from IoT applications by IoT vertical, we capture best practise.

This saves implementation time and cost. The methodology is more than Data Mining (i.e. application of algorithms) – but rather, it leans more to KDDM (Knowledge Discovery and Data Mining) principles. It is thus concerned with the entire end-to-end Knowledge extraction process for IoT analytics.

This includes developing scalable algorithms that can be used to analyze massive datasets, interpreting and visualizing results and modelling the engagement between humans and the machine. The main motivation for Knowledge Discovery models is to ensure that the end product will be useful to the user.

Thus, the methodology includes aspects of IoT analytics such as validity, novelty, usefulness, and understandability of the results(by IoT vertical). The methodology builds on a series of interdependent steps with milestones. The steps often include loops and iterations and cover all the processes end to end (including KPIs, Business case, project management). We explore Data Science for IoT analytics at multiple levels including Process level, Workflow level and Systems level.

The concept of a KDDM process model was discussed in 1990s by Anand, Brachman, Fayyad, Piatetsky-Shapiro and others. In a nutshell, we build upon these ideas and apply them to IoT analytics. We also create code in Open source for this methodology.

As a decision maker, by joining the course, you have early and on-going access to both the methodology and the open source code.

Please contact us to sign up or to know more [email protected]

Testimonials for our current course

 Jean Jacques Bernand – Paris – France

“Great course with many interactions, either group or one to one that helps in the learning. In addition, tailored curriculum to the need of each student and interaction with companies involved in this field makes it even more impactful.

As for myself, it allowed me to go into topics of interests that help me in reshaping my career.”

Johnny Johnson, AT&T – USA

“This DSIOT course is a great way to get up-to-speed.  The tools and methodologies for managing devices, wrangling and fusing data, and being able to explain it are taking form fast; Ajit Jaokar is a good fit.  For me, his patience and vision keep this busy corporate family man coming back.”

Yongkang Gao, General Electric, UK.

“I especially thank Ajit for his help on my personal project of the course — recommending proper tools and introducing mentors to me, which significantly reduced my pain in the beginning stage.”

karthik padmanabhan Manager – Global Data Insight and Analytics (GDIA) – Ford Motor Pvt Ltd.

“I am delighted to provide this testimonial to Ajit Jaokar who has extended outstanding support and guidance as my mentor during the entire program on Data science for IoT. Ajit is a world renowned professional in the niche area of applying the Data science principles in creating IoT apps. Talking about the program, it has a lot of breadth and depth covering some of the cutting edge topics in the industry such as Sensor Fusion, Deep Learning oriented towards the Internet of things domain. The topics such as Statistics, Machine Learning, IoT Platforms, Big Data and more speak about the complexity of the program. This is the first of its kind program in the world to provide Data Science training especially on the IoT domain and I feel fortunate to be part of the batch comprising of participants from different countries and skill sets. Overall this journey has transformed me into a mature and confident professional in this new space and I am grateful to Ajit and his team. My wish is to see this program accepted as a gold standard in the industry in the coming years”.

Peter Marriott – UK – www.catalystcomputing.co.uk

Attending the Data Science for IoT course has really helped me in demystifying the tools and practices behind machine learning and has allowed me to move from an awareness of machine learning to practical application.

Yair Meidan Israel – https://il.linkedin.com/in/yairmeidandatamining

“As a PhD student with an academic and practical experience in analytics, the DSIOT course is the perfect means by which I extend my expertise to the domain of IoT. It gradually elaborates on IoT concepts in general, and IoT analytics in particular. I recommend it to any person interested in entering that field. Thanks Ajit!”

Parinya Hiranpanthaporn, Data Architect and Advanced Analytics professional Bangkok

“Good content, Good instructor and Good networking. This course totally answers what I should know about Data Science for Internet of Things.”

 

Sibanjan Das – Bangalore

Ajit helped me to focus and set goals for my career that is extremely valuable. He stands by my side for every initiative I take and helps me to navigate me through every difficult situation I face. A true leader, a technology specialist, good friend and a great mentor. Cheers!!!

Manuel Betancurt – Mobile developer / Electronic Engineer. – Australia

I have had the opportunity to partake in the Data Science for the IoT course taught by Ajit Jaokar. He have crafted a collection of instructional videos, code samples, projects and social interaction with him and other students of this deep knowledge.

Ajit gives an awesome introduction and description of all the tools of the trade for a data scientist getting into the IoT. Even when I really come from a software engineering background, I have found the course totally accessible and useful. The support given by Ajit to make my IoT product a data science driven reality has been invaluable. Providing direction on how to achieve my data analysis goals and even helping me to publish the results of my investigation.

The knowledge demonstrated on this course in a mathematical and computer science level has been truly exciting and encouraging. This course was the key for me to connect the little data to the big data.

Barend Botha – London and South Africa – http://www.sevensymbols.co.uk

This is a great course for anyone wanting to move from a development background into Data Science with specific focus on IoT. The course is unique in that it allows you to learn the theory, skills and technologies required while working on solving a specific problem of your choice, one that plays to your past strengths and interests. From my experience care is taken to give participants one to one guidance in their projects, and there is also within the course the opportunity to network and share interesting content and ideas in this growing field. Highly recommended!

- Barend Botha

Jamie Weisbrod – San Diego - https://www.linkedin.com/in/jamie-weisbrod-3630053

Currently there is a plethora of online courses and degrees available in data science/big data. What attracted me to joining the futuretext class “Data Science for ioT” is Ajit Jaokar. My main concern in choosing a course was how to leverage skills that I already possessed as a computer engineer. Ajit took the time to discuss how I could personalize the course for my interests.

I am currently in the midst of the basic coursework but already I have been able to network with students all over the world who are working on interesting projects. Ajit inspires a lot of people at all ages as he is also teaching young people Data science using space exploration.

 Robert Westwood – UK – Catalyst computing
“Ajit brings to the course years of experience in the industry and a great breadth of knowledge of the companies, people and research in the Data Science/IoT arena.”

Overall, the syllabus covers the following themes in 6 months

Note that the schedule is personalized and flexible for the strategic course

i.e. we discuss and personalize your schedule at the start of the course

  • Principles
  • Problem solving with Data Science: Is an overall process of solving Data Science problems(agnostic of a language) and covers aspects such as exploratory Data analysis)
  • IoT analytics (includes analysis for each vertical within iot. This will be ongoing throughout the course including in the methodology)
  • Foundations of R: The basics of one Programming language ( R ) and how to implement Data science algorithms in R
  • Time Series – which forms the basis of most IoT data (code in R)
  • Spark and NoSQL databases: Code in Scala and implementation in Cassandra
  • Deep Learning
  • Data Science for IoT Methodology
  • Maths and Stats – (this will also be ongoing but will be a core module)
we also have (from day one) what we call foundation projects where you work in groups with projets where you already have code etc. so you apply the concepts in context of a real situation

 

A methodology for solving problems with DataScience for Internet of Things

 

Introduction

This (long!) blog is based on my forthcoming book:  Data Science for Internet of Things.

It is also the basis for the course I teach  Data Science for Internet of Things Course.   

Welcome your comments. 

Please email me at ajit.jaokar at futuretext.com  - Email me also for a pdf version if you are interested in joining the course

Here, we start off with the question:  At which points could you apply analytics to the IoT ecosystem and what are the implications?  We then extend this to a broader question:  Could we formulate a methodology to solve Data Science for IoT problems?  I have illustrated my thinking through a number of companies/examples.  I personally work with an Open Source strategy (based on R, Spark and Python) but  the methodology applies to any implementation. We are currently working with a range of implementations including AWS, Azure, GE Predix, Nvidia etc.  Thus, the discussion is vendor agnostic.

I also mention some trends I am following such as Apache NiFi etc

The Internet of Things and the flow of Data

As we move towards a world of 50 billion connected devices,  Data Science for IoT (IoT  analytics) helps to create new services and business models.  IoT analytics is the application of data science models  to IoT datasets.  The flow of data starts with the deployment of sensors.  Sensors detect events or changes in quantities. They provide a corresponding output in the form of a signal. Historically, sensors have been used in domains such as manufacturing. Now their deployment is becoming pervasive through ordinary objects like wearables. Sensors are also being deployed through new devices like Robots and Self driving cars. This widespread deployment of sensors has led to the Internet of Things.

Features of a typical wireless sensor node are described in this paper (wireless embedded sensor  architecture). Typically, data arising from sensors is in time series format and is often geotagged. This means, there are two forms of analytics for IoT: Time series and Spatial analytics. Time series analytics typically lead to insights like Anomaly detection. Thus, classifiers (used to detect anomalies) are commonly used for IoT analytics to detect anomalies.  But by looking at historical trends, streaming, combining data from multiple events(sensor fusion), we can get new insights. And more use cases for IoT keep emerging such as Augmented reality (think – Pokemon Go + IoT)

Meanwhile,  sensors themselves continue to evolve. Sensors have shrunk due to technologies like MEMS. Also, their communications protocols have improved through new technologies like LoRA. These protocols lead to new forms of communication for IoT such as Device to Device; Device to Server; or Server to Server. Thus, whichever way we look at it, IoT devices create a large amount of Data. Typically, the goal of IoT analytics is to analyse the data as close to the event as possible. We see this requirement in many ‘Smart city’ type applications such as Transportation, Energy grids, Utilities like Water, Street lighting, Parking etc

IoT data transformation techniques

Once data is captured through the sensor, there are a few analytics techniques that can be applied to the Data. Some of these are unique to IoT. For instance, not all data may be sent to the Cloud/Lake.  We could perform temporal or spatial analysis. Considering the volume of Data, some may be discarded at source or summarized at the Edge. Data could also be aggregated and aggregate analytics could be applied to the IoT data aggregates at the ‘Edge’. For example,  If you want to detect failure of a component, you could find spikes in values for that component over a recent span (thereby potentially predicting failure). Also, you could correlate data in multiple IoT streams. Typically, in stream processing, we are trying to find out what happened now (as opposed to what happened in the past).  Hence, response should be near real-time. Also, sensor data could be ‘cleaned’ at the Edge. Missing values in sensor data could be filled in(imputing values),  sensor data could be combined to infer an event(Complex event processing), Data could be normalized, we could handle different data formats or multiple communication protocols, manage thresholds, normalize data across sensors, time, devices etc

 

 

Applying IoT Analytics to the Flow of Data

Overview

Here, we address the possible locations and types of analytics that could be applied to IoT datasets.

(Please click to expand diagram)

 

Some initial thoughts:

  • IoT data arises from  sensors and ultimately resides in the Cloud.
  • We  use  the  concept  of  a  ‘Data  Lake’  to  refer  to  a repository of Data
  • We consider four possible avenues for IoT analytics: ‘Analytics  at  the  Edge’,  ‘Streaming  Analytics’ , NoSQL databases and ‘IoT analytics at the Data Lake’
  • For  Streaming  analytics,  we  could  build  an  offline model and apply it to a stream
  • If  we  consider  cameras  as  sensors,  Deep  learning techniques could be applied to Image and video datasets (for example  CNNs)
  • Even when IoT data volumes are high, not  all  scenarios  need  Data  to  be distributed. It is very much possible to run analytics on a single node using a non-distributed architecture using Python or R systems.
  • Feedback mechanisms are a key part of IoT analytics. Feedback is part of multiple IoT analytics modalities ex Edge, Streaming etc
  • CEP (Complex event processing) can be applied to multiple points as we see in the diagram

 

We now describe various analytics techniques which could apply to IoT datasets

Complex event processing

Complex Event Processing (CEP) can be used in multiple points for IoT analytics (ex : Edge, Stream, Cloud et).

In general, Event processing is a method of tracking and  analyzing  streams  of  data and deriving a conclusion from them. Complex event processing, or CEP, is event processing that combines data from multiple sources to infer events or patterns that suggest more complicated circumstances. The goal of complex event processing is to identify meaningful events (such as opportunities or threats) and respond to them as quickly as possible.

In CEP, the data is at motion. In contrast, a traditional Query (ex an RDBMS) acts on Static Data. Thus, CEP is mainly about Stream processing but the algorithms underlining CEP can also be applied to historical data

CEP relies on a number of techniques including for Events: pattern detection, abstraction, filtering,  aggregation and transformation. CEP algorithms model event hierarchies and detect relationships (such as causality, membership or timing) between events. They create an abstraction of an  event-driven processes. Thus, typically, CEP engines act as event correlation engines where they analyze a mass of events, pinpoint the most significant ones, and trigger actions.

Most CEP solutions and concepts can be classified into two main categories: Aggregation-oriented CEP and Detection-oriented CEP.  An aggregation-oriented CEP solution is focused on executing on-line algorithms as a response  to  event  data  entering  the  system  –  for example to continuously calculate an average based on data in the inbound events. Detection-oriented CEP is focused on detecting combinations of events called events patterns or situations – for example detecting a situation is to look for a specific sequence of events. For IoT, CEP techniques are concerned with deriving a higher order value / abstraction from discrete sensor readings.

CEP uses techniques like Bayesian    networks,    neural    networks,     Dempster- Shafer methods, kalman filters etc. Some more background at Developing a complex event processing architecture for IoT

Streaming analytics

Real-time systems differ in the way they perform analytics. Specifically,  Real-time  systems  perform  analytics  on  short time  windows  for  Data  Streams.  Hence, the scope  of  Real Time analytics is a ‘window’ which typically comprises of the last few time slots. Making Predictions on Real Time Data streams involves building an Offline model and applying it to a stream. Models incorporate one or more machine learning algorithms which are trained using the training Data. Models are first built offline based on historical data (Spam, Credit card fraud etc). Once built, the model can be validated against a real time system to find deviations in the real time stream data. Deviations beyond a certain threshold are tagged as anomalies.

IoT ecosystems can create many logs depending on the status of IoT devices. By collecting these logs for a period of time and analyzing the sequence of event patterns, a model to predict a fault can be built including the probability of failure for the sequence. This model to predict failure is then applied to the stream (online). A technique like the Hidden Markov Model can be used for detecting failure patterns based on the observed sequence. Complex Event Processing can be used to combine events over a time frame (ex in the last one minute) and co-relate patterns to detect the failure pattern.

Typically, streaming systems could be implemented in Kafka and spark

 

Some interesting links on streaming I am tracking:

 Newer versions of kafka designed for iot use cases

Data Science Central: stream processing and streaming analytics how it works

Iot 101 everything you need to know to start your iot project – Part One

Iot 101 everything you need to know to start your iot project – Part Two

 

Edge Processing

Many vendors like Cisco and Intel are proponents of Edge Processing  (also  called  Edge  computing).  The  main  idea behind Edge Computing is to push processing away from the core and towards the Edge of the network. For IoT, that means pushing processing towards the sensors or a gateway. This enables data to be initially processed at the Edge device possibly enabling smaller datasets sent to the core. Devices at the Edge may not be continuously connected to the network. Hence, these devices may need a copy of the master data/reference data for processing in an offline format. Edge devices may also include other features like:

•    Apply rules and workflow against that data

•    Take action as needed

•    Filter and cleanse the data

•    Store local data for local use

•    Enhance security

•    Provide governance admin controls

IoT analytics techniques applied at the Data Lake

Data Lakes

The concept of a Data Lake is similar to that of a Data warehouse or a Data Mart. In this context, we see a Data Lake as a repository for data from different IoT sources. A Data Lake is driven by the Hadoop platform. This means, Data in a Data lake is preserved in its raw format. Unlike a Data Warehouse, Data in a Data Lake is not pre-categorised. From an analytics perspective, Data Lakes are relevant in the following ways:

  • We could monitor the stream of data arriving in the lake for specific events or could co-relate different streams. Both of these tasks use Complex event processing (CEP). CEP could also apply to Data when it is stored in the lake to extract broad, historical perspectives.
  • Similarly, Deep learning and other techniques could be applied to IoT datasets in the Data Lake when the Data  is ‘at rest’. We describe these below.

ETL (Extract Transform and Load)

Companies like Pentaho are applying ETL techniques to IoT data

Deep learning

Some deep learning techniques could apply to IoT datasets. If you consider images and video as sensor data, then we could apply various convolutional neural network techniques to this data.

It gets more interesting when we consider RNNs(Recurrent Neural Networks)  and Reinforcement learning. For example – Reinforcement learning and time series – Brandon Rohrer How to turn your house robot into a robot – Answering the challenge – a new reinforcement learning robot

Over time, we will see far more complex options – for example for Self driving cars  and the use of Recurrent neural networks (mobileeye)

Some more interesting links for Deep Learning and IoT:

Optimization

Systems level optimization and process level optimization for IoT is another complex area where we are doing work. Some links for this

 

 Visualization

Visualization is necessary for analytics in general and IoT analytics is no exception

Here are some links

NOSQL databases

NoSQL databases today offer a great way to implement IoT analytics. For instance,

Apache Cassandra for IoT

MongoDB and IoT tutorial

 

Other  IoT analytic techniques

In this section, I list some IoT  technologies where we could implement analytics

 

A Methodology to solve Data Science for IoT problems

We started off with the question: Which points could you apply analytics to the IoT ecosystem and what are the implications? But behind this work is a broader question:  Could we formulate a methodology to solve Data Science for IoT problems?  I am exploring this question as part of my teaching both online and at Oxford University along with Jean-Jacques Bernard.

Here is more on our thinking:

  • CRISP-DM is a Data mining process methodology used in analytics.  More on CRISP-DM HERE and HERE (pdf documents).
  • From a business perspective (top down),we can extend CRISP-DM to incorporate the understanding of the IoT domain i.e. add domain specific features.  This includes understanding the business impact, handling high volumes of IoT data, understanding the nature of Data coming from various IoT devices etc
    • From an implementation perspective(bottom up),  once we have an understanding of the Data and the business processes, for each IoT vertical : We first find the analytics (what is being measured, optimized etc). Then find the data needed for those analytics. Then we provide examples of that implementation using code. Extending CRISP-DM to an implementation methodology, we could have Process(workflow), templates,  code, use cases, Data etc
    • For implementation in R, we are looking to initially use Open source R and Spark and the  h2o.ai  API

 

Conclusion

We started off with the question:  At which points could you apply analytics to the IoT ecosystem and what are the implications? And extended this to a broader question:  Could we formulate a methodology to solve Data Science for IoT problems?  The above is comprehensive but not absolute. For example, you can implement deep learning algorithms on mobile devices (Qualcomm snapdragon machine learning development kit for mobile mobile devices).  So, even as I write it, I can think of exceptions!

 

This article is part of my forthcoming book on Data Science for IoT and also the courses I teach

Welcome your comments.  Please email me at ajit.jaokar at futuretext.com  - Email me also for a pdf version if you are interested. If you want to be a part of my course please see the testimonials at Data Science for Internet of Things Course.  

Data Science for Internet of Things course – Sep 2016 – now in its fourth batch

 

The Data Science for IoT course is now running in its fourth batch.

If you want to be part of the Implementing Enterprise AI course or 

want to know about the Data Science for ioT course, please email us at

[email protected]

 

 

Course Outline

In a nutshell

Now in its fourth batch, the Data Science for Internet of Things course is designed to prepare you for the role of a Data Scientist for the Internet of Things(IoT) domain.

 

Please contact [email protected]

 

This niche, personalized course is suited for:

  • Developers who want to transition to a new role as Data Scientists
  • Entrepreneurs who want to launch new products covering IoT and analytics
  • Anyone interested in developing their career in IoT Analytics from a strategic perspective by choosing the Strategic/non programming option

 

Duration: The course starts from Sep 2016 and extends to Mar  2017. We work with you for the next six months after that on a specific project and to help transition your career to Data Science through our network. The extra time also allows you to catch up on specific modules in the course

 

Scope: Created by Data Science and IoT professionals, the course covers infrastructure (Hadoop – Spark), Programming / Modelling (Python/R/Time series) and Deep Learning (Theano, H2O) within the context of the Internet of Things.

Internet of Things: We cover unique aspects of Data Science for IoT including Deep Learning, Complex event processing/sensor fusion and Streaming/Real time analytics

 

Investment: The course is conducted Online and Offline(london). Please contact us for pricing ([email protected])

 

Contact  us at [email protected] to signup

 

Top Ten Reasons to join this course

Here are the top 10 reasons to join the course:

1)      Work towards the goal for being a Data Scientist for the Internet of Things

2)      Personalization of content

3)      Flexibility(chances to catch up if needed)

4)      Coaching approach

5)      Affordable

6)      Covers complex elements of IoT such as Deep learning, Sensor fusion, Streaming

7)      Based on an Open methodology and Open source

8)      External publishing and personal branding

9)      Project based

10)  Being part of a global community

 

Benefits

The course aims to equip you to be a Data Scientist for the Internet of Things domain

  • You can transition your career to Data Science for IoT. This could mean a new job, new role in your existing company, a  project or a start-up idea
  • You are not alone: Toolkits and community support to start working on real Data science problems for IoT
  • You master specific skills: Spark, R, Python, Scala, IoT platforms, Data analysis, Deep Learning and SQL among others in context of IoT analytics
  • The course content can be personalized (see below)
  • While we focus on IoT only, the Data Science principles can apply to other domains

 

Testimonials

 

Jean Jacques Bernand – Paris – France

“Great course with many interactions, either group or one to one that helps in the learning. In addition, tailored curriculum to the need of each student and interaction with companies involved in this field makes it even more impactful.

As for myself, it allowed me to go into topics of interests that help me in reshaping my career.”

Johnny Johnson, AT&T – USA

“This DSIOT course is a great way to get up-to-speed.  The tools and methodologies for managing devices, wrangling and fusing data, and being able to explain it are taking form fast; Ajit Jaokar is a good fit.  For me, his patience and vision keep this busy corporate family man coming back.”

Yongkang Gao, General Electric, UK.
“I especially thank Ajit for his help on my personal project of the course — recommending proper tools and introducing mentors to me, which significantly reduced my pain in the beginning stage.”
karthik padmanabhan Manager – Global Data Insight and Analytics (GDIA) – Ford Motor Pvt Ltd.

“I am delighted to provide this testimonial to Ajit Jaokar who has extended outstanding support and guidance as my mentor during the entire program on Data science for IoT. Ajit is a world renowned professional in the niche area of applying the Data science principles in creating IoT apps. Talking about the program, it has a lot of breadth and depth covering some of the cutting edge topics in the industry such as Sensor Fusion, Deep Learning oriented towards the Internet of things domain. The topics such as Statistics, Machine Learning, IoT Platforms, Big Data and more speak about the complexity of the program. This is the first of its kind program in the world to provide Data Science training especially on the IoT domain and I feel fortunate to be part of the batch comprising of participants from different countries and skill sets. Overall this journey has transformed me into a mature and confident professional in this new space and I am grateful to Ajit and his team. My wish is to see this program accepted as a gold standard in the industry in the coming years”.

Peter Marriott – UK – www.catalystcomputing.co.uk

Attending the Data Science for IoT course has really helped me in demystifying the tools and practices behind machine learning and has allowed me to move from an awareness of machine learning to practical application.

Yair Meidan Israel – https://il.linkedin.com/in/yairmeidandatamining

“As a PhD student with an academic and practical experience in analytics, the DSIOT course is the perfect means by which I extend my expertise to the domain of IoT. It gradually elaborates on IoT concepts in general, and IoT analytics in particular. I recommend it to any person interested in entering that field. Thanks Ajit!”

Parinya Hiranpanthaporn, Data Architect and Advanced Analytics professional Bangkok

“Good content, Good instructor and Good networking. This course totally answers what I should know about Data Science for Internet of Things.”

 

Sibanjan Das – Bangalore

Ajit helped me to focus and set goals for my career that is extremely valuable. He stands by my side for every initiative I take and helps me to navigate me through every difficult situation I face. A true leader, a technology specialist, good friend and a great mentor. Cheers!!!

Manuel Betancurt – Mobile developer / Electronic Engineer. – Australia

I have had the opportunity to partake in the Data Science for the IoT course taught by Ajit Jaokar. He have crafted a collection of instructional videos, code samples, projects and social interaction with him and other students of this deep knowledge.

Ajit gives an awesome introduction and description of all the tools of the trade for a data scientist getting into the IoT. Even when I really come from a software engineering background, I have found the course totally accessible and useful. The support given by Ajit to make my IoT product a data science driven reality has been invaluable. Providing direction on how to achieve my data analysis goals and even helping me to publish the results of my investigation.

The knowledge demonstrated on this course in a mathematical and computer science level has been truly exciting and encouraging. This course was the key for me to connect the little data to the big data.

Barend Botha – London and South Africa – http://www.sevensymbols.co.uk

This is a great course for anyone wanting to move from a development background into Data Science with specific focus on IoT. The course is unique in that it allows you to learn the theory, skills and technologies required while working on solving a specific problem of your choice, one that plays to your past strengths and interests. From my experience care is taken to give participants one to one guidance in their projects, and there is also within the course the opportunity to network and share interesting content and ideas in this growing field. Highly recommended!

- Barend Botha

Jamie Weisbrod – San Diego - https://www.linkedin.com/in/jamie-weisbrod-3630053

Currently there is a plethora of online courses and degrees available in data science/big data. What attracted me to joining the futuretext class “Data Science for ioT” is Ajit Jaokar. My main concern in choosing a course was how to leverage skills that I already possessed as a computer engineer. Ajit took the time to discuss how I could personalize the course for my interests.
I am currently in the midst of the basic coursework but already I have been able to network with students all over the world who are working on interesting projects. Ajit inspires a lot of people at all ages as he is also teaching young people Data science using space exploration.

 Robert Westwood – UK – Catalyst computing
“Ajit brings to the course years of experience in the industry and a great breadth of knowledge of the companies, people and research in the Data Science/IoT arena.”

Big Picture

Below is a big picture to our approach.

  • Data Science for Internet of Things is based on time series data from IoT devices – but with three additional techniques: Deep learning, Sensor fusion (Complex Event Processing) and Streaming.
  • We consider Deep learning because we treat cameras as sensors but also include reinforcement neural networks for IoT devices
  • The course is based on templates (code) for the above in R, Python and Spark (Scala, Pyspark,SQL). It is hence suited for people with a Programming background(even if from other languages). The exception is if you choose to do a Strategic option(non programming certification – see below)
  • The ideas learnt in the core modules are implemented in Projects. Projects could last as long as six months
  • The advanced modules (ex Sensor fusion) are built on top of the core modules(ex Time series etc)
  • Much of our work has been published in leading blogs like KDnuggets and Data Science Central etc
  • The course has evolved based on active contribution from existing participants: ex Jean Jacques Barnard(methodology), Peter Marriot(Python), Sibanjan Das(H2O/Deep learning), Shiva Soleimani(methodology), Yongkang Gao(Nvidia TK1), Raj Chandrasekaran(Spark) , Vinay Mendiratta(systems level optimization of IoT sensors). We plan to open source most of our code
  • We use Apache Spark for Streaming and Apache flink for sensor fusion.
  • Ironically, due to the emphasis on Data, the course is strictly not an IoT course ie we are concerned primarily with applying predictive learning algorithms on IoT datasets
  • Finally, the course is personalized. I see it more as coaching than a course. – for example you can choose to focus on a smaller subset of topics which is decided in the personal learning plan at the outset

 

Interested ? Email [email protected] for details of the September batch (now in it’s fourth batch)

 

Coaching ..

The course takes a coaching approach i.e. the relatively small numbers allow us to customize the content and take a personalized approach through one on one calls/hangouts etc

Timeline and Modules

Notes:

  • The modules and the sequence are subject to change)
  • You can start in Sep if you are away on holiday in August (because the first two weeks are personalization and onboarding). However, if you can start in August, we recommend you do so

 

 

Aug 15 Personal learning plans and onboarding
Aug 22
Aug 29
Sep 5 Data Science for IoT core concepts
Sep 12 Data Science for IoT core concepts Quiz and hangout
Sep 19 IoT Platforms
Sep 26 IoT Platforms Quiz and hangout
Oct 3 Fundamentals of R Programming
Oct 10 Fundamentals of R Programming Quiz and hangout
Oct 17 Problem solving with Data science Part One
Oct 24 Problem solving with Data science Part One – Quiz and hangout
Oct 31 Problem solving with Data science Part Two
Nov 7 Problem solving with Data science Part Two – Quiz and hangout
Nov 14 Time series and NoSQL databases
Nov 21 Time series and NoSQL databases – Quiz and hangout
Nov 28 Spark ecosystem – part one
Dec 5 Spark ecosystem – part one – Quiz and hangout
Dec 12 Spark ecosystem – part two
Dec 19 Spark ecosystem – part two – Quiz and hangout
Jan 9 2017 Deep learning
Jan 16 2017 Deep learning – Quiz and hangout
Feb 2017 to June 2017 Project and optional modules

 

Optional modules: Choose 2 modules from

1. Spark and scala with an emphasis on distributed algorithms for IoT use cases(

2. Deep learning – based on H20

3. Sensor fusion

4. Python (Python covers all aspects of Python including Deep learning via Theano)

 

Module and Content notes

The content includes

 

Mathematical and statistical techniques (covered throughout the course)- Stats, how to solve a problem, where algorithms fit in, motivational examples, how to choose an algorithm, end to end steps etc) – may have multiple parts and will broadly include

Hypothesis testing – Descriptive statistics – Data loading – Split-out validation dataset – Basic Data visualizations – Prepare Data – Data Cleaning – Feature Selection – Data Transforms – Test and Evaluate Algorithms – Improve Accuracy

(Algorithm Tuning, Ensembles etc) – Time series – mulivariate regression

 

Methodology - How to solve an IoT analytics problem

 

Algorithms

Regression

Clustering

multivariate

Time series (air quality and temperature)

Big Data: Spark and Scala(optional)

Deep learning: H20(optional)

 

An overview of Data Science

An overview of Data Science,  What is Data Science? What problems can be solved using Data science – Extracting meaning from Data – Statistical processes behind Data – Techniques to acquire data (ex APIs) – Handling large scale data – Big Data fundamentals

 

Data Science and IoT

The IoT ecosystem, Unique considerations for the IoT ecosystem – Addressing IoT problems in Data science (time series data, enterprise IoT edge computing, real-time processing, cognitive computing, image processing, introduction to deep learning algorithms, geospatial analysis for IoT/managing massive geographic scale, strategies for integration with hardware, sensor fusion)

 

The Apache Spark ecosystem

Apache spark in detail including Scala, SQL, SparkR, Mlib and GraphX

 

The Data Science for IoT methodology

A specific approach to solve Data Science problems for IoT including strategy and development

 

Mathematical foundations of Machine learning

Here we formally cover the mathematics for Data science including Linear Algebra, Matrix algebra, Bayesian Statistics, Optimization techniques (Gradient descent) etc. We also cover Supervised algorithms, unsupervised algorithms (classification, regression, clustering, dimensionality reduction etc) as applicable to IoT datasets – covered throughout the course as needed

 

Unique Elements for IoT

This module emphasises the following unique elements for IoT

  • Complex event processing (sensor fusion)
  • Deep Learning and
  • Real Time (Spark, Kafka etc)

FAQ: Summary of Benefits and Features

 

Impact on your work Designed for developers/ICT contractors/Entrepreneurs who want to transition their career towards Data science roles with an emphasis on IoT
Typical profile A developer who has skills in programming environments like Java, Ruby, Python, Oracle etc and wants to learn Data Science within the context of Internet of Things with the goal of becoming a Data Scientist for IoT. You may also choose a strategic option (i.e. excluding  Programming)
Community support? Yes. Also includes the Alumni network i.e. beyond the duration of the course at no extra cost.
Approach to Big Data For Big Data, the course is focussed on Apache Spark – specifically Scala, SQL, mlib. Graphx and others on HDFS
Approach to Programming see scope below
Approach to Algorithms see scope below
Is this a full data science course? Yes, we cover machine learning / Data science techniques which are applicable to any domain. Our focus is Internet of Things. The course is practitioner oriented i.e. not academic and is not affiliated to a university.
InvestmentThe course is conducted Online and Offline(london). Please contact us for pricing ([email protected])
Help with jobs/employment yes, we aim to transition your career. Hence, we are selective in the recruitment for the course. There are no guarantees – but a career transition is a key goal for us. We work with you  over the duration of the course(including the Project) to typically achieve one of the following :  a) Help you to get a new role in Data Science/IoT.  B) Support you in your existing Data science role Often career transition includes support for Startups also or working with your existing company
Created by professionals See my profile below
Personalization The course is based on a PLP (Personal learning plan) which allows you to customize for language, projects, domains, career goals, entrepreneurial goals etc . The course can be personalized. Examples include a focus on CEP/Sensor fusion,  RNNs and Time series, Edge processing, SQL  etc. There is no extra cost for this but we agree scope before we start through a Personal Learning Program(PLP).
Duration The course starts from Sep 2016 to late Mar 2017. We work with you for the next six months after that on a specific project and to help transition your career to Data Science through our network. The extra time also allows you to catch up on specific modules in the course
Projects A significant part of the course is Project based. Projects are based on   predictive analytics algorithms for IoT applications. Projects use our methodology which is based on a formalized way of solving IoT analytics  problems. Projects can be based in any of the Programming Languages we cover i.e. R or Python. Spark(Scala) and SQL(distributed processing i.e. Big Data) and  Theano and deeplearning4j for Deep learning . If you want to work on a specific project you should indicate in advance(or if you want to explore some ideas deeper)
Access to knowledge We do not restrict access to knowledge by specialization. For example – if you choose to focus on sensor fusion – you will still have access to all material for Deep learning
Batch sizes Are limited to ensure personalized attention
Time per week about 5 hours/week. No additional materials needed to buy etc
Certificate of completion Yes – based on the quiz and projects. See below for levels of certification
Delivery of content via video. You do not have to be online at specific times with the exception of hangouts
Is there a selection process? Yes. I spend a lot of time with participants and this approach may not be suitable for everyone. Hence, there is an initial discussion before you signup

 

Who has created this course / Who is the tutor?

The course is created by Ajit Jaokar

 

Ajit”s work spans research, entrepreneurship and academia relating to IoT, predictive analytics and Mobility.

His current research focus is on applying data science algorithms to IoT applications. This includes Time series, sensor fusion and deep learning(mostly in R/Apache Spark). This research underpins his teaching at Oxford University (Data Science for Internet of Things) and ‘City sciences’ program at University of Madrid.

His book is included as a course book at Stanford University for Data Science for Internet of Things. In 2015, Ajit was included in top 16 influencers (Data Science Central), Top 100 blogs( KDnuggets), Top 50 (IoT central)

Ajit has been involved with various Mobile / Telecoms / IoT projects since 1999 ranging from strategic analysis, Development, research, consultancy and project management. From 2011, he has further specialized in the predictive analytics for IoT.

Ajit works with Predictive learning algorithms(R and Spark) with applications including Smart cities, IoT and Telecoms

In 2009, Ajit was nominated to the World Economic Forum’s ‘Future of the Internet’ council. In 2011, he was nominated to the World Smart Capital program (Amsterdam). Ajit moderates/chairs Oxford University’s Next generation mobile applications panel. In 2012, he was nominated to the board of Connected Liverpool for their Smart city vision. Ajit has been involved in IOT based roles for the webinos project (Fp7 project). Since May 2005, he has founded the OpenGardens blog which is widely respected in the industry. Ajit has spoken at MobileWorld Congress (4 times) ,CTIA, CEBIT, Web20 expo, European Parliament, Stanford University, MIT Sloan, Fraunhofer FOKUS;University of St. Gallen. He has been involved in transatlantic technology policy discussions.

Ajit is passionate about teaching Data Science to young people through Space Exploration working with Ardusat

Additional details

Why is this course unique?

The course emphasizes some aspects are unique to IoT (in comparison to traditional data science). These include: A greater emphasis on time series data, Edge computing, Real-time processing, Cognitive computing, In memory processing, Deep learning, Geospatial analysis for IoT, Managing massive geographic scale(ex for Smart cities), Telecoms datasets, Strategies for integration with hardware and Sensor fusion (Complex event processing). Note that we include video and images as sensors through cameras (hence the study of Deep learning)

What is the implication of an emphasis on IoT?

In 2015/6, IoT is emerging but the impact is yet to be felt over the next five years. Today, we see IoT driven by Bluetooth 4.0 including iBeacons. Over the next five years, we will see IoT connectivity driven by the wide area network (with the deployment of 5G 2020 and beyond). We will also see entirely new forms of connectivity (example: LoRa , Sigfox etc). Enterprises (Renewables, Telematics, Transport, Manufacturing, Energy, Utilities etc) will be the key drivers for IoT. On the consumer side, Retail and wearables will play a part. This tsunami of data will lead to an exponential demand for analytics since analytics is the key business model behind the data deluge. Most of this data will be Time series data but will also include other types of data. For example, our emphasis on IoT also includes Deep Learning since we treat video and images as sensors.  IoT will lead to a Re-imagining of everyday objects. Thus, we believe we are only just seeing the impact of Data Science for Internet of Things.

How is this approach different to the more traditional MOOCs?

Here’s how we differ from MOOCs

a)  We are not ‘Massive’ – this approach works for small groups with more focused and personalized attention. We will never have 1000s of participants

b)  We help in career leverage: We work actively with you for career leverage – ex you are a startup / you want to transition to a new job etc

c)  We are vendor agnostic

d)  We work actively with you to build your brand(Blogs/Open source/conferences etc)

e)  The course can be personalized to streams (ex with Deep learning, Complex event processing, Streaming etc)

f)  We teach the foundations of maths where applicable

g)  We work with a small number of platforms which provide current / in-demand skills – ex Apache Spark, R etc

h)  We are exclusively focused on IoT (although the concepts can apply to any other vertical)

 

What is your approach to Programming?

The main Programming focus is on R and Python. We also use Spark (Scala, SQL and R). We  use  H2O and Theano(for Deep learning).

 

What is your approach to working with Algorithms and Maths?

The course is based on modelling IoT based problems in the R and Python programming languages.  We follow a context based learning approach – hence we co-relate the maths to specific R based IoT models. You will need an aptitude for maths. However, we cover the mathematical foundations necessary. These include: Linear Algebra including Matrix algebra, Bayesian Statistics, Optimization techniques (such as Gradient descent) etc.

 

Where do you stand on the R vs. Python debate?

The primary language for the course is R. But we also cover code in Python. Because the course lasts for a year,  you can easily cover both. We believe that commercially R will be more valuable because of the uptake from companies like Microsoft (Azure), HPE(Vertica), SAP(Hana), Oracle, Hitachi/Pentaho etc.

What is your view on Open source?

We actively encourage Open Source. We intend to Open Source most of your code and also our methodology. We encourage participants to contribute to our Open Source github also. This helps to build your personal brand. The code and content is part of our forthcoming book.

What is your view on Publishing?

Like Open Source, we encourage Open publishing. Many of the course participants have featured in blogs like KD Nuggets and Data Science Central. For example: Deep Learning for Internet of Things Using H2O by Sibanjan Das and Ajit Jaokar on KDnuggets

Can you explain more about Constructivism?

The learning philosophy of the course is based on a concept called Constructivism.

 

Constructivism (constructivist learning philosophy) is based on learning mechanisms in which knowledge is internalized by learners through processes of accommodation and assimilation. The learner has an internal representation of a concept. They then encounter new ideas and concepts. These ideas and concepts are assimilated through learning. In doing so, they may incorporate new experiences into the existing framework. Alternately, if they find that the new experience contradicts their existing framework – they may evolve their internal representation or change their perception.  Thus, learning is an on-going process of concept assimilation. We incorporate constructivist ideas into the course content, Projects and the methodology. Here are the implications and findings of this approach.

 

Specifically, that means for this course:

 

  • Understanding existing knowledge in the onboarding stage:  To acquire new knowledge in complex domains, the context is important. Specifically, the starting point of the Learner is important so that new ideas can be co-related to their existing knowledge base. This is different for everyone. Hence, we take some time to understand your existing knowledge in the onboarding stage
  • Co-relating concepts: New concepts and ideas have hierarchical dependencies and also lateral connections. These need to be incorporated into the learning process. This is included in the content as far as possible. It implies that you can learn another language (Python) based on the main language( R  ) relatively easily
  • Personalization and longer duration: The process is slow and personalized. It is not possible to use this approach in a mass/massive mode
  • Flexible learning paths: There is a broad structure to acquiring knowledge but not a fixed path
  • The use of projects in context of constructivism:  Projects provide the Physical context. But Projects need to be seen in the wider context. Projects and Methodology go together. The methodology provides the panoramic view to the problem in context of the Big Picture. Thus, Projects are the core of our course – but we use the idea of Projects in a wider learning context.

The key idea in constructivism is: The starting point is familiar to the learner. Hence, we spend a lot of  time in the first few months trying to understand the learner’s current state of understanding. After this, the next phase is spent on the core modules which correlates new ideas to the existing understanding thereby building on existing concepts. In turn, these are further expanded in the  project.

The project itself is contrasted against a methodology  (we are creating an Open methodology for Data Science for Internet of Things as part of the course).

 

How do I ‘transition my knowledge’ and gain recognition?

Data Science for IoT is a new domain. It is also an amalgamation of two rapidly evolving domains in their own right(Internet of Things and Data Science). This gives you many opportunities to establish expertise in niche areas using the Zulu principle – become an expert on a clearly defined, narrow subsection of a field

Many on the course have pursued this concept with success: Dr Vinay Mendiratta(IoT systems level optimization), Robert Westwood(Markovian analysis for IoT datasets), Barend Botha(IoT visualization), Yongkang Gao(Deep learning), Vaijayanti Vadiraj(renewables), Ibrahim El Badawi(Drones)

Many of these areas have been suggested by the participants themselves…

We encourage you to publish your work externally.

How does Certification work?

There are three stages of certification

 

a)  Stage One: Strategic certification

b)  Stage Two: Project certification

c)  Stage Three: Programming certification

 

Where possible, we also validate projects externally especially from a business perspective.

For example if you are doing a project on renewables, we try to validate using someone in Renewables to give feedback for the project. The Programming certification will be in R language and Depending on the optional languages you have chosen. Projects can span a wide range of interesting areas as long as they pertain to IoT and analytics. These include renewables, automotive, Drones etc.

Is one year not too long?

Not really!.

I see many courses who claim to create a Data scientist in X weeks – that is not possible in my view

Especially with a subject like Data Science for IoT, we have complex interdependent concepts which need a longer timeframe to absorb. The longer timeframe also gives you (and me) more flexibility to manage the course. Finally, half the course is based on Projects – which also gives you flexibility.

Is this an academic course?

No. It is not. It is a practitioner based course. It is also not affiliated to any academic institution.

To sign up or for any other questions: please contact [email protected]

MWC 2016: 3 developments to watch which impact IoT analytics Introduction

I have attended the Mobile World Congress for the last 7 years (5 of them as a speaker/panellist).

This year, I did not go. Partly, this is reflective of my change in business focus (to Data Science for Internet of Things course) .

But, also I believe that today, MWC does not reflect disruptive innovation.  The show has more than 100,000 participants but we do not see fundamental game-changing innovations likeDeepmind – Go from Google last week.

Thus, in keeping with my current focus, this blog highlights developments to watch from MWC 2016 which impact IoT analytics. From an IoT / IoT analytics standpoint – the Telecoms industry would only play a major role with  5G(beyond 2020) ex see The rise of 5G: the network for the Internet of Things  and The plans for 5g to power the Internet of Things

Before I list the areas that impact IoT analytics, here is some background. These factors have remained the same for most of the Mobile Data Industry’s lifetime

a)      Telecoms Operators only make money when Data passes through the Cellular network. That is not always the case(ex WiFi, Bluetooth etc).

b)      Telecom Operator business models are  not suited to selling other types of products(ex to Enterprise)

c)       The interface to the customer, once so prized, is now gone to Web and Social media players like Facebook

d)      Telecoms have a long history of successful engineering led standards. But these standards have not been successful at higher layers of the stack. So, again we see many players unite to launch One M2M – but the history of Telecoms standards is poor

e)      Device vendors like Samsung, Apple etc are more successful with innovation but are take an independent approach as best they can

f)       Even when Data passes through the Telecoms network, the Operator may not be able to monetize it for legal reasons(ex just because an Operator knows your location, they do not have the permission to sell you advertising)

Having said that, from an IoT Analytics standpoint, there are some areas which impact IoT data(hence IoT analytics) which are unique to Telecoms. This blog discusses three such developments which I am tracking

 

Analysis and Focus areas

1) LPWA battles

low power wide area networks are a key battleground for the industry at the moment. With the arrival of 5G years away(including 5G devices) is years away, the main players today are Sigfox and LoRa. The Operators have been forced to push LTE-M in a hurry (see Lora vs LTE vs Sigfox). The momentum is certainly with LoRa and Sigfox.

 

2) Platforms

There is no shortage of IoT based platforms including Telecoms oriented platforms like Jasper(now acquired by Cisco).  However, we will see maturity in Platforms and new partnerships. Here are three developments

Analytics platforms spanning multiple network types: Platforms ItalTel launches solutions for healthcare and Infrastructure – this is an example of a more mature platform supporting multiple network types(Sigfox and LoRa ) and even WebRTC. The platform claims to have analytics built into it.

Open Source IoT analytics platforms like Kaa IoT who were at the show and who I am following with interest

Ericsson – Amazon Cloud Deal – A deal which combines the IoT cloud PAAS vendors with the Telecoms network providers.

3) e-SIM

And finally, the eSim. I have been following the work of companies like Gemalto for a while who have long advocated the eSim technology. Today, in the age of IoT, its a technology whose time has come.

The embedded SIM (also called eSIM or eUICC) is a new secure element designed to remotely manage multiple mobile network operator subscriptions and compliant with GSMA specifications

eSim could help customers to set up and manage subscriptions on devices remotely via a single embedded SIM (eSIM) in a process which will be a lot cheaper, easier and faster without sacrificing any levels of security. There were a few key eSim announcements such as Gemalto with Jasper wireless  and also Sierra wireless and valeo on telematics

 

Conclusions

IoT analytics (Data Science for IoT) is still a nascent field and Telecoms will be a key enabler for IoT. I see the initial impact around areas like Security, LPWA and Platforms which facilitate analytics for IoT. If you want to see more of my work, please see Data Science for Internet of Things course

Creating an open methodology for Internet of Things (IoT) Analytics: Data science for Internet of Things

Introduction

Update: 

a) I am not referring to ‘standardization’ here. Rather the need for a methodology i.e. structured way to solve problems(Think of it like Kaggle meets #IoT analytics)

b)  Added reference to PFA(Portable format for Analytics) – thanks Gregory Piatetsky-Shapiro @kdnuggets for the feedback

We often encounter this problem in my teaching Data Science for Internet of Things:

There is no specific methodology to solve Data Science for IoT  (IoT Analytics) problems.

This leads to some initial questions:

  • Should there be a distinct methodology to solve Data Science problems for IoT?
  • Are IoT problems for Data Science unique enough to warrant a specific approach?
  • What existing methodologies should we draw upon?

On one hand , A Data Science for IoT problem is a typical Data Science problem. On the other hand, there are some unique considerations to IoT – for example in the use of Hardware, High Data volumes, Use of CEP(Complex event processing), impact of verticals(like automotive), Impact of streaming data etc.

Background and inspiration

Some initial background:

Data mining has well known methodologies such as Crisp DM.  Hilary Mason and others have also proposed specific methodologies for Data Science . Kaggle problems have a specific approach to solving them . With techniques like PFA(Portable format for Analytics) provide a way of formalizing and moving Analytics models.

All these strategies also apply to IoT. IoT itself has methodologies like Ignite IoT – but these do not cover IoT analytics in detail.

A methodology for IoT analytics(Data Science for IoT) should cover the unique aspects of each step in Data Science. For example: It is more than the choice of the model family. The choice of the model family (ANN, SVM, Trees, etc) is only one of the many choices to make – Others include :

a) Choice of the model structure – optimisation methodology (CV, Bootstrap, etc)

b)  Choice of the model parameter optimisation algorithm (joint gradients vs. conjugate gradients )

c)  Preprocessing of the data (centring, reduction, functional reduction, log-transform, etc.)

d)  How to deal with missing data (case deletion, imputation, etc.)

e)  How to detect and deal with suspect data (distance-based outlier detection, density-based, etc.)

f)  How to choose relevant features (filters, wrappers, embedded method ?)

g)  How to measure prediction performances (mean square error, mean absolute error, misclassification rate, lift, precision/recall, etc.)

source Methodology and standards for data analysis with machine learning tools Damien Fran¸cois ∗

The methodology could also cover  -

Exploratory analysis of data

Hypothesis testing (“Given a sample and an apparent effect, what is the probability of seeing such an effect by chance?” )

and other ideas ..

An Open methodology for IoT analytics problems

Building on the above, we need an Open, end-to-end,  step by step methodology to solve IoT Analytics/Data Science for IoT problems

In addition, the methodology would need to consider the unique aspects of IOT. For example:

a)      Complex event processing especially using Apache Spark for CEP

b)      Deep learning (because we consider Cameras as sensors)

c)      Anomaly Detection: Consider Anomaly detection (a typical IoT analytics scenario). There are many considerations:  What is the triggering event, How much has the machine deviated from the plan, What is the root cause of the bottleneck, Are there any external factors affecting the system performance, How do I know that I should trust IOT data? Is there a recommended plan of action? How is the Data visualized? Does the Data have missing elements? How do we detect failure in other processes? (Anomaly detection adapted from Dr Vinay Mehendiratta)

In addition, IoT vertical domains have special considerations: Smart Grid, Smart cities, Smart energy, Automotive, Smart factory, Mobile, Wearables, Smart home etc.

For example:

Modelling energy prices,

Classifying step using machine learning,

Bus routing using mobile phone data,

Linear and non-linear regression models to predict global temperature and weather prediction

etc

Creating an Open methodology

Currently, this is an evolving thought process being developed as a part of the Data Science for IoT course. We intend to create it as an open methodology – starting with the question: What is common across these IoT analytics problems and how can we adapt existing Data Science techniques  to solve IoT analytics problems?

Over the next few weeks, we are conducting a survey and developing the methodology

If you are interested in participating and knowing more, please sign up to our mailing list and download our papers or contact me at ajit.jaokar at futuretext.com 

My forthcoming book – Data Science for IoT

 

Hello all

As many of you know, I have been working on the Data Science for IoT course for the last year or so (Both at Oxford Uni and for my consulting work)

As part of this work, I have been covering many complex areas like Sensor fusion/kalman filters(published on Kdnuggets)  and Deep learning (Recurrent neural networks) for IoT (published on Data Science central) 

Last week, I was approached by a program at Stanford University about this work

In a nutshell, the content of the Data Science for IoT course will be included as a recommended book for a forthcoming program taught at Stanford University

Its been a while since I have written a book ..

Excluding books for young people(teaching coding and computer science), the last major effort was with Tony Fish (Mobile Web 2.0) which launched my career into Mobile.

A book is a major undertaking

However, the existing course (Data Science for IoT) and the collaboration with Stanford University program for the book gives me the opportunity to create the book iteratively (in sections as we teach)

The book will have co-authors (more on that soon) and also many contributors from the Data Science for IoT course

This enables me to keep the content very fresh – which is critical in such a rapidly evolving field

We have had a great response to the Data Science for IoT course from all over the world.

Most of the participants are from USA and UK – but we also have participants from as far as Australia and Nicaragua.

If you are interested in being part of the course – please sign up now (we start next week)See course Data Science for IoT course

Happy to discuss part payments if you want.

We have had some excellent participants already and I look forward to learning and sharing more insights as part of the book and the course

kind rgds

Ajit

Evolution of Deep learning models

Evolution of Deep learning models

By

Ajit Jaokar

@ajitjaokar

Data Science for Internet of Things

Linkedin Ajit Jaokar

 

 

PS – This paper is best downloaded as a free pdf HERE 

PPS I discuss these ideas in the Data Science for Internet of Things – practitioners course 

Scope and approach

This paper is a part of a series covering Deep Learning applications for Smart cities/IoT with an emphasis on Security (human activity detection, surveillance etc). It also relates to my teaching at Oxford and UPM (Madrid) on Data Science and Internet of Things. The content is also a part of a personalized Data Science course I teach (online and offline) Personalized Data Science for Internet of Things course. I am also looking for academic collaborators to jointly publish similar work. If you want to be a part of the personalized Data Science course or collaborate academically, please contact me at ajit.jaokar at futuretext.com or connect with me on Linkedin Ajit Jaokar

No taxonomy of Deep learning models exists. And I do not attempt to create one here either. Instead, I explore the evolution of Deep learning models by loosely classifying them into Classical Deep learning models and Emerging Deep Learning models. This is not an exact classification. Also, we embark on this exercise keeping our goal in mind i.e. the application of Deep learning models to Smart cities from the perspective of Security (Safety, Surveillance). From the standpoint of Deep learning models, we are interested in ‘Human activity recognition’ and its evolution. This will be explored in subsequent papers.

In this paper, we list the evolution of Deep Learning models and recent innovations. Deep Learning is a fast moving topic and we see innovation in many areas such as Time series, hardware innovations, RNNs etc. Where possible, I have included links to excellent materials / papers which can be used to explore further. Any comments and feedback welcome and I am happy to cross reference you if you can add to specific areas.  Finally, I would like to thanks Lee Omar, Xi Sizhe and Ben Blackmore all of Red Ninja Labs for their feedback

Deep Learning – learning through layers

Deep learning is often thought of as a set of algorithms that ‘mimics the brain’. A more accurate description would be an algorithm that ‘learns in layers’. Deep learning involves learning through layers which allows a computer to build a hierarchy of complex concepts out of simpler concepts. Deep learning algorithms apply to many areas including Computer Vision, Image recognition, pattern recognition, speech recognition, behaviour recognition etc

To understand the significance of Deep Learning algorithms, it’s important to understand how Computers think and learn. Since the early days, researchers have attempted to create computers that think. Until recently, this effort has been rules based adopting a ‘top down’ approach. The Top-down approach involved writing enough rules for all possible circumstances.  But this approach is obviously limited by the number of rules and by its finite rules base.

To overcome these limitations, a bottom-up approach was proposed. The idea here is to learn from experience. The experience was provided by ‘labelled data’. Labelled data is fed to a system and the system is trained based on the responses – leading to the field of Machine Learning. This approach works for applications like Spam filtering. However, most data (pictures, video feeds, sounds, etc.) is not labelled and if it is, it’s not labelled well.

The other issue is in handling problem domains which are not finite. For example, the problem domain in chess is complex but finite because there are a finite number of primitives (32 chess pieces)  and a finite set of allowable actions(on 64 squares).  But in real life, at any instant, we have potentially a large number or infinite alternatives. The problem domain is thus very large.

A problem like playing chess can be ‘described’ to a computer by a set of formal rules.  In contrast, many real world problems are easily understood by people (intuitive) but not easy to describe (represent) to a Computer (unlike Chess). Examples of such intuitive problems include recognizing words or faces in an image. Such problems are hard to describe to a Computer because the problem domain is not finite. Thus, the problem description suffers from the curse of dimensionality i.e. when the number of dimensions increase, the volume of the space increases so fast that the available data becomes sparse. Computers cannot be trained on sparse data. Such scenarios are not easy to describe because there is not enough data to adequately represent combinations represented by the dimensions. Nevertheless, such ‘infinite choice’ problems are common in daily life.

Deep learning is thus involved with ‘hard/intuitive’ problem which have little/no rules and high dimensionality. Here, the system must learn to cope with unforeseen circumstances without knowing the Rules in advance.

 

Feed forward back propagation network

The feed forward back propagation network is a model which mimics the neurons in the brain in a limited way. In this model:  a)      Each neuron receives a signal from the neurons in the previous layer b)      Each of those signals is multiplied by a weight value. c)      The weighted inputs are summed, and passed through a limiting function which scales the output to a fixed range of values. d)      The output of the limiter is then broadcast to all of the neurons in the next layer. The learning algorithm for this model is called Back Propagation (BP) which stands for “backward propagation of errors”. We apply the input values to the first layer, allow the signals to propagate through the network and read the output. A BP network learns by example i.e. we must provide a learning set that consists of some input examples and the known correct output for each case. So, we use these input-output examples to show the network what type of behaviour is expected. The BP algorithm allows the network to adapt by adjusting the weights by propagating the error value backwards through the network. Each link between neurons has a unique weighting value. The ‘intelligence’ of the network lies in the values of the weights. With each iteration of the errors flowing backwards, the weights are adjusted. The whole process is repeated for each of the example cases. Thus, to detect an Object, Programmers would train a neural network by rapidly sending across many digitized versions of data (for example, images)  containing those objects. If the network did not accurately recognize a particular pattern,  the weights would be adjusted. The eventual goal of this training is to get the network to consistently recognize the patterns that we recognize (ex Cats).

Building a hierarchy of complex concepts out of simpler concepts

Deep learning involves learning through layers which allows a computer to build a hierarchy of complex concepts out of simpler concepts. This approach works for subjective and intuitive problems which are difficult to articulate. Consider image data. Computers cannot understand the meaning of a collection of pixels. Mappings from a collection of pixels to a complex Object are complicated. With deep learning, the problem is broken down into a series of hierarchical mappings – with each mapping described by a specific layer.

The input (representing the variables we actually observe) is presented at the visible layer. Then a series of hidden layers extracts increasingly abstract features from the input with each layer concerned with a specific mapping. However, note that this process is not pre defined i.e. we do not specify what the layers select

For example: From the pixels, the first hidden layer identifies the edges

From the edges, the second hidden layer identifies the corners and contours

From the corners and contours, the third hidden layer identifies the parts of objects

Finally, from the parts of objects, the fourth hidden layer identifies whole objects

 

 

 

 

 

 

 

Image and example source: Yoshua Bengio book – Deep Learning

Classical Deep Learning Models

Based on the above intuitive understanding of Deep learning, we now explore Deep learning models in more detail. No taxonomy of Deep learning models exists. Hence, we loosely classify Deep learning models into Classical and Emerging. In this section, we discuss the Classical Deep learning models.

Autoencoders: Feed forward neural networks and Back propagation

Feed forward neural networks (with back propagation as a training mechanism) are the best known and simplest Deep learning models. Back propagation is based on the classical optimisation method of steepest descent. In a more generic sense, Back propagation algorithms are a form of autoencoders. Autoencoders are simple learning circuits which aim to transform inputs into outputs with the least possible amount of distortion. While conceptually simple, they play an important role in machine learning. Autoencoders were first used in the 1980s by Hinton and others to address the problem of “backpropagation without a teacher”. In this case, the input data was used as the teacher and attempts were made to simulate the brain by mimicking Hebbian learning rules (cells that fire together – wire together). Feedforward Neural Networks with many layers are also referred to as Deep Neural Networks (DNNs). There are many difficulties in training deep feedforward neural networks

 

Deep belief networks

To overcome these issues, in 2006 Hinton et al. at University of Toronto introduced Deep Belief Networks (DBNs) – which is considered a breakthrough for Deep learning algorithms.

Here, the learning algorithm greedily trains one layer at a time, with layers created by stacked Restricted Boltzmann Machines (RBM) (instead of stacked autoencoders). Here, Restricted Boltzmann Machines (RBMS), are stacked and trained bottom up in unsupervised fashion, followed by a supervised learning phase to train the top layer and fine-tune the entire architecture. The bottom up phase is agnostic with respect to the final task. A simple introduction to Restricted Boltzmann machines is HERE where the Intuition behind RBMs is explained by considering some visible random variables (film reviews from different users) and some hidden variables (like film genres or other internal features). The task of the RBMs is to find out through training as to how these two sets of variables are actually connected to each other.

Convolutional Neural Networks (CNN)

Convolutional Neural Networks are similar to Autoencoders and RBMs but instead of learning single global weight matrix between two layers, they aim to find a set of locally connected neurons through filters (kernels). (adapted from stackoverflow). CNNs are mostly used in image recognition. Their name comes from “convolution” operator. A tutorial on feature extraction using convolution explains more.  CNNs use data-specific kernels to find locally connected neurons. Similar to autoencoders or RBMs, they also translate many low-level features (e.g. user reviews or image pixels) to the compressed high-level representation (e.g. film genres or edges) – but now weights are learned only from neurons that are spatially close to each other. Thus, a Convolutional Neural Network (CNN) is comprised of one or more convolutional layers and then followed by one or more fully connected layers as in a standard multilayer neural network. The architecture of a CNN is designed to take advantage of the 2D structure of an input image (or other 2D input such as a speech signal). CNNs is that they are easier to train and have many fewer parameters than fully connected networks with the same number of hidden units. A CNN tutorial HERE

Recurrent neural networks (RNNs)

A recurrent neural network (RNN) is a class of artificial neural network where connections between units form a directed cycle. This creates an internal state of the network which allows it to exhibit dynamic temporal behaviour. Unlike feedforward neural networks, RNNs can use their internal memory to process arbitrary sequences of inputs. This makes them applicable to tasks such as unsegmented connected handwriting recognition, where they have achieved the best known results.

The fundamental feature of a Recurrent Neural Network (RNN) is that the network contains at least one feed-back connection, so the activations can flow round in a loop. That enables the networks to do temporal processing and learn sequences, e.g., perform sequence recognition/reproduction or temporal association/prediction.Thus, feedforward networks use Directed acyclic graphs whereas Recurrent neural networks use Digraphs (Directed graphs). See also this excellent tutorial – Deep Dive into recurrent neural networks by Nikhil Buduma

Emerging Deep learning models

In the above section, we saw the main Deep learning models. Deep learning techniques are rapidly evolving. Much of the innovation takes place in combining different forms of learning with existing Deep learning techniques.  Learning algorithms fall into three groups with respect to the sort of feedback that the learner has access to: supervised learning, unsupervised learning and reinforcement learning. We also see emerging areas like application of Deep Learning to Time series data. In the section below, we discuss Emerging Deep learning models.  The list is not exhaustive because the papers and techniques selected are more relevant to our problem domain(Application of Deep learning techniques for Smart cities with an emphasis on Human activity monitoring for Security/Surveillance)

Application of Reinforcement learning to Neural networks

Playing Atari with reinforcement learning presents the first deep learning model to successfully learn control policies directly from high-dimensional sensory input using reinforcement learning. The model is a convolutional neural network, trained with a variant of Q-learning, whose input is raw pixels and whose output is a value function estimating future rewards. The method is applied to  seven Atari 2600 games from the Arcade Learning Environment, with no adjustment of the architecture or learning algorithm. It is found that it outperforms all previous approaches on six of the games and surpasses a human expert on three of them. The paper Deep learning for reinforcement learning in Pacman (q-learning) also addresses similar issues but for the game Pacman. DeepMind(now a part of Google) has a number of papers on reinforcement learning. Sascha Lange and Martin Riedmiller  apply Deep Auto-Encoder Neural Networks in Reinforcement Learning. The paper Recurrent Models of Visual Attention by Volodymyr Mnih Nicolas Heess Alex Graves Koray Kavukcuoglu of Google DeepMind presents a novel recurrent neural network model that is capable of extracting information from an image or video by adaptively selecting a sequence of regions or locations and only processing the selected regions at high resolution. It can be trained using reinforcement learning methods to learn task-specific policies.

 

Combining modalities for Deep learning

Multimodality is also an area of innovation for Deep learning networks. Multimodal networks learn from different types of data sources for example training video, audio and text together(usually video, audio and text are distinct training modes). The paper Multimodal deep learning  proposes a deep autoencoder considers the cross modality learning setting where both modalities are present (video and audio) during feature learning but only a single modality is used for supervised training and testing.

In the paper Joint Deep Learning for Pedestrian Detection Wanli Ouyang and Xiaogang Wang use CNNs but add deformation layer to classify the parts. Feature extraction, deformation handling, occlusion handling, and classification are four important components in pedestrian detection. This paper proposes that they should be jointly learned in order to maximize their strengths through cooperation.

Deep Learning of Invariant Spatio-Temporal Features from Video uses the convolutional Restricted Boltzmann machine (CRBM) as a basic processing unit. Their model(Space-Time Deep Belief Network) – ST-DBN, alternates the aggregation of spatial and temporal information so that higher layers capture longer range statistical dependencies in both space and time.

Parallelization

Another area for innovation and evolution of Deep learning is Parallelization. For example, Deep learning on Hadoop at Paypal and  Massively Parallel Methods for Deep Reinforcement Learning

 

Time Series

Because IoT/Smart series Data is mostly Time Series data, the use of Time Series with Deep Learning is also relevant to our work. In most cases, RNNs of DBNs are used to not only make a prediction but also (like NEST) to adapt. The paper Deep Learning for Time Series modelling forecasts demand i.e. predicts energy loads across different network grid areas using only time and temperature data. The paper uses hourly demand for four and a half years from 20 different geographic regions, and similar hourly temperature readings from 11 zones. Time Series Classification Using Multi-Channels Deep Convolutional Neural Networks uses deep learning framework for multivariate time series classification and the paper by Gilberto Batres-Estrada uses Deep Learning for Multivariate Financial Time Series

Cognitive computing

Ultimately, we can expect many services to be Cognitive.

An algorithmic framework will be called cognitive if it has the following properties: 1. it integrates knowledge from (a) various structured or unstructured sources, (b) past experience, and (c) current state, in order to reason with this knowledge as well as to adapt over time; 2. it interacts with the user (e.g., by natural language or visualization) and reasons based on such interactions; and 3. it can generate novel hypotheses and capabilities, and test their effectiveness. Source: Cognitive Automation of Data Science. Deep learning is increasingly becoming a part of Cognitive computing

Notes

Some additional notes:

Deep Learning in contrast to other machine learning techniques

To recap, a more formal definition of Deep LearningDeep Learning: a class of machine learning techniques, where many layers of information processing stages in hierarchical architectures are exploited for unsupervised feature learning and for pattern analysis/classification. The essence of deep learning is to compute hierarchical features or representations of the observational data, where the higher-level features or factors are defined from lower-level ones.

Historically, Deep Learning is a form of the fundamental credit assignment problem (Minsky, 1963). Here,  Learning or credit assignment is about finding weights that make the neural network exhibit desired behaviour, such as driving a car. Deep Learning is about accurately assigning credit across many such stages. Historical reference through Marvin Minsky’s papers

Deep learning techniques can also be contrasted to more traditional machine learning techniques. When we represent some object as a vector of n elements, we say that this is a vector in n-dimensional space. Thus, dimensionality reduction refers to a process of refining data in such a way, that each data vector x is translated into another vector x′ in an m-dimensional space (vector with m elements), where m<n.  The most common way of doing this is PCA (Principal Component Analysis). PCA finds “internal axes” of a dataset (called “components”) and sorts them by their importance. The first m most important components are then used as new basis. Each of these components may be thought of as a high-level feature, describing data vectors better than original axes.

Both – autoencoders and RBMs – do the same thing. Taking a vector in n-dimensional space they translate it into an m-dimensional one, trying to keep as much important information as possible and, at the same time, remove noise. If training of autoencoder/RBM was successful, each element of resulting vector (i.e. each hidden unit) represents something important about the object – shape of an eyebrow in an image, genre of a film, field of study in scientific article, etc. You take lots of noisy data as an input and produce much less data in a much more efficient representation. In the above image, we see an example of such a deep network. We start with ordinary pixels, proceed with simple filters, then with face elements and finally end up with entire faces. This is the essence of deep learning. (Adapted from stackexcahnge).

So, one could ask: If we already have techniques like PCA, why do we need autoencoders and RBMs? The reason is: PCA only allows linear transformation of a data vectors. Autoencoders and RBMs, on other hand, are non-linear by the nature, and thus, they can learn more complicated relations between visible and hidden units. Moreover, they can be stacked, which makes them even more powerful. Most problems addressed by Deep learning neural networks are not linear i.e. if we were able to model relationships linearly between the independent and dependent variable, classic regression techniques apply. The paper Deep neural networks as recursive generalised linear models (RGLMs) explains the applicability of Deep Learning techniques to non-linear problems from a statistical standpoint

Deep Learning and Feature learning

Deep Learning can be hence seen as a more complete, hierarchical and a ‘bottom up’ way for feature extraction and without human intervention. Deep Learning is a form of Pattern Recognition system and the performance of a pattern recognition system heavily depends on feature representation. In the past, manually designed features were used for image and video processing. These rely on human domain knowledge and it is hard to manually tune them.  Thus, developing effective features for new applications is a slow process. Deep learning overcomes this problem of feature extraction. Deep learning also distinguishes multiple factors and a hierarchy in video and audio data for example Objects (sky, cars, roads, buildings, pedestrians),  parts (wheels, doors, heads) can be decomposed from images. For this task, more layers provide greater granularity. For example Google net has more than 20 layers

Source: ELEG 5040 Advanced Topics on Signal Processing (Introduction to Deep Learning) by Xiaogang Wang

Deep learning and Classification techniques

None of deep learning models discussed here work as classification algorithms. Instead, they can be seen as Pretrainin , automated feature selection and learning, creating a hierarchy of features etc. Once trained (features are selected), the input vectors are transformed into a better representation and these are in turn passed on to a real classifier such as SVM or Logistic regression.  This can be represented as below.

 

 

 

 

 

Source: ELEG 5040 Advanced Topics on Signal Processing (Introduction to Deep Learning) by Xiaogang Wang

Advances in Hardware

Another major source for innovation in Deep learning networks is Hardware.  The impact of hardware on Deep Learning is a complex topic – but two examples are: The Qualcomm zeroth platform that brings cognitive and Deep learning capabilities – including to Mobile devices. Similarly, the NVIDIA cuDNN – GPU Accelerated Deep Learning

DBNs to pre-train DNNs

Finally, Deep learning techniques have synergies amongst themselves. We explained DBNs and DNNs above.  DBNs and DNNs can be used in conjunction i.e. Deep Belief Net (that use RBM for layer-wise training) can be used as the pre-training method for a Deep neural network.

Conclusions

This paper is a part of a series covering Deep Learning applications for Smart cities/IoT with an emphasis on Security (human activity detection, surveillance etc). Subsequent parts of this paper will cover human activity detection and Smart cities. The content is a part of a personalized Data Science course I teach (online and offline) Personalized Data Science for Internet of Things course. I am also looking for academic collaborators to jointly publish similar work. If you want to be a part of the personalized Data Science course or collaborate academically,  please contact me at ajit.jaokar at futuretext.com or connect with me on Linkedin Ajit Jaokar

Programming for Data Science the Polyglot approach: Python vs. R OR Python + R + SQL

 

 

 

 

In this post, I discuss a possible new approach to teaching Programming for Data Science.

Programming for Data Science is focussed on the R vs. Python question.  Everyone seems to have a view including the venerable Nature journal (Programming – Pick up Python).

Here, I argue that we look beyond Python vs. R debate and look to teach R, Python and SQL together. To do this, we need to look at the big picture first (the problem we are solving in Data science) and then see how that problem is broken down and solved by different approaches. In doing so, we can more easily master multiple approaches and then even combine them if needed.

On first impressions, this Polyglot approach (ability to master multiple languages) sounds complex.

Why teach 3 languages together?  (For simplicity – I am including SQL as a language here)

Here is some background

Outside of Data science, I also co-founded a social enterprise to teach Computer Science to kids  Feynlabs. At Feynlabs, we have been working with ways to accelerate learning to Code. One way to do this is to compare and contrast multiple programming languages. This approach makes sense for Data Science also because a learner can potentially approach Data science from many directions.

To learn programming for Data Science, it would thus help to build up from an existing foundation they are already familiar with and then co-relate new ideas to this foundation through other approaches. From a pedagogical standpoint, this approach is similar to David Asubel who stressed the importance of prior knowledge in being able to learn new concepts:  “The most important single factor influencing learning is what the learner already knows.”

But first, we address what is the problem we are trying to solve and how that problem can be broken down

I also propose to make this approach as part of Data Science for IoT course/certification but I also expect I will teach it as a separate module – probably in a workshop format in London and USA. If you are interested to know more, please sign up on the mailing list   HERE

Data Science – the problem we are trying to solve

Data science involves the extraction of knowledge from data. Ideally, we need lots of data from a variety of sources.  Data Science lies at the intersection of multiple disciplines: Programming, Statistics, Algorithms, Data analysis etc. The quickest way to solve Data Science problems is to start analyzing data as soon as possible. However, Data Science also needs a good understanding of the theory – especially the machine learning approaches.

A Data Scientist typically approaches a problem using a methodology like OSEMN (Obtain, Scrub, Explore, Model, Interpret). Some of these steps are common to a classic data warehouse and are similar to classic ETL (Extract Transform Load) approach. However, the modelling and interpreting stage are unique to Data Science. Modelling needs an understanding of Machine Learning algorithms and how they fit together. For example: Unsupervised algorithms (Dimensionality reduction, Clustering) and Supervised algorithms (Regression, Classification)

To understand Data Science, I would expect some background in Programming. Certainly, one would not expect a Data Scientist to start from “Hello World”. But on the other hand, the syntax of a language is often over-rated. Languages have quirks – and they are easy to get around with most modern tools.

So, if we try to look at the problem / big picture first (ex the Obtain, Scrub, Explore, Model and Interpret) stages – it is easier to fit in the Programming languages to the stages. Machine Learning has 2 phases: the Model Building phase and the Prediction phase. We first build the model (often as a batch mode – and it takes longer). We then perform predictions on the model in a dynamic/real-time mode. Thus, to understand Programming for Data Science, we can divide the learning into four stages: The Tool itself (IDE), Data Management, Modelling and Visualization

Tools, IDE and Packages

After understanding the base syntax – it’s easier to understand the language in terms of its packages and libraries. Both Python and R have a vast number of packages (such as Statsmodels)  – often distributed as libraries (scikit-learn). Both languages are interpreted. Both have good IDEs such as Spyder, iPython for Python and RStudio for R. If using Python, you would probably use a library like scikit-learn and a distribution of Python such as the Anaconda distribution. With R, you would use the RStudio  and install specific packages using R’s  CRAN package management system.

Data management

Apart from R and Python, you would also need to use SQL. I include SQL because SQL plays a key role in the Data Scrubbing stage. Some have called this stage as the Janitor work of Data Science and it takes a lot of time. SQL also plays a part in SQL on Hadoop approaches like Apache Drill which allow users to write SQL queries on data stored in Hadoop and receive results

With SQL, you are manipulating data in Sets. However, once the data is inside the Programming environment, it is treated differently depending on the language.

In R, everything is a vector and R Data structures and functions are vectorized . This means, most functions in R work on Vectors (i.e. on all the elements – not on individual elements in a loop). Thus, in R, you read your data in a data frame and use a built-in model (here are the steps / packages for linear regression) . In Python, if you did not use a library like scikit-learn , you would need to make many decisions yourselves and that can be a lot harder. However, with a package like scikit-learn, you get a consistent, well documented  interface to the models. That makes your job a lot easier by focussing on the usage.

Data Exploration and Visualization

After the Data modelling stage, we come to Data exploration and visualization. Here, for Python – the pandas package is a powerful tool for data exploration. Here is a simple and quick intro to the power of Python Pandas (YouTube video). Similarly, R uses dplyr and ggplot2 packages for Data exploration and visualization.

A moving goalpost and a Polyglot approach

Finally, much of this discussion is a rapidly moving goalpost. For example, in R, large calculations need the data to be loaded in a matrix (ex nxn matrix manipulation). But, with platforms like Revolution Analytics – that can be overcome. Especially with the acquisition of Revolution analytics by Microsoft – and with Microsoft’s history for creating good developer tools – we can expect development in R would be simplified.

Also, since both R and Python are operating in the context of Hadoop for Data science, we would expect to leverage the Hadoop architecture through HDFS connectors both for Python Hadoop frameworks and R Hadoop integration. Also, one would argue that we are already living in a post hadoop/mapreduce world with Spark and Storm especially for Real time calculations and that at least some Hadoop functions may be replaced by Spark

Here is a good introduction to Apache Spark and a post about Getting started with Spark in Python. Interestingly, the Spark programming guide includes integration with 3 languages (Scala, Java and Python) but no R. But the power of Open source means we have SparkR which integrates R with Spark.

The approach to cover multiple languages has some support – for instance, with the Beaker notebook . You could also achieve the same effect by working on the command line for example in Data Science at the Command Line

Conclusions

Even in a brief blog post – you can get a lot of insights when we look at the wider problem of Data science and compare how different approaches are addressing segments of that problem. You just need to get the bigger picture of how these Languages fit together for Data Science and understand the  major differences (for example vectorization in R).

Use of good IDEs, packages etc softens the impact of programming.

It then changes our role, as Data Scientists, to mixing and matching a palette of techniques as APIs – sometimes spanning languages.

I hope to teach this approach as part of Data Science for IoT course/certification

Programming for Data Science will also be a separate module talk over the next few months at fablab london, London IT contractors meetup group, CREATE Miami, a venture accelerator at Miami Dade College, City Sciences conference(as part of a larger paper) in Shanghai and MCS Madrid

For more schedules and details please sign up HERE

Call for Papers Shanghai, 4-5 June 2015 – International Conference on City Sciences (ICCS 2015): New architectures, infrastructures and services for future cities

Call for Papers from  International  Conference on City  Sciences  (ICCS  2015): New  architectures,  infrastructures  and  services  for  future cities co-organized by City sciences where I teach

 

 

 

Call for Papers  Shanghai,  4-5  June  2015

International  Conference on City  Sciences  (ICCS  2015): New  architectures,  infrastructures  and  services  for  future cities

The   new   science   of   cities   stands   at   a   crossroads.   It   encompasses   rather   different,   or   even  conflicting,  approaches.  Future  cities  place  citizens  at  the  core  of  the  innovation  process  when  creating  new  urban  services,  through  “experience  labs”,  the  development  of  urban  apps  or  the  provision   of     ”open    data”.     But     future     cities     also    describe     the     modernisation     of    urban  infrastructures     and    services    such    as    transport,    energy,    culture,    etc.,    through    digital    ICT  technologies:   ultra-­‐fast   fixed  and  mobile  networks,  the  Internet  of  things,  smart  grids,  data  centres,   etc.  In  fact  during  the  last   two  decades local   authorities  have  invested   heavily  in  new  infrastructures   and  services,   for  instance  putting  online  more  and  more  public  services  and  trying    to   create   links   between  still prevalent silo   approaches   with   the   citizen   taking   an  increasingly  centre-­‐stage  role.  However,  so  far  the  results  of  these  investments  have  not  lived  up  to  expectations,  and  particularly  the  transformation  of  the  city  administration  has  not  been  as    rapid   nor   as   radical   as   anticipated.   Therefore,   it   can   be   said   that   there   is   an   increasing  awareness  of  the  need  to  deploy  new  infrastructures  to  support  updated  public  services  and  of  the     need    to   develop   new    services    able    to   share    information    and    knowledge    within    and  between   organizations   and   citizens.   In   addition,   urban   planning   and   urban   landscape   are  increasingly    perceived   as   a   basic   infrastructure,   or   rather   a   framework,   where   the   rest   of  infrastructures  and  services  rely  upon.  Thus,  as  an  overarching  consequence,  there  is  an  urgent  need   to   discuss  among  practitioners  and   academicians  successful  cases  and   new  approaches  able  to  help  to  build  better  future  cities.

Taking  place  in  Shanghai,   the  paradigm  of  challenges  for  future  cities  and   a  crossroad   itself  between   East  and   West,  the  International   Conference  on  City  Sciences  responds  to  these  and  other   issues  by  bringing  together  academics,  policy  makers,  industry  analysts,  providers  and  practitioners     to    present    and    discuss    their    findings.    A    broad    range    of    topics    related  to  infrastructures    and   services   in   the   framework   of   city   sciences   are   welcome   as   subjects   for  papers,  posters  and  panel  sessions:

  • Developments  of   new  infrastructures  and  services  of   relevance  in  an  urban  context:  broadband,    wireless,   sensors,   data,   energy,   transport,   housing,   water,   waste,   and  environment.
  • City sustainability  from  infrastructures  and  services
  • ICT-­‐enabled  urban  innovations
  • Smart city  developments  and  cases
  • Social and  economic  developments  citizen-­‐centric
  • Renewed  government  services  in  a  local  level
  • Simulation and  modelling  of  the  urban  context
  • Urban landscape  as new infrastructure Additional relevant topics  is  also  welcomed.

Authors  of  selected   papers  from  the  conference  will  be  invited   to   submit  to   special  issues  of International  peer-reviewed  academic  journals.

Important  deadlines:

  • 20 February:  Deadline  for  Abstracts  and  Panel  Session  Suggestions
  • 30 March:  Notification  of  Acceptance
  • 30  Apr:  Deadline  for  Final  Papers  and  Panel  Session  Outlines
  • 4- 5  June:  International  Conference  on  City  Sciences  at  Tongji  University  in  Shanghai,  PR  China

Submission of  Abstracts:

Abstracts  should   be  about  2  pages  (800  to   1000  words)  in   length   and  contain  the   following

information:

  • Title of  the  contribution
  • A  research  question
  • Remarks on  methodology
  • Outline of  (expected)  results
  • Bibliographical notes  (up  to  6  main  references  used  in  the  paper)
  • All abstracts  will  be  subject  to  blind  peer  review  by  at  least  two  reviewers.

conference link: International  Conference on City  Sciences  (ICCS  2015): New  architectures,  infrastructures  and  services  for  future