JuliaAcademy / JuliaAcademyMaterials

Assets and Infrastructure for JuliaAcademy.com
http://www.JuliaAcademy.com
MIT License
63 stars 25 forks source link

Potential improvements for the Deep Learning with Flux.jl course on JuliaAcademy.com #26

Closed logankilpatrick closed 4 years ago

logankilpatrick commented 4 years ago

Thread created during Google Code-In.

mikolajhojda commented 4 years ago

In the course should be review test. I think it will help in learning. We could remember informations easier. The beginning of the course was chaotic for me. For example, the sigmoid function was badly explained in my opinion. Firstly should be information about how we can use Flux and why it is useful, why the course focuses on this topic. Maybe it should be how to install it etc.

chinglamchoi commented 4 years ago

1. General Things:

2. Handwritten & Built-in Functions Really liked how he included both handwritten and built-in methods of building aspects of the model (e.g. custom-building activation functions, optimisers, etc). The handwritten functions tutorial is useful in understanding the mechanisms behind each Flux built-in function, and also comes in handy when you have to try to define you own custom functions for your architecture (mobilenet's relu6 activation comes to mind).

3. Very Well-Explained Amazing how he used linear transformation to explain how model complexity is aggregated (using multiple linear layers doesn't make a complex model at all). Also, I really appreciate how he elaborated on which loss function to choose and why, such as through plotting MSE & Cross Entropy and visualising their domains. It's also great that he decompiled the model architecture, showing us the code and logic behind each function.

4. Very Easy to Follow & Recreate: A lot of tutorials skip right to defining the model architecture & training process and omit the data loading (creating one-hot labels, batches, etc) and visualisation. Knowledge taught in this course fully equips us to use Flux on our own custom datasets.

5. More on GPU Acceleration Perhaps more could have been said about GPU acceleration and how to leverage the power of CUDA. It would also be nice to cover CuArrays and GPU VRAM memory allocation, as it seems like OutofMemory errors are common issues when training with GPUs.

6 A Bit More on Choosing Hyperparameters & Optimisers

7. Some Advanced Topics

CompSciDZ commented 4 years ago

For me, this was where neural networking and machine learning got confusing, but replaying the videos and watching them over again is helpful.

For this course, due to the nature of complexity and the pace, I think prerequisites should be set and defined. Additionally, to truly understand these concepts, I think that the videos need to be rewatched and that everyone should look through the notebook. The instructor goes beyond their ability to clarify things, but additional clarification may be necessary in some areas.

In this course, modeling is necessary. Although we focus on the code, modeling what each statement does is critical to grasp these concepts. I think more visual representations need to be incorporated to help students understand.

As far as the code goes, I think that this course threw a lot of code at you and is hard to follow through. Courses prior to this did not go much into the code (Intro to Julia did not go to Machine Learning, Foundations of Machine Learning was mainly modeling, and Knet did not go into this complexity of the code).

This course is something that you do not comprehend the first time, but with the instructor's explanations, it helps make it easier, however, it is highly recommended you have a strong background in understanding machine learning to fully experience the course.

mdvsh commented 4 years ago

Some background before this review.

I already had previous experience with Machine Learning through Andrew Ng's Coursera Course and books that my brother recommended. I also had the understanding of the math behind many of the concepts discussed in the course. So, I didn't find the course too intimidating instead, it proved to be a great opportunity to learn Flux So now let's get to the main thing.

I really liked the way of teaching. No nonsense and clear. The instructor very well explained all the concepts and the notebooks provided were very high quality too. They were extensively documented and were a perfect complement to the lectures.

As many have previously mentioned, I'd agree that the course is indeed of a higher difficulty (It might also be difficult to understand as those who're writing a reviews are high-school students .themselves).

The course organisation is really good. Starting from Flux and all the way to making our own deep NN. The instructor deserves appreciation for the explanation he tried to provide for nearly everything he did and the way I was gripped till the end of every lecture. I'd recommend a quiz question every 10 minutes or so inside the video itself (MCQ). Something in the Stanford ML MOOC that intrigued and help me clear concepts.

As for the platform, I'd suggest adding captions to incorporate a larger learning audience from the world and also to address times when the voice isn't comprehensible (only some times though). The course should also indicate the prerequisites like some understanding of probability theory and linear algebra and calculus which could be helpful in understanding how things are actually working.

It is indeed an awesome course but for the right audience. 👍 Keep It Up Guys !

TheComputerM commented 4 years ago

It was a great tutorial, better than Flux's documentation and other tutorials available on YouTube.

Even a beginner with no prior knowledge of machine learning would be able to follow along. The explanations provided for Neural Networks and loss functions were accurate and easy to understand.

Again as with every other tutorial on Julia academy the problem comes from lack of exercises and being able to interact with sample notebooks along the way. I felt that this tutorial was short as it could demonstrate so much more with flux and machine learning. And an in-depth analysis of different machine learning models such as CNN, RNN and LSTM was missing.

The only type of models taught were classification models and I think so much more could be done like the generation of random motivational quotes (sentiment analysis) and speech recognition models.

Please take a look at https://mybinder.org/ to host the sample jupyter notebooks.

Also the tutorial is now outdated as a new version of Flux has been release making a good chunk of the code in the tutorial obsolete but not the basic principles.

Redeem-Grimm-Satoshi commented 4 years ago

Never used flux before but this course helped me understand the basics of neural networks with flux and how to use it to recognize handwriting. I was satisfied with the video length and explanation. I think if the package flux.jl was manually installed on JuliaPro or Julia so users can see how it is being installed before using it. Review questions too can be provided to remember what has been taught. Lastly, I also want to congratulate the mentor for doing a great job!

josobar commented 4 years ago

I have only started using Julia when GCI 2019/2020 began and I had little experience of machine learning prior to this tutorial. This course builds off of the previous one very well and simply translates its concepts into Julia code. The instructor is clearly credible and the video and audio quality is good.

Suggestions:

kimttfung commented 4 years ago

Hi everyone! I just wanted to add my thoughts to this course over here.

Coming from someone who has no prior experience with ML, I must say that this tutorial is very intuitive. I did not know any calculus and was personally freaking out but I soon realised that I didn't really need any of it.

It would be great if we could have more interactivity with the content to reinforce the knowledge covered in this course with something to do with testing: such as quizzes or some problems.

I must agree that some of the stuff towards the first video was quite poor and I was personally slightly confused about the sigmoid. It would be great if there could be more of a linkage between the Foundations of Machine Learning course and this.

I do enjoy the handwritten aspects of the learning models very interesting but I feel like it was emphasised a bit too much and a large part of the video was covering that which defeated the whole purpose of having Flux to simplify the machine learning process.

At the same time, I do hope that there could be more on CUDA, optimisers and different loss functions such as crossentropy and MSE. Although we were introduced to both loss functions, it could be better if there was more explanation as to why users should use a certain one in a certain situation.

In addition, I really like the image classification aspect of the course in the last video but I wish there was also a tutorial for non-Grayscale images to fill the whole picture of image classification.

Also, I would recommend the Atom/Juno setup for this course because I had a bad experience with JuliaPro while doing this course and for me Images.jl was not compatible on JuliaPro (+ IJulia), which was introduced to all the users on the "Introduction to JuliaAcademy.com" course.

Thanks :)

