1. 程式人生 > >Programmers Should Get Into Machine Learning

Programmers Should Get Into Machine Learning

Programmers should get involved in the field of machine learning because they are uniquely skilled to make huge contributions.

In this post you will learn that as a programmer it can be easy to overlook the skills you have and overvalue those things you don’t know. You will learn about four opportunities for programmers to start making an impact in the field of machine learning almost immediately.

Professional Development Practices

The discipline of professional software development (or software engineering if you like that term) is all about how to the design, implementation and maintenance of reliable software systems that solve problems. Your skills as a developer are valuable and you can apply them to the field of machine learning.

Here are some examples:

  • Structure: When developing software, you structure a project. For example, there is a directory for source code, one for assets, one for documentation, and if you’re using a compiled language you have a directory for binaries. Using a well defined structure for a software development project is a best practice that introduces separation and consistency that supports collaboration. Anyone on the project will know where to make contributions to the project, and when same convention is adopted across projects, anyone in the organization can quickly navigate the project.
  • Automation: In a software project, you use build systems to automate common tasks for the project. Whether you are using a Make, Ant, Rake or any similar build system, it is natural to take common development tasks and put them as targets that can be repeated a whim, and organized into hierarchies of increasing leverage.
  • Repeatability: The convention-based structure you apply to projects and the automation you achieve with build systems allow tasks in a given project to be 100% repeatable. Anyone can check out the project and build it. Anyone can follow the release process and build a binary or deploy an update to the website. Repeatability is a default when developing software systems.
  • Testability: A class has one responsibility, a function does one thing. Simplification of systems creates small modular code that can be tested. You write automated tests as a measure of quality control to demonstrate unambiguously that the code does what it was designed to do and to detect any regressions you introduce when changes are made.
  • Maintainability: The behaviours above lead to one of the most important factors of professional software development which is maintainability. A successfully completed software project will spend most of it’s life in maintenance. Development is only a small fraction of the overall life of a piece of software, maintenance is the norm. We make software maintainable by making it structure, automated, repeatable, and testable.
software development

Photo credited to xJason.Rogersx, Some rights reserved

These practices of professional software development can be brought over to the field of machine learning. They can have the most effect in the early phases of a machine learning project. Three examples include:

  • When data is being derived from the original source into a form suitable for a given learning method. This process can be made automated and repeatable and the derived data stored in a directory structure separate from the original source.
  • When different machine learning methods are being tested to see which is the most appropriate for the problem. The testing of methods can be automated so that the results are repeatable and can be repeated if (when) bugs are found in the testing protocol.
  • When a method is selected and implemented to address a complex problem. It can be designed to be tailored to the problem and implemented to be testable and well documented to ensure it meets the broader requirements of the project, including nonfunctional requirements such as acceptance criteria on the performance and accuracy of the algorithm.

Production Level Implementations

A novel machine learning method is typically proposed by a machine learning researcher or team of researchers. It is common for a novel method to be presented with a prototype or demonstration implementation of the algorithm.

A problem is that the code is written by researchers that may or may not be trained in the discipline of software development. Nevertheless, the goal of the implementation is to present a working prototype of the method.

If a business or other organization is looking to harness one of these power tools, their options are limited. They may decide to adapt and run the prototype code in their production system. It is common for research code to be released under no obvious licence or sometime a permissive open source license. The code will be written to address toy problems for demonstration purposes and the programming quality of the system may be variable, although in some cases can be only good enough to demonstrate the proof of concept.

The only real option is to reimplement the method using good software engineering practices. There is an opportunity for developers to implement production level implementations of powerful machine learning methods that are in demand. In addition to getting a job to this effect you can also develop production quality software tools, libraries and APIs that organizations could use to address their problems.

Get the Word Out

Machine learning methods are presented in the languages of research, such as dry research papers, academic presentations, monographs, lectures, and textbooks. There are power tools that are effectively hidden away from mainstream software development, even mainstream applied machine learning. This is a fact. The migration of useful methods from research to operations can take decades.

There is an opportunity for programmers that know some machine learning to find out about what methods are working and help to get the word out. You will have to learn just enough to be able to recognize these gems and have the imagination to think about where the methods could be applied in business or online, and have the ability to communicate or even implement those ideas. You don’t even need be a developer to take this on.

