Dr Donald Kinghorn (HPC and Scientific Computing)

Machine Learning and Data Science: Multinomial (Multiclass) Logistic Regression

Written on August 18, 2017 by Dr Donald Kinghorn

The post will implement Multinomial Logistic Regression. The multiclass approach used will be one-vs-rest. The Jupyter notebook contains a full collection of Python functions for the implementation. An example problem done showing image classification using the MNIST digits dataset.



Dr Donald Kinghorn (HPC and Scientific Computing)

Machine Learning and Data Science: Logistic Regression Examples-1

Written on August 14, 2017 by Dr Donald Kinghorn

This post will be mostly Python code with implementation and examples of the Logistic Regression theory we have been discussing in the last few posts. Examples include fitting to 2 feature data using an arbitrary order multinomial model and a simple 2 class image classification problem using the MNIST digits data.



Dr Donald Kinghorn (HPC and Scientific Computing)

Machine Learning and Data Science: Logistic Regression Implementation

Written on August 5, 2017 by Dr Donald Kinghorn

In this post I'll discuss evaluating the "goodness of fit" for a Logistic Regression model and do an implementation of the formulas in Python using numpy. We'll look at an example to check the validity of the code.



Dr Donald Kinghorn (HPC and Scientific Computing)

Machine Learning and Data Science: Logistic and Linear Regression Regularization

Written on July 31, 2017 by Dr Donald Kinghorn

In this post I will look at "Regularization" in order to address an important problem that is common with implementations, namely over-fitting. We'll go through for logistic regression and linear regression. After getting the equations for regularization worked out we'll look at an example in Python showing how this can be used for a badly over-fit linear regression model.



Dr Donald Kinghorn (HPC and Scientific Computing)

Machine Learning and Data Science: Logistic Regression Theory

Written on July 21, 2017 by Dr Donald Kinghorn

Logistic regression is a widely used Machine Learning method for binary classification. It is also a good stepping stone for understanding Neural Networks. In this post I will present the theory behind it including a derivation of the Logistic Regression Cost Function gradient.



Dr Donald Kinghorn (HPC and Scientific Computing)

Machine Learning and Data Science: Linear Regression Part 6

Written on July 15, 2017 by Dr Donald Kinghorn

This will be the last post in the Linear Regression series. We will look at the problems of over or under fitting data along with non-linear feature variables.



Dr Donald Kinghorn (HPC and Scientific Computing)

Machine Learning and Data Science: Linear Regression Part 5

Written on July 4, 2017 by Dr Donald Kinghorn

In this post I will present the matrix/vector form of the Linear Regression problem and derive the "exact" solution for the parameters.



Dr Donald Kinghorn (HPC and Scientific Computing)

Machine Learning and Data Science: Linear Regression Part 4

Written on June 15, 2017 by Dr Donald Kinghorn

In this post I'll be working up, analyzing, visualizing, and doing Gradient Descent for Linear Regression. It's a Jupyter notebook with all the code for plots and functions in Python available on my github account.



Dr Donald Kinghorn (HPC and Scientific Computing)

Machine Learning and Data Science: Linear Regression Part 3

Written on June 10, 2017 by Dr Donald Kinghorn

In Part 3 of this series on Linear Regression I will go into more detail about the Model and Cost function. Including several graphs that will hopefully give insight into the their nature and serve as a reference for developing algorithms in the next post.



Dr Donald Kinghorn (HPC and Scientific Computing)

Machine Learning and Data Science: Linear Regression Part 2

Written on June 2, 2017 by Dr Donald Kinghorn

In Part 2 of this series on Linear Regression I will pull a data-set of house sale prices and "features" from Kaggle and explore the data in a Jupyter notebook with pandas and seaborn. We will extract a good subset of data to use for our example analysis of the linear regression algorithms.



Dr Donald Kinghorn (HPC and Scientific Computing)

Machine Learning and Data Science: Linear Regression Part 1

Written on May 26, 2017 by Dr Donald Kinghorn

Linear regression could possibly be considered the "Hello World" problem of Machine Learning. It's implementation touches on many of the fundamental ideas and problems in this field. I'll give you some guidance for understanding and implementation of this fundamental idea.



Dr Donald Kinghorn (HPC and Scientific Computing)

Machine Learning and Data Science: Introduction

Written on April 28, 2017 by Dr Donald Kinghorn

This is the start of a series of posts on Machine Learning and Data Science. I'll be exploring the algorithms and tools of Machine Learning and Data Science. It will be tutorials, guides, how-to, reviews and "real world" application. The post will be done using Juypter notebooks and the notebooks will be available on GitHub.



Dr Donald Kinghorn (HPC and Scientific Computing)

Docker and NVIDIA-docker on your workstation: Integration with your Desktop

Written on April 26, 2017 by Dr Donald Kinghorn

I've been doing this series of posts about setting up Docker for your desktop system, so why not literally add containers to your desktop! The way we have Docker configured, containers are the same as other applications you run. In this post I'll show you how to add icons and menu items to launch containers.



Dr Donald Kinghorn (HPC and Scientific Computing)

TitanXp vs GTX1080Ti for Machine Learning

