Exploring Deep-Learning-Based Image Classification (or Other Similar Advanced Topic)
Exploring Deep-Learning-Based Image Classification (or Other Similar Advanced Topic)
REFER TO ATTACHMENT (project-description.pdf) FOR FULL PROJECT INSTRUCTIONS AND TO DO
The goal of this project is to gain exposure to an advanced topic such as use of deep learning for the image-classification task of your choosing (e.g., being able classify a photograph of a tree as being deciduous or coniferous). Some basic requirements/clarifications of the project are as follows:
Your project must incorporate an “advanced/modern” technique that has not yet been covered in the course. Suggested examples include any type of deep-learning approach (recommendation: use skorch if you want a scikit-learn like interface) or a “modern” non-deep-learning approach such XGBoost (for which a scikit-learn like interface is also available). However, while you are required to incorporate an “advanced/modern” technique (and you are required to incorporate some type of training as part of your project – see next requirement), you are not required to train a deep-learning approach. For example, you would be allowed to use an existing pre-trained deep-learning model to generate features for purposes of training a more traditional machine-learning approach. Another example is to keep the parameter weights of a pre-trained deep-learning model mostly fixed and to just allow some of them to vary during training (note: this is an example of “transfer learning” that we plan to show in classfor image classification). Note that you (likely) will need to install additional packages beyond those available in our current anaconda distribution (and we will provide separate example instructions for doing this). You are also free to useGoogle Colab, if you find this easier (as some of the tutorials are in Google Colab).
Your project (in some way) must include training/validation steps (okay if part of cross-validation) and a final evaluation step on independent test data (using a meaningful evaluation metric for your chosen task). While you are allowed to use existing datasets (as you see fit) to train/validate/test your overall approach, you must also provide a separate evaluation on at least 10 test cases that you generate and/or collect yourself (note that collecting data from the web is okay if it is not already part of a larger and already organized dataset). For example, suppose you want to develop a classifier to identify a photograph of a tree as being deciduous or coniferous. In this case, you would be required to at least collect 10 images that are not already part of an existing collected dataset to be used in a separate final evaluation. (Note that you would be allowed to collect additional images to be used as part of training/validation/testing but would not be required to collect them if an existing dataset already exists.) This requirement may make use of some existing datasets infeasible, so please consider this if you decide to take advantage of an existing dataset.
Because of the requirement to include an “advanced/modern” technique, you are not required to compare different models, but you are expected to obtain a reasonable final performance (relative to the difficulty of the problem). For example, if you are attempting to classify between two categories, it will be expected that your approach at least has an accuracy better than random guessing (50% if the data is balanced equally).
You must save your final trained model in such a way that we will not need to retrain your approach to try it out (e.g., by saving any trained models to files). More specifically, as part of your project, you should include a separate Python notebook
(and any needed files) that demonstrates running your approach on 10 of the test cases you had generated and/or collected yourself. This notebook should not include any of your training steps and should be clearly named (e.g., by including the word ‘demo’ in the name). Within the notebook, please include documentation for any additional python packages you needed to install beyond those provided in the anaconda distribution we have been using. Also please include sufficient comments/documentation within the notebook so that we will be able to reproduce your results on the 10 test cases. (Note: If using Google Colab, please make sure to document this within the notebook and include the necessary installation commands within the notebook itself.)
You are allowed/encouraged to build upon example/tutorial notebooks found on the web as long you properly give credit to any tutorials you may be building upon. For example, it is perfectly acceptable to build upon one of the skorch tutorials (see
https://skorch.readthedocs.io/en/stable/user/tutorials.html), such as the transfer learning tutorial.
You will write a more traditional (yet still brief) report (submit as a pdf or word document) that includes the following (note that you may change the order of the methods subsections if it helps):
o (Title/authors) Provide a title for your project as well as the names of all of your group members.
o (Introduction) Provide a brief introduction to the project that describes the classification or regression task you were trying to solve (make sure to clearly specify if it is a classification or regression task) as well as brief motivation for the approach you used to solve the task.
o (Methods: Approach) Provide a brief description of your overall approach used (to include making sure to cite any existing code/tutorials you may have built upon).
o (Methods: Data) Provide a brief description of the data you used for the project (including any existing datasets used and the methods you used to acquire your own data).
o (Methods: Training/Validation) Provide a brief description of your training/validation approach (including the data used for training/validation).
o (Methods: Testing) Provide a brief description of your final testing approach (to include whether you only performed final testing on your own data or some combination of your own data and another dataset)
o (Results) Provide the results of your evaluation on your test set, making sure to also include (separately, as appropriate) the results on the 10 example cases you acquired yourself.
o (Discussion/conclusion) Briefly discuss your results and anything you learned from this project (as well as any comments on your overall experience in completing this project – was it useful in your learning journey?).
o (Disclosure) Provide a brief description of your use of ChatGPT, if any
————————————————————————————————————————————-
IMPORTANT THINGS TO NOTE:
– You do NOT need to create a slide (you may ignore that part)
– Please ensure to add notes/comments to the code, explain the thought process and reasons as to why you are writing the code, the approach, or why its important to do these methods, etc. (because I want to learn and understand everything)
– here is the link to some tutorials you can use for the project: https://skorch.readthedocs.io/en/stable/user/tutor…
– I want good (doesn’t have to be perfect) results for this project (again the process is important).
– lecture notes/assignment solutions are attached for reference and see what topics we learned about.
– this is using python!! (jupyter notebook is best -.ipynb format)
Collepals.com Plagiarism Free Papers
Are you looking for custom essay writing service or even dissertation writing services? Just request for our write my paper service, and we'll match you with the best essay writer in your subject! With an exceptional team of professional academic experts in a wide range of subjects, we can guarantee you an unrivaled quality of custom-written papers.
Get ZERO PLAGIARISM, HUMAN WRITTEN ESSAYS
Why Hire Collepals.com writers to do your paper?
Quality- We are experienced and have access to ample research materials.
We write plagiarism Free Content
Confidential- We never share or sell your personal information to third parties.
Support-Chat with us today! We are always waiting to answer all your questions.
