Tuesday, February 2, 2016

Confusion Matrix

A confusion matrix is a classification system used to distinguish different variables and summarize the results of a supervised learning algorithm (such as the deep learning algorithm being worked on). It is composed of rows and columns where the columns represent the results that the algorithm predicted and the rows represent the actual classes of the objects tested.


Predicted

Actual

Dog
Cat
Fish
Dog
6                       
2
0
Cat
3
7                                   
0
Fish
0
0
11                      


In the above example there is a group of 8 dogs, 10 cats, and 11 fish and the results are as above; The algorithm has accurately identified 6 dogs as dogs, 7 cats as cats, and 9 fish as fish. The accurate results are easy to distinguish because they form a diagonal line from the top left of the graph to the bottom right (highlighted in green). In this example we can identify the algorithms mistakes as well. As shown above (in red), the algorithm mistook 2 dogs as being cats, and 3 cats as being dogs, however all the fish were accurately identified and no dogs or cats were mistaken as fish. Through this information, one can observe that the algorithm was extremely accurate in identifying fish and made some errors when it came to distinguishing cats from dogs and vice versa.


Table of Confusion


A table of confusion is a table with 2 rows and 2 columns that reports the number of true positives, false positives, true negatives, and false negatives. This is more accurate at identifying information from confusion matrices because it allows for a more detailed analysis than a proportion of guesses. A reason for accuracy’s lack of reliability is because if the data set is unbalanced, the results will be misleading. For example, if there were 95 cats and only 5 dogs in the data set, the classifier could easily be biased into classifying all the samples as cats. The overall accuracy would be 95%, but in practice the classifier would have a 100% recognition rate for the cat class but a 0% recognition rate for the dog class.


The proper Table of Confusion for the dog class for the Confusion Matrix above would be:


6 true positives
(6 dogs correctly identified as dogs)
3 false positives
(3 cats that were incorrectly identified as dogs)
2 false negatives
(2 dogs that were incorrectly identified as cats)
18 true negatives
(18 animals (excluding dogs) not identified as dogs)


Tuesday, January 5, 2016

STEM Deep Learning Computer Part List



Computer System Parts:
https://pcpartpicker.com/user/tylevy555/saved/#view=TWQ48d

CPU: 
Intel Core i5-4690 3.5GHz Quad-Core Processor

Motherboard:
Gigabyte GA-Z97MX-Gaming 5 Micro ATX LGA1150 Motherboard

Memory (RAM):
Corsair Vengeance Pro 16GB (2 x 8GB) DDR3-1866 Memory

Storage:
Samsung 850 EVO-Series 250GB 2.5" Solid State Drive
Western Digital BLACK SERIES 1TB 3.5" 7200RPM Internal Hard Drive

GPU:
MSI GeForce GTX 980 Ti 6GB Video Card
MSI GeForce GTX 980 Ti 6GB Video Card
[2-Way SLI]

Case:
Corsair SPEC-03 Red ATX Mid Tower Case

PSU:
EVGA SuperNOVA 1000G2 1000W 80+ Gold Certified Fully-Modular ATX Power Supply

Monitor:
 Acer G276HL Gbmid 27-inch Full HD (1920 x 1080) Widescreen Display

Base Total: $2105.71
Mail-in Rebates: -$10.00

Total Price: $2095.71

Rational:

CPU:
I chose this CPU because CPU isn't extremely important for the Deep Learning Algorithm to work. Despite this, this CPU still manages to exceed the requirements a CPU requires for the Deep Learning Algorithm and is still cheap (for a CPU, at least).

Motherboard:
I chose this motherboard because it's a standard motherboard that is compatible with all the other parts. As well as this, it offers 3 PCI-E slots which 2 of the graphics cards will occupy and leave room for 1 more in the future in case I decide to upgrade to a 3-Way SLI.

Memory (RAM):
I chose 16 GB of RAM because CPU RAM should be equal to or greater than Video RAM. Since this build will have 12 GB of Video RAM, 16 GB of CPU RAM is the best way to have a good ratio.

Storage:
I chose a 250 GB SSD to store the algorithm and the OS so the computer will boot up quickly, and boot the program and other important software quickly. The 1 TB HDD is just to store other software that is needed/wanted but that has less importance than the algorithm. Stuff on the HDD will boot up slower than on the SSD, but price/GB on the HDD is cheaper as a trade-off to this sacrifice.

