User:Yayan: Difference between revisions

Jump to navigation Jump to search
17 bytes added ,  18 March 2017
no edit summary
No edit summary
Line 4: Line 4:
* ''Please describe yourself in three sentences, one of them regarding your current studies.''
* ''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 and 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.
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 and 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?''
* ''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 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!
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 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?''
* ''Why are you choosing Octave?''
Line 25: Line 25:
* ''Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers?''
* ''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 in a private company and at the same time carrying my Master studies through a year and a half so I am quite good at managing my time.
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 worked in a private company while at the same time I carried out my Master studies through a year and a half so I am quite good at managing my time.


== E: Coding experience ==
== E: Coding experience ==
Line 32: Line 32:
* ''Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.''
* ''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 toolkit paring with some of my classmates. I was in charge of writing the implementation of Support Vector Machine and 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.
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 toolkit paring with some of my classmates. I was in charge of implementing: a Support Vector Machine 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 tool. 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 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.
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 language. 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 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.''
* ''Please describe your experience with other programming languages.''
Line 40: Line 40:
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 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 have used sporadically.
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.''
* ''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 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.
In the Open Source community I am new. I have experience working on a company (one year and a half) where we tried to 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.''
* ''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 software development practices and I did also have a first contact with great libraries like boost.
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 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.''
* ''Please state the commits and patches you already contributed to Octave.''


Up to this moment I have been only helping other 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.
Up to this moment I have been only helping 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 ==
== F: Feeling fine ==
Line 74: Line 74:
* ''What will make you actively stay in our community after this GSoC is over?''
* ''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 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.
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 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 ==
== O: Only out of interest ==
Line 92: Line 92:
* ''Please estimate an average time per day you will be able to access''
* ''Please estimate an average time per day you will be able to access''


I can 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.
I 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.''
* ''Please describe the degree to which you can install new software on computers you have access to.''
Line 105: Line 105:
* ''How autonomous are you when developing:''
* ''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 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!
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 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 ==
== Y: Your task ==
Line 126: Line 126:
Phase 2, until 28 July:
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, check its compatibility with the Matlab toolbox.
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:
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 could be extended with an exporting/importing tool to process CNNs' architecture and weights saved in files. Add documented use cases to create a tutorial.
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 but this could be extended with an exporting/importing tool to unload/load CNNs' architecture and weights 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).
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]]
[[Category: Summer of Code]]
41

edits

Navigation menu