James D. McCaffrey

Last updated

James D. McCaffrey
OccupationSoftware engineer, author
Employer Microsoft Research
Known for Machine learning
Website jamesmccaffrey.wordpress.com

James D. McCaffrey is an American research software engineer at Microsoft Research known for his contributions to machine learning, combinatorics, and software test automation.

Contents

Education

McCaffrey earned a BA in experimental psychology from the University of California, Irvine, a B.A. in applied mathematics from California State University, Fullerton, an M.S. in computer science information systems from Hawaii Pacific University, and a Ph.D. in interdisciplinary computational statistics and cognitive psychology from the University of Southern California. [1]

Career

Prior to joining Microsoft, McCaffrey was the Associate Vice President of Research at Volt Information Sciences in Redmond, Washington, supporting the needs of software engineers at Microsoft.[ citation needed ] He joined Microsoft as a software engineer in 2006 and worked on various Microsoft products, including Exchange Server, Azure, and Bing.[ citation needed ] He then became a research software engineer at Microsoft Research, where he directs the internal Microsoft AI School, focusing on creating machine learning and artificial intelligence algorithms. He is the Senior Technical Editor for Microsoft's Visual Studio Magazine. [1]

His research at Microsoft primarily focuses on machine learning. His other research interests include combinatorics, especially when applied to human behavior such as sports betting and Blackjack Switch, as well as "software systems which have designs influenced by the behavior of biological systems such as swarm intelligence optimization and simulated bee colony algorithms and their application to data mining. [1]

Selected bibliography

See also

Related Research Articles

<span class="mw-page-title-main">Artificial neural network</span> Computational model used in machine learning, based on connected, hierarchical functions

Artificial neural networks (ANNs), usually simply called neural networks (NNs) or neural nets, are computing systems inspired by the biological neural networks that constitute animal brains.

<span class="mw-page-title-main">Machine learning</span> Study of algorithms that improve automatically through experience

Machine learning (ML) is a field of inquiry devoted to understanding and building methods that 'learn', that is, methods that leverage data to improve performance on some set of tasks. It is seen as a part of artificial intelligence. Machine learning algorithms build a model based on sample data, known as training data, in order to make predictions or decisions without being explicitly programmed to do so. Machine learning algorithms are used in a wide variety of applications, such as in medicine, email filtering, speech recognition, agriculture, and computer vision, where it is difficult or unfeasible to develop conventional algorithms to perform the needed tasks. A subset of machine learning is closely related to computational statistics, which focuses on making predictions using computers, but not all machine learning is statistical learning. The study of mathematical optimization delivers methods, theory and application domains to the field of machine learning. Data mining is a related field of study, focusing on exploratory data analysis through unsupervised learning. Some implementations of machine learning use data and neural networks in a way that mimics the working of a biological brain. In its application across business problems, machine learning is also referred to as predictive analytics.

For supervised learning applications in machine learning and statistical learning theory, generalization error is a measure of how accurately an algorithm is able to predict outcome values for previously unseen data. Because learning algorithms are evaluated on finite samples, the evaluation of a learning algorithm may be sensitive to sampling error. As a result, measurements of prediction error on the current data may not provide much information about predictive ability on new data. Generalization error can be minimized by avoiding overfitting in the learning algorithm. The performance of a machine learning algorithm is visualized by plots that show values of estimates of the generalization error through the learning process, which are called learning curves.

Neural network software is used to simulate, research, develop, and apply artificial neural networks, software concepts adapted from biological neural networks, and in some cases, a wider array of adaptive systems such as artificial intelligence and machine learning.

Neurorobotics is the combined study of neuroscience, robotics, and artificial intelligence. It is the science and technology of embodied autonomous neural systems. Neural systems include brain-inspired algorithms, computational models of biological neural networks and actual biological systems. Such neural systems can be embodied in machines with mechanic or any other forms of physical actuation. This includes robots, prosthetic or wearable systems but also, at smaller scale, micro-machines and, at the larger scales, furniture and infrastructures.

<span class="mw-page-title-main">Learning to rank</span> Use of machine learning to rank items

Learning to rank or machine-learned ranking (MLR) is the application of machine learning, typically supervised, semi-supervised or reinforcement learning, in the construction of ranking models for information retrieval systems. Training data consists of lists of items with some partial order specified between items in each list. This order is typically induced by giving a numerical or ordinal score or a binary judgment for each item. The goal of constructing the ranking model is to rank new, unseen lists in a similar way to rankings in the training data.

<span class="mw-page-title-main">Symbolic regression</span> Type of regression analysis

Symbolic regression (SR) is a type of regression analysis that searches the space of mathematical expressions to find the model that best fits a given dataset, both in terms of accuracy and simplicity.

