Chevron Left
Back to Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and Optimization

Learner Reviews & Feedback for Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and Optimization by DeepLearning.AI

4.9
stars
63,169 ratings

About the Course

In the second course of the Deep Learning Specialization, you will open the deep learning black box to understand the processes that drive performance and generate good results systematically. By the end, you will learn the best practices to train and develop test sets and analyze bias/variance for building deep learning applications; be able to use standard neural network techniques such as initialization, L2 and dropout regularization, hyperparameter tuning, batch normalization, and gradient checking; implement and apply a variety of optimization algorithms, such as mini-batch gradient descent, Momentum, RMSprop and Adam, and check for their convergence; and implement a neural network in TensorFlow. The Deep Learning Specialization is our foundational program that will help you understand the capabilities, challenges, and consequences of deep learning and prepare you to participate in the development of leading-edge AI technology. It provides a pathway for you to gain the knowledge and skills to apply machine learning to your work, level up your technical career, and take the definitive step in the world of AI....

Top reviews

XG

Oct 30, 2017

Thank you Andrew!! I know start to use Tensorflow, however, this tool is not well for a research goal. Maybe, pytorch could be considered in the future!! And let us know how to use pytorch in Windows.

HD

Dec 5, 2019

I enjoyed it, it is really helpful, id like to have the oportunity to implement all these deeply in a real example.

the only thing i didn't have completely clear is the barch norm, it is so confuse

Filter by:

7051 - 7075 of 7,253 Reviews for Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and Optimization

By Aakarapu S P

•

Jul 3, 2018

good

By Dheeraj M P

•

Feb 23, 2018

good

By Darwin S

•

May 19, 2022

ok

By Alexandru I

•

Jan 31, 2022

ok

By Mohamed S

•

Oct 20, 2019

e

By Joshua P J

•

Jun 7, 2018

I've loved Andrew Ng's other courses, but this course was boring and not well-organized. The lectures were unfocused and they rambled a lot; they're nearly the opposite style of Prof. Ng's other material, which I found extremely well-organized. Most topics could be shortened 33-50% with no of clarity.

The course structure itself could use improvement:

The first part of Week 3 (Hyperparameter Tuning) belongs in Week 2.

The third part of Week 3 (Multi-Class Classification) should be its own week and its own assignment and could really be its own course. This is *THE* problem that almost every "applied" machine learning paper I've read is attempting to solve, whether by deep learning or some other class of algorithms. (Context and full disclosure: I'm a Ph.D. Geophysicist and my research is in seismology and volcanology.)

The introduction to TensorFlow needs to explain how objects and data structures work in TF. It really needs to explain the structure and syntax of the feed dictionary.

In the programming assignment for Week 3, there are three issues: (a) The correct use of feed_dict in 1.3 is completely new and cannot be guessed from the instructions or the TF website, and it's not clear why we use float32 for Y instead of int64; (b) In 1.4, "tf.one_hot(labels, depth, axis)" should be "tf.one_hot(labels, depth, axis=axis_number)". (c) In 2.1, the expected output for Y should have shape (6,?), not (10,?).

By Francois T

•

Jun 30, 2020

As an old school (80s) software developer I feel uncomfortable about the lack of formal teaching on the structure and principles of TensorFlow. Sure, I can write the code and fly through the programming assignment, I "kind of" get it, but for a thorough engineer, that "kind of" creates a sense of unease. I wish Andrew Ng, being the incredible practical teacher he is with the theory of Machine Learning, would have spent a bit more time reviewing that particularly practical topic of TensorFlow more in depth, because 1h on it would bring much more value than say, understanding the inner working of batch norm, especially to an engineer ready to onboard a new project and start creating. For example, when should you use a placeholder vs a variable and why? Why is there a "name" parameter in the constructor of a variable, when should I make good use for the difference between the name at a tf level and its actual Python variable name? etc... Unlike Matlab or Numpy, TensorFlow looks to me like it could use a bit more theory before practice. Next class? :)

By David C

•

Jul 22, 2019