GPU:
The most important part of the hardware list is the GPU. This is due to the fact that deep learning algorithms tend to be incredibly video intensive. Since GPU’s affect video processing speed more than any other hardware part, they’re too large to ignore and they’re a vital part to building an effective deep learning oriented computer. Due to the above, the price of the GPU’s take up about 66% of the total budget. Unfortunately, the best GPU on the market currently, the GeForce GTX Titan X, is too expensive to make it effective given the budget ($2000). However, performance for the 980 Ti can be maximized by overclocking it. Doing so will allow it to perform better than the Titan X and keep expenditures within the budget.

Case:
I chose this case because it's large enough to contain all the hardware and retain good air cooling. As well as this, it is equipped with a sufficient amount of case fans and will provide good cooling in case the hardware gets hot. It also looks cool.

PSU:
I chose this PSU because it's cheap and supplies enough power to both the GPU's and the entire system.

Monitors:
I chose this monitor because I'm giving it to the school (in order to maintain the budget). Also, it's 27 inches which makes it more than large enough for dealing with multiple windows or the code.



Tuesday, December 29, 2015

Assignment 1: A Full Hardware Guide to Deep Learning

Based on A Full Hardware Guide to Deep Learning by Tim Dettmers, please come up a draft version of computer system requirements including part
specifications, vendors, pricing, and rationals of choices. Since our application has not been existing yet, we will use this assignment as our learning tool for machine learning computing resource. Please post it onto your blog and we will discuss it after the break.

New Start: Machine Learning Computing Resource

The machine learning is one of the most active and promising research fields in recent years. The new learning algorithms and neural network structures have outperformed the traditional schemes, especially in the image and speech recognition applications. The performance of the new algorithms (especially the deep learning algorithms) has approached or exceeded human performance! It dramatically changed people's view and expectations about Artificial Intelligence (AI). It is not only the academia showing strong interests in this technology, but also the industry giants such as Google, Facebook, and Baidu acquiring most of the dominant players in this space to improve their services. People optimistically predict that machine learning will soon bring broad and deep impacts to our world!

The machine learning algorithms implement artificial neural networks inspired by the biological brains. The research shows that the more neurons have been simulated, the better results we can get. Since simulating more neurons translates into more computing power required, we will need extremely high performance (extremely expansive) computer to execute the algorithms. Some people are aiming to design special hardware (Application-Specific Integrated Circuits, ASICs) to process the simulation. However, since it is a extremely dynamic research field, and the new algorithms and research results are published everyday, using general purpose computer is probably a better way from capital investment's point of view. What we really need to have is a general purpose computer equipped with very powerful Graphical Processing Units (GPUs). GPUs can greatly accelerate the execution of machine learning algorithms.

The mission of this new project is to provide up-to-date technical know-hows about the computing resource required for machine learning. It consists of three major aspects:    
  1. Computer System Requirements: Keep a monthly update on how to build or purchase a computer system for machine learning algorithms. You should consider running the popular deep learning libraries such as Theano, Caffe, Torch, Tensorflow, etc. The system needs to be affordable (< $2,000) in light of our possible applications. If the system is off-the-shelf, you should include the customized configuration information. If the system is self-build, you need to include the bill of materials (HW & SW). In both cases, you will include detailed pricing.
  2. General Purpose Online Computing Resource: Create and keep a list of online computing resources for machine learning, such as Ersatz Labs. Learn the process of using the online tools, and run example projects using the free options. Explore the limitations of the free option, and become the consultant for other students needing the tool.
  3. Special Online Tools: Create and keep a list of useful online machine learning tools, such as ConvNetJS. Learn how to use those tools. Explore their limitations, and become the consultant for other students needing those tools.

Sunday, December 6, 2015

RE: Brainwave-Related Patents

You should summarize the essence of each patent briefly, group them into meaningful categories, identify the trends/evolution of technology, and propose possible areas of innovations. 

Monday, November 30, 2015

Brainwave-Related Patents







































Sunday, November 8, 2015

Weekly Progress Report




Progress

This week I made progress in requesting a certificate from iTunes. This process was long and unnecessarily complicated. However, now that it is out of the way I will be able to put the app for the sample code onto my iPhone. Once this is done I will have to connect the headset to my phone and test out the code. Other progress I made was experimenting how other factors affected certain brainwaves and levels of concentration. Music tends to have a profound and noticeable affect on one's brainwave's levels. However, so far it can be noticed that music affects everyone differently. Some people may react positively to certain genres and negatively to others.

