Azure Blob Storage on IoT Edge is a light-weight Azure Consistent module which provides local Block blob storage. It comes with configurable abilities to:

  • Automatically tier the data from IoT Edge device to Azure
  • Automatically delete the data from IoT edge device after specified time.

Learn more: 
Create a Free Account (Azure):

Here’s a good code-heavy tutorial that uses the  Gradient descent optimization algorithm. It also explores the idea of splitting data into 3 parts.

Additionally, we will divide our data set into three slices, Training, Testing, and validation. In our example, we have data in CSV format with columns “height weight age projects salary”. Assuming there is a correlation between projects and salary will try to predict the salary given projects completed. You download data using this link:

In this Data Point, Frank ponders the wider impact on jobs and businesses related to self-driving cars that are not immediately obvious. From driving schools to truck stops, everyone will feel the change.The question then becomes: how can we prepare the workforce for the impending upheaval in the job market? Will teaching to the test cut it? Or are we going to have to make learning play and play learning?

Press the play button below to listen here or visit the show page at

Show Notes:

Recently, I was on the Workforce Show new segment “Breaking the AI Code” hosted by Swathi Young. Press the play button below to listen here or visit the show page.

Frank La Vigne works at Microsoft as an AI Technology Solutions Professional where he helps companies achieve more by getting the most out of their data with analytics and AI. He also co-hosts the DataDriven podcast. He blogs regularly at and you can watch him on his YouTube channel, “Frank’s World TV” (FranksWorld.TV). Frank has extensive experience as a software engineer. You can find him on Twitter at @tableteer

Fraud detection, a common use of AI, belongs to a more general class of problems — anomaly detection.

An anomaly is a generic, not domain-specific, concept. It refers to any exceptional or unexpected event in the data: a mechanical piece failure, an arrhythmic heartbeat, or a fraudulent transaction.

Basically, identifying a fraud means identifying an anomaly in the realm of a set of legitimate transactions. Like all anomalies, you can never be truly sure of the form a fraudulent transaction will take on. You need to take all possible “unknown” forms into account.

Here’s an interesting article on doing anomaly/fraud detection with a neural autoencoder.

Using a training set of just legitimate transactions, we teach a machine learning algorithm to reproduce the feature vector of each transaction. Then we perform a reality check on such a reproduction. If the distance between the original transaction and the reproduced transaction is below a given threshold, the transaction is considered legitimate; otherwise it is considered a fraud candidate (generative approach). In this case, we just need a training set of “normal” transactions, and we suspect an anomaly from the distance value.

Based on the histograms or on the box plots of the input features, a threshold can be identified. All transactions with input features beyond that threshold will be declared fraud candidates (discriminative approach). Usually, for this approach, a number of fraud and legitimate transaction examples are necessary to build the histograms or the box plots.

Deep learning is central to recent innovations in AI. If you don’t want to run your code in the cloud and prefer to build your own local rig optimized for TensorFlow and machine learning, then this post is for you.

One point to note is that TensorFlow has a slightly unusual computation scheme which might be particularly intimidating to novice programmers. The computations are built into a ‘computation graph’ which is then run all at once. So to add two variables, a and b, TensorFlow would first encode the ‘computation’ a+b into a computation graph. Before running this graph, trying to access this graph will not give a result – the result hasn’t been processed yet! Instead, it will give you the graph. Only after running the graph will you have access to the actual answer. Bear this in mind, as it will help clear confusions in your later explorations with TensorFlow.