Neural Networks
Level 2: Applied Expertise
Grading Rubric
In order to obtain the Wolfram level 2 certification for applied expertise in neural networks, the applicant must successfully complete an independent project that demonstrates expertise in constructing a neural network and using it to explore a dataset or solve a problem, then submit a project report in the form of a Wolfram Notebook, with the required certification fee. Submissions are graded according to the following rubric. Level 2 certification requires a project score of 75 or greater.

Network Construction (75 points)

Question (5 points)


  • Acquire your data and define a specific question or questions about this data that will be answered by the end of the project.
  • 
  • List questions that are well motivated and interesting.
  • 
  • Explain why there is some importance to the answers to these questions.
  • Create or Modify (20 points)

    
  • Create
  • 
  • Create encoders and decoders.
  • 
  • Choose your layers and explain the purpose of each layer.
  • 
  • Construct (e.g. with NetChain, NetGraph, etc.) and initialize your network.
  • 
  • Make sure to explain the construction of your network—why have you structured it the way you have?
  • 
  • Modify
  • 
  • Take a pre-built network either from the lectures and explorations from Neural Networks Boot Camp or from the Wolfram Neural Net Repository. (Be very clear about the source of your starting network.)
  • 
  • Modify the network as you see fit—for example, changing encoders or decoders, cutting out or adding certain layers, pruning or other substantive changes.
  • 
  • Explain the mechanics of your modifications and their intended goal.
  • Train (15 points)

    
  • Split your data up into training and test sets. Use the test set to train your network.
  • 
  • Explain your choice of training vs. testing data as well as any data augmentation (e.g. rotating or reflecting image inputs) that you might have done.
  • 
  • Discuss parameter choices like BatchSize, MaxTrainingRounds and so on.
  • Test Functionality (10 points)

    
  • Test your network on a subset of your data to see how it performs.
  • 
  • Provide results of evaluating your model according to performance metrics, with the help of NetMeasurements.
  • 
  • If the results are not what you expect, explain why this might be and what changes you will make in order to improve the performance of your network.
  • 
  • Iterate as necessary.
  • Apply (5 points)

    
  • Use your completed network on your data.
  • 
  • Show the relevant outputs in whatever format makes sense for your data.
  • Communicate (20 points)

    
  • Convey the final results of your analysis clearly.
  • 
  • This section of the project will be graded on:
  • 
  • Visual appeal
  • 
  • Informativeness
  • 
  • Quality of design
  • Reproducibility (25 points)

    Code (10 points)

    
  • Make sure the notebook is self-contained. (It should be possible for us to run the code without any external file dependencies.)
  • 
  • Organize and indent code for readability.
  • 
  • Remove incomplete/irrelevant code snippets (used to try out ideas while developing the workflow) from the final notebook.
  • 
  • Revise and rewrite code to make it simple and straightforward. One rule of thumb is to make a cell no more than three lines of code; cells with complicated, lengthy code should be broken up into multiple segments or cells.
  • 
  • Name variables and functions according to their purpose in the code. Avoid generic names like “var123” or “myFunction.”
  • 
  • Include comments to explain exactly what is being done by the code.
  • Either use comments such as:
    (*thisisacomment*)
    Or use a cell in CodeText style preceding the cell with the code:
    Create a scatter plot of feature 1 vs. feature 2 using ListPlot:
    In[]:=
    ListPlot[RandomReal[10,{10,2}]]
    Out[]=

    Explanations and Comments (10 points)

    
  • Include relevant, concise text explanations to describe every stage of the project workflow.
  • 
  • Include explanations regarding specific decisions on the choice of algorithms, techniques, values of parameters and any other choices you make.
  • 
  • Use simple examples and visualizations to illustrate reasoning that may be unclear at first glance.
  • References (5 points)

    
  • Provide links to existing published research as references.
  • 
  • If this project builds on someone else’s work or attempts to provide comparative analysis, highlight the work in a reference.