CS 425 – F ALL 09 C ORY L EHAN T IM M EYER J ARROD C APPS J ONATHAN B RIDGES F INAL P RESENTATION.

38
CS 425 – FALL 09 CORY LEHAN TIM MEYER JARROD CAPPS JONATHAN BRIDGES FINAL PRESENTATION

Transcript of CS 425 – F ALL 09 C ORY L EHAN T IM M EYER J ARROD C APPS J ONATHAN B RIDGES F INAL P RESENTATION.

CS 425 – FALL 09

CORY LEHANTIM MEYER

JARROD CAPPSJONATHAN BRIDGES

FINAL PRESENTATION

CS 425 - Team Neurotic 2

PROJECT OUTLINECognitive Dissonance Reduction in Neural Networks

CS 425 - Team Neurotic 3

Participants

Manager

Dr. Fujinoki

Manager

Dr. Fujinoki

Client/User

Dr. Watson

Client/User

Dr. Watson

Members

Tim Meyer

Jarrod Capps

Jonathan Bridges

Members

Tim Meyer

Jarrod Capps

Jonathan Bridges

Team Leader

Cory Lehan

Team Leader

Cory Lehan

CS 425 - Team Neurotic 4

Team Roles

Cory Lehan• Team Leader• Customer Interface• Support

Tim Meyer

• Test Manager• Process Manager

Jarrod Capps

• Implementation Manager• Plan Manager

Jonathan Bridges

• Design Manager• Quality Manager

CS 425 - Team Neurotic 5

Ethical Considerations

Client Relations Bi-weekly meetings at client’s discretion.

Individual Accomplishments Author and Co-author tags.

Academic Awareness Put forth best effort, due to the sharing of a group

grade.

CS 425 - Team Neurotic 6

Background

Cognitive Dissonance A cognition can be a belief or attitude a person holds. Dissonance occurs when cognitions contradict each

other. Very uncomfortable feeling in humans.

Responsibility

Cognition 2

Cognition 1 BeliefDissonance

Reduction occurs to reduce the unpleasant feeling.

CS 425 - Team Neurotic 7

Background

Neural Networks Two main groups: A.I. & Cognitive Modeling.

Artificial Intelligence with Neural Networks Problem solving. Pattern recognition. Can be trained or learn.

Cognitive Modeling in Neural Networks Models biological neural systems. Heavy use of mathematical models.

CS 425 - Team Neurotic 8

Background

Neural Network for this project Concerned with modeling, not problem solving. Based off the Consonance Model from “Connectionist

Models of Social Reasoning And Social Behavior”. Will attempt to simulate dissonance reduction.

CS 425 - Team Neurotic 9

Background

The Consonance Model. Cognitions

Two nodes at polar ends. Resistance to change

Nodes contain an activation level. Firing rate of neuron. Represents direction and strength of the

attitude or belief (the cognition).

+

-

Cognition

CS 425 - Team Neurotic 10

Background

The Consonance Model. Cognitions are connected through their nodes bi-

directionally. Connections are weighted positively or negatively. Cognitions are related positively or negatively.

+

-

+

-

Cognition 2

Cognition 1

CS 425 - Team Neurotic 11

REQUIREMENTS

CS 425 - Team Neurotic 12

Hardware Environment

What They Are Windows Environment (XP, Vista, 7) Minimum disk storage ~50mb 1 GHz Pentium III, or greater, processor.

How We Know Based off requirements of similar software the client

runs.

CS 425 - Team Neurotic 13

Software Requirements

Requirements Gathering Repeated meetings with the client. Use Cases Interface Mock-up to gather features for.

CS 425 - Team Neurotic 14

Software Requirements

Feature Priority List Generated from gathering phase. Priority assigned based off client need, and risk

assessment. Estimates are conservative, and based off previous

experience.

Priority Item# DescriptionEst. (days)

Very High Neural network components with attributes -

1 Cognitions, Nodes 22 Connections 23 Update algorithm for iterations 44 Neural network creation wizard 3

Feature Priority List Example:

CS 425 - Team Neurotic 15

Software Requirements

Key Features User created neural network. Ability to load/save past creations. Ability to edit properties of a created neural network. Start/Pause the neural network simulation. Graphical representation of the neural network. Graph output of dissonance.

CS 425 - Team Neurotic 16

