By Thomas Einstein and Leo Zhu
Junior Category (Grades 7-8)
Innovation | Big Data / AI, Engineering and Computer Science
BCVSF Note: The required ethics forms have been submitted for this project.
Joe is a project designed to make utilizing neural networks not just simple and quick, but also fun and accessible. Using and interacting with neural networks and machine learning in general is widely considered a daunting and scary task to those without a computer science background. Yet as machine learning becomes further integrated into an essential part of industries and economies, there still isn’t a very convenient and simple method for people to interact with these increasingly relevant technologies, due to all machine learning services being targeted at large companies who already have experts in these fields, as opposed to the normal person.
The main system for Joe is based off of a web microframework called Flask. This manages most of the internal processes within our site. It connects to other Python “modules” such as Flask-Login for user authentication, WTForms and Flask-WTForms for dealing with forms (options given on the site), PyTorch and Char-RNN for training our models, Jinja2 for generating web pages based off of template, as well as several other smaller modules. We used a database system MariaDB for keeping all of our site’s information such as accounts, datasets, models, and even survey results organized and secure. On the frontend, we used a framework called W3.CSS for making our pages look more sleek and professional without writing unnecessary code.
The importance of making neural networks less scary and more exciting was not lost upon us, and we came up with a solution: designing a website that connects user and artificial intelligence seamlessly. Users can upload datasets which are essentially text files – these can be anything from food reviews to movie scripts to books from places like Project Gutenberg, which publishes old books with expired copyright. With these datasets, users can create their own neural networks based on recommended defaults, and generate text from them. With this system, we have pushed neural networks one step closer to becoming more user friendly and accessible. In order to collect data for user feedback, we implemented an account system, where users, after completing certain tasks such as uploading datasets, training models, and generating text, will receive a survey asking for feedback and suggestions in categories such as ease of navigation, complexity of tasks they performed, and overall performance of the website.
From the data we have collected, we have learned that due to the intrinsic complexity of machine learning, giving users too many options to customize leads them to feel overwhelmed. Pages with larger forms and more options were rated as extremely confusing, whereas pages with less options did not confuse users nearly as much. We hope to solve this problem by implementing an “easy” mode and an “advanced mode”. By default, easy mode will be enabled and most options for neural networks will be set automatically, whereas users who wish to experiment and customize further can choose to alter more options by switching to advanced mode. We also discovered that the linear sequence we used for our website navigation was not ideal for guiding users through our site, and we have implemented a dropdown navigation bar instead so our website uses a more hierarchical structure. This new formatting of the website allows users to find the definition of challenging terminology and technical detail in a more streamlined process, allowing them to access the glossary from practically anywhere on our site. We hope that because of our project, using neural networks will no longer be challenging and arduous, and that anyone, disregarding previous computer science knowledge, will be able to experience the joy of teaching a computer.