Making sense of machine learning

Making sense of machine learning

As Matt Asay observed last week, AI appears to be reaching “peak ludicrous mode,” with almost every software vendor laying claim to today’s most hyped technology. In fact, Gartner’s latest Hype Cycle for Emerging Technologies places machine learning at the Peak of Inflated Expectations.

Hang on — see what I did there? I used “AI” and “machine learning” interchangeably, which should get me busted by the artificial thought police. The first thing you need to know about AI (and machine learning) is that it’s full of confusing, overlapping terminology, not to mention algorithms with functions that are opaque to all but a select few.

This combination of hype and nearly impenetrable nomenclature can get pretty irritating. So let’s start with a very basic taxonomy:

Artificial intelligence is the umbrella phrase under which all other terminology in this area falls. As an area of computer research, AI dates back to the 1940s. AI researchers were flush with optimism until the 1970s, when they encountered unforeseen challenges and funding dried up, a period known as “AI winter.” Despite such triumphs as IBM’s 1990s chess-playing system Deep Blue, the term AI did not recover really from its long winter until a few years ago. New nomenclature needed to be invented.

Machine intelligence is synonymous with AI. It never gained the currency AI did, but you never know when it might suddenly become popular.

Machine learning is the phrase you hear most often today, although it was first coined in the 1950s. It refers to a subset of AI in which programs feed on data and, by recognizing patterns in that data and learning from them, execute functions or make predictions without being explicitly programmed to do so. Most of the recent advances we hear about fall under the rubric of machine learning. Why is it so hot today? You often hear that Moore’s Law and cheap, abundant memory have given new life to old machine learning algorithms, which have led to a wave of practical applications, particularly relating to pattern recognition. That’s true, but even more important has been the hyperabundance of data to enable machine learning systems to learn.

Cognitive computing has been the phrase preferred by IBM and bestowed on its Jeopardy winner Watson. As best as I can determine, cognitive computing is more or less synonymous with AI, although IBM’s definition emphasizes human interaction with that intelligence. Some people object to the phrase because it implies human-like reasoning, which computer systems in their current form are unlikely to attain.

Neural networks are a form of machine learning dating back to early AI research. They very loosely emulate the way neurons in the brain work — the objective generally being pattern recognition. As neural networks are trained with data, connections between neurons are strengthened, the outputs from which form patterns and drive machine decisionmaking. Disparaged as slow and inexact during the AI winter, neural net technology is at the root of today’s excitement over AI and machine learning.

Deep learning is the hottest area of machine learning. In most cases, deep learning refers to many layers of neural networks working together. Deep learning has benefited from abundant GPU processing services in the cloud, which greatly enhance performance (and of course eliminate the chore of setting up GPU clusters on prem). All the major clouds — AWS, Microsoft Azure, and Google Cloud Platform — now offer deep learning frameworks, although Google’s TensorFlow is considered the most advanced. If you want a full explanation from someone who actually understands this stuff, read Martin Heller’s “What deep learning really means.” Also check out his comparative review of the six most popular machine/deep learning frameworks.

Despite the current enthusiasm for deep learning, most machine learning algorithms have nothing to do with neural nets. As I discovered a couple of years ago when I interviewed Dr. Hui Wang, senior director of risk sciences for PayPal, advanced systems often use deep learning in conjunction with linear algorithms to solve such major challenges as fraud detection. The almost unlimited ability to pile on not only deep learning layers, but also a wide variety of other machine learning algorithms — and apply them to a single problem — is one reason you’ve heard those cautionary verses about machine intelligence one day approaching human intelligence.

Just last December, another milestone was reached: An AI system known as DeepStack beat professional poker players for the first time at heads-up no-limit Texas hold’em poker, which unlike chess is a classic game of “imperfect” information (i.e., players have information that others do not have). That’s less than a year after Google’s AlphaGo system beat world champion Lee Sodol in the ancient Chinese game of Go.