DEVELOPMENT ENVIRONMENT

CS 425 - Team Neurotic 17

Programming Language

What is it? Java

Why? Helpful Neural Network books with Java. JFreeChart and JOGL Java libraries. Java SWING provides interface creation.

CS 425 - Team Neurotic 18

Libraries

JFreeChart Allows dynamically created charts. Meets requirements based off tested code in High-

Fidelity prototype.

JOGL (Java OpenGL) Allows the graphical representation of the neural

network. Certain it meets required needs based off previous

experience.

CS 425 - Team Neurotic 19

Software Tools

Subversion Used with all documents and code.

NetBeansIDE Java support. JUnit Subversion support.

Doxygen For generating software reference documentation.

CS 425 - Team Neurotic 20

Coding & Documentation Standards

Code Comments Javadoc style comments

Indentation Standard 4 space “hanging paragraph” style.

Naming Camel Casing (e.g. camelCasing) Noun phrases for class names. Verb phrases for method names.

CS 425 - Team Neurotic 21

DEVELOPMENT PLAN

CS 425 - Team Neurotic 22

Software Engineering Methodology

Based off certain agile “Best Practices” Customer Involvement Test Before Code Code Review and Refactor Stand-up Meetings Problem Solving with Patterns

CS 425 - Team Neurotic 23

Developed in iterations.

Gather Requirements

Design - System Structure

Incremental Development

System Testing

Review & Release

Software Process

CS 425 - Team Neurotic 24

Software Process

Incremental Development Begins by converting features to tasks.

Design

Implementation &

Unit Testing

System TestingReview

Feature-to-Task

CS 425 - Team Neurotic 25

Software Process

Reasons for Process Choice Adaptability to changing requirements. Iterative nature gives an early working build. Allows for a lot of testing. Keeps client involved through iteration reviews.

CS 425 - Team Neurotic 26

Risk Analysis

RISK MITIGATION TACTIC

Dissonance reduction algorithm doesn’t work.

•Design pseudo-code of algorithm.•Priority of first iteration.

Interface and Graph Output don’t interact with one another correctly.

•Extensive documentation purchased on JFreeChart. •Implemented chart in high-fidelity prototype.

No working product early enough for client to begin research.

•The first iteration will contain only the bare and highest-priority items.

CS 425 - Team Neurotic 27

Project Plan

Iteration #1 – Very High Priority Features

ID Task Name Start Finish DurationDec 20 2009 Dec 27 2009

19 29 225 26 312220 51 3302818 423 272421

2 2d12/22/200912/21/2009Components: Nodes & Cognitions

3 2d12/23/200912/22/2009Components: Connections

4 4d12/30/200912/25/2009Algorithm

5 6d12/28/200912/21/2009Wizard Creation

6 1d12/21/200912/21/2009Menu Creation

7 1d12/23/200912/22/2009Control Implementation

8 1d12/24/200912/24/2009Graphical Labeling

9 2d12/22/200912/21/2009Save: State gathering

10 2d12/25/200912/24/2009Save: File I/O

11 2d12/24/200912/23/2009Load: File I/O

12 1d12/28/200912/28/2009Load: Network creation

13 4d1/1/201012/29/2009Real-time graphical output

14

1 1d12/18/200912/18/2009Design

Jan 3 2010

5d1/8/20101/4/2010Testing & Review

6 7 8 9

CS 425 - Team Neurotic 28

Project Plan

Iteration #2 – High Priority Features

ID Task Name Start Finish DurationJan 24 2010Jan 10 2010

13 29 11914 1811 15 262220178 9 31302510 2

2 16d2/1/20101/11/2010Graph: Dynamic creation

3 4d1/14/20101/11/2010Graph: Cognition & Nodes

4 4d1/21/20101/15/2010Graph: Node connections

5 10d1/29/20101/18/2010Graph: Update upon change

6 2d1/12/20101/11/2010Timeline: cross section

7 2d1/15/20101/13/2010Timeline: Controls & Zoom

8 6d1/21/20101/13/2010Graph: Item selection

9 6d2/1/20101/22/2010Graph: Pop-ups

Jan 17 2010

21 2416 282712 23

10

1 1d1/8/20101/8/2010Design

5d2/5/20102/1/2010Testing & Review

Jan 31 2010

3 4 5

CS 425 - Team Neurotic 29

Project Plan

