Giter VIP home page Giter VIP logo

newneuralnetwork's Introduction

A study of varied orientations of rectified linear activation functions in artificial neural networks

Summary of work

Artificial neural networks have been a dominant learning algorithm since its inception in the late 1950s. Overtime, it has evolved from being a mere implementation of perceptron learning rule to being an elegant implementation of deep belief networks. This transformation has made neural networks a state of the art technique particularly because of its ability to generate its own simpler version of features alongside the ones that are provided from observations. Consequently, neural networks are now being applied on problems as simple as regression analysis to problems as complex as driving cars using pattern recognition. Much of this progression can be attributed to the inherently simple and flexible implementation principles of neural networks. Historically, this flexibility has been demonstrated through the mere incorporation of an untried approach to neural networks. In light of this philosophy, our research addresses issues including role, gradient and properties of an inherent feature of neural networks, “activation functions” by investigating functions that are not implemented in the literature. Concretely, experiments on open source platform (neuralnet package of R) and datasets (Titanic and MNIST) is performed in order to demonstrate the impact of variations of the popular rectified linear activation function in neural networks.

Organisation

  • in the activation_functions directory there's
    • a plot of all the activation functions that were compared
    • an .R code that generated that plot
  • source code of the how the activation functions are compared in
    • the titanic dataset
    • the MNIST dataset
  • in the outputs directory, there's: output of comparisons I had generated in the past

Implementation

NOTE: The neuralnet directory is the exact sourcecode of the neuralnet package in R with the following exceptions:

  • neuralnet/R/neuralnet.R is changed to neuralnet/R/neuralnetwork1.R
  • in this file:
    • the name of function neuralnet is changed to neuralnetwork1
    • the block meant to represent tanh (lines 216 - 241), is changed to implement new leaky function
    • the block meant to represent sigmoid (lines 242 - 258), is changed to implement linear function
    • these blocks can be changed to implement more variations
    • the reason, the names tanh and sigmoid are kept is to make debugging simpler
    • this way, it is also easy to implement even more function, say in a new file named neuralnetwork2

In the experiments, wherever the neuralnet function is invoked, the original tanh and sigmoid functions of the neuralnet package are implemented.

In contrast, wherever the neuralnetwork1 function is invoked, the new leaky function and linear function that exists in this directory: neuralnet/R/neuralnetwork1.R are implemented.

newneuralnetwork's People

Contributors

sanjidnet avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.