{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "*This notebook contains an excerpt from the book [Machine Learning for OpenCV](https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv) by Michael Beyeler.\n", "The code is released under the [MIT license](https://opensource.org/licenses/MIT),\n", "and is available on [GitHub](https://github.com/mbeyeler/opencv-machine-learning).*\n", "\n", "*Note that this excerpt contains only the raw code - the book is rich with additional explanations and illustrations.\n", "If you find this content useful, please consider supporting the work by\n", "[buying the book](https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-opencv)!*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Implementing Agglomerative Hierarchical Clustering](08.04-Implementing-Agglomerative-Hierarchical-Clustering.ipynb) | [Contents](../README.md) | [Understanding Perceptrons](09.01-Understanding-perceptrons.ipynb) >" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# Using Deep Learning to Classify Handwritten Digits\n", "\n", "In this chapter, we want to wrap our heads around some simple versions of artificial neural\n", "nets, such as the McCulloch-Pitts neuron, the [perceptron](09.01-Understanding-Perceptrons.ipynb),\n", "and the [multi-layer perceptron](09.02-Implementing-a-Multi-Layer-Perceptron-in-OpenCV.ipynb).\n", "Once we have familiarized ourselves with the basics, we will be ready to implement a more\n", "[sophisticated deep neural net](09.03-Getting-Acquainted-with-Deep-Learning.ipynb)\n", "in order to classify handwritten digits from the popular\n", "[MNIST database](09.04-Classifying-Handwritten-Digits.ipynb)\n", "(short for Mixed National Institute of Standards and Technology\n", "database). For this, we will be making use of [Keras](09.05-Training-a-Deep-Neural-Net-Using-Keras.ipynb), \n", "a high-level neural network library,\n", "which is also frequently used by researchers and tech companies.\n", "\n", "Along the way, we want to get answers to the following questions:\n", "- How do I implement perceptrons and multilayer perceptrons in OpenCV?\n", "- What is the difference between stochastic and batch gradient descent, and how does it fit in with backpropagation?\n", "- How do I know what size my neural net should be?\n", "- How can I use Keras to build sophisticated deep neural networks?\n", "\n", "\n", "## Outline\n", "\n", "- [Understanding Perceptrons](09.01-Understanding-Perceptrons.ipynb)\n", "- [Implementing a Multi-Layer Perceptron in OpenCV](09.02-Implementing-a-Multi-Layer-Perceptron-in-OpenCV.ipynb)\n", "- [Getting Acquainted with Deep Learning](09.03-Getting-Acquainted-with-Deep-Learning.ipynb)\n", "- [Training an MLP in OpenCV to Classify Handwritten Digits](09.04-Training-an-MLP-in-OpenCV-to-Classify-Handwritten-Digits)\n", "- [Training a Deep Neural Net to Classify Handwritten Digits Using Keras](09.05-Training-a-Deep-Neural-Net-to-Classify-Handwritten-Digits-Using-Keras)\n", "\n", "> The book offers a detailed treatment of the McCulloch-Pitts neuron, the perceptron, multi-layer perceptrons, and backrpopagation. For more information on the same, please refer to the book.\n", "\n", "\n", "Excited? Then let's go!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Implementing Agglomerative Hierarchical Clustering](08.04-Implementing-Agglomerative-Hierarchical-Clustering.ipynb) | [Contents](../README.md) | [Understanding Perceptrons](09.01-Understanding-perceptrons.ipynb) >" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.3" } }, "nbformat": 4, "nbformat_minor": 1 }