Neural network software tool development: exploring programming language options



Similar documents
Stock Prediction using Artificial Neural Networks

Introduction to Machine Learning and Data Mining. Prof. Dr. Igor Trajkovski

An Introduction to Neural Networks

Feed-Forward mapping networks KAIST 바이오및뇌공학과 정재승

Analecta Vol. 8, No. 2 ISSN

Comparison of Supervised and Unsupervised Learning Classifiers for Travel Recommendations

Power Prediction Analysis using Artificial Neural Network in MS Excel

Neural Network Design in Cloud Computing

NEURAL NETWORKS A Comprehensive Foundation

IBM SPSS Neural Networks 22

Comparison of Supervised and Unsupervised Learning Algorithms for Pattern Classification

Neural Networks in Data Mining

Lecture 6. Artificial Neural Networks

AN APPLICATION OF TIME SERIES ANALYSIS FOR WEATHER FORECASTING

Performance Evaluation of Artificial Neural. Networks for Spatial Data Analysis

Application of Neural Network in User Authentication for Smart Home System

SELECTING NEURAL NETWORK ARCHITECTURE FOR INVESTMENT PROFITABILITY PREDICTIONS

Recurrent Neural Networks

Data Mining Techniques Chapter 7: Artificial Neural Networks

How To Use Neural Networks In Data Mining

SUCCESSFUL PREDICTION OF HORSE RACING RESULTS USING A NEURAL NETWORK

Neural Networks and Support Vector Machines

EFFICIENT DATA PRE-PROCESSING FOR DATA MINING

Machine Learning and Data Mining -

A Time Series ANN Approach for Weather Forecasting

Role of Neural network in data mining

An Introduction to Artificial Neural Networks (ANN) - Methods, Abstraction, and Usage

IBM SPSS Neural Networks 19

NEURAL NETWORKS IN DATA MINING

Data Mining Algorithms Part 1. Dejan Sarka

Performance Comparison between Backpropagation Algorithms Applied to Intrusion Detection in Computer Network Systems

6.2.8 Neural networks for data mining

Neural Network Predictor for Fraud Detection: A Study Case for the Federal Patrimony Department

Artificial Intelligence and Machine Learning Models

Lecture 8 February 4

Self Organizing Maps: Fundamentals

In: Proceedings of RECPAD th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

Artificial Neural Networks and Support Vector Machines. CS 486/686: Introduction to Artificial Intelligence

Data Mining and Neural Networks in Stata

Chapter 12 Discovering New Knowledge Data Mining

Chapter 4: Artificial Neural Networks

LVQ Plug-In Algorithm for SQL Server

Neural Computation - Assignment

Bank Customers (Credit) Rating System Based On Expert System and ANN

SEARCH AND CLASSIFICATION OF "INTERESTING" BUSINESS APPLICATIONS IN THE WORLD WIDE WEB USING A NEURAL NETWORK APPROACH

An Artificial Neural Networks-Based on-line Monitoring Odor Sensing System

Predicting the Risk of Heart Attacks using Neural Network and Decision Tree

Introduction to Machine Learning Using Python. Vikram Kamath

SURVIVABILITY ANALYSIS OF PEDIATRIC LEUKAEMIC PATIENTS USING NEURAL NETWORK APPROACH

Neural Networks algorithms and applications

Neural Networks and Back Propagation Algorithm

GLOVE-BASED GESTURE RECOGNITION SYSTEM

Predict Influencers in the Social Network

A New Approach For Estimating Software Effort Using RBFN Network

Data Mining mit der JMSL Numerical Library for Java Applications

Price Prediction of Share Market using Artificial Neural Network (ANN)

Method of Combining the Degrees of Similarity in Handwritten Signature Authentication Using Neural Networks

TRAINING A LIMITED-INTERCONNECT, SYNTHETIC NEURAL IC

FRAUD DETECTION IN ELECTRIC POWER DISTRIBUTION NETWORKS USING AN ANN-BASED KNOWLEDGE-DISCOVERY PROCESS

