Saturday, May 29, 2021

Back Propagation in ML

Back-Propagation

What is Backpropagation?

Back-propagation is the essence of neural net training. It is the method of fine-tuning the weights of a neural net based on the error rate obtained in the previous epoch (i.e., iteration). Proper tuning of the weights allows you to reduce error rates and to make the model reliable by increasing its generalization.

Backpropagation is a short form for "backward propagation of errors." It is a standard method of training artificial neural networks. This method helps to calculate the gradient of a loss function with respects to all the weights in the network.

Why We Need Backpropagation?

  • Backpropagation is fast, simple and easy to program
  • It has no parameters to tune apart from the numbers of input
  • It is a flexible method as it does not require prior knowledge about the network
  • It is a standard method that generally works well
  • It does not need any special mention of the features of the function to be learned.

Types of Backpropagation Networks

Two Types of Backpropagation Networks are:

  • Static Back-propagation
  • Recurrent Backpropagation

Static back-propagation:

It is one kind of backpropagation network which produces a mapping of a static input for static output. It is useful to solve static classification issues like optical character recognition.

Recurrent Backpropagation:

Recurrent backpropagation is fed forward until a fixed value is achieved. After that, the error is computed and propagated backward.

The main difference between both of these methods is: that the mapping is rapid in static back-propagation while it is nonstatic in recurrent backpropagation.

Backpropagation Key Points

  • Simplifies the network structure by elements weighted links that have the least effect on the trained network
  • You need to study a group of input and activation values to develop the relationship between the input and hidden unit layers.
  • It helps to assess the impact that a given input variable has on a network output. The knowledge gained from this analysis should be represented in rules.
  • Backpropagation is especially useful for deep neural networks working on error-prone projects, such as image or speech recognition.
  • Backpropagation takes advantage of the chain and power rules allows backpropagation to function with any number of outputs.

Best practice Backpropagation

  • Backpropagation can be explained with the help of "Shoe Lace" analogy

    Too little tension =

    • Not enough constraining and very loose

    Too much tension =

    • Too much constraint (overtraining)
    • Taking too much time (relatively slow process)
    • Higher likelihood of breaking

    Pulling one lace more than other =

    • Discomfort (bias)

    Disadvantages of using Backpropagation

    • The actual performance of backpropagation on a specific problem is dependent on the input data.
    • Backpropagation can be quite sensitive to noisy data
    • You need to use the matrix-based approach for backpropagation instead of mini-batch.

    Summary

    • A neural network is a group of connected it I/O units where each connection has a weight associated with its computer programs.
    • Backpropagation is a short form for "backward propagation of errors." It is a standard method of training artificial neural networks
    • Backpropagation is fast, simple and easy to program
    • A feedforward neural network is an artificial neural network.
    • Two Types of Backpropagation Networks are 1)Static Back-propagation 2) Recurrent Backpropagation
    • In 1961, the basics concept of continuous backpropagation were derived in the context of control theory by J. Kelly, Henry Arthur, and E. Bryson.
    • Backpropagation simplifies the network structure by removing weighted links that have a minimal effect on the trained network.
    • It is especially useful for deep neural networks working on error-prone projects, such as image or speech recognition.
    • The biggest drawback of the Backpropagation is that it can be sensitive for noisy data.





Monday, April 13, 2020

Conclusion

Conclusion


The software engineering field evolves to subsequent generation software
reengineering. The software reengineering is predicated on the concept of reduced cost.
Without changing the functionality of the legacy system helps the people to feel the
software with new trend and technology. Reengineering concepts like reverse
engineering, forward engineering are described. Reengineering Process are often
transformed in to a replacement arena, refractor a present of reengineering, redesign and recode also reduce the event time and also the value . The merits and demerits are
always applicable to the any field. it's not exception to software reengineering too. But concluding the advantages shadow over the problems by a large margin. Thus in this ever changing world, the software needs to be enginnered again and again to fit the preset world we live in. 


Authors

Tanay Soni
Fagun Shadi
Tanish Kogta

Tejas Shantaram

Advantages and Disadvantages

Benefits of Software Reengineering Process:

