Highlight

Những điều thú vị khi dùng Trí tuệ nhân tạo của Viettel

Những người dùng Internet tại Việt Nam thường lấy “chị Google” ra để… giải trí. Khi “chị” đọc văn bản hay chỉ đường cho người tham gia gi...

Saturday, June 3, 2017

Artificial intelligence - wonderful and terrifying - will change life as we know it

"The year 2017 has arrived and we humans are still in charge. Whew!"
That reassuring proclamation came from a New Year's editorial in the Chicago Tribune.
If you haven't been paying attention to the news about artificial intelligence, and particularly its newest iteration called deep learning, then it's probably time you started. This technology is poised to completely revolutionize just about everything in our lives.
If it hasn't already.
robot1
Experts say Canadian workers could be in for some major upheaval over the next decade as increasingly intelligent software, robotics and artificial intelligence perform more sophisticated tasks in the economy. (CBC News)
Today, machines are able to "think" more like humans than most of us, even the scientists who study it, ever imagined.
They are moving into our workplaces, homes, cars, hospitals and schools, and they are making decisions for us. Big ones.
Artificial intelligence has enormous potential for good. But its galloping development has also given rise to fears of massive economic dislocation, even fears that these sentient computers might one day get so smart, we will no longer be able to control them.
To use an old fashioned card playing analogy, this is not a shuffle. It's a whole new deck — and with a mind of its own.
Sunday Edition contributor Ira Basen has been exploring the frontiers of this remarkable new technology. His documentary is called "Into the Deep: The Promise and Perils of Artificial Intelligence."

Haunted by science fiction

Ira Basen – June 2, 2017
Remember HAL?
The HAL 9000 computer was the super smart machine in charge of the Discovery One space station in Stanley Kubrick's classic 1968 movie 2001: A Space Odyssey. For millions of moviegoers, it was their first look at a computer that could think and respond like a human, and it did not go well.
In one of the film's pivotal scenes, the two astronauts living in the space station try to return from a mission outside the spacecraft, only to discover that HAL won't allow them back in.
"Open the pod bay doors, please, HAL," Dave, one of astronauts, demands several times.
"I'm sorry Dave, I'm afraid I can't do that," HAL finally replies. "I know that you and Frank were planning to disconnect me, and I'm afraid that's something that I can't allow to happen."  
The astronauts were finally able to re-enter the spacecraft and disable HAL, but the image of a sentient computer going rogue and trying to destroy its creators has haunted many people's perceptions of artificial intelligence ever since.

Deep learning

For most of the past fifty years, those negative images haven't really mattered very much. Machines with the cognitive powers of HAL lay in the realm of science fiction. But not anymore. Today, artificial intelligence (AI) is the hottest thing going in the field of computer science. 
Governments and industry are pouring billions of dollars into AI research. The most recent example is the Vector Institute, a new Toronto-based AI research lab announced with much fanfare in March and backed by about $170 million in funding from the Ontario and federal governments, and gig tech companies like Google and Uber.
The Vector Institute will focus on a particular subset of AI called "deep learning." It was pioneered by U of T professor Geoffrey Hinton, who is now the Chief Scientific Advisor at the Institute. Hinton and other deep learning researchers have been able to essentially mimic the architecture of the human brain inside a computer. They created artificial neural networks that work in much the same way as the vast networks of neurons in our brain, that when triggered, allow us to think.
"Once your computer is pretending to be a neural net," Hinton explained in a recent interview in the Toronto office of Google Canada, where he is currently an Engineering Fellow, "you get it to be able to do a particular task by just showing it a whole lot of examples." 
So if you want your computer to be able to identify a picture of a cat, you show it lots of pictures of cats. But it doesn't need to see every picture of a cat to be able to figure out what a cat looks like. This is not programming the way computers have been traditionally been programmed. "What we can do," Hinton says, "is show it a lot of examples and have it just kind of get it. And that's a new way of getting computers to do things." 

"Summoning the demon"

For people haunted by memories of HAL, or Skynet in the Terminator movies — another AI computer turned killing machine — the idea of computers being able to think for themselves, to "just kind of get it", in ways that even people like Geoffrey Hinton can't really explain, is far from re-assuring.
They worry about "superintelligence" — the point at which computers become more intelligent than humans, and we lose control of our creations. It's this fear that has people like Elon Musk, the man behind the Tesla electric car, declaring that the "biggest existential threat" to the planet today is artificial intelligence. "With artificial intelligence," he asserts, "we are summoning the demon".
System Shock 2 SHODAN
SHODAN, the malevolent artificial intelligence from System Shock 2. (Irrational Games/Electronic Arts)
People who work in AI believe these fears of superintelligence are vastly overblown. They argue we are decades away from superintelligence, and we may, in fact, never get there. And even if we do, there's no reason to think that our machines will turn against us.
Yoshua Bengio of the University of Montreal, one of the world's leading deep learning researchers, believes we should avoid projecting our own psychology onto the machines we are building.
"Our psychology is really a defensive one," he argued in a recent interview. "We are afraid of the rest of the world, so we try to defend from potential attacks." But we don't have to build that same defensive psychology into our computers. HAL was a programming error, not an inevitable consequence of artificial intelligence.
"It's not like by default an intelligent machine also has a will to survive against anything else," Bengio concludes. "This is something that would have to be put in. So long as we don't put that in, they will be as egoless as a toaster, even though it could be much, much smarter than us. 
So if we decide to build machines that have an ego and would kill rather than be killed then, well, we'll suffer from our own stupidity. But we don't have to do that." 
Humans suffering from our own stupidity?  When has that ever happened?
Feeling better?

