Answers.Body: <p>In principle, you can use a fully connected neural network with reshaping for this kind of problem. The questions you should ask yourself are:</p>
  
  <ol>
  <li>Baselines: What are the simplest algorithms to approach the problem? How good would a human be?</li>
  <li>What do I know? Are there any properties of the 8x8 matrix that will always be true? For example, it seems as if the values from left to right strictly increase. Same for top to bottom. This can be used!</li>
  <li>Are the outputs independent? (e.g. having the (1,1) entry of the matrix, do I know something about the <span class="math-container">$(i, j)$</span> entry of it?</li>
  </ol>
  
  <p>Then, of course, there are more specific things I could imagine. If you were not clear about (2), you might have (wrongly) used softmax/tanh/sigmoid in the last layer. You might simply have too little training data for neural networks. Your neural network implementation might be broken.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-09-24T05:39:56.737Z
Answers.LastActivityDate: 2018-09-24T05:39:56.737Z
Answers.UserDisplayName: Martin Thoma
Body: <p><strong>Problem Statement</strong></p>
  
  <p>I have 4 main input features.</p>
  
  <p>This is a small snippet of the data for clearer understanding.</p>
  
  <p>Gate name -> for example AND Gate</p>
  
  <p>index_1 -> <code>[0.001169, 0.005416, 0.01391, 0.03037, 0.06381, 0.1307, 0.2645, 0.532]</code></p>
  
  <p>index_2 -> <code>[7.906e-05, 0.001123, 0.00321, 0.007253, 0.01547, 0.03191, 0.06478, 0.1305]</code></p>
  
  <p>values -> <code>[[11.0081, 14.0303, 18.8622, 27.3426, 43.8661, 76.7538, 142.591, 274.499], 
             [11.3461, 14.3634, 19.1985, 27.6827, 44.2106, 77.0954, 142.926, 274.879], 
             [12.258, 15.2816, 20.1095, 28.5856, 45.1057, 77.9778, 143.8, 275.758], 
             [13.665, 16.7457, 21.5835, 30.0545, 46.5581, 79.4212, 145.252, 277.192], 
             [15.6636, 18.9526, 23.9051, 32.4281, 48.9011, 81.7052, 147.477, 279.371], 
             [17.8838, 21.5839, 26.8957, 35.7103, 52.3901, 85.2132, 150.89, 282.714], 
             [19.3338, 23.6933, 29.7184, 39.1212, 56.4053, 89.9721, 155.913, 287.637], 
             [18.7856, 23.9999, 31.1794, 41.7549, 60.0043, 95.0488, 162.951, 295.005]]</code></p>
  
  <p>My task is to predict this <code>values</code> matrix, given that I have <code>index_1</code> and <code>index_2</code>. Originally this <code>values</code> matrix is propagation delay, calculated using a simulator called SPICE. </p>
  
  <p><strong>Where I am facing problem</strong></p>
  
  <ol>
  <li><p>There is no written relation between Index_1, index_2 or values since simulator calculates this value using it's own models. </p></li>
  <li><p>I have made a CSV file which contains the data in separate columns. </p></li>
  <li><p>Another approach that I thought. If I can give index_1, index_2 and any 5*5 sub-matrix to the model, and the model can predict the values of whole 8*8 Matrix. But the problem is again, which machine learning model do I use. </p></li>
  </ol>
  
  <p><strong>Approaches Tried so Far</strong></p>
  
  <ol>
  <li><p>I have tried a CNN model for this but it is giving me very low accuracy.</p></li>
  <li><p>Used one dense fully connected neural network but it is over-fitting the data and not giving me any values for matrix.</p></li>
  </ol>
  
  <p>I am still stuck at how to predict the matrix values given this data.  What are other strategies can be used? </p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-09-21T04:30:07.000Z
Comments.Text: Have you tried Generative Networks such as GAN, you may be able to model this problem better with GAN.
Comments.UserDisplayName: Patel Sunil
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-09-21T05:08:41.690Z
Comments.Text: I did consider it but, it wont be able to predict the values of new matrix, it will simply remove the noise given after input matrix and try to recreate the original matrix. Correct me if i am wrong
Comments.UserDisplayName: Mrinal Mathur
Tags: <machine-learning><deep-learning>
Title: Machine learning to predict 8*8 matrix values using three independent matrices
UserDisplayName: Mrinal Mathur
ThreadText: # Machine learning to predict 8*8 matrix values using three independent matrices
  
  (Asked by: username_0 on 2018-09-20)
  
  **Problem Statement**
  
  I have 4 main input features.
  
  This is a small snippet of the data for clearer understanding.
  
  Gate name -> for example AND Gate
  
  index\_1 -> `[0.001169, 0.005416, 0.01391, 0.03037, 0.06381, 0.1307, 0.2645, 0.532]`
  
  index\_2 -> `[7.906e-05, 0.001123, 0.00321, 0.007253, 0.01547, 0.03191, 0.06478, 0.1305]`
  
  values -> `[[11.0081, 14.0303, 18.8622, 27.3426, 43.8661, 76.7538, 142.591, 274.499],
  [11.3461, 14.3634, 19.1985, 27.6827, 44.2106, 77.0954, 142.926, 274.879],
  [12.258, 15.2816, 20.1095, 28.5856, 45.1057, 77.9778, 143.8, 275.758],
  [13.665, 16.7457, 21.5835, 30.0545, 46.5581, 79.4212, 145.252, 277.192],
  [15.6636, 18.9526, 23.9051, 32.4281, 48.9011, 81.7052, 147.477, 279.371],
  [17.8838, 21.5839, 26.8957, 35.7103, 52.3901, 85.2132, 150.89, 282.714],
  [19.3338, 23.6933, 29.7184, 39.1212, 56.4053, 89.9721, 155.913, 287.637],
  [18.7856, 23.9999, 31.1794, 41.7549, 60.0043, 95.0488, 162.951, 295.005]]`
  
  My task is to predict this `values` matrix, given that I have `index_1` and `index_2`. Originally this `values` matrix is propagation delay, calculated using a simulator called SPICE.
  
  **Where I am facing problem**
  
  1. There is no written relation between Index\_1, index\_2 or values since simulator calculates this value using it's own models.
  2. I have made a CSV file which contains the data in separate columns.
  3. Another approach that I thought. If I can give index\_1, index\_2 and any 5\*5 sub-matrix to the model, and the model can predict the values of whole 8\*8 Matrix. But the problem is again, which machine learning model do I use.
  
  **Approaches Tried so Far**
  
  1. I have tried a CNN model for this but it is giving me very low accuracy.
  2. Used one dense fully connected neural network but it is over-fitting the data and not giving me any values for matrix.
  
  I am still stuck at how to predict the matrix values given this data. What are other strategies can be used?
  
  **Tags:** machine-learning, deep-learning
  > **Comments:**
  > **username_1**: Have you tried Generative Networks such as GAN, you may be able to model this problem better with GAN.  
  > **username_0**: I did consider it but, it wont be able to predict the values of new matrix, it will simply remove the noise given after input matrix and try to recreate the original matrix. Correct me if i am wrong  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2018-09-24. Score: 0
  
  In principle, you can use a fully connected neural network with reshaping for this kind of problem. The questions you should ask yourself are:
  
  1. Baselines: What are the simplest algorithms to approach the problem? How good would a human be?
  2. What do I know? Are there any properties of the 8x8 matrix that will always be true? For example, it seems as if the values from left to right strictly increase. Same for top to bottom. This can be used!
  3. Are the outputs independent? (e.g. having the (1,1) entry of the matrix, do I know something about the $(i, j)$ entry of it?
  
  Then, of course, there are more specific things I could imagine. If you were not clear about (2), you might have (wrongly) used softmax/tanh/sigmoid in the last layer. You might simply have too little training data for neural networks. Your neural network implementation might be broken.
  
  
  ---
  
  