Jump to navigation Jump to search


17 bytes added, 08:41, 18 March 2017
no edit summary
* ''Please describe yourself in three sentences, one of them regarding your current studies.''
My name is Brayan Stiven Zapata Impatá and I am a native Spanish speaker, but I am also proficient in English. I am currently a PhD student in robotics Robotics and machine learning Machine Learning at University of Alicante, Spain. My background includes a Bachelor's degree in Computer Engineering, specialized in computer vision and artificial intelligence, and a Master's degree in Computer Engineering.
* ''Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?''
My desire in taking part of the GSoC is driven mainly by a need of developing further my programming skills as well as working on a real open project. I have been working worked on many private researches and, although research is carried out with the idea of helping grow our society, it is usually very jealous of sharing. This is my first time participating at GSoC but I hope to learn a lot from it!
* ''Why are you choosing Octave?''
* ''Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers?''
Being sincere, since I am currently on a PhD program my work load is very unstable. However, I plan to work on GSoC from 07:00 to 10:00 and 17:00 to 21:00 during the weekdays. Anyway, I am very flexible and surely the excitement of working on this will lead to many more hours even on weekends. I have been working worked in a private company and while at the same time carrying I carried out my Master studies through a year and a half so I am quite good at managing my time.
== E: Coding experience ==
* ''Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.''
I have been coding in C/C++ since I was in high school and I keep writing C++ code every day. As an example, during the last term of my Bachelor's degree I developed a machine learning Machine Learning toolkit paring with some of my classmates. I was in charge of writing the implementation of implementing: a Support Vector Machine and class with three kernels, a Genetic Algorithm with some self-created mutation operators, the k-Means clustering algorithm and a cross-validation method. Then, I used this toolkit to create a broker bot that could predict movements in the stock market.
Regarding Octave/Matlab, as I said before I have been using m-scripts for 6 years now and my Bachelor's thesis was written solely in this toollanguage. This principally consisted on writing preprocessing functions for treating medical signals and then implementing the Particle Swarm Optimization algorithm to optimise the training set used for a machine learning Machine Learning model. I have also used it to execute simple filters over images. Nowadays I keep using it as a prototyping environment. Finally, I once took a 4-hours-course at college to learn about OpenGL but I don't have further experience with it nor Qt.
* ''Please describe your experience with other programming languages.''
I have experience working with Python 2.7.6. For my Master's thesis I created an open tool for open research data reutilisation and the scripting was whole written in Python. These scripts mainly used libraries like matplotlib, numpy and pandas. In addition to that, Tensorflow was utilised through its Python API so I could implement a simple logistic regression model. As a side project, just for the sake of learning, I once used Python and Keras (over Tensorflow) for building a cat/dog images classifier training a Convolutional Neural Network.
I do also have experience with Java, although I don't use it frequently. The same could be said about Scala, Go, R and FORTRAN that I have used sporadically.
* ''Please describe your experience with being in a development team.''
In the Open Source community I am new. I have experience working on a company (one year and a half) where we tried to follow apply the SCRUM agile methodology so I got some fluency in the use of GIT and building/packaging processes. I feel very comfortable working with others.
* ''Please describe the biggest project you have written code for and what you learned by doing so. Also describe your role in that project over time.''
I think the biggest project I have worked on was that Machine Learning toolkit I built with four other colleagues in the last term of my Bachelor's degree. As I wrote before, I was in charge of implementing and testing of several algorithms like SVM (linear, Gaussian and Sigmoid kernels), k-Means, GA and cross-validation. I learnt a lot about Machine Learning, software development practices and I did also have a first contact with great libraries like boost.
* ''Please state the commits and patches you already contributed to Octave.''
Up to this moment I have been only helping other others in the IRC channel with general Octave questions. I plan to start contributing very soon but I am still deciding whether to contribute to the Image package with missing Matlab functions or try to revive the nnet unmaintained package.
== F: Feeling fine ==
* ''What will make you actively stay in our community after this GSoC is over?''
I believe that I will stay in this community because I really want to contribute to grow such a useful resource and up to this moment I have been enjoying my time here. I think I can provide complement it with more knowledge about Machine Learning and general Artificial Intelligence techniques that could be integrated in a new package. This GSoC project could be the beginning.
== O: Only out of interest ==
* ''Please estimate an average time per day you will be able to access''
I can have access to an internet connection the whole day, not only on a computer but also on my smartphone. I expend about 10 hours per day in front of my computers and they are all synchronised so I can access my progressing work any time.
* ''Please describe the degree to which you can install new software on computers you have access to.''
* ''How autonomous are you when developing:''
I am very used to working autonomously: in my past job I was in charge of a whole project myself and as a researcher I am very proactive. I like to think and design everything as perfectly as I can before writing code because I find this it a good practice for saving time in the long term. However, I can understand that sometimes it is quite useful writing some toy prototypes that can evaluate your ideas. This is frequent in research when you do not know how something will turn out and you test it using tools like Octave that support perfectly a fast prototyping process. If the results are not satisfying they are never a failure if you learn from them!
== Y: Your task ==
Phase 2, until 28 July:
Write the rest missing layers like classification, softmax and regression layers. Write the main CNN class, that holds the layers, its training process and the classify method. In this point we should be able to train some networks and test their functionality. Once again, I would check its compatibility with the Matlab toolbox.
Phase 3, until 29 August:
Add extra features like the activations class, that can display a layer activations, and the possibility to load pretrainned networks. We could start by defining the AlexNET and VGG16 networks. This but this could be extended with an exporting/importing tool to process unload/load CNNs' architecture and weights saved in files. Add documented use cases to create a tutorial.
Through the whole process I plan to keep the code well documented using Doxygen. In case we use the Tensorflow's Python interface, we could look for another way of doing it (like Sphinx).
[[Category: Summer of Code]]


Navigation menu