Apple’s developer’s conference may highlight artificial intelligence

SAN JOSE — With iPhone sales slowing and the last new Apple product released two years ago, expectations are building for what the company will reveal next week at its annual Worldwide Developers Conference.
Some Apple watchers are counting on artificial intelligence.
With Facebook, Microsoft and Google emphasizing AI in their conferences over the past two months, market analysts believe it is Apple’s turn. As the race for artificial intelligence heats up in Silicon Valley, some worry that Apple is already behind the game.
“If Apple skips AI, I would consider that a significant miss on their opportunity,” said John Jackson, a Boston-based analyst for IDC. “Apple is late to this game. There is no other trick up their sleeve around this.”
Apple, long known for its secrecy, declined to discuss specifics of the event but emailed a statement that its global developer community has earned more than $70 billion since the App Store launched in 2008.
 Rumors and early reports indicate the Cupertino tech giant may release a new iPad pro, and according to Bloomberg, a Siri-controlled home speaker to challenge Amazon Echo and Google Home.
Gene Munster, a venture capitalist at Loup Ventures and a longtime Apple watcher, said a home speaker would be a step in the right direction for Apple.
“Artificial intelligence is fundamental to every company now,” Munster said. “We knew Apple was going to improve on Siri, and (the speaker) seems to line up. It makes logical sense.”
In addition to the Siri speaker, rumors of a new 10.5-inch iPad Pro, a 12.9-inch iPad Pro 2, an updated MacBook Pro and a new iOS 11 have circulated on the Internet.
In preparation for next week's Apple Developers Conference, the McEnery Convention Center facade gets a decorative re-skinning Friday, June 2, 2017, in San Jose, Calif. (Karl Mondon/Bay Area News Group)
In preparation for next week’s Apple Developers Conference, the McEnery Convention Center facade gets a decorative re-skinning Friday, June 2, 2017, in San Jose, Calif. (Karl Mondon/Bay Area News Group) 
The five-day conference to be attended by more than 5000 developers — who each paid $1599 after winning a lottery — is moving from San Francisco to San Jose, where it will be held for the first time since 2002. Apple CEO Tim Cook will give the keynote speech in McEnery Convention Center at 10 a.m. on Monday. His speech will be streamed live on Apple’s website, or through the WWDC iOS app.
Some experts pushed back on the notion that Apple is behind in the AI race, saying Siri is not the only AI-driven technology built by Apple. But they acknowledged that companies such as Amazon and Google have made smart AI-driven devices marketable — Google identifies itself as an AI first company — as Apple has mostly worked behind closed curtains.
“For the average Joe on the street, AI for Amazon is Echo and Alexa,” said Carolina Milanesi, analyst at Creative Strategies. “Apple just chose not to label everything AI. Apple chose to let our experience with its devices speak for itself. But I think we are at a point where AI does matter in the advertising spiel.”
In recent years, Apple has seen a decline in the sales of its main products, most noticeably the iPhone. Apple reported 50.8 million iPhones sold worldwide in the second quarter of 2017, down from 51.2 million a year earlier. Expectations are that Apple will unveil a new iPhone in the fall for the device’s 10th anniversary.
Apple Watch, its latest product from 2015, saw its 2016 sales number double from the year before, according to Cook in the last earnings call. Apple does not release Apple Watch sales numbers, but some analysts have estimated about 12 million of the devices were sold last year.
If reports of a Siri home speaker are correct, Apple will be entering a growing smart home market with a closing window of opportunity. Both Amazon Echo and Google Home proved to be commercial successes. At its I/O conference in May, Google announced more features to its Home speaker, including the ability to place free calls, connect with Bluetooth and control more apps such as HBO Now and Hulu.
Apple’s Siri speaker reportedly comes with a virtual surround sound technology that give it an edge in sound quality over its competitors, according to Bloomberg.
But the biggest draw may be its compatibility with other Apple devices and services. The speaker will likely be connected to the iPhone and Apple TV and services like Apple Music and the HomeKit home automation system.
Although skeptical that current Amazon Echo owners will switch over to the Apple speaker, analysts believe Apple may be able to bridge the gap.
“Apple has done a great job sewing up households as Apple households,” said Jackson. “A lot of us own iPhones and MacBooks. But it hasn’t been central to their messaging. Creating this type of innovation is darn hard, so they’re late.”

Global Artificial Intelligence and Cognitive Computing Report 2017-2022: Market Outlook for Communications, Applications, Content, and Commerce

