First Week
I arrived in Boise, Idaho on Saturday, the 25th of May. My mentor, Dr. Barney Smith, was kind and picked me up at the airport. She also gave me a brief tour of the city, helped me check into my room at the Lincoln Townhouses, and drove me to a grocery store. I went to bed that night tired, but with a wonderful first impression of Boise, the city I'll call my home this summer. After getting some rest on Sunday, I was ready to start working on the project. On Monday I met my lab partners, Kyle and Carlos. Dr. Barney Smith talked with us about the project for several hours, so we were prepared to start the next day. On Tuesday we first looked at the code. We had read some research papers related to the project, and now we were going to try and understand the code used in two of the papers. Dr. Barney Smith had obtained it from the authors. First we figured out how to run the code. There were some minor problems, but they were fixed soon. We were also a little confused since we obtained the exactly same results on different computers, but quickly found out we had to change the seed in a random number generation. On Wednesday, during our weekly group meeting, I met several other researchers on this project. I was slightly worried initially since most people were Electrical Engineering students and therefore knew more than I did about memristors as well as circuits in general. There is a lot I need to learn, but I am looking forward to gaining experience.
Second Week
We are still working on understanding the code. We will give a presentation on the algorithm and the code in general next week on Wednesday, at the weekly group meeting. We are going to prepare some slides to help with it, but first we are writing a document with descriptions of each function and script. At this point, I should probably mention that the initial code obtained from Timothee Masquelier was written predominantly in Matlab, with a small part written in C. Dr. Masquelier was one of the authors of the articles we all read before the start of the project, in preparation for the project-related work. We also met Nathaniel, a high school student, who will be joining our group. Dr. Barney Smith had to travel, but previously made sure we knew what was expected of us and what our goals were. I found Matlab's function profile, which allows me to find the execution time for each part of the code. This is how I found out which parts were the most time consuming, which tells me where I have to start making the code more efficient.
Third Week
I spent most of Monday and Tuesday understanding the code and learning about it. We are still working on the summary and description of the code in our document. We are also adding further graphs to it. We are trying to obtain as many relevant graphs as possible; however, occasionally, we are not sure we completely understand what the plots mean. I am still working at that. However, we had several plots that we believed would be useful for the presentation. On Wednesday we had the presentation. I was not very confident initially. However, people (including Dr. Barney Smith) seemed interested in our explanations and asked questions. Dr. Barney Smith apparently liked what we had found out. One of my results was that the weights on the neuron synapses was either very high or very low, which was good as it will help with using the actual memristors. Realizing that I had not seen the actual memristors yet, one of the students on the project showed them to me. I found them very interesting. However, the part I will have to work on is making learning possible with very few afferents; it should work on 25, while I can currently obtain very few successful scenarios with 100. We are also currently hoping to develop a GUI for plotting while easily changing parameters.
Fourth Week
I am still working on understanding the last bits of the code, and I feel that I am making good progress. I also decided to read the project-related articles again. I get the feeling that I am gaining more information every time I read them. We are currently finishing up the document with our summary of each script and function. I am now planning to look more into the part of the project concerning the GUI. We have also started talking about optimization and how we can do it. The first thing to do would be to develop a grading system by which we can evaluate the neurons whose learning of the pattern does not make it past the success criteria (a hit rate above 90% and the false alarms below 1 Hz). Since a hit rate of 70% is better than one of 10%, we need a way to explain and show that, while the learning has not been fully successful, it is still better in the first case. This optimization will be one of the main points of the project, since one of our final goals is to make the code run more efficiently.
Fifth Week
I decided to get more involved with the part concerning the GUI this week. I spent some time during the weekend trying to familiarize myself with how it worked. However, when I tried it out on Monday, it crashed; Matlab just shut down, without any error messages. I started working on debugging it. However, it seemed that it was not always crashing at the same place in the code. On Tuesday I decided to go in a different direction since there were already two people working on the GUI. Instead of continuing with it, after talking to Dr. Barney Smith, I decided to focus on several other things, such as developing the grading system I was thinking about. Dr. Barney Smith suggested that I look into ROC curves. They look very promising since they plot fraction of true positives out of the positives vs. the fraction of false positives out of the negatives. Basically, I will be able to relate hit rate and false alarms in a plot. On Wednesday I found a function in Matlab, perfcurve, which computes a ROC curve. I continued looking into it on Thursday, while running code trying to find how changing one of the parameters affects the final result. This parameter is used in finding the hit rate; my goal is to understand why the hit rate can be more than 100%, which happens frequently for a low number of afferents. On Friday I researched the effect of degradation on the results. The degradation factors I looked at were jitter, spike deletion and low pattern frequency. As expected, once they were changed, the results improved even for a relatively small number of afferents (in this case, 300). Next week I hope to start using ROC curves, working on understanding why the formulas that are used were chosen, finish the grading system and advance toward the optimization process.
Sixth Week
This has been a short week, since I got both Thursday (the Fourth of July) and Friday off. I am still working on debugging the code. I will work on it a bit during the weekend, but I am also planning on exploring Boise's beauty. So far, I have been to the Saturday farmer's market, enjoyed some local food, been to parks and walked along the Boise river. Next week, my group will have to give a presentation during the weekly Wednesday meeting, showing our progress since our last presentation (given during the third week of my internship). We will therefore prepare a few slides detailing our current work on Monday or Tuesday. I feel much more confident than last time; I feel that I have made significant progress in understanding what I am working on and could provide better explanations this time.
Seventh Week
As I wrote in my journal entry from last week, I expected to give a presentation on my current progress with the project. I started preparing slides for the Wednesday morning group meeting. The presentation did, however, not take place. Instead, while I was working on it, Dr. Barney Smith came in and just talked to us about our progress informally. I talked about how I was working on debugging code to analyze how the variables changed during the run of the program. I had not yet found why the hit rates were higher than 100% for very few afferents (fewer than 100). My mentor guided us with questions and gave us several aspects of the project to think about. She also suggested that I write my own code for ROC curves, and gave me some ideas for what I was really looking for. It was decided that we give a formal presentation the week after the next, which will be my 9th week. It will be my final presentation, showing all my work. On my very last day, August 2nd, my group will have a poster presentation. I have already finished and submitted our abstract, with guidance from Dr. Barney Smith. Finally, on Thursday, I learned why the hit rates were too high: with fewer afferents, there are 20 to 50 times more firing events. Next week, I will need to figure out how to change that. On Saturday, taking my mentor's advice, I went out to have some fun in Boise. I went to the farmer's market again. This time, I found a tent with food from Nepal, and I tried some vegetarian Momos. Overall, it was a good week.
Eighth Week
Since the end of my internship is approaching quickly, I have to put a lot of work into my final presentation, my poster and my final report. Dr. Barney Smith offered to give me advice and feedback in completing these tasks. On Monday I started brainstorming. I was using the presentation I gave during my third week as a starting point. I made an outline for what I want to add to it, and got some ideas of what I want to change. On Tuesday I gave the grading system some thought. As previously mentioned, I will use ROC curves; I had decided to write my own rather using Matlab's built-in perfcurve functionality. I am still planning to do that, but first I thought it might be a good idea to look into some code that I found and downloaded. I spent some time understanding it and learning how to use it. However, I ran into some problems. One of them is that, so far, the data I have usually does not allow me to use that code; I think I know why, but I am not sure yet. It does run with example data that I created, though. On Wednesday we had our weekly group meeting. I gave a brief description of my progress over the last week. Nobody had any questions for me. We started to give the poster more thought. First we went and looked at some posters created by other researchers. I believe we got a better idea of how posters should look and what should be included in them. Then we wrote down some thoughts on what we want in ours. Then, on Thursday during the seminar, we had a lecture on what makes a good poster. I think it was really helpful. I learned that, as expected, graphs and images should be a big part of it. Therefore, I spent Thursday and Friday working on obtaining better figures for both the poster and the presentation. I realized I had misunderstood some data I had used for the first presentation: I thought the neuron's weights were scattered for high and low frequencies. In reality, though, they are scattered for neurons not learning anything (or not much). I wanted to work some more on Saturday, but the person I was going to meet could not make it. Therefore, our work will continue on Monday.
Ninth Week
I only have one week of my internship left. Unfortunately, this means I have to decide what I can finish and what I need to leave for others to do after my departure. I am disappointed that I will not get to work on the ROC curve grading system and towards the endgoal, optimization (at least not enough). On Monday we worked on the poster. The deadline was Friday 26th. We went and looked at some posters created by others, trying to figure out what we did and did not want on ours. Once we started, it was clear we all had different ideas on what the design should be. However, we decided it was best to leave that for later and get started on the content. The layout and the color scheme were not the main problem. On Tuesday we showed the draft for the poster to Dr. Barney Smith. She offered suggestions, both for changes we had to make to the current content and for ideas we had not added yet. In addition to the poster, my presentation was coming up quickly, so I had to finish my slides. I drew a little bit on my first presentation, but could not get much out of it since my understanding of the project has improved significantly since then. I did my best to show my research over the past weeks, focusing on how the weights were created and changed and how the results are found. I decided to work on the former due to its relevance to the memristors and on the latter since I was frustrated with the unreasonable hit rates and false alarms. On Wednesday morning, during our weekly meeting, Kyle and I gave our presentation. The focus was on my work because I am the one leaving soon. I think it went well. I was much more confident in presenting my results than during my third week. In the afternoon, we continued working and obtained some more advice for the poster from my mentor. On Thursday the poster was almost done. We found out it was not due on Friday, like we thought, but on Monday 29th. We showed our latest revisions to Dr. Barney Smith. In the afternoon a visitor came to see the work someone else on the Neuromorphic group was doing. He was from New Mexico, and he showed interest in my part of the project. Kyle and I gave him a short presentation using our slides from Wednesday. On Friday we finished the poster, and my mentor approved it. Now it only needs to be printed. In the near future, I will have to write my final report. I have started to reread the articles we started out with in preparation for my own.
Tenth Week
I can't believe that it's over. The last ten weeks went by much faster than I expected. It's like I just arrived at Boise State University a few days ago. I am back at home now. I am happy to see my family and friends again, but know that I will miss Boise at least for a while. I still have to finish writing my report. Dr. Barney Smith has offered to help me, giving me permission to send her my drafts. I have created an outline for my report and she has approved it. We have also discussed what I should and should not include in it. On Friday, August 2nd, we had the Summer Undergraduate Research Conference. We participated with our poster that we had finished on Monday. We took turns talking about the poster and answering questions from visitors. Dr. Cantley, who visited our poster, has in the mean time sent me more articles concerning the topic of our research. I also visited other posters; it was interesting to see the results of other people's research experiences. Back at home, I am preparing for the fall semester, looking forward to my first week. I am content with the figures I created for my report. I will have a draft of the report in about two days, and I am looking forward to completing all the requirements set by DREU. I am deeply grateful to DREU for this amazing experience. I definitely feel like it has given me an idea of what graduate research will be like.