Nice explanation of Adam. Extremely minimal introduction to tensorflow; I felt unprepared to deal with all programming error messages I encountered when using TF. I would have liked to have had more exposure to softmax outputs as well; the multi-class case is new here. My biggest complaint is that there was quite a bit of time spent trying to explain batch normalization and no corresponding programming assignment. Also, in the past I felt I had my hand held a little too much in the programming exercises, whereas when tensorflow was introduced I felt I'd been thrown by that hand into the abyss; the expected output could not help me debug because it seemingly was designed to remind me over and over that tf.Session.run was needed to give value to tf variables. ya... I think you guys have some work to do on this course.

By Todd J

•

Aug 18, 2017

Very mixed feelings about this course. The course title and nearly all (but 20 minutes) of the video content are on the topic of hyperparameter tuning, regularization and optimization of neural nets. This material is excellent. However, the programming assignment for Week 3 is about building a simple model in Tensorflow, with no coverage the rest of the material from the week. It is as if they included the wrong assignment, or just forgot to include the appropriate assignments to practice the actual content of the course. In addition, the Tensorflow intro in the videos and the Tensorflow assignment are not that great an introduction to the concepts behind Tensorflow. There are much better tutorials available on the web, such as from Tensorflow.org and codelabs.developers.google.com

By Evan M

•

Jul 31, 2020

Please update course to use / teach tensorflow 2 syntax

Also this course... really holds your hands through the programming exercise. The code in each exercise is well organized into separate subfunctions, each of which has its own check, so its already simple enough to debug. But when this is couple with the fact that the instructions basically spell out what lines to put where (and give significant hints as to what functions to use in those lines...) the whole thing is completely trivialized. I think that I at least would have learned much better if I was forced to use man pages etc. to look up the usage of functions, for example.

By Navaneethan S

•

Sep 20, 2017

This course was much less rigorous and theoretically-grounded than the first. There didn't seem to be much justification for any of the techniques presented, which was a stark contrast to the first course.

However, the topics are important and useful to know, so I'm glad they were covered. To me, the most useful sections were on softmax regression and deep learning frameworks, which I really enjoyed. The TensorFlow assignment was also interesting and (relative to the others) challenging.

I think there is a lot of scope for this course to be improved and I hope Dr Ng and team will do so in the near future.

By André L

•

Feb 14, 2023

The content is didatic, as well as the explanations, a reasonable course for a real beginner. However, the material is one of the worst I have seen: a lot of errors that are indicated with notes between the classes and MANY annotations and sketches from Andrew in the slides. It mixes up handwritten annotations with digital text, a complete mess. I had to edit the PDF in order to make something useful, even though a lot of information is either missing or floating somethere in the slide. Besides that, some videos are not edited properly: it is possible to experience many repetitions of the same phrase.

By Stefano M

•

Apr 8, 2020

(+) On the plus side: Andrew is always an excellent lecturer. Also, the python notebooks provided for the assignments are an extremely good guidance for structuring a deep neural network project.

(-) On the minus side: this course is rather disappointing compared to Andrew's well-known Machine Learning course on coursera. There is basically no challenge, as assignments (or, I would call them, "tutorials") are *very* guided: they can be completed even with a very shallow understanding of the content. Also, lectures are quite repetitive, and more like a practical cookbook than an actual course.

By Peter G

•

Dec 5, 2017

Nice course, but again, main emphasis on the practical side and 'never mind, you don't need to know the details' approach. Having optional parts where theory about batch-normalization implementation and softmax derivative derivation could be shown - that would be very desirable. Another not so great thing is that final TensorFlow-related practice exercises are too 'quick' in a sense that 99% of the code is written for you and hints are given in such a way that you literally don't even have to use a half of your brain. That is also frustrating, when everything is already done for you.

By Minglei X

•

Oct 22, 2017

Some process that was discussed in details in previous courses are mostly omitted in new context. While it is sometimes nice for saving time and focusing on new ideas, I feel like there are sometimes subtleties in them. Like I could not imagine how backward propagation should be implemented in batch norm. I'm not sure if it's because there are really some subtleties that you think it's too tedious and not necessary to introduce in the short video. If it is the case, I still hope you could provide more detailed information about them somewhere, just for curious people like me.

