Actually, I am "fresh-water", and I've never known what is neural network. Now I am trying understand how to design simple neuronetwork for this problem:

I'd like to make up such neural network that after learning it could predicate a mark of passed exam (for example, math). There is such factors that influence on a mark:

  • Chosen topic (integral, derivative, series)
  • Perfomance (low, medium, high)
  • Does a student work? (Yes, No, flexible schedule)
  • Have a student ever gotten through a add course? (Yes, No)

The output is a mark (A,B,C,D,E,F) I don't know should I add few layers between inputs and output enter image description here Moreover, I have few results from past years:

  • (integral, low, Yes, No, E)
  • (integral, medium, Yes, Yes, B)
  • (series, high, No, Yes, A) and so on. What do I need to know else for designing this NN?
  • $\begingroup$ Have you tried searching anywhere else on the internet first? Assuming you have and knowing the multitude of examples there are I'm not sure what is holding you back. If you've run up against a particular problem perhaps you could add that to the question? $\endgroup$ Jun 24 '19 at 14:43
  • $\begingroup$ I'd like to know should I add some layers between Xi and Y, and when do I have to add layers? $\endgroup$ Jun 24 '19 at 16:49
  • $\begingroup$ @Ayrat i think you should change your question to what you just asked. it is more general, and while the context in the problem is nice it confiscuates that your curious in how to design the architecture rather than the domain specificity $\endgroup$
    – mshlis
    Jun 24 '19 at 17:24

You will need one of two things or both.

  • A theoretical model of grade probability distribution already verified against data that contains the features listed
  • A data set mapping the features listed to grades (labels) for training an artificial network

The features can be specified more formally

  • Chosen topic --- from a finite list of topics, encoded by integer (numbered strings)
  • Performance --- low, medium, or high --- it is not clear from where this judgment comes, but that would need to be clarified and also included in either the verified theoretical model or among the features of the training data
  • Does a student work? --- hours per week --- note that the flexibility of the schedule is not as critical as the hours of the 168 hours of each week not available for sleep, self-care, class time, or study
  • Have a student ever gotten through a add course? --- binary --- this question is unclear in its current phrasing
  • Grade --- converted to numeric value from 0.0 to 4.0, which can be represented as an integer from 00 to 40

The difficult part will be finding either the verified theoretical model or the data set for training or both.

If a verified theoretical model is found, apply a gradient descent implementation to tune that model, which is a statistics and conversion problem only partly related to AI and machine learning. Otherwise using a model free artificial network will likely allow you to reach your objective. A simple feed forward network with gradient descent and back-propagation and three layers should suffice.

There are many examples in Python, Java, and other languages available online, usually in conjunction with a library that the examples leverage for computation and instructions on how to install the software. There are other questions and answers in this forum that explain what books to buy to get started. In fact, there is a tag specifically for that purpose: https://ai.stackexchange.com/questions/tagged/getting-started.


You can add as many layers (with any arbitrary number of nodes) as you want.

Please note that as you add more learning parameters (layers and nodes), your model complexity increases. This means the model can potentially learn a more complex input-output relationship. However, it also increases the risk of overfitting. Overfitting generally happens when the model you build is more complex than the data you have. In such a scenario, the model memorizes the data instead of learning from it. In other words, it can produce a very good result for the same data as it was trained on but cannot generalize well. So, it performs poorly when the inputs are slightly different from what is used to be fed at the training stage.

In practice, you may try different architectures and parameter configurations, and measure the generalization capacity of the models (via cross-validation for example) to choose the best model. In English, a generalizable model is the one that performs (almost) equally good on both training/validation and testing sets.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.