Dublin, June 02, 2017 (GLOBE NEWSWIRE) -- Research and Markets has announced the addition of the "Artificial Intelligence and Cognitive Computing: Market Outlook for Communications, Applications, Content, and Commerce 2017 - 2022" report to their offering.

Artificial Intelligence (AI) represents machine-based intelligence, typically manifest in "cognitive" functions that humans associate with other human minds. There are a range of different technologies involved in AI including Machine Learning, Natural Language Processing, Deep Learning, and more. Cognitive Computing involves self-learning systems that use data mining, pattern recognition and natural language processing to mimic the way the human brain works.

This research assesses the AI ecosystem, technologies, solutions and market outlook. Key industry verticals covered include use of AI in Internet related services and products, Financial Services, Medical and Bio-informatics, Manufacturing, and Telecommunications. Some of the key application areas covered include Marketing and Business Decision Making, Workplace Automation, Predictive Analysis and Forecast, Fraud Detection and Classification.

The report provides detailed forecasts globally, regionally, and across the following market segments: 

- Predictive Analysis and Forecasting
- Marketing and Business Decision Making
- Fraud Detection and Classification
- Workplace Automation

Select Research Findings: 

- Data Mining will be a leading global segment for AI, reaching $8.5B in revenue by 2022
- Combination of AI and cognitive computing to propel market growth in key industry verticals
- Substantial opportunities for data mining software and platform developers to create algorithms
- AI to take on substantive digital security role as signature-based protection not sufficient for industry
- AI to become a core component of virtually all online communication, digital content, and commerce
- AI to become extensively embedded in many solutions, apps, products and services including predictive analytics, automated laboratories and factories, self-driving cars and unmanned vehicles

Select Report Benefits: 

- Forecasts for AI regionally and across industry verticals 2017 - 2022
- Identify key AI functions for communications, content, and commerce
- Recognize important intellectual property topic areas and patent holders
- Understand challenges and opportunities for AI in workplace automation
- Understand the market direction and future of AI and cognitive computing
- Identify opportunities for AI to improve productivity across industry verticals

Target Audience: 

- Artificial Intelligence companies
- Big Data and analytics companies
- Robotics and automation companies
- Cloud and Internet of Things companies
- Investment firms focused on automation
- Product and service providers of all types
- Governments and NGO R&D organizations

Key Topics Covered:

1 Introduction
1.1 Research Background
1.2 Research Scope
1.3 Organizations in Report

2 Executive Summary

3 Artificial Intelligence
3.1 Overview
3.2 Market Definitions
3.2.1 Client
3.2.2 Intelligent Software Agent
3.2.3 Problem Solving
3.3 Practical Approaches to AI
3.4 Machine Learning
3.4.1 Supervised Learning
3.4.2 Unsupervised Learning
3.4.3 Semi-supervised Learning
3.4.4 Reinforcement Learning
3.5 Deep Learning
3.5.1 Artificial Neural Networks
3.6 Cognitive Computing
3.7 AI Algorithms in Applications
3.7.1 Natural Language Processing
3.7.2 Machine Perception
3.7.3 Data Mining
3.7.4 Motion and Manipulation
3.8 Limitations and Challenges for AI Expansion
3.9 Artificial Intelligence Opportunities and Drivers
3.10 Artificial Intelligence and Digital Security

4 Intellectual Property Leadership by Country and Company
4.1 Global AI Patents
4.2 AI Patents by Leading Countries
4.3 Global Machine Learning Patents
4.4 Machine Learning Patents by Leading Countries
4.5 Machine Learning Patents by Leading Companies
4.6 Global Deep Learning Patents
4.7 Deep Learning Patents by Leading Countries
4.8 Global Cognitive Computing Patents
4.9 Cognitive Computing Patents by Leading Countries
4.10 AI and Cognitive Computing Innovation Leadership

5 Global Market for Artificial Intelligence
5.1 Global Markets for AI 2017 - 2022
5.2 Global Market for AI by Segment 2017 - 2022
5.3 Regional Markets for AI 2017 - 2022
5.4 AI Market by Key Application 2017 - 2022
5.4.1 AI Markets for Predictive Analysis and Forecast 2017 - 2022
5.4.2 AI Market for Marketing and Business Decision Making 2017 - 2022
5.4.3 AI Market for Fraud Detection and Classification 2017 - 2022
5.4.4 AI Market for Workplace Automation 2017 - 2022

6 AI in Select Industry Verticals
6.1 Market for AI by Key Industry Vertical 2017 - 2022
6.1.1 AI Market for Internet-related Services and Products 2017 - 2022
6.1.2 AI Market for Telecommunications 2017 - 2022
6.1.3 AI Market for Medical and Bio-Informatics 2017 - 2022
6.1.4 AI Market for Financial Services 2017 - 2022
6.1.5 AI Market for Manufacturing and Heavy Industry 2017 - 2022
6.2 AI in other Industry Verticals

