On Intelligence – Two Views

Anitha sent me a link and asked for my opinion about this article – Artificial Intelligence or Intelligence Augmentation. What’s in a name?

She likes everything in brief – ideally 100 words. Me, I like to pontificate, take my time (in words, I mean), and ramble a bit.

There are three reasons why I think AI as Augmenting Human Intelligence:

  1. Humans have to be in the loop to teach AI. In supervised learning, they are designing the training sets, doing feature engineering and other tweaks. In reinforcement learning they are provided with feedback through reinforcement signals.
  2. Humans will figure out where to apply AI, how to apply AI and how to interpret and improve the results.
  3. There may be some situations when the AI may be autonomous – like in space robots or in some hazardous situations where humans cannot get involved in real time.

As AI learns more and discovers new insights, humans will use them to move them to the next higher level. In my opinion, humans and AI co-evolve. This is the process of Augmenting Human Intelligence.

Machine Learning, Software Engineering and the (not so) Mysterious Relationship Between the Two

A few links on Machine Learning and Software Engineering. The first one talks about how to explain machine learning to a software engineer and why software professionals need to pay attention to ML. It is both a tool and a bit of a threat.

The second article compares the way we build software and how it differs from building ML applications.

How to Explain Machine Learning to a Software Engineer

Software engineering is about developing programs or tools to automate tasks. Instead of “doing things manually,” we write programs; a program is basically just a machine-readable set of instructions that can be executed by a computer.

Now, machine learning is all about automating automation! Instead of coming up with the rules to automate a task such as e-mail spam filtering ourselves, we feed data to a machine learning algorithm, which figures out these rules all by itself. In this context, “data” shall be representative sample of the problem we want to solve — for example, a set of spam and non-spam e-mails so that the machine learning algorithm can “learn from experience.”

Software Engineering vs Machine Learning Concepts

Not all core concepts from software engineering translate into the machine learning universe. Here are some differences I’ve noticed.

A few thoughts:

  • ML and Software development will co-evolve. Software will be used to build tools for building ML. ML will automate automation. Since software is the current tool for automation, ML will replace many of the software activities. Does this pose a threat to software profession?
  • Do we need a different mindset for building ML apps, compared to building software? What principles of software development can be reused while building ML apps?
  • Can ML help us build better software by improving the building process?
  • The software industry is one of the heaviest users of tools for automating their own work. Various low-level (assembly), high-level (Java, C++, C#) and very high-level (Python, Ruby) languages and their associated tool chains simplified building applications. Now we have tools for not only building software, but debugging, profiling, optimizing,  and managing it.  Is ML going to be another one of these tools? Will these new class of ML apps take software as input and produce better software as output?

Little Bits of Knowledge

I am changing the name of this blog to Little Bits of Knowledge.

This blog will be accessible from Little Bits of Knowledge or lbok. There are three reasons for this change.

  1. The new name reflects what I want to focus on, going forward.
  2. By removing my name, I can have more guests posting in this blog in future.
  3. I want to curate more posts and occasionally write new ones. I feel I can share and contribute better that way. This inspiration comes from Four Short Links.

So you will see shorter more frequent posts here.

ReadLog: When Leaders Think Aloud…

When leaders think aloud, it is a fascinating to listen. Satya talks about innovation, handling failures, AI, advances in cloud computing, using silicon to speed machine learning and a variety of other topics including bits of history (of Microsoft) and philosophy.

satya may 2 2017-1

Microsoft had been there, too early.  And they were too far behind on the Internet and managed to catch up.

On handling failures – instead of saying “I have an idea”, what if you said, “I have a new hypothesis”?

satya May 2 2017

Satya Nadella goes on to talk about some of their innovations (accelerating AI using FPGA), on investing in the future and the future of innovation. This article is a good read.

Q&A with Microsoft CEO Satya Nadella: On artificial intelligence, work culture, and what’s next