eahmed123 commented 4 years ago

I am done with the course but they are not giving me the certificate. I don't know what is the problem. In this course there are two problems. On JuliaAcademy (1) is that I have done course but no certificate. Secondly, there is not even one quiz to test the knowledge of the student. Let me give the example of question how it should be.... Question 1: Julia has a powerful package that does much of a heavy lifting for us called "Flux.jl"? A. True B. False There should be specific time given to the student to complete question or the whole quiz.

aftex261 commented 4 years ago

Hey everyone, Firstly I will go with areas of improvement:- 1.The overall lecture was good for a intermediate learner but not in view of a peer as more emphasis could be given on explanation of basics like in "introduction to flux" sigmoid function could be explained a little bit more. 2.There could be a extra worksheet uploaded at the last of every lecture to see whether the learn got upto that lecture or is just enjoying the lectures by just completing the course to get a certificate. 3.Identifying the handwriting with neural network lecture was good but it requires more improvement due to lack of organized teaching and fastly telling the things for a peer. 4.More real world examples should be given that where is the application of these technologies. Places I liked:- Introduction to neural network lecture was awesome.\ At last I would like to rate the course 4.1/5. Thanks everyone for reading.

Ninad10code commented 4 years ago

At the beginning of the course, there must be a video describing what is deep learning and what is the difference between deep learning and machine learning cause at the beginning I wasn't able to know the difference between the two or how the two are related. The best part of the course understanding was the data visualization of all the inputs given to training the model. Understanding the non-linearity curve was a bit difficult to imagine how thee curve gets generated, Recognizing handwriting with neural network was a very interesting part of the course Thank you.