Problem

One problem I faced while attempting to connect my phone to the computer was that I lacked a USB cord. When I finally got in possession of a USB cord my time remaining in class was too sparse to complete any further work.

Plan:

My next plan is to succeed in getting the sample code on my iPhone and connecting the Neurosky to my phone. Then I will try to use the app and if it works I will have myself a piece of code that can be edited to fit my needs whilst still retaining all of its capabilities brainwave-wise.

Monday, October 26, 2015

Weekly Progress Report

Progress

I have made a breakthrough by establishing a connection between the school's laptop and the Mindwave headset. The computer can now pick up signals of brainwave activity that the Mindwave picks up when someone is wearing it. I've learned how to utilize the meditation and attention aspects of the Mindwave and I have learned how different things can affect certain signal output. Some things that affect what type of brainwave signal is being emitted are music and, more specifically, binaural beats. I have used a website, https://mynoise.net/NoiseMachines/binauralBrainwaveGenerator.php, in order affect my brainwave levels. This may be useful in helping to solve problems such as insomnia or ADD/ADHD.

Problem

The only problems I am facing now are the low battery lives of the computer and headset and the ease in losing signal between the laptop and Mindwave headset. I will also need the CD from school, but other than those minor problems there are no obstructions.

Plan

My next plan is to use the sample code from the CD and use it with the Mindwave headset to test out it's capabilities. After that, app development should begin and more testing will arise. The app that I create should be able to utilize most, if not all, aspects of the NeuroSky Mindwave headset and accomplish a task more efficiently than one can without the headset.


NeuroSky Mindwave Gantt Chart

https://drive.google.com/file/d/0B7bD_V4h5ibbZkhOczdFUjcxZVk/view?usp=sharing

Thursday, October 1, 2015

Research Task 1 - Ty Levy

The Mindwave reads brainwaves and allows one to utilize its technology by identifying different types of  brainwave patterns and types and then using this information to develop a application that completes tasks  when certain brainwave patterns are read. There are many applications to technology such as creating a  program applicable to electronic wheelchairs so one can move it without using any part of their body. Apart  from social applications there are also many war-related applications this technology applies. Drones as a  whole would evolve to a new level in which man could further his reach but still maintain distance from the  conflict-riddled front lines of battle. Many lives would be saved by having a weapon that doesn't require a  user to be within an enemies reach.

The eSense meter in the Mindwave detects a user's level of concentration. Whether it be a low form of concentration, such as meditation, or a high form, such as extreme attention. This could detect the immediacy a task requires or how precise a task is needed.

The Mindwave does need to be cleaned regularly in order to ensure maximum signal output and  effectiveness of the product. The Mindwave should also have its battery removed when not in use and  should not be dropped or exposed to temperatures above 60 degrees Celsius.

Troubleshooting may be required if the Mindwave encounters problems such as not turning on (low battery, recharge it) or the signal quality is poor (which can be caused by not having the headset touch the skin or having an unclean headset).

In conclusion, although very developmental, having objects that can be manipulated by one's brainwaves would prove very useful to society and possibly to the entire world. If this technology is ever perfected, everything from simple society to war would evolve and change forever.

Sunday, September 20, 2015

Sunday, June 21, 2015

Research Task 1 (06/22/15 - 07/03/15)

NeuroSky Mindwave
The goal for this period is to get familiar with all the NeuroSky Midwave-related hardware, software, apps, and development tools. 
  1. Mindwave User Guide, NeuroSky. Learn to set up the headset and use it as the input device. You will need the headset from the school.
  2. NeuroSky Apps (2012), NeuroSky. Download all the free apps and learn from them
  3. Developer Tools 3: iOS. NeuroSky. You will need a Mac computer to run XCode. You can borrow a Macbook Air Laptop from school if needed. 
  4. ThinkGear SDK for iOS (2013), NeuroSky. It includes ThinkGear SDK for iOS: Development Guide, ThinkGear SDK for iOS: API, and an example iOS project. These information will be the foundation which your project will be developed upon. Read through all these documents and run the XCode project provided. It can only be fully functional by running on a real iOS device. You can borrow an iPad  from school if needed.

Please take electronic notes while you are studying the materials, watching the videos, or browsing through the web. Each team will present their learning later in the summer meeting.