====== Overview ====== If you are having trouble registering for the on-campus section, you are welcome to [[https://www.online.colostate.edu/courses/CS/CS545.dot|register for the online section]]. ===== Description ===== This course reviews fundamental methods and covers advanced concepts and methods involving deep neural networks for solving problems in data classification, prediction, visualization, and reinforcement learning. Students will //review// how to * read data files of various formats and visualize characteristics of the data, * perform statistical analyses on multivariate data, * develop and apply classification algorithms to classify multivariate data, * develop and apply regression algorithms for finding relationships between data variables, * use the latest features in python, including jupyter notebooks, and * how to repeat experiments described in on-line tutorials, documentation, and publications in deep learning. Students will //learn// how to * formulate and derive new algorithms for deep neural networks, * develop and apply reinforcement learning algorithms for learning to control complex systems, * interpret what a deep neural network has learned, * investigate the true advantages and limitations of recently developed, popular, complex deep network methods compared to simpler, older approaches, * write scientific reports on computational machine learning methods, results and conclusions, and * how to design, conduct, and report on novel machine learning experiments. For implementations we will be using [[https://www.python.org/|Python]]. Previous experience with Python and its numpy package is helpful. To prepare for this course, please download and install Python on your computer, and work through on-line tutorials to help prepare for this course. The [[https://www.anaconda.com/distribution/|Anaconda distribution]] is recommended, which is a free download for all platforms. CS440 is the prerequesite for this course. However, CS445 provides a more relevant background for the material in CS545. Some of the CS445 topics will be revisited in CS545. The main difference between CS545 and CS445 is the scale of the assignments, more material relates to Pytorch, and discussions of recent papers in the research literature on deep learning. Class meetings will be a combination of lectures by the instructor and discussions of students' questions. All questions are welcome, no matter how simple you think they are; it is always true that someone else has a similar question. It is critical that everyone in class respect each other when questions are asked and answers are suggested and at all times. Please contact the instructor when you have felt disrespect from other students, the instructor, or the graduate teaching assistants. This may be anonymous if you prefer. A lot of material will be covered in this course. Students are expected to speak up in class with questions and observations they have about the material. Do not expect to be able to complete all assignments working on your own and without asking any questions. If you find yourself wondering what the next step is in finishing an assignment, please feel free to e-mail the instructor. You may also discuss assignments with other students directly, or via our Canvas Discussion board, but your code and report must be written by you. Do not post code on the Canvas Discussion board as part of your question nor as part of your answer. You are expected to be familiar with the [[http://www.cs.colostate.edu/advising/student-info.html|CS Department policy]] on cheating and with the CS Department Code of Conduct found at the department's [[http://compsci.colostate.edu/policies-resources/|Policies & Resources]] web page. This course will adhere to the CSU Academic Integrity Policy as found on the Student Responsibilities page of the [[http://catalog.colostate.edu/general-catalog/policies/students-responsibilities/#academic-integrity|CSU General Catalog]] and in the [[https://resolutioncenter.colostate.edu/wp-content/uploads/sites/32/2018/08/Student-Conduct-Code-v2018.pdf|Student Conduct Code]]. At a minimum, violations will result in a grading penalty in this course and a report to the Office of Student Resolution Center. ===== Time and Place ===== Class meets every Tuesday and Thursday, 11:00 AM - 12:15 PM, in Computer Science Building 130. The on-line section will be available through Canvas. ===== Prerequisites ===== CS440 with a grade of C or better, and some experience with python. ===== Textbook ===== There are no required text books for this course. Readings may be assigned from the following on-line books. [[http://www.labri.fr/perso/nrougier/from-python-to-numpy/|From Python to Numpy]] by Nicolas P. Rougier [[http://www.deeplearningbook.org/|Deep Learning]] by Ian Goodfellow, Yoshua Bengio, and Aaron Courville [[http://incompleteideas.net/book/the-book.html|Reinforcement Learning: An Introduction]], by Richard Sutton and Andrew Barto, 2nd edition ===== Instructors ===== These hours and GTA are not current and will be updated! ^ ^ ^ Office Hours ^ ^ Instructor | chuck.anderson@colostate.edu | Zoom meetings\\ Tuesdays/Thursdays: 1:00 - 2:30 pm \\ Fill out and submit [[https://forms.gle/3FLGviSqWLvV7xvL9|this form]] at the start of office hours so Chuck can send you a zoom meeting link. | ^ GTA: | dejan.markovikj@colostate.edu | Zoom meetings\\ Mondays: 7:00 - 9:00 pm\\ Fill out and submit [[https://docs.google.com/forms/d/1UMiEPLynRu_Oo6y5CXl14eGTVuBvnNsPlTrEzA12WBA/viewform?edit_requested=true|this form]] at the start of Dejan's office hours so that Dejan can send you a zoom link to use. | ===== Grading ===== Your grade for this course will be based on about seven assignments, each of which will require the submission of a jupyter notebook that includes text descriptions of your methods, results and conclusions and the python code for defining machine learning algorithms, loading data and applying your algorithms to the data. Each notebook will be graded for correct implementation and results, thorough discussion of your code and observations of results, and good organization, grammar and spelling. We might have quizzes, but we will not have exams. A final semester project of your own design will be required. The grade on the project will have as much weight as approximately two assignments. Your lowest assignment grade during the semester will be dropped from your semester average. The Canvas grade book is automatically dropping your lowest assignment grade. Your final semester project grade will not be dropped. **Late assignment solutions will not be accepted**, unless you make arrangements with the instructor at least two days before the due date. /*** **Since we dropped the lowest assignment grade, too much weight will be applied to the final project. Considering this, your final semester grade will be calculated as a weighted average of your four highest assignment grades average plus your project proposal and report scores, with respective weights of 0.72 (= 4 * 0.18), 0.04 and 024. So the formula will be 0.72 a + 0.04 prop + 0.24 proj, where a is the average of your highest assignment scores, prop is your proposal score, and proj is your project score. ** In other words, your four best assignments determine 72% of your grade, your project report determines 24% of your grade, and your proposal determines 4% of your grade. ***/ Semester letter grades will include plus and minus grades. Assume standard ranges of numerical grades will be used. Ranges might be shifted a little lower, depending on the grade distribution at the end of the semester, but they will not be raised. Some assignments will include extra credit points. These will be accumulated during the semester. At the end of the semester, if your grade is just below a letter grade cutoff, the extra credit points might push you up to the higher grade. Each extra credit point is roughly worth 1/2 a percent. For example, if your grade is 88% and the cutoff or A- is 90%, four extra credit points will bump your grade up to an A-. **Late reports will not be accepted**, unless you make arrangements with the instructor at least two days before the due date. ===== COVID-19 ===== All students are expected and required to report any COVID-19 symptoms to the university immediately, as well as exposures or positive tests (even home tests). • If you suspect you have symptoms, or if you know you have been exposed to a positive person or have tested positive for COVID (even with a home test), you are required to fill out the [[https://covid.colostate.edu/reporter/|COVID Reporter]]. • If you know or believe you have been exposed, including living with someone known to be COVID positive, or are symptomatic, it is important for the health of yourself and others that you complete the online COVID Reporter. Do not ask your instructor to report for you. • If you do not have internet access to fill out the online COVID-19 Reporter, please call (970) 491-4600. • You may also report concerns in your academic or living spaces regarding COVID exposures through the COVID Reporter. You will not be penalized in any way for reporting. • When you complete the COVID Reporter for any reason, the CSU Public Health Office is notified. Students who report symptoms or a positive antigen test through the COVID Reporter may be directed to get a PCR test through the CSU Health Network’s medical services for students. For the latest information about the University’s COVID resources and information, please visit the [[https://covid.colostate.edu/|CSU COVID-19 site]].