Sean Farhat
I am finishing up an M.S. in Computer Science at the University of Illinois, Urbana-Champaign,
advised by Deming Chen.
Previously, I completed my B.S. in Electrical Engineering and Computer Science from UC Berkeley. |
![]() |
Research/Projects | |
---|---|
![]() |
A Good Teacher Is All You Need
Sean Farhat, Deming Chen M.S. Thesis Preprint and code forthcoming We propose a simple yet effective alternative to pre-training and finetuning called Don't Pre-train, Teach (DPT). When compared to when they were pre-trained on ImageNet and finetuned, our small models achieve superior performance or lag behind by at most 1.5%, while only taking 5% of the training time. |
![]() |
Not All Sensors Are Equal: Optimal Sensor Points for Operator Learning
Nicolas Nytko, Sean Farhat, Nathanael Assefa CS 598-BAN: Deep Generative and Dynamical Models report / slides Python, PyTorch, Firedrake We meta-optimize Deep Operator Nets to jointly learn the operator and an optimal set of sensor points for the function family. For the nested gradient, we leverage the Implicit Function Theorem and use a Neumann approximation of the inverse Hessian. Compared to the fixed sensor points, we achieved a 20% decrease in test error for Diffusion PDEs and a 72.42% decrease for Wave PDEs. |
![]() |
Parallelizing Convolutional Networks with CUDA
CS 483: Applied Parallel Programming C, CUDA Wrote custom CUDA kernels to speed up the forward pass in convolutional neural networks. Leveraged tiling, shared memory, matrix unrolling, loop unrolling, reductions, and streams to achieve a 58.82% decrease in processing time. |
![]() |
"At Least I Know Why!": Contextualizing User Reactions to Negative Feedback on StackExchange
Waleed Ahmed, Sean Farhat, Advai Podduturi, Zachary Robertson, CS 565: Human Computer Interaction report SQL, Pandas We found that, for a user's first post, any kind of feedback from the community, even negative, led to users more likely posting again compared to if they received complete silence. |
![]() |
Pitch Extraction from EEG Data
Rutvik Choudhary, Sean Farhat, Jessica Myers CS 545: Machine Learning for Signal Processing report Python, PyTorch, MNE We predict what note someone is listening to from EEG signals. We first converted the time series signals into to a 2D image via an Azimuthal Equidistant Projection and Bezier curve interpolation. Then, we fed that into various logistic regression and neural network models, achieving an accuracy of 58.63%. |
![]() |
Forced Alignment via Convolutional Neural Networks
report / code Python, PyTorch By leveraging phoneme-level information in the TIMIT dataset, we relax Convolutional Neural Networks' reliance on the Connectionst Temporal Classification (CTC) function, enabling the model to generate word-boundary timings with an average error of 67 ms, while also introducing interpretability via class activation maps. |
![]() |
Karaoke Web App
Docker Image / code Flask, Javascript, Docker, HTML/CSS A Karaoke web app that pulls lyrics and audio from the internet, obtains the word-timing information, and highlights the lyrics in real time for the singer to follow. |
![]() |
Neural Style Transfer
CS 194-26: Computational Photography and Computer Vision project page / code Python, PyTorch, Scikit-Image Implemented the original Style Transfer algorithm of Gatys et. al, to transfer artistic styles to images. I modified their approach to be more faithful to the desired content. |
![]() |
Seam Carving
CS 194-26: Computational Photography and Computer Vision project page / code Python, PyTorch, Scikit-Image Implemented Seam Carving to decrease/increase the size of photos while preserving content. Additionally, modified method for content-aware object deletion. |
![]() |
Kobuki Kart
Rehan Durrani, Sean Farhat, Nick Riasanovsky, Grant Wang EECS 149: Embedded Systems report / code / poster Python, C Recreated Mario Kart with Rumbas. Features included smooth driving via Nintendo Switch controllers and pick-up powerups (nearest-neighbor attack, speedup, stop) via Decawave DWM1001C Tags. |
![]() |
Pendulum Bot
Swapnil Das, Sean Farhat, Cameron Kurotori, Matthew Owen EECS 106A: Robotics video / code Python, C, ROS Programmed a robot to find a tennis ball on a pendulum, predict the trajectory, and catch it, all from a single image. |
Experience | |
---|---|
![]() |
Apple
Platform Architecture Intern, 2022 |
![]() |
Berkeley Artificial Intelligence Research (BAIR)
Research Assistant, 2019-2020 Research assistant in Laurent El Ghaoui's lab. Worked on implicit formulations of deep learning architectures in PyTorch. Investigated different methods for increased robustness such as low rank matrix perturbations. Berkeley SWARM Lab Research Assistant, 2018 Research assistant in Kris Pister's lab. Worked on end-to-end autonomous driving for microrobots utilizing low power Convolutional Neural Nets. |
![]() |
Accenture Labs
Systems and Platforms Research Intern, Summer 2019 Created pipeline to generate synthetic training data for UR5 robotic arm via a digital twin via Gazebo and ROS. |
Teaching | |
---|---|
I have served in various teaching capacities: a lecturer, instructor, TA, and tutor. At Berkeley, I was recognized with the Outstanding GSI Award. My ratings can be found here. | |
![]() |
CS 357 (Numerical Methods), Fall 2022
CS 440 (Artificial Intelligence), Fall 2021 EECS 127 (Optimization Models), Spring 2020 CS 61C (Great Ideas in Computer Architecture), Summer 2020 \ Fall 2019 \ Spring 2019 \ Fall 2018 \ Summer 2018 |
Learning Resources |
---|
Machine Learning
Note: Neural ODEs, Continuous Normalizing Flows, FFJORD Note: Augmented Neural ODEs Presentation: Fourier Neural Operators Computer Systems Note: Number Representation Lecture 7 (RISC-V): video \ slides Lecture 11 (Sequential Digital Logic): video \ slides Lecture 14 (RISC-V Pipeline Hazards): video \ slides Lecture 15 (Caches): video \ slides Lecture 17 (Multi-level Caches): video \ slides Lecture 20 (Input/Output): video \ slides Lecture 23 (Multithreading Issues, Cache Coherency): video \ slides Lecture 25 (Dependability and Redundancy): video \ slides Lecture: Virtual Memory Review Twitch Stream: Caches Review Twitch Stream: Pipelining and Hazards Review Twitch Stream: Virtual Memory |
Coursework | |
---|---|
Courses I have taken. The asterix (*) indicates graduate-level. | |
Math/Theory:
Data Structures | Algorithms | Comparability and Complexity | Randomized Algorithms* | Optimization | Probability and Stochastic Processes | Game Theory | Multivariable Calculus | Linear Algebra | Discrete Math | Applied Functional Analysis* AI/ML: Artificial Intelligence | Machine Learning | Computational Photography | Computer Vision | CUDA | Machine Learning for Signal Processing* | Deep Generative Models* Other: Robotics | Embedded Systems | Computer Architecture | Computer Security | Circuit Design | FPGA/Verilog* | Human Computer Interaction* | Cognitive Neuroscience | Web Design Other Other: Massage Therapy | Knitting | Ikebana (Japanese Flower Arrangement) | Vegetable Gardening |
Service | |
---|---|
![]() |
Department Relations, Tutoring Officer
2018-2020 Student Representative, EE/CS Undergraduate Study Committees 2019-2020 Led creation and release of EECS Undergraduate Experience Survey Department Tour Guide |
![]() |
Berkeley EECS Course Map
A course map for the entire EECS curriculum at Berkeley. Created since Berkeley's "free" curriculum left many students lost. |
Ikebana |
---|