Lecture 17 Convolutional Neural Networks

Similar documents
Deep Learning. Dr. Johan Hagelbäck.

CSC 578 Neural Networks and Deep Learning

Convolutional neural networks

An Introduction to Convolutional Neural Networks. Alessandro Giusti Dalle Molle Institute for Artificial Intelligence Lugano, Switzerland

Convolutional Networks Overview

Introduction to Machine Learning

Lesson 08. Convolutional Neural Network. Ing. Marek Hrúz, Ph.D. Katedra Kybernetiky Fakulta aplikovaných věd Západočeská univerzita v Plzni.

Research on Hand Gesture Recognition Using Convolutional Neural Network

Lecture 11-1 CNN introduction. Sung Kim

CSC321 Lecture 11: Convolutional Networks

Biologically Inspired Computation

6. Convolutional Neural Networks

Classification Accuracies of Malaria Infected Cells Using Deep Convolutional Neural Networks Based on Decompressed Images

Coursework 2. MLP Lecture 7 Convolutional Networks 1

CPSC 340: Machine Learning and Data Mining. Convolutional Neural Networks Fall 2018

Author(s) Corr, Philip J.; Silvestre, Guenole C.; Bleakley, Christopher J. The Irish Pattern Recognition & Classification Society

Understanding Neural Networks : Part II

SIMULATION-BASED MODEL CONTROL USING STATIC HAND GESTURES IN MATLAB

CIS581: Computer Vision and Computational Photography Homework: Cameras and Convolution Due: Sept. 14, 2017 at 3:00 pm

Adversarial Attacks on Face Detectors using Neural Net based Constrained Optimization

Radio Deep Learning Efforts Showcase Presentation

Convolutional Neural Networks

ROAD RECOGNITION USING FULLY CONVOLUTIONAL NEURAL NETWORKS

CS 7643: Deep Learning

CONVOLUTIONAL NEURAL NETWORKS: MOTIVATION, CONVOLUTION OPERATION, ALEXNET

Small World Network Architectures. NIPS 2017 Workshop

Creating Intelligence at the Edge

Semantic Segmentation on Resource Constrained Devices

DEEP LEARNING ON RF DATA. Adam Thompson Senior Solutions Architect March 29, 2018

Learning Deep Networks from Noisy Labels with Dropout Regularization

Lane Detection in Automotive

Generating an appropriate sound for a video using WaveNet.

Image Filtering. Median Filtering

Automated Planetary Terrain Mapping of Mars Using Image Pattern Recognition

IMAGE PROCESSING: AREA OPERATIONS (FILTERING)

GPU ACCELERATED DEEP LEARNING WITH CUDNN

Announcements. Image Processing. What s an image? Images as functions. Image processing. What s a digital image?

11/13/18. Introduction to RNNs for NLP. About Me. Overview SHANG GAO

BAM (Bi-directional Associative Memory) Neural Network Simulator

Google DeepMind s AlphaGo vs. world Go champion Lee Sedol

1. Use Pattern Blocks. Make the next 2 figures in each increasing pattern. a) 2. Write the pattern rule for each pattern in question 1.

ECS 289G UC Davis Paper Presenta6on #1

Statistical Tests: More Complicated Discriminants

Comparison of Google Image Search and ResNet Image Classification Using Image Similarity Metrics

Ruixing Yang

Landmark Recognition with Deep Learning

arxiv: v1 [cs.ce] 9 Jan 2018

Detection and Segmentation. Fei-Fei Li & Justin Johnson & Serena Yeung. Lecture 11 -

Lecture 23 Deep Learning: Segmentation

Deep Learning Basics Lecture 9: Recurrent Neural Networks. Princeton University COS 495 Instructor: Yingyu Liang

Convolutional Neural Networks. Fei-Fei Li & Justin Johnson & Serena Yeung. Lecture 5-1

GE 113 REMOTE SENSING

Impact of Automatic Feature Extraction in Deep Learning Architecture

Colorful Image Colorizations Supplementary Material

DYNAMIC CONVOLUTIONAL NEURAL NETWORK FOR IMAGE SUPER- RESOLUTION

Applying Automated Optical Inspection Ben Dawson, DALSA Coreco Inc., ipd Group (987)

Improving reverberant speech separation with binaural cues using temporal context and convolutional neural networks

A Vision Based Hand Gesture Recognition System using Convolutional Neural Networks

Project 4.1 Puzzle Design Challenge Rubric

arxiv: v3 [cs.cv] 18 Dec 2018