7 AI in Major Market Segments
7.1 AI Market by Product Segment 2017 - 2022
7.2 Market for Embedded AI within other Technologies 2017 - 2022
7.2.1 AI Algorithms in Data Mining 2017 - 2022
7.2.2 AI in Machine Perception Technology in 2017 - 2022
7.2.3 Market for AI Algorithms in Pattern Recognition Technology 2017 - 2022
7.2.4 Market for AI Algorithm in Intelligent Decision Support Systems Technology 2017 - 2022
7.2.5 Market for AI Algorithms in Natural Language Processing Technology 2017 - 2022

8 Select Companies and Solutions
8.1 Apple Inc.
8.2 Facebook
8.3 Google
8.4 IBM
8.5 Microsoft

9 Important AI Patents 2010 - 2015

For more information about this report visit http://www.researchandmarkets.com/research/gz6k7r/artificial



CONTACT: Research and Markets
Laura Wood, Senior Manager
press@researchandmarkets.com
For E.S.T Office Hours Call 1-917-300-0470
For U.S./CAN Toll Free Call 1-800-526-8630
For GMT Office Hours Call +353-1-416-8900
U.S. Fax: 646-607-1907
Fax (outside U.S.): +353-1-481-1716
Related Topics: Artificial Intelligence 

Artificial Stupidity: When Artificial Intel + Human = Disaster

Sorry, real robots won't be this cute and friendly.
Fictional robots like BB-8 in Star Wars look like geniuses next to today’s artificial intelligences.
APPLIED PHYSICS LABORATORY: Futurists worry about artificial intelligencebecoming too intelligent for humanity’s good. Here and now, however, artificial intelligence can be dangerously dumb. When complacent humans become over-reliant on dumb AI, people can die. The lethal track record goes from the Tesla Autopilot crash last year, to the Air France 447 disaster that killed 228 people in 2009, to the Patriot missiles that shot down friendly planes in 2003.
War Algorithm logoThat’s particular problematic for the military, which, more than any other potential user, would employ AI in situations that are literally life or death. It needs code that can calculate the path to victory amidst the chaos and confusion of the battlefield, the high-tech Holy Grail we’ve calling the War Algorithm (click here for the full series). While the Pentagon has repeatedly promised it won’t buildkiller robots — AI that can pull the trigger without human intervention — people will still die if intelligence analysis software mistakes a hospital for a terrorist hide-out, a “cognitive electronic warfare” pod doesn’t jam an incoming missile, or if a robotic supply truck doesn’t deliver the right ammunition to soldiers running out of bullets.
Second, the US military has bet on AI to preserve its high-tech advantage over rapidly advancing adversaries like Russia and China. Known as the Third Offset Strategy, this quest starts from the premise that human minds and artificial intelligence working together are more powerful than either alone. But all too often, humans and AI working together are actually stupider than the sum of their parts. Human-machine synergy is an aspiration, not a certainty, and achieving it will require a new approach to developing AI.
IHMC photo
Matt Johnson
“If I look at all the advances in technology … one of the places I don’t think we’re making a lot of advances is in that teaming, in that interaction (of humans and AI),” saidMatt Johnson, a Navy pilot turned AI researcher, at a conference here last week. The solution requires “really changing the questions we’re asking when we design these systems,” he said. “It involves branching the design of these systems out of the world of just engineering… and into a bigger world that involves human factors and social implications, ethical implications.”
“You can’t engineer out stupid. People are always going to have that option,” Johnson said to laughter. “However, as engineers and designers you can certainly help them avoid going down that path.”
Paul Scharre
Paul Scharre
Unfortunately, engineers and designers often try to “solve” the problem of human error by minimizing human input, military futurist Paul Scharre told me in an interview. “When people design these systems, they’re trying to design the human away,” he said, “but if you want human-machine teaming” — the mantra of the Pentagon’s Offset Strategy — “you have to start with the human involved from day one.”
Yes, you need do a good job designing “the machine itself,” of course, Scharre said, but that’s not enough. “The system that you want to have to accomplish the task consists of the machine, the human, and the environment it’s in.”
Google image, screencapped from Youtube
Google’s AlphaGo program decisively defeated champion human Go players.
The Ambiguity Problem
AI is beautifully suited for environments where everything is mathematical and clear; messy situations, not so much. For example, computers have handily beaten the best human players both at chess and Go. Both games are so subtle and complex that there are more potential moves than there are atoms in the universe. Google’s AlphaGo program has even been praised for creative play, coming up with strategies no human ever thought of.
But chess and Go are both literally black-and-white. What each piece can do is strictly defined. At any given moment, each piece is in a specific place on the grid, never in-between. And each move contributes either to victory or defeat.
Johns Hopkins University photo
Suchi Saria
AIs can analyze hundreds of past games and decide, “If I made this move, I often win. It’s a good move… If  I often lose, it’s a bad move,” said Suchi Saria, a Johns Hopkins assistant professor, at the AI conference.There’s no ambiguity — no weather, no mud, no human emotion.
Things aren’t so straightforward, Saria said, if you apply artificial intelligence to a situation where cause and effect are often unclear. She researches the use of AI in medicine, but AI on battlefields would also apply. A human doctor can read between the lines of the reported symptoms to diagnose a difficult patient, or a human commander with what Clausewitz called coup d’oeil can intuit where the enemy is vulnerable, because of the so-far unique human ability to absorb enormous amounts of information and make the right choice even when much of the data is contradictory. AI can’t do either, yet.
To teach AIs about ambiguous, complex situations, designers often use something called machine learning, but the technique is limited. Sometimes, AIs learn the wrong thing, like the Microsoft’s Tay chatbot that started making racist tweets within hours of going online, or the image-recognition software that tagged a photo of a baby with a toothbrush as “a young boy is holding a baseball bat.” Sometimes AIs learn the right thing about the specific situation that they’ve been trained on but can’t apply it to other, similar situations.
http://cs.stanford.edu/people/karpathy/deepimagesent/
An example of the shortcomings of artificial intelligence when it comes to image recognition. (Andrej Karpathy, Li Fei-Fei, Stanford University)
“How well does it generalize, generalize to new environments that are a little bit different from the training data?” Suria asked. In her research, she found, “as soon as you start taking the testing environment and deviating from your training environment, your generalization suffers.”
How do you design an AI to guard against such failures? “They need to know when they don’t know,” Suria said. “They need to identify when is it that they’re observing something that is new and different from what they’ve seen before, and be able to say to the (human supervisor), ‘I’m not so good at that.'”
“Automation is pretty brittle,” Scharre told me. “If you can understand well the parameters of the problem you’re trying to solve, like chess — chess is a pretty bounded problem — you can program something to do that better than a human….When you go outside the bounds of the program behavior, (however) it goes from super smart to super dumb in an instant.”
Tony Stark (Robert Downey Jr.) relies on the JARVIS artificial intelligence to help pilot his Iron Man suit. (Marvel Comics/Paramount Pictures)
Tony Stark (Robert Downey Jr.) relies on the JARVIS artificial intelligence to help pilot his Iron Man suit. (Marvel Comics/Paramount Pictures)
Coming Soon
So how do you keep artificial intelligence — and the humans using it — from going stupid at the worst possible time? We explore the problems and solutions in depth in the next two stories of our series on military AI, The War Algorithm:
Fumbling the Handoff, running Monday, will look at getting AI to ask for human input in ambiguous situations — like the Tesla crash and the Patriot friendly-fire incident — without the human getting caught off guard, panicking, and making things worse — which is what killed everyone on Air France 447.
Learning to Trust will look at making AI more transparent — and perhaps more human-like — so human beings will trust and use them.