Put Machine Learning in Applications

As a programmer, you already know how to make applications for users. They may be applications on the web, mobile or on the desktop, or even something else more exotic. Perhaps the biggest opportunity for programmers like you is to put machine learning methods in the applications you are developing.

This is not as big and scary as you may initially believe. Remember that machine learning methods address a specific decision problem. Incorporating machine learning means identifying a complex problem in your application that can appropriately be solved by machine learning or more likely build an application around a suitable problem. It also means that you need to learn enough machine learning to make this happen, but you have already started that journey.

In this post you learned that programmers should get into machine learning because programmers are uniquely skilled to make huge contributions. Four contributions that programmers can make to the field of machine learning are:

  • Bring professional software development practices to machine learning projects.
  • Build production-level implementations of machine learning methods.
  • Get the word out for novel machine learning methods
  • Put machine learning methods in applications.

What are some software development practices that you think could make a big difference when experimenting and testing machine learning algorithms? Leave a comment.

相關推薦

Programmers Should Get Into Machine Learning

Tweet Share Share Google Plus Programmers should get involved in the field of machine learning b

Programmers Can Get Into Machine Learning

Tweet Share Share Google Plus In this post I want to show you that programmers can get into mach

Why Get Into Machine Learning?

Tweet Share Share Google Plus Discover Your Personal Why And Finally Get Unstuck In this post,

Four key considerations for enterprises starting their journey into machine learning Business Technology

It is enabling functionality ranging from personal shopping recommendations to automated customer support through to financial fraud detection and complian

4 Challenges Faced by Organizations before Venturing into Machine Learning

Businesses contemplating to implement machine learning (ML) are faced with a number of challenges, ranging from the ignorance of its benefits to the inadeq

How To Get Better Machine Learning Performance

Tweet Share Share Google Plus 32 Tips, Tricks and Hacks That You Can Use To Make Better Predicti

[Javascript] Classify text into categories with machine learning in Natural

bus easy ann etc hms scrip steps spam not In this lesson, we will learn how to train a Naive Bayes classifier or a Logistic Regression cl

Microsoft's machine learning tools for developers get smarter

It's a big day for Microsoft today, which announced a slew of updates across virtually all of its product lines at its Ignite conference today. Unsurprisin

How businesses can build fairness into their machine learning models

Enterprise-wide deployments of AI are constrained by the requirements of scaling any new system or technology: transparency, security, and the application'

Machine Learning, Artificial Intelligence, and How the Two Fit into Information Security

Everywhere I look, someone's talking about machine learning (ML) or artificial intelligence (AI). These two technologies are shaping important conversation

Top Machine Learning Algorithms You Should Know to Become a Data Scientist

There are two ways to categorize Machine Learning algorithms you may come across in the field. Generally, both approaches are useful. However, we will focu

Machine Learning Embeds Harrison Ford Into Disney's 'Solo' Star Wars Movie

Derpfakes uses the same tools from the controversial porn to make experimental face-swapped movie and TV footage. The account has posted videos from Toy St

How machine learning is helping marketers get the edge

Some say marketing is an art. Sure, being creative with your slogans, copywriting and other marketing collateral is important but the'art' component should

Machine Learning Moves Into Fab And Mask Shop

Multi-beam uses many beamlets in parallel. Source: IMS Semiconductor Engineering sat down to discuss artificial intelligence (AI),

How Beginners Get It Wrong In Machine Learning

Tweet Share Share Google Plus The 5 Most Common Mistakes That Beginners Make And How To Avoid Th

How To Load Your Machine Learning Data Into R

Tweet Share Share Google Plus You need to be able to load data into R when working on a machine

5 Mistakes Programmers Make when Starting in Machine Learning

Tweet Share Share Google Plus There is no right way to get into machine learning. We all learn s

How To Get Started With Machine Learning Algorithms in R

Tweet Share Share Google Plus R is the most popular platform for applied machine learning. When

Get Your Data Ready For Machine Learning in R with Pre

Tweet Share Share Google Plus Preparing data is required to get the best results from machine le

How Do I Get Started In Machine Learning?

Tweet Share Share Google Plus I get daily emails asking the question: How do I get started in ma