dhruv2604-create commented 4 years ago

Hi people! I believe that JuliaAcademy is an excellent source for not only experts but beginners too. It has a course for everyone. It was during GCI 2019-2020 that I came to know about Julia and by completing "Introduction to Julia" and "Deep Learning with Flux.jl" courses I have become quite familiar with Julia. Especially the Deep Learning course was pretty unique as I was able to delve into machine learning without any prior knowledge of it Although I would like to recommend some things:

iamrajatfzd commented 4 years ago

FEEDBACK :

  1. Tutorial is good and best but there is no chat system for students doubt. It seems inserting the chat system (direct talk to trainer) the all students are clearing the doubt from trainer. "I HIGHLY RECOMMENDED THIS"
  2. I've successful completed the Deep Learning with Flux.jl course on your JuliaAcademy.org but there is no lesson to practice, when insert a practice lesson than students after learn the course, live do practice and really completed the course.
  3. Made practice set for students. I want to say that please add a compiler in the training tutorials where learners can write code and compile it live. It is a huge difficulty came where trainees have a single system or laptop and want to write and compile code for learning from JULIYA ACADEMY. THANKYOU
lalit-03 commented 4 years ago

Here's my review of the Deep Learning with Flux.jl course:

I found the course a bit tough and had to watch some videos 2-3 times to understand. The videos were a bit fast paced and it took some time for me to understand what the tutor was saying. It would be better if there were subtitles. The course should be more interactive. There should be more quizzes. Also, I think the audio quality could have been better. 30 minute videos are a bit too long. It would be better if they were broken down into several 8-10 minute videos. I would rate this course 7/10

king398 commented 4 years ago
  1. the course cold have shown prerequisites before.

  2. the chapter should have been broken into shorter videos or chapters like udacity

  3. if there was a summary it would be helpful

  4. a quiz after each chapter would have good

  5. i give the rating to the course of 6/10

  6. this is not an important thing but if you could partner with tensor flow it would be very good

Akshat-mehrotra commented 4 years ago

*I'll try not to suggest things people have already suggested.

Only after watching the video series by 3 blue one brown on neural networks and machine learning, I had a respectable benchmark. This course lacks a detailed and satisfactory explanation of the core concepts of ML. 3B1B explains most of the concepts without even touching programming. I understand that his is more of a math-oriented video series, however, the whole field of ML is heavily math-oriented. Emphasize on math should undoubtedly increase. One of the ways to implement this so that people who like and dislike math could be satisfied could be to create side videos purely focused on math only for those who are looking for a mathematical approach. Otherwise, the course is great for someone who is familiar with the concepts of ML and wants a quick introduction to it in Julia.

D3nii commented 4 years ago