2017 is the year of Artificial Intelligence

It has been estimated that the UK economy could have a boost of £654billion by 2035, should we choose to embrace artificial intelligence.
As such, 30% of existing UK jobs could be automated over the next 15 years. 

This could lead to a huge social shift in the workplace, and while jobs will be lost, new ones will be created and productivity will be boosted.
This will likely also influence students and their subject choices, as well as courses and modules offered by universities.

Opinions of artificial intelligence

OnBuy.com have interviewed consumers to find out their opinions of this:
- 61% felt that daily processes in the workplace would be streamlined. 
- 46% believe that dangerous roles will be completely taken over by artificial intelligence
- 38% believe it will increase opportunties
- 24% feel that artificial intelligence will make processes faster and increase revenue
- 21% think that artificial intelligence will not have a negative effect on current job roles

2017: The catalyst year

It is been reported by Inc Magazine that 2017 is the "year of artificial intelligence". It is thought that this is the catalyst year that will really instigate the shift. Greg Clark, business secretary, has announced that robotics and artificial intelligence will receive £93 million. This is part of the government's £1billion industrial strategy fund, which was created in the 2015 spending review. By investing in areas which will draw innovative companies to specific sectors in the UK, it aims to boost production and build a "modern, dynamic and global trading nation". 

Effects on UK industries

So, which UK industries will benefit the most from artificial intelligence?
UK Industry Artificial Intelligence
As can be seen from the graph above, the top three business sectors most likely to really see the benefits areengineering (45%), administration (40%) and customer service (31%). These are all businesses that are heavy in administration, so would definitely benefit from automation and see an increase in productivity. 

Closing thoughts

A report by Gov.uk said the following:
Britain has a distinct competititve advantage in A.I. Housing some of the world's most innovative artificial intelligence companies, and a rich ecosystem of investors, employers, developers and clients, the UK is a fast-growing area for research and commercial investment by major global digital companies.
Interestingly, in a report conducted by insidesales.com, 38% of respondents admitted that they think the use of artificial intelligence may hold value in the workplace, despite feeling distrustful of it.
Whatever your opinions of artificial intelligence, it looks like it is set to make monumental changes to studies and the workplace over the decades to come. 

Tuesday, May 30, 2017

Artificial Intelligence could double NZ's growth rate

