•  


GitHub - mroodschild/froog: neural network
Skip to content

mroodschild/froog

Repository files navigation

Froog

                Authors:  Roodschild Matias     / mroodschild@gmail.com
                          Jorge Gotay Sardinas  / jgotay57@gmail.com
                          Adrian Will           / adrian.will.01@gmail.com
                          Sebastian Rodriguez   / sebastian.rodriguez@gitia.org

Introduction

This project was created with mainly academic purposes for my PhD Tesis, but it is also free for commercial uses. Its design goals are: 1) To be accessible to both novices and experts, and 2) To facilitate neural networks manipulations. Froog is free, written 100% in Java, and has been released under Apache 2 license.

Currently Froog supports:

  • Backpropagation Algorithm
  • Stochastic Gradient Descent
  • Conjugate Gradient
  • Scaled Conjugate Gradient
  • Acceleration methods (Momentum, Momentum Rumelhart, Adam)
  • Weight Initialization (Default (Xavier), He, Pitfall, PositiveRandom, SmallRandom)
  • Weight Normalization L2
  • Dropout
  • Loss Functions (RMSE, MSE, CrossEntropy, Logistic)
  • Transfer Functions (Logsig, Tansig, Softmax, Purelim, Softplus, ReLU)
  • Confusion Matrix
  • Early Stop (Max Iteration Only)

Documentation - Example

        //get data
        SimpleMatrix input = CSV.open("src/main/resources/iris/iris-in.csv");
        SimpleMatrix output = CSV.open("src/main/resources/iris/iris-out.csv");

        //Standard Desviation
        STD std = new STD();
        std.fit(input);

        //normalization
        input = std.eval(input);
        Random random = new Random(1);
        
        //set data in horizontal format (a column is a register and a row is a feature)
        input = input.transpose();
        output = output.transpose();

        //setting backpropagation
        Backpropagation bp = new Backpropagation();
        bp.setEpoch(1000);
        bp.setMomentum(0.9);
        bp.setClassification(true);
        bp.setLossFunction(LossFunction.CROSSENTROPY);

        //number of neurons
        int Nhl = 2;

        Feedforward net = new Feedforward();

        //add layers to neural network
        net.addLayer(new Dense(input.numRows(), Nhl, TransferFunction.TANSIG, random));
        net.addLayer(new Dense(Nhl, output.numRows(), TransferFunction.SOFTMAX, random));
        
        //train your net
        bp.train(net, input, output);
        
        //show results
        System.out.println("Print all output");
        SimpleMatrix salida = net.output(input);
        ConfusionMatrix confusionMatrix = new ConfusionMatrix();
        confusionMatrix.eval(Compite.eval(salida.transpose()), output.transpose());
        confusionMatrix.printStats();
        

Maven - jitpack.io

Froog is in Maven jitpack.io and can easily be added to Maven, and similar project managers.

    <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories> 
    <dependencies>
        <dependency>
            <groupId>com.github.mroodschild</groupId>
            <artifactId>froog</artifactId>
            <version>0.5.1</version>
        </dependency>
    </dependencies>

Dependencies


The main Froog modules depends on the following libraries

The following is required for unit tests

License

Froog is released under the Apache 2 open source license.

- "漢字路" 한글한자자동변환 서비스는 교육부 고전문헌국역지원사업의 지원으로 구축되었습니다.
- "漢字路" 한글한자자동변환 서비스는 전통문화연구회 "울산대학교한국어처리연구실 옥철영(IT융합전공)교수팀"에서 개발한 한글한자자동변환기를 바탕하여 지속적으로 공동 연구 개발하고 있는 서비스입니다.
- 현재 고유명사(인명, 지명등)을 비롯한 여러 변환오류가 있으며 이를 해결하고자 많은 연구 개발을 진행하고자 하고 있습니다. 이를 인지하시고 다른 곳에서 인용시 한자 변환 결과를 한번 더 검토하시고 사용해 주시기 바랍니다.
- 변환오류 및 건의,문의사항은 juntong@juntong.or.kr로 메일로 보내주시면 감사하겠습니다. .
Copyright ⓒ 2020 By '전통문화연구회(傳統文化硏究會)' All Rights reserved.
 한국   대만   중국   일본