Project slides: https://docs.google.com/presentation/d/1vHpVspekgYUq3bSH0ZFgR2Dli7UaHDsnwj2GMwaphk8/edit#slide=id.p
Self introduction: https://docs.google.com/document/d/1bW_yhEZyDqlGOP2iVZ83t46H7oCBtpkYToQHZUQy9LI/edit?usp=sharing
Transfer Learning tutorial: https://www.tensorflow.org/tutorials/images/transfer_learning
Status Updates
https://drive.google.com/drive/folders/1TKlf7CwJW2E3SlkJ_l_0EM2dCeqeSzKQ?usp=sharing
GitHub Repos
- https://github.com/OnlineCoder54
67/Senior-Cap_ServerClient- - https://github.com/Chaoward/Senior-Cap_WebClient
- https://github.com/kevinmaravillas/MobileClient
- https://github.com/Chaoward/MlNDE_Server
Teams
- Server: Johnson, Alvin, Sanjog, Jonathan, Xavier
- Web client: Howard, Nisapat
- Mobile client: Justin, Wilson, Enrico, Kevin
1/26/2023
11/17/2023
Is MobileNet V2 a already trained model?
Two parts: what's the different between 1st and 2nd part?
One more meeting on Friday 12/8
11/3/2023
Import Keras model in Tensor.js: https://www.tensorflow.org/js/tutorials/conversion/import_keras
Week 11: 10/30 - 11/3
Week 12: 11/6 - 11/10, Veterans Day (Friday 11/10)
Week 13: 11/13 - 11/17
Week 14: 11/20 - 11/24, Thanksgiving (Thursday 11/23), Fall Recess
Week 15: 11/27 - 12/1: Project Presentations (Friday 12/1)
Week 16: 12/4 - 12/8: Project documentation & deliverables due (Friday 12/8)
Week 17: Finals
10/31/2023
[Deliverables and Deadlines]
- Friday 11/3: Writing Test
- Friday 12/1: Presentation. See schedule
- Friday 12/8: Software Requirements Doc (SRD), preliminary version of Software Design Doc (SDD)
[Project name]
It's a project name, not an app name, so acronym is probably the way to go, e.g. Machine Learning for Network-Denied Environments (MLNDE). Try massaging the words to get a good acronym (e.g. MIND or MINDIE or something).
[Project description]
Project description is not a status report. Describe
- Problem - ML is widely used but rely on server/cloud resources
- Goal - develop ML algorithms/processes/systems that work in disconnected environments, and update when network is available.
- System - a prototype that demonstrates the feasibility of such algorithms/processes/systems. It consists of server, web client, mobile client ...
Example: https://ascent.cysun.org/project/project/view/136
[Who's doing what]
Server
- Johnson: stuck setting up server side
- Alvin: model & project description
- Sanjog: demo on Friday
- Jonathan
- Xavier: project description; set up signin/signout routes for re-training the model
Alvin, Sanjog, Xavier: trying setting up the server code; see me if you can't get it to work (or let me know if you could get it to work)
Johnson: create a good demo of the Recognizing Objects model
Web client
- Howard: communicate with web api
- Nisapat: image gallery
* Do better with the use of MaterialUI library; more functions in addtion to the gallery
Mobile client
- Justin: UI of mobile client, custom labels
- Wilson: image classification; camera
- Enrico: communicate with web api
- Kevin: authentication
* Loading a model from file instead of importing a packaged model
Team change? - remove Johnson from web client and move a member from server to web client
People who have never spoke during weekly meetings should present on Friday: Sanjog, Xavier
[Data Science Class Progress]
KNN, Linear regression, random forest (decision tree), cross validation, logistic regression, using Python libraries
Neural network or deep learning?
[Technical hurdles]
- Set up server code (tomorrow/Wednesday 4pm I'll send Johnson a Zoom link)
- Switch front and back camera in mobile code (tabled)
- combine server web api code with model training code
- On mobile client, run a model loaded from a file (instead of a model packaged in tensorflow library)
- For example, a file with .h5 suffix
- As oppose to say "import * from @tensor-models"
[Overall design]
* Pick a model
- Recognizing digits (not this one)
- Dog or cat (web client) (not a model to begin with, just an example)
- Recognizing objects (training with a given set of labels) -- adds the flavor of re-training (with more labels)
- Dog species (mobilenet)
Friday demo of this model:
- Train this model with a set of label, e.g. {dog, cat, horse}
- Test this model with pictures of dog, cat, horse, and people
- Re-train with an additional label {person} and additional pictures of people
- Test this model again with picture of people.
10/20/2023
Johnson: model - file format and size
Kevin: try out Tensor.js
Howard and Nisapat: web client - should use a component library - Material UI
Kevin: registration with AWS
Jonathan: updated endpoints for text labels & confidence score ...
Johnson + Sanjog + Jonathan: add model training/re-training code to server side
Overall app design next week
10/13/2023
Johnson: model
Jonathon: set up demo server; images hosted on s3
Howard: web client; able to connect to server
Justin: mobile client; able to upload image to server
Model data format; run model on mobile; re-train model on server; overall app design (will meet in person to discuss); share GitHub repo info
9/29/2023
Attendees: Sanjog Baniya (late)
Sub-team leads:
- Server: Johnson
- Web client: Howard
- Mobile client: Kevin, Justin
Students taking the data science class: Kevin, Johnson, Jonathan, Justin, Sanjog, Alvin
Share Resources doc
9/19/2023
Attendees: Sanjog Baniya, Jonathon M Dooley, Enrico Efendi, Wilson Gan, Xavier Lara, Kevin Maravillas, Howard Nguyen, Nisapat Poolkwan, Johnson Tan, Justin To, Alvin Yu
[General Q&A]
[System Architecture]
1. Mobile client
- take a picture or upload a picture
- classify content to be cat or dog offline (need a model on device, need a library to run the picture through the model)
- When online (i.e., with network)
- Connect to a server
- Download an updated model (or a model update)
- Upload any new user data to server (i.e., new pictures, and new tags - predicted and user-entered)
- When connected with another mobile client
- Shared the updated model / model update with the other client
- The two clients will exchange new data (it could be one direction, or both, and it could be automatic, or specified by user)
2. Server
- has training data, and new data, and a model to begin with
- Provide a web API for clients to
- Download a updated model / model updates
- Upload new data
- Train a new model with additional labeled data
- Probably also need API for other operations
3. Web client (basically a user interface to manage the server)
- Display the list of different versions of the model
- Display the list of pictures and their labels
- Let user to label pictures for training purpose
- Issue a command to the server to retrain the model with newly labelled data
- ...
[Sample Application]
Image classification is probably a lot easier to implement and demo than dialog-based AI tutoring.
For example, an mobile app will allow a user to take a picture or upload an image, the app tells the user if the picture is a pic of a cat or a dog.
[Components and Sub-teams]
1. Server
Knowledge needed: Python, Flask, Web API, AI/MI
Team: Johnson, Alvin, Sanjog, Jonathan, Xavier
2. Web Client (for admin UI)
Knowledge needed: JavaScript/Node.js, React
Team: Howard, Johnson, Nisapat
3. Mobile Client
Knowledge needed: JavaScript/Node.js, React Native, AI/MI
Team: Justin, Wilson, Enrico, Kevin,
4. Peer Relay - somebody from the mobile client team do some research on this
Investigate mobile-to-mobile device communication technologies and libraries
[Collaboration] (discuss within team & subteams)
Ways/tools of communication, additional meeting time
[Tasks for near term]
- Select a model - for image classification, not too large, no GPU requirement, preferably can be incrementally updated (need to discuss this with Dr. Nye and Dr. Core on Friday)
- Come up with a functional design - what functions each system component should have (see the System Architecture part for starters)
- Initial setup and implementation
- Set up development environment and GitHub repositories
- Create three components (server, web client, mobile client) that can talk to each other
- Update project page on Ascent: project title and description
- Create a shared Resources page where team members can find project resources to learn/use (like the section below)
[Resources]
General
- O'Reilly Digital Library (a.k.a. Safari Books Online) - https://www.oreilly.com/library-access/?email=
- Select "Institution not listed"
- Enter your Cal State LA email
Machine Learning (MI) Basics (e.g. classification, labelling, model, training)
Python
Web API in Python
- Microservices APIs (on O'Reilly)
MI in Python
React
React Native
9/15/2023
opentutor.info
web-dev.pal3.org