So AI’s fever pitch is understandable, but Matt Asay’s ridicule still hits home. As with many hot trends, it’s all too easy to grandfather in prosaic existing technology (I mean, predictive text is technically AI). The other problem is that very few people understand much in this area beyond the superficial, including me. How many people who throw around phrases like k-means clustering or two-class logistic regression have a clear idea of what they’re talking about? For most of us, this is black box territory (though a good primer can help, such as this one from the University of Washington computer science department). Ultimately, it takes experts like Martin Heller, who along with polyglot programming skills has a Ph.D. in physics, to evaluate AI solutions.

This week promises to be a big one for AI and machine learning: Salesforce will be showing off its Einstein AI capability and at the Google Next conference, the agenda features no less than 20 sessions on machine learning. I was hoping to attend the “TensorFlow and Deep Learning without a Ph.D.” session, but it’s already full.

Source: InfoWorld Big Data

6 small steps to digital transformation

6 small steps to digital transformation

The phrase “digital transformation” is wearing a little thin, as marketers twist it into a pitch for whatever they’re trying to sell. So let’s settle on a broad yet simple meaning: The journey from inflexible platforms, products, and workflows to a “permanently agile” condition.

InfoWorld Contributing Editor Dan Tynan and I make the argument for this definition in a new Deep Dive you can download here. Naturally, the details of transformation vary infinitely depending on the organization. Yet commonalities persist in nearly all cases, such as devops, cross-silo collaboration, and big data analytics.

But how do you get there from here? As with any big initiative, you need to start small. At the C-level, digital transformation speaks to a burning desire to jump on new business opportunities and reduce the cost of operations. The challenge for IT pros and developers is to pick a project and execute in a way that provides a transformative example. These general guidelines, derived from real-world cases, may help point the way:

1. Sell the real potential

In pursuing digital transformation, business management often seems driven by an envy of high-flying digital natives like Google or Uber or Snapchat. Right away, you need to disabuse zealots of the notion that if you dump a bunch of technology in the hopper, everything will change overnight.

Yet the buzz around digital transformation presents a very real opportunity. The most important changes often end up being organizational, such as breaking down silos to foster collaboration or enabling lines of business to spin up their own projects continually without laborious authorization processes. You don’t want to start by pitch organizational disruption, though — you want to demonstrate real benefits.

Chief among them is the ability to bring products or applications to market much, much faster, which is the big payoff of agility. So identify a project you’re 90 percent sure will prove your point.

2. Pick the right project

Some organizations have already plunged into transformation with, say, IoT initiatives that reach into core products or processes that differentiate the business. Companies such as GE or Ford come to mind.

But beginning your transformational journey with a core initiative is almost impossible, unless a champion at the top of the company drives it. In most cases, the best place to focus is on web and mobile applications that target customers and need to change frequently.

Pay special attention to customer-facing applications that have the potential to drive new revenue quickly. From an IT professional’s perspective, an important aspect of digital transformation is to shift the emphasis from cost reduction to revenue generation. Also remember that this should not be a one-and-done project. The point is to create an environment where you can iterate and refine applications as needs change and as evidence points to how applications can be improved.

It goes without saying that collaboration with business stakeholders is essential, from both political and logistical standpoints. Your success should be their success, and business objectives must be well understood from the start, with feedback solicited continuously along the way.

3. Assemble the right team

The seeds of change always lie within — in the form of people looking for a better way. Sometimes they’re people who have been around a while and feel frustrated by standard procedure yet carry vital institutional knowledge. In other cases, they’re new recruits who are less entrenched in the usual way of doing things and may already have the necessary skills in agile tools, platforms, and methodologies.

Very likely, you’re going to need both types on your team. You need fresh thinking and people motivated and talented enough to spin up a devops skunkworks. But new applications need to be integrated with legacy systems and procedures, so you also need people who really understand that stuff well yet want to get beyond the old, boring way of doing things. Best case, a team like this (or at least the core of it) already exists, so you won’t need to assemble it from scratch.

4. Put devops to work

