Skip to Content

Introduction

As we had already discussed about a simple implementation of Back Propagation Net (BPN) in the previous blogs, we shall move a little further about how to implement other forms of neural networks in SAP-XI. In this blog we shall discuss about Hopfield Net and Kohonen Feature Map.

Hopfield Net Architecture

image

The Hopfield Net was first introduced by physicist J.J. Hopfield in 1982. It consists of a set of neurons, where each neuron is connected to each other neuron. There is no differentiation between input and output neurons. It’s a feedback type neural network. It uses unsupervised learning method and uses delta learning rule or simulated annealing as learning algorithm. The main application of a Hopfield Net is the storage and recognition of patterns, e.g. image files.

Design of Hopfield net in SAP-XI

In Hopfield net, if there are ‘n’ nodes, there will be n*(n-1)/2 weight nodes.

image

The above diagram shows a theoretical design of a single binary input from node 1 to ‘n-1’ nodes and updating 1… (N-1) weights. This will continue till the last node updating the other weights. But be careful mapping the correct nodes and updating the correct weights because, e.g., node 1 to node 4 refers to the same weight from node 4 to node 1.

Kohonen Feature Map

image

The Kohonen Feature Map was first introduced by finnish professor Teuvo Kohonen (University of Helsinki) in 1982. It is probably the most useful neural net type, if the learning process of the human brain shall be simulated. The type of this neural net is both feedforward (input layer to feature map) and feedback (feature map). It has one input layer and one map layer. The input values can be binary as well as real and the activation function used is sigmoid. It uses unsupervised learning method with selforganization learning algorithm.

What is selforganization? During its learning process, the neurons on the net’s feature map are organizing themselves depending on given input values. This will result in a clustered neuron structure, where neurons with similar properties (values) are arranged in related areas on the map.

Design of Kohonen Feature Map in SAP-XI

image

The above design clearly shows the feedforward used between input and feature map and feedback in feature map. Feedforward. feedback and its weight updations can be done in message mapping very similar to BPN in the Part-1 & 2 of this blog series.

Best practices

image

The above is a refined version of the already discussed design in the blog, A critical analysis and not criticism. In my view, I think this is the best design for neural networks in SAP-XI.

Pros and Cons

  • Totally implementing neural networks in SAP-XI will result in poor performance, but implementing with the help of modules in SAP-XI will improve the performance significantly.
  • Very useful when multiple training and wide range of neural networks are used and mapped for the final result.
  • SAP-XI is the only easiest possible tool to dynamically integrate other applications with neural networks.
  • The greatest advantage is its Java and the Integration. With these both anything can be achieved.
  • Careful designing after proper analysis is needed especially in neural networks because performance is a real big issue here.

Neural network Applications

Since neural networks are best at identifying patterns or trends in data, they are well suited for prediction or forecasting needs including:

  • sales forecasting
  • industrial process control
  • customer research
  • data validation
  • risk management
  • target marketing

But to give some more specific examples, ANN are also used in the following specific paradigms:

  • recognition of speakers in communications
  • diagnosis of hepatitis
  • recovery of telecommunications from faulty software
  • interpretation of multimeaning Chinese words
  • undersea mine detection; texture analysis
  • three-dimensional object recognition
  • hand-written word recognition
  • facial recognition.

Technical perspective: Pattern Recognition – an example

An important application of neural networks is pattern recognition. Pattern recognition can be implemented by using a feed-forward neural network that has been trained accordingly. During training, the network is trained to associate outputs with input patterns. When the network is used, it identifies the input pattern and tries to output the associated output pattern. The power of neural networks comes to life when a pattern that has no output associated with it, is given as an input. In this case, the network gives the output that corresponds to a taught input pattern that is least different from the given pattern.

image

For example:

The network of the above figure is trained to recognize the patterns T and H. The associated patterns are all black and all white respectively as shown below.

image

If we represent black squares with 0 and white squares with 1 then the truth tables for the 3 neurons after generalization are:

i1

i2

i3

F1

0

0

0

0

0

0

1

0

0

1

0

1

0

1

1

1

1

0

0

0

1

0

1

0

1

1

0

1

1

1

1

1

i4

i5

i6

F2

0

0

0

1

0

0

1

0/1

0

1

0

1

0

1

1

0/1

1

0

0

0/1

1

0

1

0

1

1

0

0/1

1

1

1

0

i7

i8

i9

F3

0

0

0

1

0

0

1

0

0

1

0

1

0

1

1

1

1

0

0

0

1

0

1

0

1

1

0

1

1

1