AUCKLAND 30 May 2017 - Accenture is today releasing research - Why Artificial Intelligence is the Future of Growth - which shows New Zealand’s growth rate could double between now and 2035 if emerging technologies are embraced.
Accenture New Zealand Technology Lead, Mary-Anne McCarthy says New Zealand could use innovative artificial intelligence (AI) technologies as a tool to transform our thinking about how growth is created, and significantly boost labour production.
“AI has the potential to boost labour productivity, driven by innovative technologies enabling people to make more efficient use of their time.
There has been a marked decline in the ability of increases in capital investment and in labour to propel economic progress, yet long-term pessimism is unwarranted. AI has the potential to overcome the physical limitations of capital and labour and open up new sources of value and growth.”
For New Zealand to capitalise on the opportunities presented by AI, more must be done to develop AI technologies in the workplace and wider society, says Ms McCarthy.
“Focus needs to be on how AI and emerging technologies can be spread and scaled across society, such as AI’s ability to create a new virtual workforce, complement and enhance the skills and ability of existing workforces and physical capital, and thirdly, drive innovations in the economy.
The research shows that New Zealand’s technology businesses are leading global players in facilitating the absorption of emerging technologies, just behind Finland, Sweden and the Netherlands. However, it also revealed that New Zealand is lagging behind many developed countries in terms of its readiness to integrate innovation and technologies in to the wider economy.
Also, the rate at which AI is becoming deeply ingrained in New Zealand’s economy, sparking organisational and social transformations, is behind that of most other developed countries, according to the research.
Accenture New Zealand Technology Lead, Mary-Anne McCarthy says there a number of steps that New Zealand can take to realise the potential for AI as a key driver of economic growth.
“The next generation needs to be prepared for the advent of AI. The division of tasks between man and machine are changing, and policy makers need to re-evaluate the type of knowledge and skills imparted to future generations.”
Currently, technology education goes in one direction: that is, people learn how to use machines, but increasingly this will change as machines learn from humans and humans learn from machines. With this, more technical skills will be required to design and implement AI systems.
It’s vital to update and create adaptive laws to close the gap between the pace of technological change and the pace of regulatory response, says Ms McCarthy.
“Ethical debates should be supplemented by tangible standards and best practices in the development and use of intelligent machines.
Policymakers should highlight how AI can result in tangible benefits and pre-emptively address any perceived downsides of AI, thereby helping groups disproportionately affected by changes of employment and income.
“AI is poised to transform business in ways we’ve not seen since the impact of computer technology in the late 20th century. It’s up to New Zealand to grasp the opportunity and run with it,” says Ms McCarthy.

A Look into the Future - Source Code Generation by the Bots

Introduction

Software development technologies have been evolved to fulfill growing demand and capabilities of hardware and methodologies. Role of automation in software development plays a more and more significant role in order to simplify manual labor. Examples of the software development automation include systems of code build managers, static code analyzers, tests, and so on.
On the other hand, researches in the field of artificial intelligence and robotics show significant progress. The family of software that are named “bots” is intensively growing. The bots implement predefined logic, and their power is limited practically by the hardware only. Modern software development technologies can be applied for building bots that in their turn can perform software development tasks.
This article describes a general conception of creating Software Development Bots and tries to show the conception from perspectives of modern software development approaches. The description is supplied by two practical examples demonstrating the idea.
The purpose of this article is inspiration of readers to study modern programming techniques and apply them in real life. Through this article, the author has just showed his small idea and hopes that readers help him to improve the article by giving him their feedback.

How to Read this Article

The reader, for his/her convenience, should pay attention to two main key sections of the article:
  • "The Idea" contains theoretical description
  • "The Bot" describes the practical realization of two Software Development Bots
Thus, the reader who wants to see how the bots work by running the examples can read chapter "The Bot" first. The reader can also look at chapter "Contents" to find the section he/she wants.

Abbreviations

ATDCGAutomated Test-Driven Code Generation
SDBSoftware Development Bot
TDCGTest-Driven Code Generation
TDDTest-Driven Development

Contents

The Idea

Evolution of Software Development

The initial question that has inspired the author to make a research in field of SDBs was read as "How the software development technologies are being developing?". Understanding of trends of evolution of the software development technologies is important because this knowledge helps in creating vision of the future. The previous general stages of programming paradigms (programming techniques) can be briefly described as the following:
  1. Sequence of commands. The early stage in programming era when hardware was weak and a single programmer developed a single program. The programs were developed consecutively in a non-structured way.
  2. Structured programming. Growing of scope of the problems to be solved required growing of programming code volume and better management of this volume. The codes were combined into block structures.
  3. Object Oriented Programming. Code block structures grew and finally were combined into new kind of structures named Objects. Number and complexity of relations between the code blocks also grew. New types of relations that are peculiar to the objects were introduced (encapsulation, inheritance, polymorphism, access levels, and so on). The programming model reflected features of the complex system where different standalone units have state and are capable of performing specific operations within one common environment and stepped close to the actors and processes of the real life.
The questions are: what is the next step, in what direction do programming methods evolve?

Simplified TDD Procedure