Written on April 14, 2017 by Dr Donald Kinghorn

NVIDIA has released the Titan Xp which is an update to the Titan X Pascal (they both use the Pascal GPU core). They also recently released the GTX1080Ti which proved to be every bit as good at the Titan X Pascal but at a much lower price. The new Titan Xp does offer better performance and is currently their fastest GeForce card. How much faster? I decided to find out by running a large Deep Learning image classification job to see how it performs for GPU accelerated Machine Learning.


Posted in Hardware | 3 Comments

Dr Donald Kinghorn (HPC and Scientific Computing)

Docker and Nvidia-Docker on your workstation: Common Docker Commands Tutorial

Written on April 7, 2017 by Dr Donald Kinghorn

Docker can be complex but for use on single-user-workstation you can get a lot done with just a few commands. This post will go through some commands to manage your images and containers. We will also go through the process of building a docker image for CUDA development that includes OpenGl support.



Dr Donald Kinghorn (HPC and Scientific Computing)

How to Install Anaconda Python and First Steps for Linux and Windows

Written on March 28, 2017 by Dr Donald Kinghorn

A few weeks ago I wrote a blog post titled Should You Learn to Program with Python. If you read that and decided the answer is yes then this post is for you.



Dr Donald Kinghorn (HPC and Scientific Computing)

Docker and NVIDIA-docker on your workstation: Using Graphical Applications

Written on March 21, 2017 by Dr Donald Kinghorn

You can use graphical application with Docker and NVIDIA-Docker by attaching your X-Window server socket to a container. And, it can be done in a relatively safe and secure way. I will take advantage of the Docker security and usability enhancements from the configuration with User-Namespaces that we setup in the previous post and show you how to run a CUDA application with OpenGL output support.


Posted in Software | 0 Comments

Dr Donald Kinghorn (HPC and Scientific Computing)

NVIDIA GTX 1080Ti Performance for Machine Learning -- as Good as TitanX?

Written on March 14, 2017 by Dr Donald Kinghorn

How good is the NVIDIA GTX 1080Ti for CUDA accelerated Machine Learning workloads? About the same as the TitanX! I ran a Deep Neural Network training calculation on a million image dataset using both the new GTX 1080Ti and a Titan X Pascal GPU and got very similar runtimes.


Posted in Hardware | 0 Comments

Dr Donald Kinghorn (HPC and Scientific Computing)

Docker and NVIDIA-docker on your workstation: Setup User Namespaces

Written on March 10, 2017 by Dr Donald Kinghorn

In this third post on Docker and Nvidia-Docker we will configure "kernel user namespaces" for use with Docker. This will increase the security and usability of Docker on your desktop. This is a relatively new feature in Docker and is a key component for the viability of "Docker on your workstation".


Posted in Software | 1 Comment

Dr Donald Kinghorn (HPC and Scientific Computing)

Should You Learn to Program with Python

Written on March 2, 2017 by Dr Donald Kinghorn

The short answer to that question is, yes. If you want to know why you would want to do that then read on.



Dr Donald Kinghorn (HPC and Scientific Computing)

Docker and NVIDIA-docker on your workstation: Installation

Written on February 24, 2017 by Dr Donald Kinghorn

In this second post on Docker and Nvidia-Docker we will do an install and setup on an Ubuntu 16.04 workstation.


Posted in Software | 0 Comments

Dr Donald Kinghorn (HPC and Scientific Computing)

Docker and NVIDIA-docker on your workstation: Motivation

Written on February 16, 2017 by Dr Donald Kinghorn

Docker containers together with the NVIDIA-docker can provide relief from dependency and configuration difficulties when setting up GPU accelerated machine learning environments on a workstation. In this post I will discuss motivation for considering this.


Posted in Software | 0 Comments

Dr Donald Kinghorn (HPC and Scientific Computing)

NVIDIA Quadro GP100 Tesla P100 power on your desktop

Written on February 5, 2017 by Dr Donald Kinghorn

NVIDIA has released the Quadro GP100 bringing Tesla P100 Pascal performance to your desktop. This new card gives you the compute performance of the NVIDIA Tesla P100 together with Quadro display capability. That means full double precision floating point capability of the P100 and NVLINK for multiple cards.


Posted in Hardware | 1 Comment

Dr. Donald Kinghorn (HPC and Scientific Computing)

PCIe X16 vs X8 for GPUs when running cuDNN and Caffe

Written on January 16, 2017 by Dr. Donald Kinghorn

Does PCIe X16 give better performance than X8 for training models with Caffe when using cuDNN? Yes, but not by much!



Dr Donald Kinghorn (HPC and Scientific Computing)

Kabylake vs Skylake for compute on Linux -- Linpack on Ubuntu 1610

Written on January 3, 2017 by Dr Donald Kinghorn

OK, Intel Core-i7 7th gen Kabylake is out. Of course the first thing I want to do is drop a Core i7 7700K in a new Z270 based motherboard, install Linux and run a Linpack benchmark. You know, GFLOP/s and all that. We installed Ubuntu 1610 with a recent release of Intel MKL and fired up a few Linpack job runs. Read on for the not-so dramatic results.


Posted in Hardware | 0 Comments