While taking the course, I was like why are there this big videos, it gets pretty boring tbh. There must be short videos on labelled topics and also some kind of tests like DataCamp has in its courses. I have taken 3-4 courses from this website and need tests but can't have them, so, my advice is to get the tests part done asap. Otherwise, the course is okay and is a nice pathway for students to follow.

amanjincodeout commented 4 years ago

Truly speaking about the course that it is not only encouraging but bit it is interesting The educator is very nice although i am disappointed because inbetween videos there r no tests so student can't understand that he learnt correctly or not but although in short videos it has knowledgeable.

salemalem commented 4 years ago

Hello there everybody! I fair needed to include my considerations to this course over here. Coming from somebody who has no earlier involvement with ML, I must say that this instructional exercise is exceptionally natural. I did not know any calculus and was by and by freaking out but I before long figured it out that I didn't truly require any of it.

amanjincodeout commented 4 years ago

I am very happy to learn Julia Computing through this course : 1] Lectures are very clear and useful to understand the difficult contents of the module. Interesting module.As I have seen that difficult topics are covered,but it is not in depth but it gives us basic idea about that. Although the module content is very difficult for me when I read the books,and to overcome this,this course gives me kick.

2]The professor has a good speaking and teaching style which keeps me interested. Lots of tough examples which make it easier to understand. Very good slides which are well formulated, but I do not like presentation, as there should be relations between topic and real world life. As I have seen and read in my books with me.

3]One most important thing that i do not like about this course that at starting there was only one video i.e around 3 min , that i don't like,as because introduction is key basic according to me,and that should cover all the overview, which was not covered

4]At last, that it should have test in between videos like codeacademy,but it was not there. Also there should be any platform to clear doubts,as many other sites including this has not given.

ghost commented 4 years ago

I had a wonderful experience doing this course 1] The professor explained everything carefully and which made the learning experience more interacting. 2] But the course was very long and time-consuming. I found many things confusing and the professor was a little unclear sometimes. I was not able to understand his handwriting which also caused confusion. 3] As I am a beginner, Flux was something very new to me so a lot of previous knowledge was required in some parts that made it a little hard to understand. For example, some basic functions were not clear which made the other part more complex for me. 4] The concepts were very well presented but if I had prerequisite knowledge about flux then It would have been more fun to learn a new language. 5] I tried to learn about this language from other sources too but it was actually very complex for me.

I genuinely, found this language very interesting and I will surely try to learn this.

salemalem commented 4 years ago

Hi! I think the course can be better with:

  1. Practice. I couldn't see any practice exercises as Udemy courses can offer.
  2. There is any interaction or quizzes at the end of the lecture as in Udemy. It will be very helpful to consolidate knowledge.
  3. There is no source code used in the lesson. I want to download source code or just take a look, but, unfortunately, I don't have this opportunity.

Generally, the course is fine.

AlexmMark commented 4 years ago

Hello! Alex M from Google Code-In Some things about this course;

  1. I think it would be nice if subtitles were included in the videos! It would be easier to understand everything the instructor says. Also, it would help anyone that owns a device that has trouble with sound.
  2. In the notebook tutorial, a link leading the viewer to the online jubyter demo notebook would be usefull.
  3. As a student familiar with java, I found the language to be great and intuitive!
  4. I had a question about the pop! function in Dictionaries which did not get answered, why do we get the data the deleted element points to and not the element itself too? Will watch again, but I did have this question!
  5. I did not fully comprehend the significance of the second parameter variable in Array{}
  6. I really love the fact that there is text explanation of the code, it helped me follow the tutorial and stay focused to what I was seeing and understanding.
  7. Some excercises between the tutorials would be great!
  8. And lastly, each time the tutorial video was completed and I was automatically taken to the next one, I found it to be a bit annoying that I had to readjust the screen to properly view the video. I was using Firefox web browser.

Overall, I found the language very intuitive for someone who has occupied themselves in the past with programming, but also it could be a beginner tutorial if there were a bit more exercises! That's all from me!