Data Science, Machine Learning, Natural Language Processing, Text Analysis, Recommendation Engine, R, Python
Tuesday, 26 November 2019
Why Machine Learning Jobs Are High In Demand
Probably the best example to describe the current trend is the fact that between 2015 and 2019, the openings for positions like machine learning engineer grew by 344%, while the average base salary reached a whopping $164,085 per year.
Let that sink in for a few moments.
Considering that, at least in the United States, the average base salary of the 25 best jobs is around $104,000, we can totally understand why this demand.
But let’s see what actually caused this….
Technically speaking, it’s a branch of artificial intelligence, based on the idea that a system can learn from data, identify specific patterns and make decisions without any human intervention.
If you prefer a simpler approach, it’s used to identify images, but also consumer-driven chatbots, neural networks or voice search, among others.
For some, this might sound scary, but the truth is that machine learning has several applications that are just becoming realized. Therefore, it’s no surprise that the employer demand for talent with such skills is growing with each day, we’d say.
For example, ...
Read More on Datafloq
ETtech Top 5: Ola hives off its financial unit, Oyo's six-fold rise in losses & more
Demand for CXOs bucks downtrend
Jenkins macOS native installer deprecation
In addition to WAR files and Docker images, the Jenkins project provides native installers for each weekly and LTS release. There are installers available for Linux distributions, Windows, macOS and other operating systems. There are also installers provided by third parties. You can find the list of these installers on the Downloads page.
In this blog post, we announce the upcoming deprecation of the macOS native installer. We will review the replacement options and the rollout plan.
Why?
Maintaining installers is a significant maintenance effort for the project because installers require testing and, sometimes, specific platforms and environments for packaging. When installers lose relevance for the majority of the Jenkins audience, we remove them or handover maintenance to third parties on other areas. For macOS, there are currently two types of packages: native installers with GUI for desktop versions and Homebrew packages. Since Homebrew is now a defacto standard package manager for macOS users, from the Jenkins standpoint it made sense to deprecate the native installers.
Why now? There is ongoing work on automating Jenkins Core releases within the Jenkins infrastructure. Long story short, we are moving Jenkins release pipelines to Kubernetes on Microsoft Azure. This environment does not offer macOS machines that are needed to produce native installers. If you are interested to know more, there will be a How Jenkins Builds and Delivers Jenkins in the Cloud talk presented by Olivier Vernin at DevOps World | Jenkins World 2019 Europe in Lisbon (use the JWFOSS code for a 30% discount!).
We could have used an external service for building macOS installers, but it would have added an additional point of failure and implementation/maintenance overhead. So we discussed it in the developer mailing list and agreed that it is better to just deprecate and then remove the packages.
Replacing native installers
In the case of macOS, there are two main alternatives available: managing the service manually or migrating to Homebrew packages. Before doing a migration, we highly recommend backing up your instance.
Managing Jenkins with WAR file on macOS
If your Jenkins instance was previously set up with a native installer, to update Jenkins it will be enough to replace the jenkins.war file in the installation directory and restart the instance. The services will keep running as it was configured before the migration. The default installation directory is /Applications/Jenkins/jenkins.war
Managing Jenkins with Homebrew
Installing Jenkins with Homebrew is a way to go for those who want to install Jenkins using a package manager. There are two Homebrew formulas for Jenkins: jenkins for Weekly releases and jenkins-lts for LTS ones. These packages are supported by a third party (Homebrew community), and they may be not as frequently updated as packages supported by the Jenkins project directly.
Before doing a migration from macOS Native installers to HomeBrew, please make sure to backup your Jenkins instance. There are no automatic migration tools available, and the installation may corrupt your JENKINS_HOME or service configuration files in edge cases. |
If you switch to Homebrew, you will need to properly migrate the JENKINS_HOME data to the new location. We do not provide an official migration guide, but it is possible to find some guidelines on the Web.
Sample commands:
-
Install the latest Weekly version:
brew install jenkins -
Install a specific Weekly version:
brew install jenkins@YOUR_VERSION -
Start the Jenkins service:
brew services start jenkins -
Restart the Jenkins service:
brew services restart jenkins -
Update the Jenkins version:
brew upgrade jenkins
For more information see the documentation for Homebrew packages on the macOS Download pages.
Rollout plan
-
macOS native packaging is considered as deprecated starting from Jenkins 2.206 and Jenkins LTS 2.204.1
-
For Jenkins Weekly macOS native packaging will be removed with the switch to the new Jenkins release flow. The exact date is to be determined.
-
After the change, there will be no macOS native installers produced for new Jenkins Weekly releases
-
Releases for previous versions will be available in this archive
-
-
For Jenkins LTS macOS will be removed with the switch to the new Jenkins release flow in the LTS baseline. This change will happen only after the deployment of the new release flow in Jenkins Weekly.
-
After the switch, there will be no macOS native installers produced for new Jenkins LTS releases
-
Releases for previous versions will be available in this archive
-
See the discussion on the developer mailing list for more information.
Questions and feedback
If you have any questions or want to provide feedback, please use the developer mailing list thread mentioned above Platform SIG channels (chat, google group). Any feedback will be much appreciated because we plan more installer/ and platform deprecations in the future.
Monday, 25 November 2019
How Artificial Intelligence Impacts iOS App Development
Artificial Intelligence has a wide-spread multifaceted impact which runs from machine learning to deep learning to crucial advanced algorithms. The emergence of AI in mobile app development has opened a world of innovations and unseen possibilities.
In this article, you are going to find how AI is impacting the iOS app development and what role AI has to play in this process.
Significance of AI in iOS App Development
Today, a machine interface or a mobile app can reason in a much more humanely fashion. It can apply experience-driven analysis and knowledge for practical purposes. It has become possible only because of the successful implementation of AI.
AI Improves User Experience (UX)
To enhance customer engagement, UX experts and developers rely on AI a lot. By analyzing the user behavior pattern and user input data, AI helps in drawing relevant insights and accordingly ...
Read More on Datafloq
Big Data in the Cloud – 5 Ways Your Business Can Benefit
As per the International Data Corporation(IDC) forecast revenue, the big data and business analytics (BDA) solutions have grown rapidly in the past few years. The market made $169B in revenue in 2018 – which was $122B in 2015 and $149 in 2017. An estimated reach to $189B in this year, an increase of 12.0% (CAGR) over 2018. IDC believes that worldwide BDA revenue will be $274.3 billion by 2022, with the five years (2018-2022) Compound annual growth rate(CAGR) of 13.2%.
And, the global spending on cloud market is increasing by 16.5%(CAGR) and is expected to reach 354 billion dollars by 2022.
In this fast-growing market, there is no surprise that Big data and cloud computing platforms are being acquired and converted into bigger tech companies.
The advancement of technology has allowed companies to reap the benefits of streamlined processes and cost-efficient operations. But the one thing that has become a game-changer for businesses of all sizes is the availability of data from every source imaginable – social media, sensors, business applications, and many more.
Merging big data with ...
Read More on Datafloq
The Top 5 Challenges Financial Services Security Professionals Face
If you’re part of a smaller organization, you probably have fewer resources to bring to bear than larger firms. In addition, leadership may back-burner your security concerns.
On the other hand, if you don’t surface your concerns and do everything to ensure that your organization complies with security regulations like the Bank Secrecy Act, the new NYDFS laws, SOX, and others, you run the risk of incurring heavy penalties.
There’s a way to thread the needle, however. If you successfully navigate these five challenges, you’ll have done everything in your power to make your company safer – deflecting attackers and satisfying regulators alike.
1. Your Concerns Are Not Front and Center
CEOs and board members are getting better about prioritizing information security – much more so than they were even as little as five years ago. With that said, maybe you got unlucky. Your CEO may not be one ...
Read More on Datafloq
Saturday, 23 November 2019
Welcome to the Matrix
I often find myself needing to run the same actions on a bunch of different configurations. Up to now, that meant I had to make multiple copies of the same stages in my pipelines. When I needed to make changes, I had to make the same changes in multiple places throughout my pipeline. Maintaining even a small number of configuration was difficult for larger pipelines.
Declarative Pipeline 1.5.0-beta1 (now available from the Jenkins Experimental Update site) adds a new matrix section that lets me specify a list stages once and then run that same list in parallel on multiple configurations. Let’s take a look!
Single configuration pipeline
I’ll start with a simple pipeline with build and test stages. I’m using echo steps as placeholders for my build and test actions.
pipeline {
agent none
stages {
stage('BuildAndTest') {
agent any
stages {
stage('Build') {
steps {
echo 'Do Build'
}
}
stage('Test') {
steps {
echo 'Do Test'
}
}
}
}
}
}Pipeline for multiple platforms and browsers
I’d like to run my build and tests on a combination of platforms and browsers. The new matrix directive lets me specify a set of axes. Each axis has a name and a list of one or more values. When the pipeline is run, Jenkins will take those and run my stages on all possible combinations of values from each axis. All cells in a matrix run in parallel (limited only by the number of available agents). Stages within each cell are run sequentially.
My matrix has two axes: PLATFORM and BROWSER. I have three values for PLATFORM and four values for BROWSER resulting in my stages being run with twelve different combinations. I’ve changed my echo steps to use the axis values for each cell.
pipeline {
agent none
stages {
stage('BuildAndTest') {
matrix {
agent any
axes {
axis {
name 'PLATFORM'
values 'linux', 'windows', 'mac'
}
axis {
name 'BROWSER'
values 'firefox', 'chrome', 'safari', 'edge'
}
}
stages {
stage('Build') {
steps {
echo "Do Build for ${PLATFORM} - ${BROWSER}"
}
}
stage('Test') {
steps {
echo "Do Test for ${PLATFORM} - ${BROWSER}"
}
}
}
}
}
}
}...
[Pipeline] stage
[Pipeline] { (BuildAndTest)
[Pipeline] parallel
[Pipeline] { (Branch: Matrix - OS = 'linux', BROWSER = 'firefox')
[Pipeline] { (Branch: Matrix - OS = 'windows', BROWSER = 'firefox')
[Pipeline] { (Branch: Matrix - OS = 'mac', BROWSER = 'firefox')
[Pipeline] { (Branch: Matrix - OS = 'linux', BROWSER = 'chrome')
[Pipeline] { (Branch: Matrix - OS = 'windows', BROWSER = 'chrome')
[Pipeline] { (Branch: Matrix - OS = 'mac', BROWSER = 'chrome')
[Pipeline] { (Branch: Matrix - OS = 'linux', BROWSER = 'safari')
[Pipeline] { (Branch: Matrix - OS = 'windows', BROWSER = 'safari')
[Pipeline] { (Branch: Matrix - OS = 'mac', BROWSER = 'safari')
[Pipeline] { (Branch: Matrix - OS = 'linux', BROWSER = 'edge') (hide)
[Pipeline] { (Branch: Matrix - OS = 'windows', BROWSER = 'edge')
[Pipeline] { (Branch: Matrix - OS = 'mac', BROWSER = 'edge')
...
Do Build for linux - safari
Do Build for linux - firefox
Do Build for windows - firefox
Do Test for linux - firefox
Do Build for mac - firefox
Do Build for linux - chrome
Do Test for windows - firefox
...Excluding invalid combinations
Now that I have my basic matrix created, I’ve noticed that I have some invalid combinations. Microsoft Edge only runs on Windows and there isn’t a Linux version of Safari.
I can remove invalid cells from my matrix using exclude directives. Each exclude has one or more axis directives with name and values. The axis directives inside an exclude generate a set of combinations (similar to generating the matrix cells). The matrix cells that match all the values from an exclude combination are removed from the matrix. If I have more than one exclude directive, each are evaluated separately to remove cells.
When dealing with a long lists of values to exclude, I can use notValues instead of values to specify axis values we don’t want excluded. Yes, that’s a double negative, so it can get a little confusing. I try to use it only when I really need it.
In my sample pipeline below, I specifically exclude the linux, safari combination and I also exclude any platform that is not windows with the edge browser.
|
This pipeline uses two axes but there is no limit on the number of Also, in this pipeline each |
pipeline {
agent none
stages {
stage('BuildAndTest') {
matrix {
agent any
axes {
axis {
name 'PLATFORM'
values 'linux', 'windows', 'mac'
}
axis {
name 'BROWSER'
values 'firefox', 'chrome', 'safari', 'edge'
}
}
excludes {
exclude {
axis {
name 'PLATFORM'
values 'linux'
}
axis {
name 'BROWSER'
values 'safari'
}
}
exclude {
axis {
name 'PLATFORM'
notValues 'windows'
}
axis {
name 'BROWSER'
values 'edge'
}
}
}
stages {
stage('Build') {
steps {
echo "Do Build for ${PLATFORM} - ${BROWSER}"
}
}
stage('Test') {
steps {
echo "Do Test for ${PLATFORM} - ${BROWSER}"
}
}
}
}
}
}
}...
[Pipeline] stage
[Pipeline] { (BuildAndTest)
[Pipeline] parallel
[Pipeline] { (Branch: Matrix - OS = 'linux', BROWSER = 'firefox')
[Pipeline] { (Branch: Matrix - OS = 'windows', BROWSER = 'firefox')
[Pipeline] { (Branch: Matrix - OS = 'mac', BROWSER = 'firefox')
[Pipeline] { (Branch: Matrix - OS = 'linux', BROWSER = 'chrome')
[Pipeline] { (Branch: Matrix - OS = 'windows', BROWSER = 'chrome')
[Pipeline] { (Branch: Matrix - OS = 'mac', BROWSER = 'chrome')
[Pipeline] { (Branch: Matrix - OS = 'windows', BROWSER = 'safari')
[Pipeline] { (Branch: Matrix - OS = 'mac', BROWSER = 'safari')
[Pipeline] { (Branch: Matrix - OS = 'windows', BROWSER = 'edge')
...
Do Build for linux - firefox
...Controlling cell behavior at runtime
Inside the matrix directive I can also add "per-cell" directives. These are the same directives that I would add to a stage and they let me control the behavior of each cell in the matrix. These directives can use the axis values from their cell as part of their inputs, allowing me to customize the behavior of each cell to match its axis values.
On my Jenkins server I have configured agents with labels that match the OS for each agent ("linux-agent", "windows-agent", and "mac-agent"). To run each cell in my matrix on the appropriate operating system, I configure the label for that cell using Groovy string templating.
matrix {
axes { ... }
excludes { ... }
agent {
label "${PLATFORM}-agent"
}
stages { ... }
// ...
}Occasionally I run my pipeline manually from the Jenkins Web UI. When I do that, I’d like to be able to select just one platform to run. The axis and exclude directives define the static set of cells that make up the matrix. That set of combinations is generated before the start of the run, before any parameters are processed. What this means is that I can’t add or remove cells from a matrix after the job has started.
The "per-cell" directives, on the other hand, are evaluated at runtime. I can use the "per-cell" when directive inside matrix to control which cells in the matrix are executed. I’ll add a choice parameter with the list of platforms, and add conditions to the when directive, which will either let all platforms execute, or only execute cells that match my selected platform.
pipeline {
parameters {
choice(name: 'PLATFORM_FILTER', choices: ['all', 'linux', 'windows', 'mac'], description: 'Run on specific platform')
}
agent none
stages {
stage('BuildAndTest') {
matrix {
agent {
label "${PLATFORM}-agent"
}
when { anyOf {
expression { params.PLATFORM_FILTER == 'all' }
expression { params.PLATFORM_FILTER == env.PLATFORM }
} }
axes {
axis {
name 'PLATFORM'
values 'linux', 'windows', 'mac'
}
axis {
name 'BROWSER'
values 'firefox', 'chrome', 'safari', 'edge'
}
}
excludes {
exclude {
axis {
name 'PLATFORM'
values 'linux'
}
axis {
name 'BROWSER'
values 'safari'
}
}
exclude {
axis {
name 'PLATFORM'
notValues 'windows'
}
axis {
name 'BROWSER'
values 'edge'
}
}
}
stages {
stage('Build') {
steps {
echo "Do Build for ${PLATFORM} - ${BROWSER}"
}
}
stage('Test') {
steps {
echo "Do Test for ${PLATFORM} - ${BROWSER}"
}
}
}
}
}
}
}If I run this Pipeline from the Jenkins UI and set the PLATFORM_FILTER parameter to mac, I’ll get something like the output below:
...
[Pipeline] stage
[Pipeline] { (BuildAndTest)
[Pipeline] parallel
[Pipeline] { (Branch: Matrix - OS = 'linux', BROWSER = 'firefox')
[Pipeline] { (Branch: Matrix - OS = 'windows', BROWSER = 'firefox')
[Pipeline] { (Branch: Matrix - OS = 'mac', BROWSER = 'firefox')
[Pipeline] { (Branch: Matrix - OS = 'linux', BROWSER = 'chrome')
[Pipeline] { (Branch: Matrix - OS = 'windows', BROWSER = 'chrome')
[Pipeline] { (Branch: Matrix - OS = 'mac', BROWSER = 'chrome')
[Pipeline] { (Branch: Matrix - OS = 'windows', BROWSER = 'safari')
[Pipeline] { (Branch: Matrix - OS = 'mac', BROWSER = 'safari')
[Pipeline] { (Branch: Matrix - OS = 'windows', BROWSER = 'edge')
...
Stage "Matrix - OS = 'linux', BROWSER = 'chrome'" skipped due to when conditional
Stage "Matrix - OS = 'linux', BROWSER = 'firefox'" skipped due to when conditional
...
Do Build for mac - firefox
Do Build for mac - chrome
Do Build for mac - safari
...
Stage "Matrix - OS = 'windows', BROWSER = 'chrome'" skipped due to when conditional
Stage "Matrix - OS = 'windows', BROWSER = 'edge'" skipped due to when conditional
...
Do Test for mac - safari
Do Test for mac - firefox
Do Test for mac - chrome| Come join me at DevOps World | Jenkins World 2019 for "Declarative Pipeline 2019: Tips, Tricks and What’s Next". I’ll go over what’s been added to Pipeline in the last year (including matrix) and discuss ideas about where pipeline should go next. |
Conclusion
In this blog post, we’ve looked at how to use the matrix directive to make concise but powerful declarative pipelines. An equivalent pipeline created without matrix would easily be several times larger, and much harder to understand and maintain.
Matrix is now available from the experimental update center. It will be released to the main update center as soon as we’re done putting the finishing touches on the documentation and online help.
Jenkins Health Advisor by CloudBees is out!

Managing any software presents its own unique challenges. Jenkins Masters are no exception. For example,
-
How do you keep a finger on the pulse of everything going on in your Jenkins environment? Are you looking at every new defect opened in the issue tracker?
-
How do you make sure that your master or agents don’t silently fail? Are you monitoring its logs? All of its internal components? If something does go wrong, how do you fix it??
-
How do you avoid the infamous “angry Jenkins” logo?
That’s why we created Jenkins Health Advisor by CloudBees.
Here at CloudBees, we have years of experience supporting our customers who are using Jenkins, including our proprietary products build on top of Jenkins like CloudBees Core. As a result, our support team is made up of automation experts with Jenkins knowledge you can’t get anywhere else.
Automated health checks started when our support engineers created a platform so they could write rules to detect known issues on support bundles provided by our customers, and redirect them to the required knowledge source to diagnose and resolve the issue.
After years of internal usage we decided to share this service with the community and we are pleased to introduce a new freemium service available to every Jenkins user: Jenkins Health Advisor by CloudBees.
Jenkins Health Advisor by CloudBees automatically analyzes your Jenkins environment, proactively identifies potential issues and advises you of solutions with detailed email reports.
Jenkins Health Advisor by CloudBees can detect a large range of issues from simple configuration issues to security and best practices concerns - all critical elements of Jenkins implementations. Getting started is done in 3 steps, and within 24 hours you will receive your first report.
We hope that you will appreciate this service and it will help you to keep your masters healthy.
Take a few minutes to read our documentation, discover the service and don’t hesitate to contact us on the Jenkins community channels (Gitter, jenkinsci-users@googlegroups.com, …).
Don’t miss also the opportunity to meet our support team on the "Ask the experts" booth at DevOps World | Jenkins World 2019.
Useful links:
Friday, 22 November 2019
4 Steps to Digitally Transform Your Business
My first answer is to tell them that they have to achieve a gestalt shift, where they see their organisation from a different perspective. Instead of looking at your organisation from a product standpoint, you should see your organisation as a data organisation. This shift in perspective will fundamentally change how you run your organisation, as all of a sudden it opens new doors.
If your organisation wants to succeed in becoming a data organisation, the first step is having infinite streams of complete, high-quality, well-cleansed, unbiased data that is collected at every process and customer touchpoint within your organisation. The second step of transforming your organisation into a data organisation is to distribute that data, thereby facilitating new ways of collaboration with industry partners using distributed ledger technologies and making the data available to all your employees regardless of their location using ...
Read More on Datafloq
The Art of Human Hacking - And Why It Works?
Well, both of the definitions are correct. Social engineering is the manipulation of a human being through different mediums. It can be both online and offline. It all depends on how the attack is executed and how convincing the lie is.
Furthermore, social engineering is the most popular attack vector. There are social engineering toolkits available on the Internet. These toolkits can easily help a beginner to begin executing social engineering attacks. Over the course of 3 years (2013-2016), social engineering scams have stolen over $5 billion worldwide.
Not to mention that social engineering attacks have the highest percentage of being successful.
Why does Social Engineering works?
There are a lot of factors that determine why it is the most successful attack vector on the Internet. It is not restricted to a single country. In the United Kingdom, 76% of businesses have been victimized by social engineering attack specifically phishing.
Social engineering is the only attack method that does not require any knowledge of writing code. Unlike ...
Read More on Datafloq
Best Practice for Creating Indexes on your MySQL Tables
MySQL Rolling Index Creation
We call this approach a ‘Rolling Index Creation’ - if you have a MySQL master-slave replica set, you can create the index one node at a time in a rolling fashion. You should create the index only on the slave nodes so the master’s performance is not impacted. When index creation is completed on the slaves, we demote the current master and promote one of the slaves that is up-to-date as the new master. At this time, the index building continues on the original master node (which is a slave now). There will be a short duration (tens of seconds) during which ...
Read More on Datafloq
Isro's Cartosat-3 launch next week
Intel to alert drivers about road conditions in India
Mapping India on Drones
Executive Interview: Robert Joseph, Director, Industry Strategy for Industry 4.0, Stanley Black & Decker
Implementing IIoT at a 175-year old company requires a broad range of skills, and a concentration on IT as well as AI
Robert Joseph, Director, Industry Strategy for Industry 4.0, Stanley Black & Decker, is a data scientist working on implementing the Industrial Internet of Things (IIoT) at Black & Decker. His career spans experience at AT&T Bell Laboratories, US West, Sony, Freshwater Software, and for school districts across the country. Also, as a university professor for 10+ years, he has taught over 3,000 students in all levels of computer science and mathematics. He holds a Pd.D. in Computer Science from Carnegie Mellon University, and a BS and an MS from MIT in electrical engineering. He recently spent a few minutes to talk with AI Trends Editor John P. Desmond.
AI Trends: Thank you, Robert, for talking to us today. Could you describe your responsibilities at Black and Decker and how AI fits into those?
Robert Joseph: Thank you John. I am happy to speak with you. Please note at the outset that I am expressing my viewpoint from working in the industry, and in no way am I representing the viewpoint of any company or organization. At Black & Decker, I am Director of Industrial Strategy or Industry 4.0. My responsibility as a data scientist on the team for data analytics, is to look at machine data coming into our data area and help to analyze that data. We work to make the machines more efficient and to figure out if something is broken or is soon going to break, so we can do preventive maintenance.
How long has Black & Decker been using AI?
I joined Black & Decker about two and a half years ago as a data scientist in what was called the digital accelerator. In that role, I was doing data science in the company as a whole. That division was two years old, so AI has been practiced for at least five years. Stanley Black & Decker made a concerted effort to create a hub of data excellence in the Atlanta area, five or six years ago.
Your background includes or combines computer science, electrical engineering, and teaching. How does this prepare you for the role you’re in at Black & Decker today?
That’s interesting, because I’m in Industry 4.0, also known as Industrial IoT (IIoT) which combines the Internet of Things. That entails understanding machines and how they work, and understanding sensors and how they work. In this role, I need to be able to put all that together to understand also the computer science behind it. Coupled with that is change management. I have always said that bringing in a new technology is as much about change management as it is about the technology itself.
So as a teacher, as well as a practitioner, I understand the need to bring everybody on board to learn what this technology can do and how it might be different from other more familiar technologies. The combination of electrical engineering, computer science and teaching, makes it ideal to be in the world of Industry 4.0.
How was the AI playing into the business strategy at Black & Decker?
Many companies are like Stanley Black & Decker in that they’re trying to figure out exactly how to use AI. Every department is trying to understand which AI technologies would be good to try, and which ones allow them to get the biggest bang for the buck.
With that, you’re starting to see people using AI in unique ways. On the finance level, they are looking at the best ways to spend money, how to optimize where people stay when they travel, what cars they rent, those types of things. In the factories, we are working on improving the factory output. In the distribution centers, we are working on taking advantage of some new techniques in robotics and packing for example. AI is being distributed throughout the company in many areas.
Many companies are applying advances in AI to solve specific problems in machine vision or audio understanding or natural language processing. So AI is being pushed not just inside companies, but in everybody’s life in a number of different ways.
Could you talk about what’s going on with IIoT data analytics at Black & Decker?
Sure. We are a 175-year-old manufacturing company. When I go to conferences and listen to what other people are doing and listen to the challenges that they have, it’s a similar challenge throughout. How do you get data? How do you get sensor data from some of these machines? Many of our machines are older machines that don’t have PLCs [programmable logic controllers], that don’t have any sensors already hooked up to them, then some of them are the more modern machines. We have to plan how we get the right sensor data coming out, and once we get the data, how we make sense of it.
One school of thought is you take all the data and you push it up to the cloud. But I think people are realizing more and more that in some situations you can’t do that. You sometimes need a box on prem, meaning you need a machine on the premises of the factory to do some of the computation there. People call this edge computing.
So with our system, as with most manufacturing systems, we are using edge computing to do some of the more complex kinds of processing, such as for machine vision to look for defects, or doing vibration work to try to predict equipment failure. The slower stuff, such as temperature data, we might push to the cloud and do some processing there.
Ultimately, as in most companies, once you get that information and you start to understand more about it, you’ve got to give it back to the people that could do something about it. So the operators and manufacturing engineers need to get information. Some information is real time, in that something needs to be done now in order to fix a machine before more scrap is produced. And some information is indicating that a ball bearing or motor is likely to fail in the next week, so it should be put into a preventive maintenance rotation.
What are the challenges you face in trying to roll out AI at Black & Decker?
I have found that, as with most things, it looks great on paper and it makes a lot of sense. But when the rubber meets the road, that’s when IIoT is the same as everything else. The challenges fall into three categories. The first is people. There are always multiple opinions, even with just one person. So multiply that by a few more people and then you’ve got a whole boatload of opinions. And there are different perspectives too.
As I watch this whole IIoT movement going along in manufacturing, I see the different perspectives come into play. Change management isn’t just one way: me telling you how your life is going to change. It’s actually two-way, in that I need to understand what you’re doing now and what your perspective is, and then incorporate that into the change management.
Another challenge is the hardware. It takes time and it takes money to buy sensors, and then start to collect the data and then make sure that the sensors are working properly. If you have a lot of sensors, then one of them is going to break, just because of percentages. Even if it’s 0.0001% of the sensor breaking, you have enough of them, then you’re going to have to deal with all of that. So there’s the physical hardware challenge.
Then the third challenge is management buy-in. Companies that don’t have management buy-in and are trying to do AI initiatives have a hard time, because that’s not where the focus is, and that’s not where the money is, and that’s not where the resources go. So those are the three big areas of challenge that I see. I see that we have two of the three at Black & Decker; we have management buy-in here.
Could you describe your development platform for AI applications the key tools and technologies in use? Are there any important software and service supplier partnerships that you’d care to mention?
When you’re a large company, you use a lot of tools and have many camps. In terms of cloud, the two big cloud areas are AWS and Azure, and then Google is the third one. The primary tools of the data scientists are Python and R, and those come in different versions. For some edge computing work we have done, we have worked with Foghorn; in my opinion, they have one of the best edge computing tools out there. It’s flexible, fast and versatile. I feel comfortable saying as a vendor, they are rock solid. [Learn more at Foghorn Systems.]
It’s helpful if AI developers can think in terms of what business function they are trying to deliver. The skills and tools will change but many of the functions we need to support stay the same.
Could you describe the deployment platform for the AI applications in use? And what sorts of considerations do you need to make for deployment platforms?
That’s an age-old question. As a data scientist, I’m more focused on the prototyping platform, where we are developing the system. That’s different from being responsible for the system being up 24/7 and getting the call at 1 am if it goes down. We are working on an architecture and a process to support deployment. It’s a work in progress; it takes time.
I am hearing large companies refer to Applied AI as being a focus on the deployment of AI, requiring people with a different skill set that is difficult to find right now.
It’s a weird combination of skills you need to have. It’s not your typical IT. The technology in AI is changing quickly. The systems are usually built by somebody who is not a software developer in the traditional sense. You need to take something done by a non-programmer and make it bulletproof.
Do you ever decide that there are some projects that are not appropriate for AI?
Yes, projects that don’t have the data available to support what you’re trying to predict. And some projects can be solved more simply, maybe without a neural network, such as with a graph that shows something is out of whack.
Has AI had an impact on the organization structure at Black & Decker? Are there some new titles?
We have new titles in data science. All companies are trying to figure out how to structure the company to support AI, and structure IT to support AI. The IT skills needed to keep up with SAP or Salesforce or whatever standard business software is in use are different from the skills needed to create an environment for data scientists to explore. When they stop exploring, they need to push the application out to production. So it is a different org chart that everybody’s trying to figure out.
So that is also a work in progress?
I think it’s always going to be a work in progress. That’s why companies reorg so often, because the world is constantly changing. New opportunities and new threats arise. Many companies are starting to embrace the digital analytics way of looking at the world and trying to figure out what that means. That is reflected in how they organize themselves.
Are you able to find and hire the talent you need to execute on your AI initiatives?
We’re trying to find people in a limited pool. We need to find people with the right technical skillset as well as the right people skills.
Do you have any advice for undergraduate students interested in a career in AI for what they should study or early career professionals and how they should focus to pursue a career in AI?
The biggest thing I would say is be an active learner. What I mean by that is that, the professor or the teacher will give you their perspective on the world and will teach you what they think are the key things you need to know, but you should always be thinking about, “Well, what is it that I need to know for my career? And what is it that I need to be proficient at?”
So, definitely use other sources besides the sources that are put in front of you. Be active about what are the things that you need, be active about what are the subjects that you need to study, and be active about going and talking with people that are doing the jobs and understanding more about what they do.
The other advice I would give, especially for people in school, is to do an internship. That internship can be a paid internship or an unpaid internship, but you want to get some experience of what corporate life is like, because it’s very different than school life. It’s more ambiguous, it doesn’t have all the answers to everything and you’re more left to be accountable to yourself. So, be an active learner and get some experience.
See Robert Joseph’s LinkedIn page.
Using AI to Improve the Accuracy of Real World Data for Clinical Assertions
By Allison Proffitt, Editorial Director, AI Trends
The 21st Century Cures Act, passed in 2016, placed additional focus on real world data to support regulatory decision making, including new indications for approved drugs. In the legislation, Congress defined real world evidence as data regarding the usage or the potential benefits or risks of a drug derived from sources other than traditional clinical trials.
Those sources can be varied including electronic health records (EHRs), claims and billing activities, product and disease registries, patient-generated data including in home-use settings, and data gathered from other sources such as mobile devices.
But how do we know if this data is accurate? It’s an important and timely question, Dan Riskin told AI Trends. Riskin is founder of Verantos and Adjunct Professor of Surgery and Biomedical Informatics Research at Stanford University.
“Real world evidence has previously not made a lot of clinical assertions,” Riskin said. “When we get drugs approved or we make reimbursement decisions, typically we do it off of clinical trials. Now we’re using real world evidence, which before had mostly been used for trial recruitment, trial design, and marketing insights—meaning no clinical assertions. Now we’re making clinical assertions with this data.”
That’s a big transition, Riskin said, and the data needs to be worthy of the new applications.
In a study published last August in the Journal of the American Medical Informatics Association (DOI: 10.1093/jamia/ocz119), Riskin and colleagues from Stanford University and Amgen conducted a retrospective study of more than 10,000 EHRs, seeking to mine the data for certain clinical concepts and compare the accuracy of AI technologies to traditional tools in using these real world datasets.
“If you’re going to run a study, you should check your data accuracy level. If you’re going to run a study to make a clinical assertion with real world evidence, you should confirm data validity,” Riskin said.
Test Case: Cardiovascular Medicine
The August study examined 10,840 EHRs from a large academic medical center from 2010 to 2016. The goal was to measure with what accuracy certain clinical concepts in cardiovascular medicine—coronary artery disease, diabetes mellitus, myocardial infarction, chronic kidney disease, stroke, dementia, and more—could be mined from the EHR, dividing the record into structured portions (EHR-S; problem list, medication list, and laboratory list) and unstructured portions (EHR-U; case notes).
Traditionally, real-world data has been derived from the structured portions of the EHR: problem, procedure, and other lists within the EHR were matched by SQL query to a list of relevant codes. But the authors hypothesized that these techniques may be insufficient to build a dataset accurate enough to support making clinical assertions. Instead, they proposed that artificial intelligence approaches could leverage unstructured clinical text, building more accurate datasets.
The team compared the findings from EHR data collected traditionally from the structured portion of the records to findings gathered with artificial intelligence tools from the unstructured data portions of the record. In both cases, they wanted to assess if the data were accurate enough to be considered “regulatory grade” or sufficiently accurate to justify the clinical assertion.
Accuracy, Riskin explained, has two components: precision and recall. Precision refers to a correct EHR: the patient did have the conditions listed in the record. Recall refers to a complete EHR: all of the patient’s conditions are included in the record. The team assumed that the EHR as a whole is complete and correct, but much of the detail may be “hidden” in physician notes, abbreviations, and shorthand.
“In general, when accuracy is measured in studies today, precision is emphasized rather than recall,” the study authors wrote. “This is not because precision is more statistically relevant than recall, but rather because precision is easier to assess.”
As a reference standard, at least two annotators manually reviewed each record in the EHR for the clinical concepts, counting how many of each occurred within both the structured and unstructured portions of the EHR, calling in a third expert if their findings didn’t agree.
The study authors set a threshold for recall and precision to indicate accurate data. Compared to the manually gathered reference standard, an 85% match was considered accurate for recall and a 90% match was considered accurate for precision. “This definition is not intended to be a set standard for all types of study questions, but rather a starting benchmark to initiate discussion,” they wrote.
The study used Verantos’ natural language processing (NLP) and machine learning inference tools on the unstructured portions of the EHR. The NLP pipeline included text extraction, section detection (which part of the EHR did text come from), information extraction and tagging, and concept assignment.
They found that for structured data portions of the EHR, mined traditionally, average recall and precision were 51.7% and 98.3%, respectively, reflecting the percentage that recall or precision measurements matched the reference standard counts for a particular condition. Scores varied for different clinical conditions. For instance, recall ranged from 29.8% for myocardial infarction to 80.6% for diabetes mellitus.
For the unstructured data portions of the EHR, mined with Verantos AI, accuracy rose significantly: 95.5% for recall and 95.3% for precision. For each clinical concept, EHR-S accuracy was below regulatory-grade, while EHR-U met or exceeded criteria.
A Heavy Lift
So far, real-world data has been collected from the “easy-to-use data” Riskin says: claims data and structured EHR data. But this study suggests that at least these structured EHR data are giving an incomplete picture.
And Riskin argues that this incomplete picture will impact quality of care as real-world evidence is used to make clinical assertions. For example, “if you’re going to change the standard of care based on an assertion from real world evidence, and your assertion is based on the wrong patient population… then you’re going to treat people who may not benefit,” he said. As would be seen given low recall in myocardial infarction, “you’re saying you should treat people for primary prevention of heart attack with this treatment, but in fact your patient population was secondary prevention and you didn’t realize it,” because your data was incomplete.
Riskin thinks accuracy should be required in the protocol. “If today we’re starting a transition to change the standard of care based on real world evidence—which is a good thing, that enables precision medicine, tailored therapies and such—if we’re starting that today, we need to start it off correctly. The first step is to put into the protocol accuracy requirements for the key data—inclusion criteria, exclusion criteria. And within the accuracy requirements you need to have both precision and recall. Even though it’s really hard.”
He continued: “We need to redo our infrastructure in real world evidence… You can already see it happening. You already see the large contract research organizations merging for data,” he said, mentioning mergers between IMS and Quintiles and INC Research and inVentiv Health. But he also says many in the industry are taking the ostrich approach: “Maybe we don’t need to do it yet.”
That’s where Verantos hopes to step in. “We’re betting that it will be really hard, and startup companies are going to have to come in and help,” he said. “This is the time we need to start actually making our real-world evidence believable.
Learn more at Verantos.
AI in Weather Forecasting: Predicting When Lightning Will Strike
By AI Trends Staff
Researchers in Switzerland have figured out how to use AI to predict when and where lightning will strike.
Researchers from École Polytechnique Fédérale de Lausanne used standard meteorological data and machine learning to build a simple system that can predict lightning strike to the nearest 10 to 30 minutes inside a radius of about 18.6 miles, according to an account in Popular Mechanics.
“We have used machine learning techniques to successfully hindcast nearby and distant lightning hazards by looking at single-site observations of meteorological parameters,” wrote the authors in a new paper published recently in the journal Climate and Atmospheric Science.
The researchers used data about past lightning strikes to build an algorithm that can make predictions about new lightning strikes, in a process called hindcasting, as opposed for forecasting. Estimates based on past events are fed into a model to see how well the output matches known results.
The team looked at four weather variables that typically lead to lightning: air pressure at station level, air temperature, relative humidity, and wind speed. The data came from 12 Swiss weather stations in urban and mountain environments between 2006 and 2017. After a learning phase, the model was said to make correct predictions 80% of the time.
The PhD student who originated the technique, Amirhossein Mostajabi, said the results would be straightforward to replicate elsewhere. “Current systems are slow and very complex, and they require expensive external data acquired by radar or satellite. Our method uses data that can be obtained from any weather station,” he said. “That means we can cover remote regions that are out of radar and satellite range and where communication networks are unavailable.”
AI Seen Capable of Improving Overall Weather Forecasting
AI could be the key to improved overall weather forecasting. Researchers with the National Oceanic and Atmospheric Administration (NOAA) and elsewhere are predicting that machine learning and other AI techniques will be able to supplement or replace major components of operating weather forecasting systems, according to an account in Earth & Space Science News. The fields of remote sensing and numerical weather prediction (NWP) are in a position to exploit the rapid advances in machine learning made in recent years.
The volume, diversity and capabilities of observations, especially satellite observations, have increased dramatically in recent years. The fundamental requirements for incorporating AI to improve weather forecasting include:
- efficient and intelligent signal and image processing
- quality control mechanisms
- pattern recognition
- data fusion (combining diverse streams of observations)
- data assimilation
- mapping (approximating functions efficiently)
- prediction capabilities
To be applied to diverse geophysical domains that include the atmosphere, ocean, biosphere, hydrosphere, and near-space environment, all the requirements would need to be addressed.
The volume of data being produced is overwhelming the ability of the system to absorb it. Global weather forecasting uses one to three percent of available satellite data, and the processing times for traditional approaches is called crippling. The Internet of Things will create even more huge volumes of environmental data, and smaller constellations of hundreds if not thousands of satellites may be launched as well.
New approaches with greater efficiency and accuracy will be needed to exploit these new resources. Trained machine learning systems based on advanced neural networks are efficient and easily implemented with modern scientific programming languages.
Several systems of NOAA are providing much of the satellite data. Satellites as part of NOAA’s Joint Polar Satellite System (JPSS) orbit approximately 500 miles (805 km) above Earth. They orbit the Earth from pole to pole up to 14 times a day. Every part of the planet is monitored twice a day, according to an account in Interesting Engineering. This provides enormous data sets about the Earth’s entire atmosphere, including clouds and ocean, at very high resolution. Meteorologists in theory would be able to use this information to predict long-term weather patterns.
In deep space, satellites operated by NOAA’s Deep Space Climate Observatory (DSCOVR) orbit one million miles (1,609,344 km) from Earth. These satellites provide space weather alerts and forecasts, monitor solar energy absorbed by the Earth every day, and record information about the ozone and aerosol levels in the Earth’s atmosphere.
Weather Forecasting is a Business Too
Companies are also investing more in weather prediction. IBM recently purchased The Weather Company and has combined its data with IBM’s Watson platform. This lead to the development of IBM’s Deep Thunder, which provides customers with hyper-local weather forecasts with .2 to 1.2-mile resolution.
Monsanto has also been investing in AI for weather forecasting, with agricultural weather predictions coming from its Monsanto Climate Corporation unit.
Read the source accounts in Popular Mechanics, Earth & Space Science News and Interesting Engineering.
Using AI to Help Find The Right Customer
By Benjamin Ross
Companies are finding unique ways to implement artificial intelligence (AI) in business practices, though the path to implementation hasn’t been an easy one.
A major issue stems from current data models being weak. It’s a fair observation, Pawel Osterreicher, Chief Revenue Officer at deepsense.ai, said during a seminar at the recent AI World Conference & Expo in Boston.
Usually we face two realities, Osterreicher says. Either customer analytics is very basic, or it’s too complex. Both realities stem from a lack of actionable data, meaning companies are not able to capture reality sufficiently in order to build models on top of the data.
“We often only build solutions around customer analytics that tackle one problem, whether it’s analyzing sales trends or one element of customer engagement such as social media. Those are partial analyses, but the fact that they’re done separately makes them only partially useful,” Osterreicher says. “On the other hand, if we want to build a comprehensive tool, the companies usually face the inherent complexities of the data that leads to a somewhat legible solution that’s hard to implement properly.”
Osterreicher’s colleague at deepsense.ai, Piotr Tarasiewicz, echoed these sentiments in a follow-up presentation, adding that our lack of data leads to a failure in the current models because the AI being applied is learning from incorrect or incomplete data.
The solution, Tarasiewicz says, is a simpler data model. Once the model is established, it will be easier to build out capabilities.
Tarasiewicz presented several use cases in which a model was established prior to any analytics being performed on data. The process is especially useful for natural language processing (NLP) capabilities, since the complexity of language and syntax is often difficult for AI models.
Osterreicher says there must be a tradeoff between simplicity and elegance, and an all-encompassing solution. Companies should also avoid the one-size-fits-all model when approaching AI, which Osterreicher believes is a mindset that creeps up when companies see AI as a genie in a bottle.
“[Companies think] if we include AI there will be some magic behind it, there will be insights, and we will see something valuable,” says Osterreicher. “But more often what we get instead is that the analytics are just OK at first glance, and understanding the data becomes a problem later on.”
In customer analytics, there are instances where the complexity of the data is “staggering,” pulling from millions and sometimes billions of customer pathways. According to Osterreicher, there is a solution to this seemingly daunting task.
“Usually the answer is to take a step back and don’t try to predict everything,” Osterreicher says. “Instead, focus on what’s important from your perspective.”
It’s an approach Tarasiewicz says bears out in the results, as specific analytics models embedded in the AI system are important when building recommendation systems, profiling clients, and understanding demand forecasts.
In order to find this important data, Osterreicher poses the question, what if the data is somewhere else? He likened the plight of the data analysts to Plato’s “Allegory of the Cave,” in which a prisoner in a cave, whose “reality” is a series of shadows on a wall, escapes to the real world to find the true world.
Quite often, the enterprises looking at the data are the prisoners looking at the distorted shadows on the cave wall, Osterreicher says. “More often than not, the data we take as the basis for our customer knowledge is far from being the all-encompassing data about the customer. Once we acknowledge this, we can look at the problem with different eyes. The task should be to see as much of the real world as we can, and not just be happy with what we have and try to make sense of it.”
Learn more at deepsense.ai.
When Humans Panic While Inside An AI Autonomous Car
By Lance Eliot, the AI Trends Insider
Don’t panic.
Wait, change that, go ahead and panic.
Are you panicked yet?
Sometimes people momentarily lose their minds and opt to panic.
This primal urge can be handy as it invokes the classic fight-or-flight instinctive reaction to a situation.
If you suddenly see a bear up ahead while in the woods, it could be that rather than carefully trying to plot out all of the myriad of options about what to do, entering instead into a panic mode might get your feet moving and you’ll have run far from the bear before it has had a chance to do anything to you. On the other hand, it could be that your effort to run away is not wise and the bear easily catches up with you, allowing the bear to win and perhaps an untoward result for you.
Not many of us will likely get into a circumstance of confronting a bear, and so let’s consider something that might be higher odds of happening to any of us.
Suppose you are in an airplane and the plane is on the ground and engaged in fire.
Presumably, with or without panic, you’d realize that you should get out of the burning airplane.
How can you get out of the burning airplane?
I’m sure you’ve all sat through the flight attendants telling you to figure out beforehand the nearest exit to your seat. I’d bet that most people don’t look to see where that exit is, and instead just kind of assume that when there’s an emergency they’ll figure out where the exit is. Or, they’ll simply follow everyone else, under the assumption that everyone else knows where the exit is and that they are heading toward it.
Understanding The Nature Of Panicking
Interestingly, recent studies seem to show that when people are in a burning airplane and you would assume they would be heading toward the exit as fast as they could, they actually often try to grab their belongings from the overhead bin first.
This creates a significant delay. This creates heightened risk of getting caught inside the burning airplane. This creates the strong possibility of dying on-board the plane. Yet, people do this anyway, in spite of the seemingly obvious aspect that you should just get off the plane.
There was a flight out of Cancun that included 169 passengers and 6 crew members, and while on the ground the plane started to get engulfed with flames. Some of the passengers opted to try and retrieve their bags before getting out of the plane. The evacuation time took over three minutes. Tests done with people getting out of the same sized plane have indicated that it should take about ninety seconds. The difference in the doubling of the time in actual practice could have led to deaths (fortunately, no deaths occurred in this Cancun instance).
A more dramatic example would be the Air France A340 in Canada that ran off the runway and the plane split into two pieces, including erupting into flames. Reports afterward indicated that about half of the passengers first retrieved their bags before getting off the plane. Remarkably, this occurred while the flight attendants were yelling to get out of the plane and not first grab your bags. I guess keeping your toothbrush safe and your other personal items in the bag that’s jammed into the overhead bin is worth possibly losing your life over.
Let’s also clarify that this act of grabbing your bag is more than just one that can harm you.
It’s one thing if you do something ill-advised and it is only you that can get hurt from it, but in the case of an airplane, the act of grabbing your bag is undoubtedly going to create a delay for other humans trying to get past you to exit from that plane. So, it’s not just a personal choice with personal consequences, it’s a choice that involves deciding whether other people should also suffer a worse fate because of your decision.
That’s an important added twist to this discussion about panic, namely contagion.
Contagion And Panic
When a person panics while in a crowd, it can have spreading consequences like a kind of virus.
One person grabs their bag, it slows down everyone else. The slowing down of others might cause them to panic more so. Their getting into a deeper panic might cause them to do something untoward, and the cycle keeps repeating with others all doing things to indirectly or directly harm others.
Indeed, it is believed that often times the grabbing of the bag in the burning airplane is done partially because others are doing a copycat.
They see one person that does it, and they opt to do the same. This could be a monkey-see, monkey-do kind of reaction. Or, it could be a follow-the-leader reaction, namely they assume that the other person knows something they don’t know, such as maybe it is prudent to grab your bag, and so they follow that leader. Or, it could be a competitive juices kind of thing, wherein you think if that person gets to keep their bag intact, you should be able to do so too.
Or, it could also be that since the other person has now created a delay by getting their bag, others might think they might as well also create a delay, but in their minds they figure they are just using the delay time that the other person has created. In other words, I see a person grab for their bag, and I calculate that the person has now created a delay of some kind. During that momentary period of delay, I’ll grab my bag too. Thus, I’ve not expanded the delay time, and instead merely efficiently used the otherwise already created delay time, and put it to good use that otherwise the time would have been me just watching the other person grab their bag.
How’s that for some impressive logic?
It turns out there are other adverse consequences beyond just the time delay of getting a bag.
People that are carrying a bag are typically going to take longer to get down the aisles and to the exit. Thus, they not only delayed others by grabbing their bag, the act of carrying the bag adds more delay too.
Furthermore, there are documented instances whereby the person carrying their bag came to the exit, saw that the chute that was inflated, and decided to toss their bag onto the chute, doing so before they jumped into the chute to slide down it. In some cases, the tossed bag actually punctured the chute. In other cases, the tossed bag hit other people on the chute, or blocked the chute and made it harder for others to slide down the chute. Similarly, the person that opts to keep their bag in their own clutches is likely to be a heavier and more awkward of a slider down the chute, often taking longer or hitting others on the chute.
In terms of the nature of panic, it is tempting to think that since on an airplane you already are vaguely aware that something can go amiss, and since the flight attendants at the start of the flight warn you about things that can go amiss, presumably there would not be much panic during an actual incident. People were forewarned that something can happen. If you are in the woods, maybe you didn’t anticipate that a bear might appear in front of you. Maybe no one warned you beforehand that these particular woods have bears. On a plane, you would certainly be aware that the plane can go on fire and that you might need to exit quickly.
I realize that you might quibble with me about the “panic” aspects of the people on the plane that grabbed their bags. You might try to argue that they weren’t panicked and instead mentally carefully weighed the risks of deciding whether to get their bags or not. In a very rational way, they decided that they had time to get their bags and that it was worthwhile to do so. If you watch videos of some of these incidents, I would suggest you see more panic-like reaction than what seems to be a chess match kind of consideration of what to do.
Ranges Of Panic Behavior
Overall, I’ll concede that there are ranges of panic.
You’ve got your everyday typical panic.
You’ve got the panic that is severe and the person is really crazed and out of their head.
You’ve got the person that seems to be continually in a semi-panic mode, no matter what the situation.
And so on.
We’ll use these classifications for now:
- No panic
- Mild panic
- Panic (everyday style)
- Severe panic
These forms of panic can be one-time, they can be intermittent, they can be persistent. Therefore, the frequency can be an added element to consider:
- One-time panic (of any of the aforementioned kinds)
- Intermittent panic
- Persistent panic
We can also add another factor, which some would debate fervently about, namely deliberate panic versus happenstance panic.
Most of the time, for most people, when they get into a panic mode, it is happenstance panic. It happens, and they have no or little control over it. It is like a wave of the ocean water that rises, reaches a crescendo, and then dissipates. There are some though that claim they are able to consciously use panic to their advantage. They wield it like a tool. As such, if the circumstance warrants, they force themselves to deliberately go into a panic mode. It is hoped or assumed that doing so might give them herculean strength or otherwise get their adrenaline going. This is somewhat debated about whether you can truly harness panic and use it like a domesticated horse.
In any case, here’s these factors:
- Happenstance panic (most of the time)
- Deliberate directed panic (rare)
Panic Related To Cars
Let’s consider how panic can come to play when driving a car.
If you watch a teenage novice driver, you are likely to see moments of panic.
When they are first learning to drive, they are often quite fearful about the driving task and the dangers involved in driving a car (rightfully so!). As long as the driving task is coming along smoothly, they are able to generally keep their wits about them. This is why it is usually safest to start by having them drive in an empty parking lot. There’s nothing to be distracted by, there are less things that can get hit, etc.
Suppose a teenage novice driver is driving in a neighborhood and a dog darts out from behind some bushes.
For more seasoned drivers, this is something that is likely predictable and that you’ve seen before. You might apply the brakes or take other evasive actions, and do so without much panic ensuing. In contrast, the novice driver might begin to feel their blood pumping through their body, their heart seems to pound incessantly, their hands grip the steering wheel with a death like grasp, their body tenses up, they lean forward trying to see every inch of the road, and so on.
Should I hit the brakes, they are thinking. Should I try to accelerate past the dog? Should I honk the horn? Should I swerve? What to do? Their mind can become muddled and overwhelmed. They might pick any of those driving options and do so out of pure panic and not due to having decided which approach was the most prudent in the situation. They probably wouldn’t have the presence of mind to look in their rear view mirror to see what is behind them, which would be handy to know, since if they do hit their brakes it could cause the car behind them to ram into their car.
Besides taking some kind of driving related action, the novice driver might do other things such as yell at the dog, which might not be sensible if the windows of the car are rolled up anyway and the dog couldn’t hear you. Or, maybe you might flail your arms, taking them off the steering wheel, as though you are trying to motion at the dog to inform it to take action like getting out of the road. These motions might have little value and not be sensible in the circumstance, but panic often leads to people doing seemingly senseless things (like grabbing their bag when exiting a burning airplane!).
Autonomous Cars And Human Panic While Inside The Vehicle
What does this have to do with AI self-driving driverless autonomous cars?
At the Cybernetic AI Self-Driving Car Institute, we are developing AI software for self-driving cars. One important aspect involves considering what humans might do while inside an AI self-driving car and how to cope with their potential panic.
For the case of the dog that darts out into the street, let’s change the scenario and assume that you are in an AI self-driving car. The AI is driving the car. You are not driving the car. Indeed, let’s go with the notion that this is a Level 5 self-driving car, which is considered the level at which the AI is the sole driver of the car.
There isn’t any provision let’s say for you, as a human, to be able to drive the car. There’s no pedals, there isn’t a steering wheel.
The driving is entirely up to the AI system.
For the levels of self-driving cars, see my article: https://aitrends.com/selfdrivingcars/richter-scale-levels-self-driving-cars/
You are an occupant in the car.
Maybe you were reading the newspaper and enjoying having the AI drive you around the neighborhood. Out of the corner of your eye, you see that a dog has suddenly darted into the street.
What do you do?
For those of us that have grown-up in an era of cars that allow humans to drive the car, I’d bet that you’d be very tempted to want to suddenly take control of the car.
You might instinctively reach for where the steering wheel used to be placed, or you might use your leg and jam downward instinctively as though you are slamming on the brakes. But, in this case, none of that is going to do any good. You are not driving the car.
As an aside, if we do ever become a society where only the AI is the driver, and you have people that have never driven a car themselves, I would guess that they won’t react as you do, in that they aren’t going to be tempted to “drive” the car, since they have always accepted the notion that it’s up to the AI to do so. Eerie, kind of.
Anyway, back to that poor dog that’s run into the street and is facing potential injury or death at the hands of the AI.
You can see that the dog is possibly going to get hit. You likely are hoping or assume that the AI is going to detect the dog being there, and will take some kind of evasive maneuver. But, in those few seconds between your realization of the situation and before the AI has overtly reacted, you aren’t sure what the AI is going to do. You don’t even know if the AI realizes that the dog is there.
I suppose if you were someone that doesn’t care about dogs or animals, you might just slump back into your seat in the car and shrug off the situation. You might think that if the car hits the dog, so be it. If the car misses the dog, so be it. Leave this up to the AI. You don’t have a dog in this fight (a great pun!).
Perhaps you have blind faith in the AI and so you again slump back in your seat. You are calm because you know that the AI will make “the right decision” which might be to avoid the dog, or might be to hit the dog since maybe it’s the lesser choice of two evils (perhaps if the AI were to swerve the car, it might injure or kill you, and so it chooses instead to hit the dog).
For my article about the ethics of AI self-driving cars, see: https://aitrends.com/selfdrivingcars/ethically-ambiguous-self-driving-cars/
For my article about the need for defensive driving tactics by AI self-driving cars, see: https://aitrends.com/selfdrivingcars/art-defensive-driving-key-self-driving-car-success/
I’m betting that the odds are high that you’ll actually be very concerned about the welfare of the dog, and also be concerned too about what the AI is going to do as a driving aspect. If the AI makes a wild maneuver, maybe it goes off the road and runs into a tree, and you get injured. Perhaps the AI doesn’t recognize that there’s a dog ahead and isn’t going to do anything other than straight out hit the dog. This could harm or kill the dog, and likely damage the car, and you might get hurt too.
Well, in this situation, you might panic.
You could potentially wave frantically in hopes that the dog will see you, but this is low odds because the car has tinted windows and the windows are all rolled-up. You might wave your arms anyway, similar to what the novice example earlier suggested might be done. You might yell or scream. You might start crying, doing so because you believe the dog is about to get harmed and your body is reacting in the moment. Your heart starts pounding, you are frantic because you can see what is about to happen but have little or no control to avert the situation.
What The AI Should Do
Here’s a question for you to ponder – what should the AI do?
Now, I’m not referring to whether the AI should hit the dog or avoid the dog, I’m instead asking what the AI should do about you, the human occupant of the self-driving car.
Few of the automakers and tech firms are considering that question right now.
They are so focused on getting an AI self-driving car to do the everyday driving task that they consider the aspects of the human occupants to be an “edge” problem. An edge problem is one that is considered not at the core of a problem. It’s something that you figure you’ll get to when you get to it. It’s not considered primary. It’s considered secondary to whatever else is primary.
The AI in our scenario is presumably focusing on the dog and what to do about the driving. That’s suitable and sensible.
Should it though also consider the humans inside the self-driving car?
Should it be observing the humans to see how they are doing?
Should it be listening for the humans to possibly say something that maybe the AI needs to know?
Suppose you were driving a car and you had a passenger in the car with you. A dog runs out into the street. The passenger in your car says to you, hey, watch out, there’s a dog there. Maybe you, as the driver, were looking to the side of the road and had not noticed the dog. Thank goodness that the passenger noticed the dog and alerted you about it. You now see the dog and take evasive action. Dog saved. Humans saved.
If the AI of the self-driving car is only paying attention to the outside world, it might miss something that a passenger inside the AI self-driving car might have noticed that it didn’t notice. Could be that the passenger provides valuable and timely information, similar to my example about the dog running into the street.
As a human driver, you already know that sometimes a passenger in your car might panic. They might see that dog, your passenger yells and screams about the dog, flails their arms, and you meanwhile are trying to keep a cool head. Yes, you see the dog. Yes, you are going to take appropriate driving action. The passenger doesn’t necessarily know this. They are just in a panic mode. They are yelling and screaming, and maybe things even worse they try to reach over and grab the wheel from you. That could be quite dangerous.
Would we want the AI to be like that calm driver that also is allowing the passenger(s) in the self-driving car to provide input, which might or might not be useful, which might or might not be timely, or do we want the AI to completely ignore the human occupants?
It is our belief that the AI should be observing the human occupants in a mode that involves gaining their input, but that it also needs to be tempered by the situation and cannot just obediently potentially do whatever the human might utter. There is already going to be a need to have interaction between the AI and the human occupants, which will arise naturally in the course of being in the self-driving car and traveling, such as the human wanting to stop someplace to get food or go to the bathroom, or the human to ask the AI to slow down so the person can see the scenery, etc.
We also believe that it will be important for the AI to at times explain what it is doing and why. If the AI had told the human occupants that there was a dog in the road and that the AI was going to swerve to avoid it, the human occupants would be at least reassured that the AI realized the dog was there and that the AI was going to take action. This interaction with the human occupants can be tricky, such as in the case of the dog in the road there might not be sufficient time to forewarn the human occupants and the tight time frame needed to react might preclude providing an explanation.
For explanation based AI and self-driving cars, see my article: https://aitrends.com/selfdrivingcars/explanation-ai-machine-learning-for-ai-self-driving-cars/
For the importance of natural language processing and AI self-driving cars, see my article: https://aitrends.com/selfdrivingcars/car-voice-commands-nlp-self-driving-cars/
For my framework about AI self-driving cars, see: https://aitrends.com/selfdrivingcars/framework-ai-self-driving-driverless-cars-big-picture/
Complexities Of Handling Human Panic
Just like you aren’t supposed to yell “Fire!” in a crowded theater (unless there is a fire, presumably), the AI cannot blindly do whatever the human might say.
Suppose the human tells the AI to come to an immediate halt and should slam on the brakes, and yet let’s say the self-driving car is going 80 miles per hour on a crowded freeway and there is a semi-truck right on the heels of the self-driving car? Does hitting the brakes in that scenario make sense? Likely not.
So, the AI needs to realize that the input to the driving task by a human occupant will need to be filtered and gauged as based on the situation. Furthermore, if the human seems to be panicked, this could be a further indicator of being cautious about whatever the human has to say. If you were a human driver and the passenger next to you seemed utterly panicked, I dare say you would likely consider their advice to be dubious and not give it as much weight in comparison to if it seemed to be carefully reasoned.
Let’s pursue further the overall notion of a human occupant and the nature of panic.
Suppose the AI is driving the Level 5 self-driving car and it’s a nice quiet and easy going drive.
The human occupant is reading the newspaper. They read a story about how the stock market is dropping. The person realizes their life savings is being drained away. They go into a panic mode. They start yelling for no apparent reason. They seem out of their head.
Most AI developers for self-driving cars would say that this is something that has nothing to do with the driving task, therefore, the AI has nothing to do with the situation. The AI should just keep driving the car. It makes no difference that the human is going nuts. If the matter doesn’t pertain to hitting a dog up ahead in the roadway, or some other matter directly linked to the driving, it has no relevance to the AI.
But, if a human was driving the car, and they had a passenger that started uncontrollably weeping or otherwise went into a panic mode, what would the human driver do? I’d bet that even if you were in an Uber or Lyft, and maybe even in a taxi, the human driver would say something to you.
Are you OK?
What’s wrong?
Besides asking those kinds of questions, it might be handy to ask too because suppose that their panic has to do with the driving of the car? You don’t know for sure that it does not. It might be handy to ascertain whether there is a connection between their apparent panic and the driving task.
Whatever underlies the panic, it could be that the panic somehow becomes pertinent to the driving task. Suppose the human occupant needs to be taken to the hospital because they believe they are having a heart attack (maybe it’s just a panic attack that feels like a heart attack)? Or, maybe they are genuinely injured and need medical care. Or, suppose the human occupant desperately needs to meet with a friend and the friend lives up ahead a mile or two? In essence, the panic of the human occupant could lead to a needed change related to the driving task, whether it be to alter where the self-driving car is going, or even how the self-driving car is being driven (such as slow down, speed-up).
It is anticipated that most AI self-driving cars will have cameras pointed not only outward to detect the surroundings of the car, but also inward too. These inward facing cameras will be handy for when you might have your children in the self-driving car, doing so without adult supervision, and you would want to see how they are doing. Or, if you are using the AI self-driving car as a ridesharing service, you’d likely want to see how people are behaving inside the car and whether they are wrecking it. All in all, there is more than likely going to be inward facing cameras.
With the use of these inward facing cameras, the AI has the possibility of being able to detect that someone is having a panic moment. Besides the audio detection by the person’s words or noises, the camera could be used in a facial recognition type of mode. Today’s facial recognition can generally ascertain if someone seems happy or sad. It won’t be long before the facial recognition will be coupled with body recognition, being able to then more comprehensively detect someone’s mood and demeanor.
Aiding Humans That Are Panicking
The AI could try to aid a person that’s in a panic mode.
For example, the AI system might seek to calm the person and reassure them. The AI system could offer to connect with a loved one or maybe even 911. Some believe that we’ll eventually have AI systems that act in a mental therapist manner, which would be easy then to include into the AI add-on’s for the AI self-driving car.
Of course, this calming effort should not detract from the AI that is intended to be operating the self-driving car, and thus any use of processors or system memory for the calming effort would need to be undertaken judiciously. Other considerations include should the AI open the windows to let in fresh air, or would it be better to keep the windows closed (maybe the panicked human might try to jump out the window!). Should the AI come to stop to let the human out, or is it safer for the human to stay inside the car. These are tough choices to be made.
Help, I’ve fallen and I can’t get up.
That’s the famous refrain from a commercial that gained great popularity.
Suppose instead we use “I’m panicking inside this AI self-driving car and I don’t know what to do” and the question arises as to what the AI of the self-driving car will do.
We assert that the AI needs to be aware of the human occupants and be attentive in case they panic. The panic might be directly related to some aspect of the AI driving task. Or, it might not be related, but the AI might end-up having to alter the driving task due to the panic mode of the human. Furthermore, the AI could potentially try to aid the human in a manner that a fellow human passenger might or that perhaps even a human therapist might.
The odds are that people are going to become panicked when in an AI self-driving car to the degree that they are unsure or feel uneasy about the AI driving the car. There will be many human occupants that will become “back seat drivers” in that they are desirous of giving advice to the self-driving car, and also reacting as to the driving by the AI. Some AI developers have even suggested that the human occupants should not be allowed to look out the windows of the self-driving car, since all that it will do is get those pesky humans into a panic mode whenever the AI needs to make a tricky maneuver.
Some believe that the AI does not have any obligation to placate or aid the human occupants. In this view, the AI drives the car. Period. It’s like a chauffeur that will only listen to you about whether to drive home or to the store, and nothing else.
Maybe the initial versions of the AI would be that simplistic, but it would seem unwise to stop there.
The AI needs to be fully able to contend with all aspects of the driving task, which means not just the pure mechanics of driving down a street and making turns. It means instead to be the captain of the ship, so to speak, and be able to aid the passengers, even when they go into a panic. Of course, we also need to make sure that the AI doesn’t itself go into a panic mode.
But, that’s a story for another day.
Copyright 2019 Dr. Lance Eliot
This content is originally posted on AI Trends.
[Ed. Note: For reader’s interested in Dr. Eliot’s ongoing business analyses about the advent of self-driving cars, see his online Forbes column: https://forbes.com/sites/lanceeliot/]