TDD is an evolutionary approach to development which combines test-first development where a test is written before development or refactoring of the production code. TDD is not a simple programming technique but both an important agile requirement and agile design technique. The goal of TDD is to write clean code that works.
TDD is a convenient way to explain the main idea of the article. Taking TDD as a basis for the further explanation gives a clear path to describe the methodology of TDCG.
Full TDD process contains phases where code is being refactored and the tests assure correct operation of the code. In case where creating of new code is only needed, but not refactoring is supposed, the TDD procedure can be simplified. The considered simplified TDD procedure can have the following phases: creating the tests first, developing the software unit, and possibly repeating development tasks until the code passes the test phase.
The following diagram presents possible simplified TDD process.
Test Driven Development
Almost all information sources describe TDD tasks paying attention to the fact that some processes can be automated that reduce manual work. There is one important characteristic that should be emphasized. Automated tasks are run by the proven algorithms and are stable, but manually performed tasks can introduce errors. In other words, developers of the tests and software are responsible for quality of their work. Thus main tasks of the considering simplified TDD procedure can be described from the point of view of responsibility:
  • Creating the tests – is the key task that can impact the quality of the entire developed software unit.
  • Running the tests – is the proven automatic process that does not introduce errors itself (in practice / we assume it).
  • Development of the software – is performed by the programmer but the tests assure the quality of his/her work that reduce responsibility of the programmer for his/her work.
Although the article includes consideration of reducing programmer's responsibility for his/her work, it means that the quality of the work is assured only by the tests. Other quality indexes, such as code readability, time spent for development, code performance are not considered in this article for keeping the explanation simple.

Test-Driven Code Generation

Raphael Marvie describes Test-Driven Code Generation (TDCG) technique in his article "An Introduction to Test-Driven Code Generation" [Marvie. 2006]. He described TDCG in the context of TDD process.
The current article considers automatic code generation as a separate technique that is not a part of TDD. But, the considered technique has a close relation to TDD and other information technologies. Since the automated code generation that is being considered is based on the previously written tests also, it can be named as Automated Test-Driven Code Generation ATDCG.
The above mentioned reasoning shows that only running the tests is automated, but creating the tests and developing of the software are manual tasks in TDD (strongly speaking, these tasks can be / are automated partially, but not completely). Due to the fact that the quality (passing the tests) of the software development tasks is controlled automatically, the development can also be completely automated.
Role of humans can be contracted only to create the tests. From the business perspective, it means that humans will create and describe requirements for the software units and the units will be created automatically according to these requirements.
Thus, the automatic software development can be presented as an evolution of simplified TDD process that was considered above.
Test Driven Development / 2 Components

Automated Testing

Classical approaches of automated software testing have a characteristic named “code coverage”. Code coverage is a measure used to describe the degree to which the source code of a program is executed when a particular test suite runs. Small value of the code coverage means that there is code that does not automatically tested.
ATDCG technique can create code that is fully covered by the tests, because the code is created from scratch. In other words, it has 100% code coverage. Thus, if the code coverage is a good indicator for classical testing approach, it cannot be used to measure success for the ATDCG.
New indicator that measures actual business problem coverage by the tests should be introduced. This fact moves measurement of the success from software development sphere to the system/business analysis.
This measure will not be discussed in this article to keep simplicity of reading and more narrowly follow the subject. But the fact that there are issues requiring further research that should be emphasized.

Role of Tests in ATDCG

Creating tests in ATDCG is the only task performed manually. And the tests are the main driver of the automatic software unit creation process and at the same time, assure quality of the process. Thus, the tests in ATDCG have the following characteristics:
  • Entire ATDCG process and quality of the result are dependant on how the tests were created
  • Creating the tests is the major and sensitive task in ATDCG
  • Creating the tests has more close relations to the business requirements and more far from creating software codes than classical approach
  • There is demand to perform research and develop methodology and rules of creating the tests for ATDCG

Machine Learning

As it was mentioned, the quality of units being developed by ATDCG completely depends on the tests. Creating of the tests in its turn relates to a bigger extent to the business requirements than to the programming. Most likely, the tests will contain a large number of rules. From other point of view, the tests will be described in a declarative way and contain or refer to a large number of data.
Because the tests creation process relates to the business requirements, these data should have abstraction level that is high enough to give the test creator a convenient way to develop tests based on the business requirements. High abstraction level and large number of data for the test design will lead to increase of complexity compared to the classical testing approach.
Thus, creating of the tests and running of the ATDCG can be described as:
  • Creating test in declarative form and considering amount of real physical data (for example, indexes of the business process)
  • Consider created tests or part of it as the training data for automatic creation of the software unit
These observations show a strong relation of ATDCG to Supervised Machine Learning. Therefore, theory and techniques of Supervised Machine Learning can be used in ATDCG.

Social Impact

ATDCG supposes automation of software development tasks and free programmers from this role. At the same time, the role of the analyst and creator of the tests becomes the key for successfully running the ATDCG. But ATDCG requires development of itself. Moreover, development of ATDCG will obviously meet two rules of Unix programming [Raymond. 2003]:
  • Rule of Economy: Programmer time is expensive; conserve it in preference to machine time
  • Rule of Generation: Avoid hand-hacking; write programs to write programs when you can
Therefore, ATDCG can be considered as a software development technology that opens additional opportunities but not a limitation, nor an overturn. At the same time, it also opens opportunities and demand in further research on the matter.

The Bot