1

0

From the tables the following associations can be extracted:

image

How to use these ANN applications in SAP-XI?

Let’s take the above example. It contains i1…i9 as binary input. These are split into three i1…i3, i4…i6 and i7…i9 and goes into the activation function. After passing into the activation function, the final output is arrived as 1 bit per 3 input bits accordingly. I have not mentioned any training here since the application is considered to be trained! Trained applications have weights hard-coded. Here, if we are using trained applications then we don’t even have to worry about performance. It’s only in the training, performance is a real big issue and in that too, performance can be significantly increased by using adapter modules.

image

The above is just an example to show a neural network application without a training module. Training can be even done completely outside SAP-XI and the trained weights can be used to arrive the required output in SAP-XI. Through this even the training overload can be completely avoided yet a complete ANN application can be built around SAP-XI.

Conclusion

Exchange Infrastructure can not only be used for integration but with its Java as a programming tool in hand, it can achieve many things especially in the field of neural networks.

References

A simple attempt to implement Back Propagation Algorithm in XI (Part -2)

To report this post you need to login first.

20 Comments

You must be Logged on to comment or reply to a post.

    1. I will not say that XI is built for Neural Networks but, what I am trying to prove is that SAP-XI can be used for Neural Networks too! Performance is certainly an issue. To overcome this important big issue, I am suggesting to use modules in SAP-XI which is nothing but a EJB, hence avoiding the overload of mappings in XI. Then, only the business logics are mapped using XI mappings. This gives a wide range intergration even in neural network. The XI-module can even be on the receiver side which gets the input from the output of different neural network types to arrive at the final output.
      (0) 
      1. You robbed us of the real part 3 “(Part-3) will completely focus on the applications which use ANN and how to implement the same in XI from both technical and business perspective” This would have been more interesting. 🙁
        (0) 
            1. Bernd Eckenfels
              Well I  am more suggesting to use a BR Engine as a module in XI  to do complicated reasoning. This can be used for complicated routing decisions or lookups in mappings (for example prices or product configurations).

              Those engines usually support reasoning and backtracking, some also allow fuzzy logic or genetic/neuronal resolving of problems.

              (0) 
    2. Community User Post author
      >>I think performance is going to be very poor
      I agree prakash..If u have seen my analysis in the following blog:

      A critical analysis and not criticism

      I have mentioned that usage of SAP XI in ANN landscape is really very far from being pragmatic.It will definitely be contra productive if XI is used for neural nets.Because of the varios components involved in message traversal and transformation (ABAP: IE,BPE & JAVA: Messaging system, Module Processor,SLD).

      Well definitely not everything that we develop in Java is feasible enough to implement in XI (under the name of module processor/imported libraries) and one such example is ANN using XI.

      Cheers
      Sudhir

      (0) 
      1. If you take a look at the section
        >>How to use these ANN applications in SAP-XI?
        I had clearly mentioned…
        >>. I have not mentioned any training here since the application is considered to be trained!
        (Which means I am using trained weights in production mode)
        Trained applications have weights hard-coded. Here, if we are using trained applications then we don’t even have to worry about performance.

        Which actually means it is enough for XI to give output on a single cycle (since predetermined weights are hardcoded) and no more millions of learning cycles. This can prove that, even without using any modules/imported libraries, XI can really perform well! This doesn’t mean that training mustn’t be or can’t be done on XI. When trained weights are in place, XI can learn as and when data comes in it’s own phase updating the already updated weights, depending upon the application and it’s usage.

        (0) 
      2. If you take a look at the section
        >>How to use these ANN applications in SAP-XI?
        I had clearly mentioned…
        >>. I have not mentioned any training here since the application is considered to be trained!
        (Which means I am using trained weights in production mode)
        Trained applications have weights hard-coded. Here, if we are using trained applications then we don’t even have to worry about performance.

        Which actually means it is enough for XI to give output on a single cycle (since predetermined weights are hardcoded) and no more millions of learning cycles. This can prove that, even without using any modules/imported libraries, XI can really perform well as a ANN application! Training can even be done independently. This doesn’t mean that training mustn’t be or can’t be done on XI. When trained weights are in place, XI can learn as and when data comes in it’s own phase updating the already updated weights, depending upon the application and it’s usage.

        (0) 
    1. Hi Martin,

      >>Most of this Blog is copied word for word from a paper by Christos Stergiou and Dimitrios Siganos

      It is not only from this above site which you mention that I took reference, there are many many other sites that I took reference (mostly the images and some uses). Most of the things are just to explain the uses of neural networks which is clearly not my work. My work is only from XI. Also, I never take credit of their (or anyone’s) work anywhere. In my first blog I had clearly mentioned about how neural network was started and by whome. The theme of the blog is not usage of neural network but how to use it in XI.

      How can you question the “originality of my blog” when I was the first to link XI with neural network!?

      regards,
      Felix

      (0) 
      1. Community User Post author
        If you have used references, material or other said work from anothers work then YOU MUST site your sources within your work.

        This behaviour is not tolerated, please in the future site any sources you use ESPECIALLY if you are using 1:1 as in images, quotes, etc.

        (0) 
        1. Sure Craig!

          I will add a section called references and include all the websites which I refered to create this blog. I will also follow this in my other blogs too!

          But right now, I am in the midst of New Year celebrations and I am currently in my native town. I will include all the references on coming Monday 🙂

          Best regards,
          Felix

          (0) 
        2. Stefan Grube
          > If you have used references, material or other said work from anothers work then YOU MUST site your sources within your work.

          Craig, I think that is not enough. International Copyright laws forbid to take any picture or article of the web and use it. It is not sufficient to reference the sources.

          You have to write an article in “your own words” and draw your own pictures.

          Regards
          Stefan

          (0) 
          1. Stefan,

            You are right. But can be used for fair use. Drawing every image from scratch is really painful and time consuming. I was searching for copyright laws and found something interesting…

            The Copyright Act says that “fair use…for purposes such as criticism, comment, news reporting, teaching (including multiple copies for classroom use), scholarship, or research, is not an infringement of copyright”.
            http://www.eff.org/bloggers/lg/faq-ip.php

            Copying or publicly performing someone else’s work without the owner’s permission — BUT some such uses are OK, especially if they fall within the often ill-defined “fair use” exception (which incidentally varies quite a bit from country to country).
            http://weblogs.about.com/od/issuesanddiscussions/a/copyrightblogs.htm

            I feel that the word “fair use” can save all of us bloggers from these copyright laws.

            The time is 12am here and happy New Year 2006 to SDN members 🙂

            Best regards,
            Felix

            (0) 
            1. Community User Post author
              Stefan,

              You do have a point, reuse in a 1:1 basis of another work without citing that work or WITHOUT the author’s permission is NOT premitted. Felix you will need to do something to ensure that both the authors are OK with you doing this and ensure that this does not happen again in the future.

              ALSO you are a blogger on SDN and SDN servers DO NOT reside in India and therefore do not presume that you are exempt simply because you sit in India. This is an area where you HAVE no expertise, nor do I and it best left to LEGAL experts to determine.

              This conversation is now at an end I DO NOT EXPECT to see any further comment on this isse from any other SDNers nor from the author of this blog, Felix.

              If there are further issues please email me at craig.cmehil@sap.com, in the meantime Felix you have some work to do.

              Craig

              (0) 
  1. Mark Finnern

    Craig has closed this thread, but for clarification here my comments.

    > I am also happy that no copyright law exists for bloggers in India 🙂

    SDN does not care from where you are blogging. All SDNers have to follow international copyright laws. You are not allowed to post any content even in the forums that isn’t yours. Check the SDN Community Guidelines: You must have copyright ownership of all material that you post on our forums. That does not mean that you can’t quote or point to good Web content. You always built on the shoulder of giants and there is no shame in doing so. Some people may not know how to use sources when writing a Weblog. I found the following page describing it for Direct quotesParaphrasingSummarizing. We may write our own simplified rules, but for now this works. Copy and pasting most of the text from another page and only linking to the source at the end does not cut it.

    It’s actually common sense, you copy without quoting properly, people wind find out, you look bad, we have work to clean up the mess. Just don’t do it. Please rest of discussion in the SCN Support forum. Best, Mark.

    (0) 
  2. Dries Guth
    Hi Felix,

    very very impressiv !! In my diploma thesis about rekurrent Neural Networks I used a special kind of network topology to anaylise time series and time series patterns to distinguish between different hand waves and hand gestures.

    I often thought about to use the SAP XI for implementing this neural net model.

    Have  you comletly implemented the Back Porb Algorithem in a module ?

    Other learning algorithms like rekursive backpropagation or the very easy Hepp-Rule are algorithms which could be implemented (partly easy, partly very hard to solve when talking about recursiv networks. I know about what I am talking here…. 🙂 )

    Anyway. Thanks for your blog about this topic (of course it is now 2 years old,) I will continue some of your ideas and will try to work on new implementations in this field..

    (0) 

Leave a Reply