IFT3395/6390. Machine Learning from linear regression to Neural Networks. Machine Learning. Training Set. t (3.5, -2,..., 127, 0,...

SEMINAR OUTLINE. Introduction to Data Mining Using Artificial Neural Networks. Definitions of Neural Networks. Definitions of Neural Networks

Artificial Neural Network Approach for Classification of Heart Disease Dataset

129: Artificial Neural Networks. Ajith Abraham Oklahoma State University, Stillwater, OK, USA 1 INTRODUCTION TO ARTIFICIAL NEURAL NETWORKS

Feedforward Neural Networks and Backpropagation

Artificial neural networks

Predictive time series analysis of stock prices using neural network classifier

Digital image processing

Chapter 2 The Research on Fault Diagnosis of Building Electrical System Based on RBF Neural Network

A Neural Network Based System for Intrusion Detection and Classification of Attacks

Using artificial intelligence for data reduction in mechanical engineering

Machine learning in financial forecasting. Haindrich Henrietta Vezér Evelin

Novelty Detection in image recognition using IRF Neural Networks properties

Prediction Model for Crude Oil Price Using Artificial Neural Networks

Simplified Machine Learning for CUDA. Umar

The Research of Data Mining Based on Neural Networks

Sound Quality Evaluation of Hermetic Compressors Using Artificial Neural Networks

Horse Racing Prediction Using Artificial Neural Networks

COMPARISON OF OBJECT BASED AND PIXEL BASED CLASSIFICATION OF HIGH RESOLUTION SATELLITE IMAGES USING ARTIFICIAL NEURAL NETWORKS

SMORN-VII REPORT NEURAL NETWORK BENCHMARK ANALYSIS RESULTS & FOLLOW-UP 96. Özer CIFTCIOGLU Istanbul Technical University, ITU. and

Comparison of K-means and Backpropagation Data Mining Algorithms

MANAGING QUEUE STABILITY USING ART2 IN ACTIVE QUEUE MANAGEMENT FOR CONGESTION CONTROL

degrees of freedom and are able to adapt to the task they are supposed to do [Gupta].

Stock Data Analysis Based On Neural Network. 1Rajesh Musne, 2 Sachin Godse

DEVELOPING AN ARTIFICIAL NEURAL NETWORK MODEL FOR LIFE CYCLE COSTING IN BUILDINGS

Data quality in Accounting Information Systems

Neural Network Add-in

NEURAL NETWORK FUNDAMENTALS WITH GRAPHS, ALGORITHMS, AND APPLICATIONS

Neural Networks in Quantitative Finance

Online Tuning of Artificial Neural Networks for Induction Motor Control

Forecasting Student Admission in Colleges with Neural Networks

Artificial Neural Network and Non-Linear Regression: A Comparative Study

NEUROEVOLUTION OF AUTO-TEACHING ARCHITECTURES

Advanced analytics at your hands

APPLICATION OF ARTIFICIAL NEURAL NETWORKS USING HIJRI LUNAR TRANSACTION AS EXTRACTED VARIABLES TO PREDICT STOCK TREND DIRECTION

Follow links Class Use and other Permissions. For more information, send to:

Application of Neural Networks to Character Recognition

Transcription:

INEB- PSI Technical Report 2006-1 Neural network software tool development: exploring programming language options Alexandra Oliveira aao@fe.up.pt Supervisor: Professor Joaquim Marques de Sá June 2006 INEB - Instituto de Engenharia Biomédica FEUP/DEEC, Rua Dr. Roberto Frias, 4200-645 PORTO

Contents Introduction 2 Artificial Neural Networks 3 Neural Network Software Tool 7 Matlab......................................... 7 C / Borland C++ Builder................................ 8 JAVA - JOONE..................................... 10 Bibliography 13 1

Introduction The animal nervous system continually receives information, processes it, and makes appropriate decisions. The brain is a very complex structure with the capability to perform certain computations (e.g., pattern recognition, perception, and motor control) many times faster than the fastest digital computer in existence today. The receptors convert stimuli from the human body or the external environment into electrical impulses that convey information to the neural net [3]. Some independent cellular units - the neurons - are activated. They process the information and activate other neurons with the output of their activity. This dynamics has inspired many computer sciences studies, namely on mimicking some functionalities of the brain with artificial systems: artificial neural networks. The tasks presented in this report were developed during the first semester of year 2006, learning the concepts related to neural networks and programming skills and software possibilities leading to an adequate selection of language and environment where to build a software tool with a friendly graphical interface that implemented these systems. 2

Artificial Neural Networks This chapter describes a short foundation of neural networks which reflects a few months of needed study to implement a software tool. An artificial neural network is a massively parallel distributed processor made up of simple processing units (neurons), which has the ability to learn functional dependencies from data. It resembles the brain in two respects: 1. Knowledge is acquired by the network from its environment through a learning process. 2. Interneuron connection strengths, known as synaptic weights, are used to store the acquired knowledge. The procedure used to perform the learning process is called a learning algorithm, the function of which is to modify the synaptic weights of the network in an orderly fashion to attain a desired design objective [3]. Each neuron is a simple processing unit which receives some weighted data, sums them with a bias and calculates an output to be passed on (see figure 1). The function that the neuron uses to calculate the output is called the activation function. Figure 1: Graphical representation of a neuron where o = f(i 1.W 1 +i 2.W 2 +i 3.W 3 +...+i n.w n + b) = f( n j=1 i jw j + b) where f is the activation function. Typically, activation functions are generally non-linear having a "squashing" effect. Linear func- 3

tions are limited because the output is simply proportional to the input. In the figure 2 are shown some common activation functions. Figure 2: Common activation functions The manner in which the neurons of a neural network are structured is intimately linked with the learning algorithm used to train the network [3]. The most common architecture is the multilayer perceptron (MLP). These networks are a feedforward network where the neurons are structured in one or more hidden layers. Each perceptron in one layer is connected to every perceptron on the next layer, hence information is constantly "fed forward" from one layer to the next. By varying the number of nodes in the hidden layer, the number of layers, and the number of input and output nodes, one can classify points in arbitrary dimensional space into an arbitrary number of groups. However, the Hornik-Stinchcombe-White theorem, states that a layered artificial neural network with two layers of neurons is sufficient to approximate as closely as desired any piecewise continuous map of a closed bounded subset of a finite-dimensional space into another finite-dimensional space, provided that there are sufficiently many neurons in the single hidden layer [4]. The network learns about the input through an interactive process of adjusting the weights and the bias. This process is called supervised learning and the algorithm used is the learning algorithm. 4

One of the most common is the error backpropagation algorithm. This algorithm is based on the error-correction learning rule, based on gradient descent in the error surface. Basically, a set of cases, with the corresponding targets, is given to the network. The input data is entered into the network via the input layer and is processed through the layers - forward pass. Then, the output is compared to the expected output (the targets) for that particular input. This results in an error value. This error value is backpropagated thought the network, against the direction of the weights. The weights and bias are adjusted to make the actual response of the network move closer to the desired response in a statistical sense (see figure 3). Figure 3: Backpropagation of error So, the backpropagation algorithm looks for the minimum of the error function in the weight space using the method of gradient descent. The combination of weights which minimizes the error function is considered to be a solution of the learning problem. Since this method requires computation of the gradient of the error function at each iteration step, we must guarantee the continuity and differentiability of the error function [8] (see 4). 5

Figure 4: Weights and bias update 6

Neural Network Software Tool The main objective of our work is to create a software tool that implements neural networks. This software tool must integrate the algorithm developed by the investigators involved in the ENTNETs project and must have a good and easy graphical interface. The graphical interface of this new software tool, should be a icon-driven tool that allows the user to specify a block diagram representation of a neural network. The block diagram is composed of icons, representing different components of a neural network (inputs, neural network architecture, learning algorithm, plot outputs,... ), chosen from a library and connected to which other through lines. Matlab As most of the new algorithms developed in our group were written in MATLAB, and this programming environment has a tool that allows the creation of a graphical interface, this was the first language - environment that was explored during the month of January. The GUIDE, the MATLAB graphical user interface development environment, provides a set of tools for creating graphical user interfaces (GUIs). These components have properties, methods, and events. On the layout area may be placed a number of components related to the final graphical effect desired. The tools provide by the GUIDE are shown in the figure 5. 7

Figure 5: GUIDE We learned to use and explored these components and finally realized that we needed some extra events, namely related with the desired graphical components properties. These lack of events made the use of MATLAB unsuitable for our purposes. So we started looking for alternatives. At the same time, object-oriented programming was studied. C/Borland C++ Builder With the knowledge of a previous work done by a student member, we started exploring C / C++ and Borland C++ Builder (shown in figure 6) during February and March. In February we traveled to UBI - Universidade da Beira Interior - to meet with this member and to study the potentialities of the development of this project in C++. 8

Figure 6: Borland C++ Builder The Borland C++ Builder is a development environment for building applications based on C++ (shown in figure 7). Figure 7: Borland C++ Builder During the study of this language, we were informed of the existence of a free neural network software - JOONE - whose graphical environment has some desirable characteristics. To avoid repeating software tools, and since JOONE already had some useful functionalities, we studied it until June. JOONE was written in JAVA so learning this computer language became of high priority. 9

JAVA - JOONE Joone is a Java framework to build and run artificial intelligence applications based on neural networks. This program consists of a modular architecture based on linkable components that can be extended to build new learning algorithms and neural networks architectures. Joone applications are built out of components that are pluggable, reusable, and persistent code modules [5]. It aims to build on contributions of many people. The graphical interface of JOONE is shown in figure 8. Figure 8: Graphical interface of JOONE Joone as some features that we explored and are described below. Supervised Learning: Feed forward neural networks (FFNN); Recursive neural networks (Elman, Jordan,...); Time delay neural networks (TDNN); 10

Standard backpropagation algorithm (gradient descent, on-line and batch); resilient backpropagation; Unsupervised learning: Kohonen SOMs (with WTA or Gaussian output maps); Principal Component Analysis (PCA); Modular neural networks (i.e. possibility to mix all the above architectures). Furthermore JOONE has twelve different activation functions: linear; biased linear; sigmoid; hyperbolic tangent; logarithmic; sine; delay; context function; Gaussian; and seven built-in data pre-processing mechanisms: Normalizer - limiting the input data into a a predefined range (unnormalizer - rescale the output data); Center on zero - subtract the average of the input data; Delta normalizer - feed a network with the normalized delta values of a time series; MinMax - extract the turning points of a time series; Moving average - calculate the average values of a time series; 11

Shuffler - shuffle the order of the input patterns at each epoch; binary - convert the input values to binary format. Joone was developed with the editor NetBeans (shown in figure 9), so this java IDE (integrated development environment) was also studied carefully. Figure 9: NetBeans IDE However, during the study of JOONE s structure and experimentation with datasets, we found some problems on compiling it as well as on the clarification of some code. These problems could only be completely solved with the support of the authors of JOONE. We contacted them but the responses where vague and delayed. Also we became aware of several shortcomings of the JOONE structure. So we started looking for other options. 12

Bibliography [1] Al Ashi, R. Y.; Al Ameri, Ahmed; Introduction to Graphical User Interface (GUI) MATLAB 6.5; UAE University, College of Engineering, Electrical Engineering Department; IEEE UAEU Student Branch [2] Cortez, P.; Redes Neuronais Artificiais, Departamento de Sistemas de Informação, Universidade do Minho [3] Haykin, S.; Neural Networks: A comprehensive foundation; Second Edition; Prentice Hall; 1999 [4] Looney, C. ; Pattern Recognition Using Neural Networks: Theory and Algorithms for Engineers and Scientists; Oxford University Press; 1997 [5] Marrone, Paolo; JOONE - Java Object Oriented Neural Engine - The Complete Guide: All you need to know about Joone; 3 February 2005 [6] NetBeans; NetBeans IDE 5.5 Quick Start Guide [7] Papadourakis, George; Introduction To Neural Networks; Technological Educational Institute of Crete, Department of Applied Informatics and Multimedia, Neural Networks Laboratory [8] Rojas, R.; Feldman J.; Neural Networks: A systematic Introduction; Springer-Verlag, Berlin, New-york; 1996 [9] The Math Works Inc.; MATLAB: The Language of Technical [10] The Math Works Inc.; Simulink: Dynamic System Simulation for Matlab 13