At a particular stage, the organization is faced with the selection of making a replacement system from scratch or upgrading an existing one. In most cases, it's software reengineering process which will be the proper choice, because it provides variety of serious advantages:

1) productivity increase. By optimizing the code and database the speed of labor is increased;

2) risk reduction. Development from scratch is usually a more risky exercise, as against a phased upgrade of the prevailing system;

3) time saving. rather than starting development from scratch, the prevailing solution is just transferred to a replacement platform, saving all business-logic;

4) optimization potential. you'll refine the system functionality and increase its flexibility, ensuring better compliance with the enterprise’s current objectives;

5) processes continuity. The old product are often used while testing the new system until all work is completed.

6) improvement opportunity. you'll not only refine the prevailing product, but also expand its capabilities by adding new features;

Thus, we've an optimal solution since we've to transfer the software to a replacement platform/technology, while ensuring the continual operation of processes of the enterprise.

Disadvantages of software reengineering:

1) Expensive initial system is need to be produced.

2) It is difficult to customize.

3) The user is needs to be accurately defined.


Citation

  • Reverse engineering and design recovery: a taxonomy
    (Volume: 7 , Issue 1 , Jan. 1990 pg 13-17)

Authors

Tanay Soni
Fagun Shadi
Tanish Kogta
Tejas Shantaram

Sunday, April 12, 2020

Process of Software Re-Engineering

Steps to Re-Engineering


Fig : The above figure shows the relation between the three Software development life cycle stages
and key terms. It shows that forward engineering follows the normal direction of requirements then design and then Implementation whereas Reverse engineering follows the inverse direction.


  • Document Restructuring : software requirement specification document either describes how the software operate or the way to use software. Documentation must be restructured and modified

  • Reverse Engineering : Reverse engineering is additionally called as backward engineering. Reverse engineering is often described as reverse SDLC model. it's the method of understanding and analyzing and extracting the planning and specification information from the prevailing system. Reverse engineering also discovers the components of the system and interrelationship between them.Software reverse engineering concerns the source code by reversing a program’s machine that was written within the specific programing language . during this process, we obtain higher level abstraction by inspecting the lower level abstraction.

  • Code Restructuring : The source code is inspected employing a restructuring tool. The code is restructured during this phase to see and confirm that there's no anomalies are present within the code, the ultimate restructured code is evaluated.

  • Data Restructuring :  Data restructuring starts with the reverse engineering process. data architecture and data models are defined within the data reconstruction. Data restructuring is the process to research and define the info object, attributes and arrangement in a system so that the system is going to be more understandable and efficient. this is often time consuming process.

  • Forward Engineering : Forward Engineering is additionally referred to as renovation process. This process recovers design and specification information from the prevailing system. This information is employed to switch the prevailing software to extend the general performance and quality. Forward engineering is completed to realize the specified software from the specification information.
Software Re-engineeringForward & Reverse Engineering

Citation

  • Reverse engineering and design recovery: a taxonomy
    (Volume: 7 , Issue 1 , Jan. 1990 pg 13-17)
  • prepinsta


Authors

Tanay Soni
Fagun Shadi
Tanish Kogta
Tejas Shantaram

Software Re-Engineering Introduction

What is Software Re-Engineering 

The concept of software re-engineering was introduced by Elliot Chikofsky and James Cross in their 1990 paper, Reverse Engineering and design Recovery. Software re-engineering is the process to improving the standard of the software products. within the software development life cycle, to extend the software maintainability, when hardware or software support becomes outdated, this process is employed .

Why is Software Re-Engineering needed

  1. This process is used to improving the quality of the software products

  2. Software re-engineering is a cost-effective method for software development. This method minimizes the cost.

  3. Software re-engineering allows to reusability of the software products by adding new features, on existing software, that the customer needs.

  4. is process improves the software maintainability.

  5. This approach is required when the programming language or platform is no longer supported.

Authors

Tanay Soni
Fagun Shadi
Tanish Kogta
Tejas Shantaram

Back Propagation in ML

Back-Propagation What is Backpropagation? Back-propagation is the essence of neural net training. It is the method of fine-tuning the weight...