google / applied-machine-learning-intensive Goto Github PK
View Code? Open in Web Editor NEWApplied Machine Learning Intensive
Home Page: https://github.com/google/applied-machine-learning-intensive
License: Apache License 2.0
Applied Machine Learning Intensive
Home Page: https://github.com/google/applied-machine-learning-intensive
License: Apache License 2.0
"From: Vijay T. : I created some exercises for the Activations Function colab. I added them to the Agnes Scott colab in drive.
https://colab.sandbox.google.com/drive/1kGM-cph0cqrt2AIvuPC2maL8v3tDB_SU#scrollTo=RgJYaLYiVJAi"
Switch image manipulation library from Pillow to OpenCV
Need to review how this change will impact other OpenCV colabs - is it too much overlap?
The learning outcomes are way too advanced for the colab.
Through completion of this colab, students will not demonstrate the level of proficiency stated in the SLOs.
try/catch exception to be added into Introduction to Python unit.
For folks who are new to OO, they tend to get into OO and took a long time to finish that module and did not spend as much time on the other more relevant modules. I'd recommend to move OO as last module so if they run out of time we make sure they got through the other 3 modules.
Perform one preprocessing transformation” is far too vague
Additional resources:
""What is the best CNN architecture for MNIST?"" - Chris Deotte
-Ideas on troubleshooting hyperparameters CNN's
https://www.kaggle.com/cdeotte/how-to-choose-cnn-architecture-mnist
""What do we understand about Convolutional Neural Networks"" - Isma Hadji and Richard P. Wildes
https://arxiv.org/pdf/1803.08834.pdf
(94 pages)
""Towards Principled Design of Deep Convolutional Networks: Introducing SimpNet"" - S. Hasanpour, M. Mohsen Fayyaz, M. Sabokrou ,and E. Adeli
https://arxiv.org/pdf/1802.06205.pdf
""A Framework for Designing the Architectures of Deep Convolutional Neural Networks"" Saleh Albelwi and Ausif Mahmood
https://www.mdpi.com/1099-4300/19/6/242
"We need to be clear about explaining the difference between import keras and import tf.keras.
Furthermore, since Keras has adapted and gone through many changes, many students are finding and using old Keras syntax. So we should be clear about versions, etc. "
Django tutorial seemed a bit disjointed from the day. Flask might be simpler and more useful to get across the learning objective
Question about why use a web framework?
Make clear that command line is not part of django
Provide an introduction to Jupyter
Have exercises where you’re calling .py files
We added one reflective exercise to connect the Colab with the lecture (derivation of PCA done at the board).
Students also wanted more exercises on this colab. Since the current exercises are very vague, we had them go through it but they didn't turn it in. They requested more concrete exercises to practice concepts.
"From David B. in relation to the code snippet below: Don't we want 24 classes, since J and Z were excluded?
from tensorflow.estimator import DNNClassifier
classifier = DNNClassifier(feature_columns=pixel_features, hidden_units=[392, 196], n_classes=24)"
Review and reformat slide from Rachel.
Exercise 2 solution is wrong.
Instructions say to overwrite original image file, but the given solution saves the mirrored image under a new filename.
We should talk about matrices in the slides for the colabs
Since rotating in OpenCV includes rotation matrices
Talk about rotation direction, etc
The instructions said there were 6 demonstrations of competency, but there were only 4 in the list.
Update the instructions?
Modification to add slides on matrix multiplication was great - need to be added to main slides
Exercise 3: Should specify number of colors of marbles, proportion of each color in bag (or say students can chose), whether or not drawing is done with replacement
Exercise 2: Students found directions unclear, did not understand that they were expected to give a written response, not code an experiment.
Colab already exists but wasn't tracked.
Linear Regression with SciKit Learn has a lot of questions for only a few numbers of points (grading perspective)
"This colab is currently in the classification track, but it deals with linear regression.
It needs to be renumbered to the appropriate track."
In place of these, have a matrix algebra one
We have not really been covering matrices
If we don’t give them a solid understanding of matrices, then can’t get to dimensionality
Many students had no don't command line work at all.
So it was completely new to them. It would be helpful to create a pre-module that they can complete ahead of time to get them leveled up before moving onto Django.
Consider possibility of delivering in more than 1 colabs.
From Scripps: I added two exercises to this and made a (very short) deck of lecture slides.
https://drive.google.com/open?id=1kXvSO0FxHbVC7_k2p5cS8bM3vAAEZBPS
Keeping it as it's for Summer 2019. Working in progress for post Summer 2019 version.
The exercises are worded very vaguely.
Scaffolding the problems would be helpful (maybe suggest exact functions to use, break each problem into commented subparts of the solution block, etc.). Note: We gave this Colab as an optional exercise (for students who finished other work early). Many students felt that this should have been required and wanted to cover these topics together as a class (with a lecture/activity and resulting assignment).
The dataset is not appropriate for linear regression.
Unfortunately, this dataset didn’t allow contrast between good/bad outcomes
Perhaps it was intended for ""logistic regression."" There does not seem to be a linear relationship between any of the variables. You may consider using this dataset for the data exploration project and the airline data for regression. But it should be checked if the airline data actually has any linear relationships. It would be ideal to have examples of variables that are and are not linearly related.
Keep List Comprehension and Lambda as core of Intermediate Python unit to ensure the unit is not too large and demanding for students who are new to Python.
"It's also very short and could probably be part of another linear regression module.
It's really just about defining a piecewise function, which isn't a huge jump from regular regression. Maybe it makes most sense between univariate linear regression and polynomial regression. Then the discussion is univariate linear regression, multivariate linear regression, piecewise linear, polynomial. And we can think of this as a bridge from linear to polynomial. Because if the ""buckets"" are close together and follow a polynomial-like pattern, then it may be a decision on what type of model to use."
In exercise Exercise 6, “scores” is a vague term which confuses the students as it suggests a scoring method, like accuracy or precision.
Although there is not a straightforward better term, “decision scores” or “decision function output” may be less confusing. If this is changed, the example should be changed to be consistent with this.
Set Intermediate Python (part 1) as prerequisite for Intro to Pandas
Exercise 4: Should specify that the second draw is without replacement.
Need to add solution for the exercises
Exercise 3: Hint suggests using “pd.to_numeric”, not actually necessary.
Should also be clear about whether we are looking for greater than 10 minutes and less than 180 or greater than or equal to 10 minutes and less than or equal to 180
Previous labs do not use #TODOs. It would be useful to clarify in instructions that students only have to write their own code where the TODOs are and that the rest of the code should remain unmodified.
Create intro slides
Remove the word “variable” from the bullet about ‘y’ in Exercise 3
OpenCV, like PIL, has a lot of built-in functionality that can be done just as easily with Numpy. I think this would be a better way to do things with the students, so that we scaffold on the work we’ve already done with them.
For example, suppose we’ve loaded the car.jpg image as “image” with cv. Then “image” gets treated as a Numpy array. Hence, to convert RGB to BGR we could simply do this:
image=image[:,:,::-1] #reverse the order of B,G,R
or this:
image[:,:,[0,2]]=image[:,:,[2,0]] #swap B and R
Horizontal and vertical flips are similar:
image=image[::-1,:,:] #Flip across horizontal axis
and
image=image[:,::-1,:] #Flip across vertical axis
Here’s a vertical compression by a factor of 2:
image=image[::2,:,:]
Exercise -- "Make the first filter be a vertical line filter on the middle pixel of each row. Make the second filter be a horizontal line filter on the middle pixel of each row. "(the second one should be column) Also, these directions are confusing.
We need to understand out HMC will work in GitHub
There was a paragraph about Seattle in the ethical section that was unrelated to this colab, so it was removed in the AS version.
Pull slides created at Scripps
Colab is too massive.
Investigate breaking it into 2 colabs, or Maybe try intro Pandas, then baby linear regression, then intermediate pandas, then harder regression. So much of the pandas work is about data cleaning (which is the bulk of the work in data science), but is frustrating and challenging for beginners. It’s bringing the mood of the class down a little bit. But maybe if we alternate learning pandas with using it to get ready to build a model, then they’ll see the payoff of building a model/plotting.
Students really liked this project. They said it was a very cohesive unit with the three previous colabs. A few of them asked for it to be less copy/paste of code, since they didn't really know what was actually happening in the code.
Maybe adding some additional concrete challenge problems that force them to actually update the code. Or some additional more specific competencies that require them to dig into the details a little more, may be helpful.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.