Puget Systems HPC Blog
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.
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.
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.
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.
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.
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.
In this post I will present the matrix/vector form of the Linear Regression problem and derive the "exact" solution for the parameters.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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".
In this second post on Docker and Nvidia-Docker we will do an install and setup on an Ubuntu 16.04 workstation.
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.
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.
Does PCIe X16 give better performance than X8 for training models with Caffe when using cuDNN? Yes, but not by much!
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.