By Ashvin L

•

Aug 24, 2018

The course builds up on the first course and provides some ideas on how to tune the networks to perform better. However, at the core, I find the number of parameters overwhelming and it appears that by changing the parameters we can get any answer we want. There is no "formal" and mathematical basis for changing the parameters. This is a bit disconcerting.

The assignments were trivial. More importantly, at least one assignment appeared to indicate that the results are entirely dependent on weights chosen (at random) on the first iteration. This should not be the case.

By Foad O

•

Nov 2, 2021

The course is pretty good overall. However, the programming assignments need much improvement. I realize that teaching Python syntax and programming is not really part of this course, but if students are expected to do coding, there needs to be some more detailed lessons/sections to cover the basics. While providing vague, inconsistent and riddle-like "hints" in the middle of the programming exercises make for some interesting brain exercises, they are certainly not helpful at teaching the students what they need to know in order to write correct code.

By Vikash C

•

Jan 28, 2019

Content was good.

But the system that checks our submitted our code checks wrongly even when I wrote it correctly.

In week 2 assignment, when I submitted the code, it gave many functions as wrong coded.

I resubmitted the code after few changes, for instance a+= 2 changes to a = a+2 and string text like 'W' changes to "W". It worked fine and gave 100 points.

In short, what I observed is that the code checking system is taking a+=2 and a=a+2 as differently, also 'W' and "W" are considered different, but they are not in actual output.

By W B K

•

Oct 1, 2018

I thought the content was well-chosen and typically presented clearly. However, unlike the previous course in this specialization, the assignments had an egregious number of typos and missing information. I found these errors confusing and time-consuming.

From the staff's forum activity, it looks like they are no longer actively involved in this course. I hope that Coursera will hire someone—an intern would probably be plenty capable—to take this course and carefully fix as many of the errors in it as she or he can find.

By Zbynek B

•

Jun 9, 2020

This is my third course by Prof. Ng, which I passed all with 100% score track. So far, I gave always 5 stars. This time, however, just three because of (1) weak explanation of the Dropout method (intuition) and (2) missing gradient for the extra gamma parameter (Batch Norm method). It isn't a big deal for the student to derive the gradient. However, I expected Andrew at least to mention that gradient for the back propagation step.

All in all I love the teaching style by Prof. Ng and I fully recommend them.

By Kristof B

•

Apr 8, 2021

While i like the theoretical part of the course, the programming assignments need a lot of work. Foremost there is the issue of TensorFlow 1 being used. It isn't even the latest version of TensorFlow 1, but a very old one at that. Aside from that courses use too much hand holding, i find myself deliberately scrolling past information blocks so that i actually need to do some work. Otherwise it would just be copy pasting, or in other words, a waste of time.

By Robert M

•

Jan 12, 2022

I enjoyed the lectures by Dr. Ng. There are very clear and well explained. I feel I have a good theoretical understanding of the concepts. The practical aspect is quite different. The exercises lack explanations, especially TensorFlow. You write a few lines of code and "congratulations, you have written your own NN!" while they seemly randomly transform and transpose your data without explanation. You hardly leave the course feeling like an expert.

By Iggy P

•

Apr 19, 2020

This was an interesting course in that it taught me a lot about hyperparameter tuning and how to improve my models in general. My main issue was that the optimization assignment couldn't open properly due to jupyter notebook issues and I didn't receive any support or direction on the issue. I just stumbled on the solution myself and this significantly messed up with my timelines. I wish there was more support for technical issues as well

By Dimitrios G

•

Nov 28, 2017

The course continues on the same path the previous Deep Learning course has set but I found the use of TensorFlow somewhat limiting. It is a great tool that simplifies the training and running of NNs but it does not allow for easy debugging or for easy looking within the built-in functions to spot problems. I felt that we were treating many tf.functions as black boxes and I am not so fond of this. Otherwise the course was fairly useful.