SERIES (OPEN CONDUCTOR) FAULT DISTANCE LOCATION IN THREE PHASE TRANSMISSION LINE USING ARTIFICIAL NEURAL NETWORK

Copies of the Color by Pixel template sheets (included in the Resources section). Colored pencils, crayons, markers, or other supplies for coloring.

>>> from numpy import random as r >>> I = r.rand(256,256);

Lecture 9: Cell Design Issues

Convolutional Neural Network-based Steganalysis on Spatial Domain

Introduction to CMOS VLSI Design (E158) Lecture 9: Cell Design

Study guide for Graduate Computer Vision

RGB COLORS. Connecting with Computer Science cs.ubc.ca/~hoos/cpsc101

Tiny ImageNet Challenge Investigating the Scaling of Inception Layers for Reduced Scale Classification Problems

An Hybrid MLP-SVM Handwritten Digit Recognizer

CROSS-LAYER FEATURES IN CONVOLUTIONAL NEURAL NETWORKS FOR GENERIC CLASSIFICATION TASKS. Kuan-Chuan Peng and Tsuhan Chen

Prediction of airblast loads in complex environments using artificial neural networks

GESTURE RECOGNITION FOR ROBOTIC CONTROL USING DEEP LEARNING

Convolutional Neural Networks. Fei-Fei Li & Justin Johnson & Serena Yeung. Lecture 5-1

Digital images. Digital Image Processing Fundamentals. Digital images. Varieties of digital images. Dr. Edmund Lam. ELEC4245: Digital Image Processing

Face Recognition: Identifying Facial Expressions Using Back Propagation

Lane Detection in Automotive

Image Extraction using Image Mining Technique

Spatial Analyst is an extension in ArcGIS specially designed for working with raster data.

Deep Neural Network Architectures for Modulation Classification

Number Plate Detection with a Multi-Convolutional Neural Network Approach with Optical Character Recognition for Mobile Devices

Project 4.1 Puzzle Design Challenge Rubric Two potential solutions

TELLING STORIES OF VALUE WITH IOT DATA

Image Manipulation Detection using Convolutional Neural Network

Binary Neural Network and Its Implementation with 16 Mb RRAM Macro Chip

Error Protection: Detection and Correction

The Art of Neural Nets

>>> from numpy import random as r >>> I = r.rand(256,256);

Preparing Remote Sensing Data for Natural Resources Mapping (image enhancement, rectifications )

Image Scaling. This image is too big to fit on the screen. How can we reduce it? How to generate a halfsized

1 Introduction. w k x k (1.1)

DETECTION AND RECOGNITION OF HAND GESTURES TO CONTROL THE SYSTEM APPLICATIONS BY NEURAL NETWORKS. P.Suganya, R.Sathya, K.

Remote Sensing 4113 Lab 08: Filtering and Principal Components Mar. 28, 2018

Introduction to Computers and Engineering Problem Solving Spring 2012 Problem Set 10: Electrical Circuits Due: 12 noon, Friday May 11, 2012

On the Use of Convolutional Neural Networks for Specific Emitter Identification

Session 2: 10 Year Vision session (11:00-12:20) - Tuesday. Session 3: Poster Highlights A (14:00-15:00) - Tuesday 20 posters (3minutes per poster)

INFORMATION about image authenticity can be used in

PLazeR. a planar laser rangefinder. Robert Ying (ry2242) Derek Xingzhou He (xh2187) Peiqian Li (pl2521) Minh Trang Nguyen (mnn2108)

Using Imagery for Intelligence Analysis. Jim Michel Renee Bernstein

Nano-device and Architecture Interaction in Machine/deep Learning

Transcription:

Lecture 17 Convolutional Neural Networks 30 March 2016 Taylor B. Arnold Yale Statistics STAT 365/665 1/22

Notes: Problem set 6 is online and due next Friday, April 8th Problem sets 7,8, and 9 will be due on the remaining Fridays No class on April 11th or 13th 2/22

ConvolutionalNeuralNetworks Convolution layers are a slightly more exotic variant on the dense linear layers we have been using so far. They simultaneously address several issues that are commonly seen in computer vision applications: 3/22

ConvolutionalNeuralNetworks Convolution layers are a slightly more exotic variant on the dense linear layers we have been using so far. They simultaneously address several issues that are commonly seen in computer vision applications: We want to utilize the known geometry of the data (color channels and locality) 3/22