Iteration #3 – Moderate Priority Features

ID Task Name Start Finish DurationFeb 14 2010Feb 7 2010

12 2113 19148 10 229 2320117 15 175 6 1816

2 3d2/10/20102/8/2010Storage of previous states

3 4d2/11/20102/8/2010Timeline – Graph interaction

4 4d2/19/20102/16/2010Access to previous states

5 4d2/18/20102/15/2010Attribute manipulation

6 3d2/12/20102/10/2010Consonance output

7

1 1d2/5/20102/5/2010Design

Feb 21 2010

24 25 26

5d2/26/20102/22/2010Testing & Review

CS 425 - Team Neurotic 30

Project Plan

Iteration #4 – Low Priority Features (Optional)

ID Task Name Start Finish DurationFeb 28 2010 Mar 14 2010

828 219 231412 20102 65 1927 13 26

2 4d3/4/20103/1/2010Real time graphical updates

3 15d3/19/20103/1/2010Brain Graphic

4 10d3/12/20103/1/2010Microsoft Excel compatability

Mar 7 2010 Mar 21 2010

18 2426 15 253 4 2217161 7 11

5

1 1d2/26/20102/26/2010Design

5d3/26/20103/22/2010Testing & Review

CS 425 - Team Neurotic 31

Testing Plan

Testing will be done in 3 phases: Phase 1: Functionality Testing. Done by individual

programmer. Phase 2: Requirements testing. Done by majority of

the team including Client. Phase 3: Final testing of Program. Done by the

majority of the team.

Unit testing will be done in all Phases.

CS 425 - Team Neurotic 32

DESIGN

CS 425 - Team Neurotic 33

Static class diagram of system structure

+registerObserver()+removeObserver()+notifyObservers()

«interface»Subject

+update()

«interface»Observer

-subject

1

-observers

*

+getInstance()+registerObserver()+removeObserver()+notifyObservers()+addIteration()

-uniqueInstance : NeuralNetworkData-observerList : ArrayList<Observer>

NeuralNetworkData

+initializeComponents()+update()

-networkData : Subject

NeuralNetworkDisplay

+initializeComponents()+update()

-networkData : Subject

DissonanceGraphDisplay

+addCognition()+connectCognitions()+calculateDissonance()+updateToNextIteration()

NeuralNetwork

+addConnectionToPositiveNode()+addConnectionToNegativeNode()

-positiveNode : Node-negativeNode : Node

Cognition

-weight : float

Connection

+addConnection()

-activation : float

Node

-network 1

-dataset

1

«interface»JPanel

1

2..*

1 2

1

*

-cognitions : ArrayList<Cognition>-dissonance : float

NeuralNetworkIteration

-dataset1

-iterations*

+createNeuralNetwork() : NeuralNetwork

NeuralNetworkCreator -creates -generates

Observer Pattern• Displays are updated when new data is available.• Allows dynamic addition or remove of observing displays.

Singleton Pattern• Only one instance of the network data can exist.• Gives a global access point to the data.

CS 425 - Team Neurotic 34

Graphics

Displays the Neural Network in a graphical, user-friendly way

Takes mouse input for easily modifying the network

Tasks are divided into separate classes for expandability

Algorithm

CS 425 - Team Neurotic 35

Current algorithms are rather simple Formulas contained in texts

Client may need more advanced algorithms Dynamic connection weights are desired Both client and team will work together to develop a

more advanced algorithm to simulate these changes

ai(t + 1) = ai(t) + neti[ceiling – ai(t)]i when neti ≥ 0ai(t + 1) = ai(t) + neti[ai(t) - floor]i when neti< 0consonancei = ∑iwijaiaj

consonancen = ∑i∑jwijaiaj

neti = resisti ∑iwijajdissonance = -consonancen/r

CS 425 - Team Neurotic 36

Algorithm

Pseudo-code created of simple dissonance reduction algorithm, and calculating consonance/dissonance.

calculateConsonance {float consonance;for(... Node i) {

for(... Connection j) {consonance += Node[i].con[j].weight *Node[i].activation *Node[j].activation;

}}

}

Sample of calculating consonance:

CS 425 - Team Neurotic 37

PROTOTYPE DEMO

CS 425 - Team Neurotic 38

Questions?

Cory LehanTim MeyerJarrod CappsJonathan Bridges