{
  "fetched_at": "2026-10-19T13:18:28Z",
  "source_url": "https://www.kaggle.com/competitions/copy-of-proj5cs486ay24-1v2/data",
  "pages": [
    {
      "name": "data-description",
      "content": "The dataset for this project contains 109,309 retinal optical coherence tomography images. The dataset is divided into training, validation, and test sets as follows:\n\n- Training: 97,477\n- Validation: 10,832\n- Testing (not yet posted): 1000\n\nAll images are in grayscale with dimensions of 28 x 28 pixels. Labels for each image are provided in separate files. These labels pertain to one of four classes (0 - Choroidal Neovascularization, 1 - Diabetic Macular Edema, 2 - Drusen, 3 - Normal). All dataset files are numpy binaries (.npy). Thus, they cannot be easily viewed outside of a python program, but are extremely easy and fast to import otherwise. The code required to import them can be found in the starter notebook.\n\nReview the starter notebook early and ask questions often. The cells where you are meant to provide your own code are clearly delineated, though you can freely modify the rest of the notebook at your own risk. **Code examples we review in class will be very helpful for filling out the starter notebook.**",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "## Introduction & Motivation\nWelcome to the Project 5 competition for CS486: Artificial Intelligence, AY24-1. Throughout this competition, you will be designing and training a neural network in PyTorch that predicts the presence of retinal disease from optical coherence tomography (OCT) images. See below for detailed instructions, and good luck!\n\nUsing the training/validation/test datasets and the optional starter notebook provided here, your task is to design a network that achieves or surpasses a baseline accuracy when predicting one of four classes from a given OCT image: Choroidal Neovascularization, Diabetic Macular Edema, Drusen, and Normal. Beyond meeting this baseline, more robust and better designed networks will earn you a higher position on the competition leaderboard.\n\nAs the deep learning engineer, it is not important for you to understand exactly how OCT images are obtained, nor do you need to understand the medical conditions your network predicts (however, if you want to know more about these topics, check the Acknowledgements). In the real world, you would ideally seek the counsel of optometrists and other subject matter experts to design a network that best suits their needs. For this project, your focus should remain squarely on designing the best network possible, given the data provided.\n\n## Where Do I Begin?\n\nDownload the starter notebook and training/validation/test datasets from the 'Data' tab. You can expect the starter notebook to assist you with preprocessing the data and generation of your results for submission to the competition leaderboard. Your job is to provide the code required to define your network (number of neurons, number of hidden layers, activation functions, etc.) and train it.\n\nNote that the starter notebook provides only the baseline amount of preprocessing required. Many preprocessing techniques exist that could improve your results (see data augmentation, batch normalization, etc.), but these methods are outside the scope of the course. Similarly, alternative network architectures (e.g. convolutional neural networks) are far better suited for datasets containing images, but you will not be explicitly taught how to create these in class. Adventurous students who explore what is possible beyond what you see in class will certainly achieve higher leaderboard positions, though this is not required to receive max points on this project.\n\nRefer to the Submission, Timeline, and Acknowledgements tabs on the left for further details about the competition.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Submission",
      "content": "## Evaluation Details\n\nYour network will be evaluated on its ability to produce predictions on test data with a high level of Categorical Accuracy. This simple metric will compare the predictions your network makes on the provided test data to the ground truth values held within Kaggle.\n\nThe competition leaderboard will highlight the accuracy of your predictions, based on your selected submission. As mentioned on the Description page, the starter notebooks will automatically format your submissions as required. *If you somehow break or need to modify this functionality, see below for submission format requirements*.\n\nNote that test data for the competition will not be initially available. This is to prevent students from overfitting to the test data through repeated modifications to their network, or outright training on test data. Once test data is released (~72 hours prior to the end of the competition), you will then be able to apply your trained model to it and generate predictions. As a final measure to prevent overfitting to test data, you will only be permitted to make up to 5 submissions per day, once test data is released. Upon submission, your accuracy score will be reflected on the Public leaderboard for all to see.\n\nPrivate leaderboard information, which is derived from your performance on a subset of test data, will be used to determine the final winners, and will not be visible until the competition officially concludes. While your final position on the Private leaderboard is impossible to predict, good performance on the Public leaderboard is indicative of likely success on the Private.\n\n## Leaderboard Submission Format\n\nLeaderboard submission files are simple .csv files containing two named columns: Id and Category. The Id column simply corresponds to the indexes of your predictions, so there should be no repeated values. The Category column will contain your network predictions for retinal disease (values 0 - 3, inclusive).\n\nThe .csv file should contain a header and have the following format:\n\n    Id,Category\n    0,[some value from 0 to 3, inclusive]\n\nUse the provided function in the starter notebook to generate predictions and submit them using the 'Submission' link on the top right of the Kaggle Competition page.\n\n## Project Submission Instructions\n\nZip your jupyter notebook (.ipynb), final model (.pt), and final Kaggle submission (.csv) to a single compressed file and submit via Canvas NLT 8 2359 DEC 2023. You can save your final model as a .pt file by adding the following line to the end of your Jupyter notebook: ```torch.save(model.state_dict(), 'your_model_name.pt')```\n\n## Grading\n\nYour grade for this assignment will be based on the following factors, in decreasing order of importance:\n\n- Quality of your code. The techniques you employed should be clear, well documented, and your results must be easily reproducible.\n- Your ability to beat the baseline grade benchmarks on the Public Leaderboard.\n- Your final position on the Private Leaderboard (this will only be used to assess bonus points).",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "## General Rules\n\nAll standard USMA rules regarding the USCC honor code and the Dean's Documentation of Academic Work are in effect.\n\n## Competition Specific Rules\n\n1. Working in groups/teams is prohibited.\n2. Any competition discussion with classmates that affects your work must be documented in your report.\n3. Attempting to derive, infer, or otherwise use the test data prior to its official release is prohibited.\n4. Manipulating the leaderboard via private discussions/agreements with classmates is prohibited.\n5. Have fun!",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Timeline",
      "content": "- 28 NOV 23: Competition made available to class.\n- 05 2359 DEC 23: Test data released to class.\n- 08 2359 DEC 23: Competition concludes, project files due to instructors.\n- 11 DEC 23 in Class: Official winners announced & grades posted.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Acknowledgements",
      "content": "1. This competition was inspired by Kermany et al's [Identifying Medical Diagnoses and Treatable Diseases by Image-Based Deep Learning](https://www.sciencedirect.com/science/article/pii/S0092867418301545).\n\n2. Data for this competition was derived from [MedMNIST](https://medmnist.com/).",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}