<span class="mw-page-title-main">Deeplearning4j</span> Open-source deep learning library

Eclipse Deeplearning4j is a programming library written in Java for the Java virtual machine (JVM). It is a framework with wide support for deep learning algorithms. Deeplearning4j includes implementations of the restricted Boltzmann machine, deep belief net, deep autoencoder, stacked denoising autoencoder and recursive neural tensor network, word2vec, doc2vec, and GloVe. These algorithms all include distributed parallel versions that integrate with Apache Hadoop and Spark.

The following table compares notable software frameworks, libraries and computer programs for deep learning.

<span class="mw-page-title-main">Microsoft Cognitive Toolkit</span> Deep learning framework by Microsoft Research

Microsoft Cognitive Toolkit, previously known as CNTK and sometimes styled as The Microsoft Cognitive Toolkit, is a deprecated deep learning framework developed by Microsoft Research. Microsoft Cognitive Toolkit describes neural networks as a series of computational steps via a directed graph.

<span class="mw-page-title-main">Keras</span> Neural network library

Keras is an open-source software library that provides a Python interface for artificial neural networks. Keras acts as an interface for the TensorFlow library.

<span class="mw-page-title-main">Outline of machine learning</span> Overview of and topical guide to machine learning

The following outline is provided as an overview of and topical guide to machine learning. Machine learning is a subfield of soft computing within computer science that evolved from the study of pattern recognition and computational learning theory in artificial intelligence. In 1959, Arthur Samuel defined machine learning as a "field of study that gives computers the ability to learn without being explicitly programmed". Machine learning explores the study and construction of algorithms that can learn from and make predictions on data. Such algorithms operate by building a model from an example training set of input observations in order to make data-driven predictions or decisions expressed as outputs, rather than following strictly static program instructions.

<span class="mw-page-title-main">Caffe (software)</span> Deep learning framework

Caffe is a deep learning framework, originally developed at University of California, Berkeley. It is open source, under a BSD license. It is written in C++, with a Python interface.

<span class="mw-page-title-main">PyTorch</span> Open source machine learning library

PyTorch is a machine learning framework based on the Torch library, used for applications such as computer vision and natural language processing, originally developed by Meta AI and now part of the Linux Foundation umbrella. It is free and open-source software released under the modified BSD license. Although the Python interface is more polished and the primary focus of development, PyTorch also has a C++ interface.

In machine learning, hyperparameter optimization or tuning is the problem of choosing a set of optimal hyperparameters for a learning algorithm. A hyperparameter is a parameter whose value is used to control the learning process. By contrast, the values of other parameters are learned.

The Open Neural Network Exchange (ONNX) [] is an open-source artificial intelligence ecosystem of technology companies and research organizations that establish open standards for representing machine learning algorithms and software tools to promote innovation and collaboration in the AI sector. ONNX is available on GitHub.

<span class="mw-page-title-main">ML.NET</span> Machine learning library

ML.NET is a free software machine learning library for the C# and F# programming languages. It also supports Python models when used together with NimbusML. The preview release of ML.NET included transforms for feature engineering like n-gram creation, and learners to handle binary classification, multi-class classification, and regression tasks. Additional ML tasks like anomaly detection and recommendation systems have since been added, and other approaches like deep learning will be included in future versions.

<span class="mw-page-title-main">Owl Scientific Computing</span> Numerical programming library for the OCaml programming language

Owl Scientific Computing is a software system for scientific and engineering computing developed in the Department of Computer Science and Technology, University of Cambridge. The System Research Group (SRG) in the department recognises Owl as one of the representative systems developed in SRG in the 2010s. The source code is licensed under the MIT License and can be accessed from the GitHub repository.

References

  1. 1 2 3 "James McCaffrey: Senior Research Software Engineer". Microsoft Research. Microsoft. Retrieved January 8, 2022.
  2. "Syncfusion Free Ebooks | Keras Succinctly". www.syncfusion.com. Retrieved February 17, 2021.
  3. "Syncfusion Free Ebooks | Introduction to CNTK Succinctly". www.syncfusion.com. Retrieved February 17, 2021.
  4. "Syncfusion Free Ebooks | Bing Maps V8 Succinctly". www.syncfusion.com. Retrieved February 17, 2021.
  5. "Syncfusion Free Ebooks | R-Programming Succinctly". www.syncfusion.com. Retrieved February 17, 2021.
  6. "Syncfusion Free Ebooks | SciPy Programming Succinctly". www.syncfusion.com. Retrieved February 17, 2021.
  7. "Syncfusion Free Ebooks | Machine Learning Using C# Succinctly". www.syncfusion.com. Retrieved February 17, 2021.
  8. "Syncfusion Free Ebooks | Neural Networks Using C# Succinctly". www.syncfusion.com. Retrieved February 17, 2021.