Answers.Body: <p>You will need one of two things or both.</p>
  
  <ul>
  <li>A theoretical model of grade probability distribution already verified against data that contains the features listed</li>
  <li>A data set mapping the features listed to grades (labels) for training an artificial network</li>
  </ul>
  
  <p>The features can be specified more formally</p>
  
  <ul>
  <li>Chosen topic --- from a finite list of topics, encoded by integer (numbered strings)</li>
  <li>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</li>
  <li>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</li>
  <li>Have a student ever gotten through a add course? --- binary --- this question is unclear in its current phrasing</li>
  <li>Grade --- converted to numeric value from 0.0 to 4.0, which can be represented as an integer from 00 to 40</li>
  </ul>
  
  <p>The difficult part will be finding either the verified theoretical model or the data set for training or both.</p>
  
  <p>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. </p>
  
  <p>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: <a href="https://ai.stackexchange.com/questions/tagged/getting-started">https://ai.stackexchange.com/questions/tagged/getting-started</a>.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-07-03T03:23:12.037Z
Answers.LastActivityDate: 2019-07-03T03:23:12.037Z
Answers.UserDisplayName: Douglas Daseeco
Answers.Body: <p>You <strong>can</strong> add as many layers (with any arbitrary number of nodes) as you want.</p>
  <p>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 <strong>overfitting</strong>. 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.</p>
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-25T01:57:31.333Z
Answers.LastActivityDate: 2020-07-26T04:51:23.110Z
Answers.LastEditDate: 2020-07-26T04:51:23.110Z
Answers.UserDisplayName: Borhan Kazimipour
Body: <p>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:</p>
  
  <p>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:</p>
  
  <ul>
  <li>Chosen topic (integral, derivative, series)</li>
  <li>Perfomance (low, medium, high)</li>
  <li>Does a student work? (Yes, No, flexible schedule)</li>
  <li>Have a student ever gotten through a add course? (Yes, No)</li>
  </ul>
  
  <p>The output is a mark (<em>A,B,C,D,E,F</em>)
  I don't know should I add few layers between inputs and output
  <a href="https://i.sstatic.net/ChZiH.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/ChZiH.png" alt="enter image description here"></a>
  Moreover, I have few results from past years:</p>
  
  <ul>
  <li>(integral, low, Yes, No, <strong>E</strong>) </li>
  <li>(integral, medium, Yes, Yes, <strong>B</strong>)</li>
  <li>(series, high, No, Yes, <strong>A</strong>)
  and so on. What do I need to know else for designing this NN?</li>
  </ul>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-06-24T14:43:10.640Z
Comments.Text: 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?
Comments.UserDisplayName: Lio Elbammalf
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-06-24T16:49:06.043Z
Comments.Text: I'd like to know should I add some layers between Xi and Y, and when do I have to add layers?
Comments.UserDisplayName: DisplayName
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-06-24T17:24:48.240Z
Comments.Text: @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
Comments.UserDisplayName: mshlis
Tags: <neural-networks>
Title: How to create neural network that predicates result of exam?
UserDisplayName: DisplayName
ThreadText: # How to create neural network that predicates result of exam?
  
  (Asked by: username_0 on 2019-06-24)
  
  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](https://i.sstatic.net/ChZiH.png)](https://i.sstatic.net/ChZiH.png)
  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?
  
  **Tags:** neural-networks
  
  > **Comments:**
  > **username_1**: 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?  
  > **username_0**: I'd like to know should I add some layers between Xi and Y, and when do I have to add layers?  
  > **username_2**: @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  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_3 on 2019-07-03. Score: 0 | Accepted answer
  
  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>.
  
  
  ---
  
  ### Answer by username_4 on 2019-06-25. Score: 0
  
  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.
  
  
  ---
  
  