Lesson 3 In-Class Discussion ✅

Don’t think so, since Jeremy mentioned about OpenCV as well when asked.

2 Likes

I’m not sure whether it would be good idea. Since those new channels will not represent anymore the RGB channels of the pre-trained model, it won’t be leveraging on transfer learning.

Where do we pass this in? into the create_cnn? I am unable to find where it says that cross entropy is the defealt loss in the docs. if I create my own loss say loss(input, output) I can just pass this into create_cnn like a weighted loss right?

Taylor series would be more closer to neural-nets (mathematical function approximators).
This blog tries to portray a fundamental relation between them --> http://danshiebler.com/2017-04-16-deep-taylor-lrp/

1 Like

This is interesting link. I think neural networks are able to approximate any function by deposing it into piecewise linear functions. (any function is piece wise linear if you zoom a lot and just add those tangent components ) Because we can add gradient or subtract in any amounts we like as we go along, we can mimic the motion of any function. The function is broken into tiny linear components(in case of relu) and then approximated.

1 Like

I suspect brute force will take a lot more time and computing power. Brute force’s close cousin, finite differencing, could even be done using excel: click here to jump ahead to lesson 5 2017, but except for pedagogical purpose this way is just very tedious

This is interesting link. I think neural networks are able to approximate any function by deposing it into piecewise linear functions. (any function is piece wise linear if you zoom a lot and just add those tangent components ) Because we can add gradient or subtract in any amounts we like as we go along, we can mimic the motion of any function. The function is broken into tiny linear components(in case of relu) and then approximated.

1 Like

From what little I know of high dimensional space (and it’s close to nothing), the concept of global minima seems less relevant, and what you have is probably a number of equally good local minimas. That’s why we want to increase and decrease the learning rate as described by the 1-cycle policy, so that hopefully we end up at a good, robust local minima that is shaped like a large,wide bowl. This usually means that the NN we trained can generalized better. I supposed being stuck at such a bowl is not a bad result.

1 Like

We used the exact same architecture for the satellight images with changing to 256 size images, this worked out due to adaptive max pooling. In this case the max pool would be more aggressive. I am wondering if we made a new architecture with the normal max pool, and transferred out the initial weights would this give a higher accuracy ?

yes, in my case it’s similar to a blacklist for fraudsters. even though something (such as names) shows up only once, we view it as a 1 (a fraudster). I have text that contains these that I need to classify correctly. Is there a way to augment text data? At lease i can reduce the minimum freq, right?

1 Like

Interesting #TIL :grinning:

I am curious to know the reason in overall interest in segmentation (aka semantic segmentation). In lesson 9 of dl2 (2018) we did a pascal-multi.ipynb where we used Bounding Boxes to identify presence and location of different classes. Is Segmentation considered better than the BB?

I have more questions which I will save for followup.

Shouldn’t Jeremy be using metrics like IoU, or Dice for measuring segmentation performance. Actually Jeremy did far far better because 100-layer Tiramisu used just only 11 classes. This version of camvid used I think 35 classes

1 Like

For self driving cars it is essential, for a problem I am working on - detecting brain tumor from large MRI images- it takes doctors huge amounts of time to mark out the regions of tumor for surgery. All your Facebook snapchat filters use segmentation to identify your face and place the filters exactly there as you move.

1 Like

But linear combinations of Fourier series can represent any function, not just periodic ones.

Is there a way to put grid lines on the learn.recorder.plot?

1 Like

Good bluesky314 (Rahul), I have experimented with some of those like datasets like blood(RBC/WBC), blood-nucleii, surgical instruments during surgery and in some cases BB’s were expected in some cases segmentation was required. In camvid exercise we have a model that can id (at a pixel level) ‘Bicyclist’, ‘Pedestrian’ and ‘Road’ etc. We could have done that with BBs as well. My question is having built a segmentation model where do you go next?

1 Like

Hi, I wasnt able finding this information and link about lesson 3 before the lessson and therefore missed the in class. Before, we had an email. But I am also fine to monitor one topic in the future to be informed ahead and have the link.

Any thoughts?

How did the model figure out the color for the parts of predicted images in camvid? In fact the label images are grayscale. Is the show_results() just a representation of predicted grayscale mask placed on the original image?

2 Likes

Well, in that case, maybe you can modify the last layer to add a dimension that represents the regression number you want at the end, while the previous numbers still represent different classes for the purpose of classification.

The only issue is that it is highly customized and you might not find an existing fast.ai library function or class to do it out of the box. Even worse, since fast.ai library, as far as the parts we have covered, assume the learner to be doing either classification or regression, such modification would even make it impossible to use the predefined library functions for the classification part.

With all these hassles, I would rather train two separate learners for these two purposes independently, than to write all the customized functions myself.

1 Like