A bot is a "software robot" (Wikipedia). This section describes creation of two SDBs:
  • Bot 1 - The simplest example that demonstrates key concept of the SDB. Performance of this bot does not allow to get real result in reasonable time period
  • Bot 2 - The bot with improved performance that produces results in 5-10 minutes (Intel I7 CPU)

The Problem

The article is trying to give an explanation that is as simple as possible to present the general conception of the technique. In this context, the minimal software unit can be just a simple function represented by one code line written on the high level language.
Both examples have purposes of creating a simple function of type f(a,b) on C# language based on training data. The test will check equivalence of output value of the function for input in each case.

Training Data

Input arguments (a and b) and output values (f) are presented in the following table:
abf
3821463
41180
5172645
1232313
621150
2038599
2543849
319113
40341779
Actually, these data were built using polynomial function f=a2+5b+9. This fact allows to check correct operations of created SDBs. In the real world, the objective function as well as test is most likely unknown and can be very complex.
The bot should find the function that is equal to the mentioned polynom. But the result can be any combination of its summands. See chapter Results to see that the bot discovers several functions implementing calculations according to the training data.

Bot 1

As it was mentioned above, Bot 1 is the simplest example that demonstrates key concept of the SDB. Performance of this bot does not allow to get real result in a reasonable time period. But the code is the simplest among other possible solutions.
The bot creates function of type f(a,b) on C# language that has a look as the following snippet:
namespace Program
{
    public class WorkingClass
    {
        public static int F(int a, int b)
        {
            return XXXXXXXXXXXXXXXX;
        }
    }
}
This snippet contains the code inclusion implementing the function formula in place marked as XXXXXXXXXXXXXXXX. The bot should find this code line. All other text is known and forms complete C# program that can be compiled into the library.
The code inclusion is built using the alphabet consisting of four arithmetic operations (-, +, *, /), two variables (aand b), and nine digits (1, 2, 3, 4, 5, 6, 7, 8, 9).
The algorithm that is implemented by the bot is simple as well:
  • Step 1. Building the code by insertion into the place XXXXXXXXXXXXXXXX the symbols that are randomly selected from the alphabet
  • Step 2. Compile the code into RAM. If compilation fails, go to Step 1
  • Step 3. Run the function for training dataset
  • Step 4. Compare the actual function output and results from training dataset. Go to Step 1 if values for any case differ
  • Step 5. Print the found function
The algorithm was implemented on C#, using reflection, and dynamic code generation.

Performance

Performance of the simple algorithm is dramatically poor. Number of different combinations of symbols taken from the alphabet is about 41 mln. (if we use 4 operations and 5 variables). Simple iteration requires huge computation volume. Such big number of iterations cannot be performed on modern personal computer in reasonable time period. The author managed to find one solution by running 4 instances of bot on Intel I7 4-core CPU in 10 days.
Although Bot 1 has extremely poor performance, its source code is very simple. Its code is not included into the article as the text, but it could be downloaded (see chapter Using Code). The code is quite simple and commented and the author hopes it is readable enough to understand how it works.

Bot 2

Bot 1 can be used to understand the easiest algorithm of automatic creating software code and study required programming language commands. But it cannot be used to see the result conveniently. The author included improved version of the same bot and named it as Bot 2 to get the result in reasonable time period.
Bot 2 implements Genetic Algorithm that significantly reduces time to find the solution. It allows to get the result in 5 - 20 minutes on Intel I7 CPU running one thread. Bot 2 is written using a bit more complex code. But the code is also commented and should not be difficult to understand.

Results

Several results generated by Bot 2 are presented on the pictures below. The reader can pay attention to the generated C# code and running time. The reader can download the source code and run the example himself (see chapter Using the Code).
The bots can be easily upgraded to write created code directly into *.cs file and even create Visual Studio project structure. The author did not do such an upgrade trying to keep the source code simple.
Results 1
Results 2
Results 3
Results 4
Results 5

Future Development

The current article shows the possibility of creating SDBs. But it cannot be used in practice now. It can benefit and take benefits from relating technologies, such as the Machine Learning, Data Mining, TDD, Automatic Code Generation, and so on.
Future development of ATDCG can involve experience of building Compilers and Code Analyzers. Mature bots could create software units avoiding use of high level languages and compilation stage. They could create the units that are composed from Microsoft Intermediate Language (binary representation) commands or Java byte codes. This can significantly speed up the code generation process.
At the moment, the ATDCG methods can be studied and developed by enthusiasts. Researches on the matter should be also take place. The theoretical research will create a base to understand the benefits of ATDCG and how to implement them practically.

Using the Code

The code includes Bot 1 and Bot 2 that were created and run in the following environment:
  • Development: Microsoft Visual Studio Community 2015
  • Compilation: Microsoft .NET Framework 4.5, Any CPU
  • Platform: Microsoft Windows 8.1, 64-bit, CPU: Intel I7
The reader can download examples either at the top of the article or right here:
Both examples use one thread when run. Several instances can be run simultaneously, but it runs CPU in mode with maximum power consumption. Such load can overheat computer if it is not designed for intensive CPU use for long time calculations. Bot 2 produces result quite quickly and should not overload the hardware. But the author does not recommend to run several instances of Bot 1 for a long time period.