Bitbucket Academy Logo

Request a Copy: Graduate Thesis on Pattern Analysis and Neural Networks

Cover for Thesis Use of Patterna Analysis in Designing Neural Networks by Courtney Brown submitted in partial fulfillment of the degree Master of Science in Computer Science

This thesis demonstrates that you can improve the training efficiency for Neural Networks by 63% to 89% by analyzing the input data for patterns, creating sub-networks for each distinct pattern, formulating an internal representative language for the patterns, and finally constructing a composite network where the output is expressed as a combination of the input patterns. This results in a Neural Network that accomplishes the same tasks with 74% fewer connetions than a fully-interconnected network. Furthermore, it provides a mechanism to detect when the robustness of a network's components degrade through over-training. It explains in detail how Neural Networks work from the first principles and provides the Source code for C-NAPS, a software-only Artificial Neural Network simulator implemented in C that can run efficiently on single board "System-on-a-chip" (Soc) computers like the Arduino, Raspberry Pi, and NVIDIA Jetson nano. All of the essental data is supplied using easy-to-read text files. The formats for each of the all the files used in the C-Naps Neural Network Simulator is described in this thesis. The source code for the C-Naps simulator is released under the Apache Free/Open Source Software license. Itis designed to be extensible, where you can add simulator functions at compile-time, if you implement a math parsing capablilty, dynamically added at run-time. The Neural Network First-Principles Project Bundle contains implementation guides to get you started on Arduino or Jetson Nano. Using Aruino IDE v2.03 or later, computation is performed entirely on the CPU. The next step tto getting the most out of the Neural Networks First-Principles bundle requires you have some experience with the "C" programming language. This enables you to extend the functionality in the C-Naps software and utilize accelerators like a Graphics Processing Unit (GPU0 or Field Programmable Gate Array (FPGA). A good resource to acquire or refresh your "C" prorammign skills is CS 001 Introuction to Open Source Software and Computer Science (Pending).

The Jetson Nano is an upgrade from ARM V7 CPUs SoCs like the Arduino or Raspberry Pi in that it can execute the C-Naps Neural Network simulator entirely on the CPU or on an embedded GPU. It contains a CUDA capbable NVIDIA GPU that lets you offload the Neural Network calculations while the CPU continues general processing in parallel. By using the NVIDIA libraries you get access to a broad range of solutions for different domains including: Vision Processing, Image Processing, Audio Processing, and Robotics. To gain the benefit of this capability, you can take one of the course designed to give you these tools: CIS 008 Introduction to Parallel and Cloud Programminbg or CS 006 Introduction to Parallel, GPU, and Cloud Computation". To get the most out of your hardware, your existing skills in C/C++ need to be current. If you need to acquire or refresh your skills skills you can take either: CIS 007 Control Structures and Objects or CS 002 Control Structures and Objects. These courses are identical but cross-listed because they live in two different disciplines: Computer Information Systems (CIS) and Computer Science (CS.) When you are ready for more advanced applications, the course CS 060 Applications of Artificial Intelligence and Deep Learning is availble stand-alone or as part of the Computer Science Program, Submit the form above to receive a link to your FREE bundle by email. You will be notified of updates and course offerings for this topic.