ConvolutionalNeuralNetworks Convolution layers are a slightly more exotic variant on the dense linear layers we have been using so far. They simultaneously address several issues that are commonly seen in computer vision applications: We want to utilize the known geometry of the data (color channels and locality) Larger images require an enormous number of weights for even modestly sized hidden layers. Using 96x96 pixel images and a single hidden layer with 1024 nodes, requires just under ten million individual weights! 3/22

ConvolutionalNeuralNetworks Convolution layers are a slightly more exotic variant on the dense linear layers we have been using so far. They simultaneously address several issues that are commonly seen in computer vision applications: We want to utilize the known geometry of the data (color channels and locality) Larger images require an enormous number of weights for even modestly sized hidden layers. Using 96x96 pixel images and a single hidden layer with 1024 nodes, requires just under ten million individual weights! Many applications require detecting or recognizing items that may be placed differently in the image field; it will be useful to have a method that is insensitive to small shifts in the individual pixels. I ll restrict today s discussion to 2D-convolutions, as they are generally used in image processing, but note that they can also be applied to 1D, 3D and higher dimensions (we ll use 1D in the text analysis applications). 3/22

ConvolutionalNeuralNetworks, cont. We can think of convolutional layers as being the same as a dense/linear layer, with two constraints applied to the weights and biases. Sparsity with local receptive field: the weight and biases for a given neuron are only non-zero over a small, local region of the input image. Shared weights: the non-zero weights and biases are the same across all of the neurons, up to a shifting over the image. A picture should make this much more clear. 4/22

5/22

6/22

Filters What we have just described is what we call a filter; a convolutional layer is made up of some predetermined number of filters. That is, we have multiple set of local weights that are applied over small chunks of the image. These allow us to capture different components that may all be useful for the classification task at hand. 7/22

Filters: History The idea of using a filter on images is not a new idea to neural networks; the difference here is the filters are adaptively learned from data. For example, take the following fixed kernel weights: ( 1 0 ) 0 1 What happens when we apply this over an image? 8/22

9/22

10/22

A convolutional layer with 3 filters: 11/22

Zeropadding You may have noticed that the grid of pixels of the output image will have fewer rows and columns than the input image. In some cases this is okay, but it is often advantageous to preserve the size of the grid (there are several reasons that we want to grid size to be divisible by 2 n for some reasonably large n). To do so, we can add extra rows and columns of zeros (zero padding) to the input before applying the 12/22

Kernelandstride The architecture of a (2D) convolution layer is primarily determined by four numbers: 1. the number of filters, F 2. the height of the kernel, k h 3. the width of the kernel, k w 4. the stride, k s The stride tells us how far the local set of weights is shifted before being applied. We ll mostly use a stride of 1, but just note that other values are possible. 13/22

A 5x5 kernel: 14/22

A stride of 1: 15/22

A nice demo of applying convolution over a grid using alternative strides and zero padding: http://cs231n.github.io/assets/conv-demo/index.html 16/22

Tensors A convolution can also be described in purely algebraic terms. We are defining a map from a three dimensional space to a three dimensional space: F 1 W 1 H 1 F 2 W 2 H 2 Where F is the number of filters, W the width of the image, and H the height of the image. You can now see why tensors are considered a generalization of a matrix operations, and why they are so important in learning neural network models. 17/22

Tensors A convolution can also be described in purely algebraic terms. We are defining a map from a three dimensional space to a three dimensional space: F 1 W 1 H 1 F 2 W 2 H 2 Where F is the number of filters, W the width of the image, and H the height of the image. You can now see why tensors are considered a generalization of a matrix operations, and why they are so important in learning neural network models. The value F 1 is equal to one for the MNIST dataset, but for CIFAR-10 we would set it to 3 to deal with the 3 color channels. 17/22

Poolinglayers Convolutional neural networks have another type of layer that can also be described by applying a function locally to small section of the image. These layers are called pooling layers; they differ from convolution layers because: they have no learned weights may not be linear functions of their inputs are applied separately to each kernel the stride is usually equal to the size of the kernel; that is, the regions are non-overlapping The most common type of pooling (by far) is called max-pooling, with a 2x2 kernel and stride of 2. This halves the extent of each dimension (reduces the number of data points by a factor of 4 for 2D images) and can greatly decrease the learning time and improve over-fitting of the data. 18/22

Max pooling using a 2x2 filter and a stride of 2: 19/22

An example of convolution followed by max pooling: 20/22

Let s now apply convolutional networks to the MNIST dataset using the keras library. 21/22

A demo of applying convolutional neural networks to the MNIST dataset: http://cs.stanford.edu/people/karpathy/convnetjs/demo/mnist.html 22/22