This was my senior thesis project supervised by Professor Svetlana Lazebnik, which was focusing on applying the state-of-art object detection algorithm SSD(Single-Shot-Detection) to solve the object detection problems on high resolution images. The first version of this model was using the sliding window method combining with SSD prediction model to do the detection, NMS(non-maximum suppression) algorithm was used to remove the replicate detection. The advanced version was using the AZ-net(adjacency and zoom in net) to reduce the number of detections by SSD, which accelerate the detection processes by the model. The final version of this project gives much better detection result on high resolution images than previous methods.
This research project was more about thinking. I worked with my friend Dajun Xu and PhD student Long Pham, supervised by Professor Kevin Chang. In the first period of this project, I came up with the idea of the BitMap(using the grid system to get the embedding of a webpage). Then I implemented the part of constructing the BitMap according to the data that Dajun got. Then I also wrote the scirpt for training using the Deep Learning framework Tensorflow. The thing that we still do not finish is the dataset(usually for the model to train, we need at least thousand of labeled data).
This was a work assigned by Professor Ruta Mehta, which was implemented in Python. In this project, I studied the knowledge of game theory(about allocating the source and biding). Then following the guidance of Professor Mehta, I implemented the model to predict the behaviors and gross capital changes in free market economy and in central economy.
Co-worked with PhD student Zengming Shen, combined the Spatial Transform Network to Caffe then used the model to do semantic segmentation on medicine photos. In this project, I began my journey on researches, started to read paper about the state-of-art technologies. I really appreciate Zengming for letting me working with him together. Following the guidance of him, I watched the Stanford course cs231n(Convolutional Neural Network) which gave me a good picture on how to start to learn deep learning. Also, during this project, I self-studied the deep learning library Caffe. At the begining, I encounted many difficulties as Caffe was quite a large framework written in C++, using many C++11/C++13 rules that I did not studied before. During the studying process, I could manage to understand the source code of Caffe and used it as the tool to train the neural networks.
This is a course project contains several parts. By default, the whole system is constituted by 10 machines(with one server, one standby server, one clinet and 7 workers).
Here I have several course works in CS447 : Natural Language Processing.
Splendor is a famour board game among the university students. As we played this game many times during the semester, we came up with the idea to implement it in Java. This is totally a software project. The first version is the final project of CS242(Programming Studio) which is implemented in Java, in which I implemented the game logic, game loop, networking as well as the replay mode. The work was splited into 4 weeks, and in each week we wrote the codes and the tests for our program. After that, I deployed it into android, where I practiced my skill on writing the android layout code and also the controller of android activities and intents. After that, I also re-implemented the game in Kotlin, which was the new language anounced to support android.
This is a script wroten in Python to predict the S&P500 index of next day. The prediction model is trained by the LSTM network in Keras on Tensorflow. The traning data is the close price of S&P500 of each day, and every 23 days form a group where the first 22 days are the parameters and the 23th price is the groundtruth for the prediction. For now the model has a correctness of 80% on predicting the single day's change based on the previous 22 days' data. This is my first trial on using machine learning on finance, as this is something really interested to me, I would try more different models and other hypo-parameters in the near future.
This is the course project of CS412(Data Mining), in which we implemented a javascript extension of Chrome to extract information from Youtube. We implemented 3 different algorithms, including K-Means, Distant Comparing and Naive Bayes. Among these 3 methods, we found that the distance method and the Naive Bayes Model could give better results. Also we add the function for extract the visual blocks highlightened by our model to csv files which could be used for analysis in future.
Introduction course of system programming, studied the concept of thread, process, synchronize, networking and file system. The assignments of this course were finished in C, including many interesting implementations such as malloc and shell.
The programming studio course where I did many projects. The first project is implementing Chess in Java, including the game logic and gui. The second project is about scraping the film data from wikipedia, and then process as well as anaylze the data using python scripts The third project of the course is to write a webpage of our assignments, the front end was written by html, css in bootstrap and the backend was in python Flask. The final project of the course was the implementation of Splendor
Introduction course to algorithms and computational models, including regular expression, DFA, NFA, CFG, Turing Machine, Divide and Conquer, DP, Greedy, Graph algorithms and NP/NP-hard/NP-complete problems
Introduction course to data mining, including datawarehouse, pattern finding, clustering and classification.
Introduce the functional programming language(Haskell), and many concepts including tail recurrsion, continue programming style and so on. Build a simple compiler using Haskell in the machine problems of this course
Introduction course of Machine Learning, basic concepts including Perceptron, Winnow algorithms, Stochastic Gradient Descent algortihm, Kernel Methods, Support Vector Machine, Neural Network and also computational Machine Learning.
The upper course of CS357(Numerical Method), topics including numerical algorithms for linear algebra, regression, optimization, difference/integral, normal/partial differential equations.
Advanced algorithm course, topics including advanced dynamic programming, graph theory, netflow algorithms, matching problems, linear programming and NP-hard problems.
More details of this course can be seen in the first project in Other Project section(which is a Distributed Graph Processing System). Talk about many concepts, algorithms and applications in the field of distributed system. From MapReduce, Failure Detection to Datacenters.
Discussed the traditional concepts and algorithms in Nature Language Processing, mainly about the statistical models of NLP, like HMM tag parser, PCLG parser, IBM Machine Translation model and so on.
The most difficult course I've taken in UIUC. Theories in machine learning, including representations(from linear seperator to neural network), optimization(like gradient descent and its convergence rate) and generalization(covering numbers, Radamecher Complexity, VC dimension). Did many proofs in this course.