I’m going to make the assumption that devops has not already been established in your organization. If it has been, particularly at scale, then you’re well on the path to digital transformation. The next hurdle may be to apply devops to the bespoke software that defines a company’s core business, from manufacturing software to collaborative design platforms to logistical systems. (That stuff is heavily guarded. Good luck.)

Otherwise, laying the devops groundwork is the most important step in getting transformation off the ground. Devops dictates that software developers should be empowered to provision their own environments, while operations should have the ability to automate continuous, reliable deployment at scale. It makes agile development — where stakeholders review applications in progress, provide feedback, and change direction if necessary — possible in the real world.

If you’re still mired in waterfall development or have implemented a bureaucratic form of agile development that runs counter to the whole idea, implementing devops could be a very big lift. You may need a smaller project or stipulate that team members should already be fluent in true agile and/or devops methodologies. Either way, you’re going to want to avoid a long procurement cycle for new hardware and software for your project.

5. Choose your cloud

Unless you’re explicitly prevented from doing so, you’ll want to spin up your “transformative” project in the public cloud. AWS, Azure, Google Cloud Platform, and IBM Bluemix all offer cloud platforms with the services you need to get almost any devops project off the ground. By nature, pretty much everything in the cloud is self-service, which is a key aspect of digital transformation. Your team can get what it needs with a credit card and avoid the internal procurement bureaucracy.

Which cloud you choose should depend on the skills of your team and the nature of your applications. For example, if they’re Microsoft developers, they most likely will be most comfortable in the Azure cloud. If your applications will tap machine learning, your team may want to give Google Cloud’s exciting TensorFlow API a whirl. And of course, AWS offers the widest array of cloud services on earth.

Remember that a big part of your intent is to prove the worth of devops. Typically, the devops toolchain begins with GitHub or Bitbucket code repositories, which are their own independent cloud services. Jenkins has become the default platform for continuous integration and is supported by all the major public clouds. When it’s time to deploy, you may choose an industrial-strength configuration management solution such as Puppet, Chef, Ansible, or Salt — or opt for cloud templates such as AWS’s Cloud Formation. All the major clouds now support Docker, which enables you to spin up applications in containers, which are much more lightweight and portable than VMs.

Another consideration is whether or not to adopt a full-fledged PaaS. The PaaS offerings Cloud Foundry and OpenShift are available on most of the leading clouds, with Azure also offering its own Service Fabric PaaS. The major PaaS offerings all support Docker containers.

6. Measure, analyze, report

Digital transformation is all about iteration and continuous cycles of improvement. To know what to improve, you need a deep view of how your applications perform — there’s little point to agility unless you have an informed idea of what to do next.

Much of the data collected from customer-facing applications tends be semi-structured: clickstreams, time-series data, event log files, and so on. All the major public clouds include a bundle of big data technologies (generally centering on the distributed processing frameworks Spark and Hadoop) to operate on the semi-structured stuff, typically transforming the results so that SQL analytics software can handle it. Once converted, it can be mashed up with existing SQL data such as transaction records, product data, pricing information, and so on to gain new insights.

With these tools, you can collect and analyze the information you need to prove the success of your project and point the way toward continuous improvement. BI tools such as Tableau, Qlik Sense, or Microsoft Power BI deliver powerful visualizations that can showcase your results.

Show your work

You may have noticed that these first steps to digital transformation are really about spinning up a successful devops initiative. That’s because, when implemented correctly, devops has the potential to vastly increase the efficiency of software development — and software now embodies nearly every aspect of business.

But the organizational implications are just as profound. Most large organizations still maintain silos, and essential to digital transformation is the ability to breach those silos and pull together ad hoc groups that span business and technology factions. That’s one reason why, from the start, you need a business champion who will commit to staying involved throughout your project’s lifecycle.

A successful devops project is just a first step. What you really want to put in place is a platform — and a culture — for experimentation, which by definition results in projects that “fail fast” as well as succeed. If you pick the right projects to show agility’s benefits, the cultural change should follow.

Source: InfoWorld Big Data