How to Make a Neural Network - Intro to Deep Learning #2

  Рет қаралды 236,448

Siraj Raval

Siraj Raval

Күн бұрын

How do we learn? In this video, I'll discuss our brain's biological neural network, then we'll talk about how an artificial neural network works. We'll create our own single layer feedforward network in Python, demo it, and analyze the implications of our results. This is the 2nd weekly video in my intro to deep learning series (Udacity nanodegree)
The coding challenge for this video:
github.com/llS...
Ludo's winning code:
github.com/lud...
Amanullah's runner up code:
github.com/ama...
Please subscribe! And like. And comment. That's what keeps me going.
More learning resources:
www.mcb80x.org/
cogsci.stackexc...
medium.com/tec...
natureofcode.co...
blog.dbrgn.ch/...
neuralnetworksa...
iamtrask.githu...
The guy at the beginning is my Jeet Kune Do instructor (Sifu Tim). Send him an email at sifutimr@gmail.com if you thought he was cool in the video. He would absolutely love it. Special thanks Catherine Olsson of OpenAI for being the hook to my backpropagation rap.
Please support me on Patreon:
www.patreon.co...
Follow me:
Twitter: / sirajraval
Facebook: / sirajology Instagram: / sirajraval Instagram: / sirajraval
Signup for my newsletter for exciting updates in the field of AI:
goo.gl/FZzJ5w
Hit the Join button above to sign up to become a member of my channel for access to exclusive content! Join my AI community: chatgptschool.io/ Sign up for my AI Sports betting Bot, WagerGPT! (500 spots available):
www.wagergpt.co

Пікірлер: 468
@nsudhanva
@nsudhanva 7 жыл бұрын
You gotta appreciate the effort he puts into his videos! Those raps and memes! Amazing video. Thanks!
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks for saying that!
@mdmukhtaralam6439
@mdmukhtaralam6439 7 жыл бұрын
Siraj Raval can nn be built on any other programming languages like c n java cuz i m new to python n will take much time for me to learn python completly. if possible make videos of makin nn in other languages
@crystalhuang8258
@crystalhuang8258 7 жыл бұрын
If you know c or java, then python shall be very easy for you to learn. Plus python I think is better suited for machine learning because of its great libraries. Python is also less 'wordy' than c or java. Try giving python a shot. If you know c or java well, then you can catch up quickly.
@DubstepDinosaurs
@DubstepDinosaurs 7 жыл бұрын
I love the cameo girl! Your "67 questions" vid with her was great. I still think of her comment about how in 2017, machines will solve problems that benefit our lives, and programmers will have little idea how they are doing it, because of deep learning.
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks! shes smart ya
@kshitizk6070
@kshitizk6070 7 жыл бұрын
All this makes sense to me in one go only after watching few weeks videos of Machine Learning - Andrew Ng!
@guillempitarch427
@guillempitarch427 7 жыл бұрын
6:44 Aaaaand you just gave me my new wake-up motivational tone, thank you master
@MyHandsAreStuck
@MyHandsAreStuck 7 жыл бұрын
I'm so confused. I wish you went slower and explained more.
@witonisaurus
@witonisaurus 7 жыл бұрын
Personally, I believe these topics are a little too complex to make videos of without going on for at least 45 min each. But that's why Siraj's videos work, I can get a general knowledge of what, in this case, makes up a neural net and then use that knowledge to research further by Googling topics (Siraj even links other learning resources). You can't learn what researchers have been working on for the past 5 decades from a simple video series, but the series does a lot to make it easier to get to that level.
@MyHandsAreStuck
@MyHandsAreStuck 7 жыл бұрын
Well put, and thank you for the input.
@Quacky_Batak
@Quacky_Batak 7 жыл бұрын
MyHandsAreStuck , well I too think the same, but the topics needs self analysis also, resources may help
@DubstepDinosaurs
@DubstepDinosaurs 7 жыл бұрын
MyHandsAreStuck I used to make tutorial videos and also received this "slow down" comment, and I used to wonder, "don't they get that this is why I make videos, so they can pause and rewind?" I even recall KZbin experimenting with speed controls at one time.
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks for the feedback
@c.anselme3887
@c.anselme3887 7 жыл бұрын
Hello Siraj ! :) Thank you for your videos, you are explaining things very well. I appreciate your channel ! You explained how to make a single neuron perceptron but it actually does not work fully. You did not include the bias and when all inputs are 0, nothing changes, even if weights had to change. That's why we have to put a bias :) Maybe some viewers were experiencing some troubles with their perceptron as I did. Bias is very important for each neuron ! For those who are interested, you have to treat the bias as a single synaptic weight connected to a constant input of value 1.
@Frankthegravelrider
@Frankthegravelrider 7 жыл бұрын
This one was great! You make it quick to learn these concepts in your videos. Even for those with a technical background, it feel like a challenge to keep up with the videos! :D Thanks!
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks fr ya!
@ilyeshammadi7278
@ilyeshammadi7278 7 жыл бұрын
Awesome as always. Great job Siraj !!
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks!!
@leilayousefi7772
@leilayousefi7772 6 жыл бұрын
I fell in LOVE with your videos! Greatejob! Well Done!
@GuillaumeVerdonA
@GuillaumeVerdonA 7 жыл бұрын
Great video as always! I personally really enjoy the fast pace
@SirajRaval
@SirajRaval 7 жыл бұрын
Thanks so much
@DubstepDinosaurs
@DubstepDinosaurs 7 жыл бұрын
Best programming video I've seen. Shared.
@SirajRaval
@SirajRaval 7 жыл бұрын
im honored thanks
@jonjoegreaves4755
@jonjoegreaves4755 7 жыл бұрын
What language are you using to code this. Is this Python 2? Amazing video by the way. Thanks Siraj.
@techwithdave
@techwithdave 7 жыл бұрын
After scrolling through many comments on the previous video, I saw that it stated that it was Python 2. KZbin needs to make it possible to search comment threads, so you can find useful information without scrolling through 100s of comments by hand.
@asadullahfarooqi254
@asadullahfarooqi254 7 жыл бұрын
thanks siraj you are the coolest guy i've ever saw love you very much and also your videos i haven't saw all of them yet but i will one more time thanks
@Eddie-rf4tp
@Eddie-rf4tp 7 жыл бұрын
You have an interesting technique for teaching... I respect that.
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks Eddie
@jarredparr
@jarredparr 7 жыл бұрын
Hey Siraj, some of your topics kind of go over my head in terms of why you use certain things. Overall, I am having difficulty grasping how to simply set up a neural network. I see your example, but I could not reproduce it at all. Do you have any tips to clear up the confusion? Thanks
@brantfordbrands
@brantfordbrands 7 жыл бұрын
1: Pause (A lot). 2: Google things you don't know. (It's embarrassing but I forgot Algebra and am using a child's website to re-learn) 3: Keep moving. If you get it working, but don't understand EVERYTHING, that's OK. you can come back to it. 4: Realise it takes time. We can all learn this. I mean, if I can, you can. But you've got to put in the time and the effort. Is this a priority? Then you'll find the time. I managed to reproduce Siraj's output from this video, but I had to fix some typo's and that's difficult as I don't yet understand Python and am entry-level developer. I feel like I'm learning it slowly though just by typing along with Siraj and making mistakes along the way.
@ASOBrasil
@ASOBrasil 7 жыл бұрын
I understood if you don't create a good initial set of random weights the predictions could not get good results even after a lot of training. Is that correct? If yes, how is it possible if backpropagation will adjust the weights?
@JupyterJunkie
@JupyterJunkie 6 жыл бұрын
You are the man. Thank you fore your insights
@TjC-xf5my
@TjC-xf5my 7 жыл бұрын
why did you change neural_network.predict(array([1,0,0]))) to think? i noticed you cut the video and instantly changed it. then there was an error i had once i did all of this which was in the Neural Network there was no attribute in Train ------------------------------------------------------------------------------- print("New synaptic weights after training: ") print(neural_network.synaptic_weights) #Test the neural network with a new situation\ print("Considering new situation [1,0,0] ->?: ") print(neural_network.think(array([1,0,0])))
@njack1994
@njack1994 7 жыл бұрын
What happens when you apply neural networks to a fpga. Could you basically make software that just exponentially increases its' processing power on the fly till a given task was completed? Basically instead of going deeper could you go broader?
@nicholasrobinson6031
@nicholasrobinson6031 7 жыл бұрын
Hey Siraj. Awesome video. Could you explain the difference between using self.__sigmoid_derivative(output) as your adjustment multiplier vs. using a constant learning rate. Is my understanding correct that the sigmoid derivative is acting as our learning rate for this example? Trying to reconcile this video with Tom Mitchell's chapter on ANN.
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks Nicholas yes your intuition is correctt
@1997CWR
@1997CWR 7 жыл бұрын
Does a 3 Layer NN mean we only have 1 hidden layer? And are you afraid of non-convex loss-functions?
@g00dvibes47
@g00dvibes47 7 жыл бұрын
are you talking about vision or language with some use support vector machines? for shallow/convex architecture, such as SVM, using non­-convex loss functions actually improves the accuracy and speed. using a suitable architecture (even if it leads to non­convex loss functions) is more important than insisting on convexity (particularly if it restricts us to unsuitable architectures). you'll like this article: www.cs.nyu.edu/~yann/talks/lecun-20071207-nonconvex.pdf
@srineeshsalur524
@srineeshsalur524 6 жыл бұрын
yes,​ one input layer, one output layer, and one hidden layer.
@rahulpillai6415
@rahulpillai6415 6 жыл бұрын
Man youre going way fast, is this same as the nanodegree in udacity if it is I'm not gonna waste my money on it
@kyb3er
@kyb3er 7 жыл бұрын
Can I download this main.py file from somewhere? I have a syntax error on line 43 and it looks the same as Siraj's code in the video. I'm sort of a Python newb but I'm fluent with Linux shell scripting.
@kerasme9749
@kerasme9749 7 жыл бұрын
Bro thanks for these videos, really made learning fun
@UsmanAhmed-sq9bl
@UsmanAhmed-sq9bl 7 жыл бұрын
Love it
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks!
@satanicwarduck7908
@satanicwarduck7908 7 жыл бұрын
You have a great taste in music Buddy
@kirankumar-kx6vv
@kirankumar-kx6vv 6 жыл бұрын
very nice bro
@tiwanakaify
@tiwanakaify 6 жыл бұрын
Is that one layer neural network related to a logistic regression ? Except the estimation part where in this case you are descending that gradient (and having an accident) ? And also except the feed back thing ?
@RohitSharmaDECIPHERETERNITY
@RohitSharmaDECIPHERETERNITY 7 жыл бұрын
Predict, React and CREATE!
@JimTaylor42
@JimTaylor42 7 жыл бұрын
Whooaaaaaa!!!!! slow down
@SirajRaval
@SirajRaval 7 жыл бұрын
will do on new vids thx
@Nealpa
@Nealpa 7 жыл бұрын
I am just curious. Why aren't we using learning rate. Aren't we suppose to use that when we update our weight? If not, is there any reason for not using it?
@SirajRaval
@SirajRaval 7 жыл бұрын
we usually have one, i just wanted this to be as simple as possible. But whenever you build a neural net for any real application definitely use a learning rate
@Nealpa
@Nealpa 7 жыл бұрын
Thank you man. I appreciate for taking your time out to answer my question.I appreciate it.
@amanpreetsingh8100
@amanpreetsingh8100 7 жыл бұрын
cool...
@Luckasborges
@Luckasborges 7 жыл бұрын
Hey Siraj, after train a ANN using TensorFlow what I need to do to put the trainned model into an android application? Should I use a Java library or implement the ANN manually using the weights from training? Congrats by ur videos.
@BenCauntyt
@BenCauntyt 5 жыл бұрын
Obviously this is a little late but if you are still interested he recently put out several videos on making ai apps and I think one or two is with android
@RJBlore
@RJBlore 7 жыл бұрын
While updating the synapses, why is there a '+=' operator? Shouldn't it be a '-=' operator, as it is gradient 'descent'? Also, if I'm right, why does this code work?
@kshitizk6070
@kshitizk6070 7 жыл бұрын
Gradient Descent minimizes the loss function or error, not the parameters (weights). Weights may increase on decrease to get to a local minima. Visualize it like weights on x and y plane and error in the z plane.
@6388-s2n
@6388-s2n 7 жыл бұрын
Could someone explain to me one thing please? He multiplies the error by the slope of the sigmoid and he says that it used to check if the value is confident. But what if it is confident(e.g. 0) but a complete opposite of what it should be(e.g. 1)?
@ilyesHidri
@ilyesHidri 6 жыл бұрын
i gess at some point this is what Elon musk was saying !
@paramshah1257
@paramshah1257 7 жыл бұрын
Amazing content. I am a novice here. And I have a question. Why is sigmoid derivative function returning x * ( 1 - x ). Shouldn't it return exp(x) / [(1 + exp(x))^2] . Because that is what you get when you differentiate 1 / (1 + exp(-x)).
@snicksgames6869
@snicksgames6869 7 жыл бұрын
hey i was using pycharm and i got Random starting synaptic weights: neural_network.synaptic_weights New synaptic weights after training: neural_network.synaptic_weights Considering new situation [1, 0, 0] -> ?: neural_network.think(array([1, 0, 0])) Process finished with exit code 0 what did I do wrong?? from math import exp from numpy import * from numpy.core.tests.test_mem_overlap import xrange from numpy.ma import dot class NeuralNetwork: def __init__(self): # Seed the random number generator, so it generates the same numbers # every time the program runs. random.seed(1) # We model a single neuron, with 3 input connections and 1 output connection. # We assign random weights to a 3 x 1 matrix, with values in the range -1 to 1 # and mean 0. self.synaptic_weights = 2 * random.random((3, 1)) - 1 # The Sigmoid function, which describes an S shaped curve. # We pass the weighted sum of the inputs through this function to # normalise them between 0 and 1. @staticmethod def __sigmoid(x): return 1 / (1 + exp(-x)) # The derivative of the Sigmoid function. # This is the gradient of the Sigmoid curve. # It indicates how confident we are about the existing weight. @staticmethod def __sigmoid_derivative(x): return x * (1 - x) # We train the neural network through a process of trial and error. # Adjusting the synaptic weights each time. def train(self, training_set_inputs, training_set_outputs, number_of_training_iterations): for iterations in xrange(number_of_training_iterations): # Pass the training set through our neural network (a single neuron). output = self.think(training_set_inputs) # Calculate the error (The difference between the desired output # and the predicted output). error = training_set_outputs - output # Multiply the error by the input and again by the gradient of the Sigmoid curve. # This means less confident weights are adjusted more. # This means inputs, which are zero, do not cause changes to the weights. adjustment = dot(training_set_inputs.T, error * self.__sigmoid_derivative(output)) # Adjust the weights. self.synaptic_weights += adjustment # The neural network thinks. def think(self, inputs): # Pass inputs through our neural network (our single neuron). return self.__sigmoid(dot(inputs, self.synaptic_weights)) if __name__ == "__main__": #Intialise a single neuron neural network. neural_network = NeuralNetwork() print('Random starting synaptic weights:') print('neural_network.synaptic_weights') # The training set. We have 4 examples, each consisting of 3 input values # and 1 output value. training_set_inputs = array([[0, 0, 1], [1, 1, 1], [1, 0, 1], [0, 1, 1]]) training_set_outputs = array([[0, 1, 1, 0]]).T # Train the neural network using a training set. # Do it 10,000 times and make small adjustments each time. neural_network.train(training_set_inputs, training_set_outputs, 10000) print('New synaptic weights after training:') print('neural_network.synaptic_weights') # Test the neural network with a new situation. print('Considering new situation [1, 0, 0] -> ?:') print('neural_network.think(array([1, 0, 0]))')
@mgetommy
@mgetommy 7 жыл бұрын
this channel is so cool!
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks!
@samha1513
@samha1513 7 жыл бұрын
your freaking genius !!!!!!
@reehji
@reehji 7 жыл бұрын
when will your nanodegree be out?
@LudoBouan
@LudoBouan 7 жыл бұрын
adjustment = dot(training_set_inputs.T, error * self.__sigmoid_derivative(output)) Can't this work without multiplying by the training_set_inputs ? I don't understand why we use the inputs here
@pitbbe
@pitbbe 7 жыл бұрын
That looks like backpropigation of your nueral network. You are taking the derivative the derivatives of all the layers of the network to find the derivative of DE/dW where dW is your weights. In the first layer of your neural network you have a fully connected layer or x.dot(w) i.e x*w. The derivative of x*w by dw is just x. So you need x there.
@ayzack2361
@ayzack2361 7 жыл бұрын
Was the background music at the beginning of the video the soundtrack of The last Samurai? It reminded me of it.
@MrDominosify
@MrDominosify 7 жыл бұрын
I wonder. Sigmoid function is y = 1 / (1 + e^-x). It's derivative is e^x / (e^x + 1)^2 Why in this tutorial are you using different function for derivative? x*(1 - x)
@YumekuiNeru
@YumekuiNeru 7 жыл бұрын
algebra magic to express derivative of sigmoid as g(x)*[1 - g(x)] and then in the tutorial use the fact that the x value is already sigmoided, I think, so it becomes x*[1-x]
@gabrielcostanzo9121
@gabrielcostanzo9121 7 жыл бұрын
Hey siraj, you should get into BJJ to further your martial arts.
@remotehands6395
@remotehands6395 7 жыл бұрын
looked like silat
@CynicalWilson
@CynicalWilson 7 жыл бұрын
I love this.. but it'd be like super cool, if you'd slow down a little sometimes :-)
@hamleytejada9226
@hamleytejada9226 6 жыл бұрын
I dont get it, I keep running it in idle it leave me with a blank page and when I try running it in the command prompt or the python 3.6 (32) bit, it leaves me with error. Help please
@j.hanleysmith8333
@j.hanleysmith8333 7 жыл бұрын
dope as always. also, do you mean print()? 😋
@velocityra
@velocityra 7 жыл бұрын
In Python 2 it's just "print (whatever)". In Python 3 it became a function (what you described).
@j.hanleysmith8333
@j.hanleysmith8333 7 жыл бұрын
Yes, I was a kidding him that he is using 2.7
@Barnardrab
@Barnardrab 7 жыл бұрын
Looks like I'll have to learn Python. I was hoping to stick with Java because that's what I was taught in college and it's the language I have spent the most time practicing.
@JimmyJames420
@JimmyJames420 7 жыл бұрын
Barnard Rabenold Java is no fun, I learned Pascal->Basic->C/C++->Fortran(backwards)->Java formally, worked mostly in C#/Java, write mostly in Python/J's at home, dabbled in PHP/Perl, R, Ruby, etc. "learn" Python, it's really simple, the syntax and duck typing might seem weird at first but when you can write a 2000 line C/Java program in 10 lines of Python you'll learn to love it. it also works well with C when you need things to run in nano seconds...
@g00dvibes47
@g00dvibes47 7 жыл бұрын
it's worth it.
@anweshthecool0
@anweshthecool0 7 жыл бұрын
You can use deeplearning4j deeplearning4j.org/
@JimmyJames420
@JimmyJames420 7 жыл бұрын
You could but we are well past the days of Java being the only VM. It's verbose with a questionable license... Move on to Python, JS (node, etc.), its not worth the investment.
@JimmyJames420
@JimmyJames420 7 жыл бұрын
Arya Javaheri yeah that's exactly why my comment about using C for speed is in there "it also works well with *C* when you need things to run in nano seconds..." Read much?
@mehmetdinc4316
@mehmetdinc4316 7 жыл бұрын
Am I the only one who feels lost in this video, after pretty much understanding the previous ones ?
@vishwasgarg9186
@vishwasgarg9186 6 жыл бұрын
Can someone explain, how did we calculated the adjustment?
@Wrecklash
@Wrecklash 7 жыл бұрын
still i am not getting how to make my own neural network based on this..and i dont know python that good tho.. but its fun to watch but i am not getting the whole thing..
@SimoneIovane
@SimoneIovane 4 жыл бұрын
I don't know how this guy has all these followers. He doesn't expain anything at all
@TheAnna1101
@TheAnna1101 6 жыл бұрын
awesome video. can i ask why is it times two in this equation? self.synaptic_weights = 2*random.random((3,1)) -1
@timc7440
@timc7440 6 жыл бұрын
It's because random() gives you a number between 0 and 1, but we want a number between -1 and 1
@TheAnna1101
@TheAnna1101 6 жыл бұрын
@Tim C thank you!
@zerod3185
@zerod3185 7 жыл бұрын
can you explain the ​difference b/w matlab vs python??
@TankNSSpank
@TankNSSpank 7 жыл бұрын
two guys one net
@PraveenKumardreamerswork
@PraveenKumardreamerswork 7 жыл бұрын
it's so fast..after watching 3 times it is still confusing..
@SirajRaval
@SirajRaval 7 жыл бұрын
i will slow down
@GrowingDailyNetwork
@GrowingDailyNetwork 5 жыл бұрын
lol famo just rapped lol
@RenjiB
@RenjiB 7 жыл бұрын
LOL @ "biochemical warfare" 1:38
@SirajRaval
@SirajRaval 7 жыл бұрын
lol
@AtariKafa
@AtariKafa 7 жыл бұрын
Dude your videos awesome love them :) I have challange for you maybe you can work on it :) Can we teach Neural Network coloring black and white movies ? if so how to do it ?
@g00dvibes47
@g00dvibes47 7 жыл бұрын
maybe someone more experienced can chime in here with this type of problem, but you'd probably have to use a package like OpenCV.
@dzhiurgis
@dzhiurgis 7 жыл бұрын
It has already been done with photos and someone used it for videos too: demos.algorithmia.com/colorize-photos/ github.com/pavelgonchar/colornet
@erdemozverenn
@erdemozverenn 7 жыл бұрын
abi :D hiç burda beklemiyordum böyle birşey :D Taklacılar Heryerde
@travelinzac
@travelinzac 7 жыл бұрын
I fed it a black and white image of 2 zebra's, it actually did really well.
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks! yup its been done see ^
@LudoBouan
@LudoBouan 7 жыл бұрын
My submission for this week : github.com/ludobouan/pure-numpy-feedfowardNN Thanks Siraj !
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks Ludo :)
@PanetMaster
@PanetMaster 7 жыл бұрын
Love your work! I just finished Andrew Ng's intro to machine learning course on Coursera and now I'm starting to code along with your videos. It's a great way to keep learning. Just a note, it looks like you renamed the "predict" function "think", resulting in the code not working right out of the box.
@mike9389
@mike9389 5 жыл бұрын
Right!! And its an amazing video, however prof must specify to use "xrange" in Python 2 and "range" in Python 3. Maybe he did it on purpose omg!
@Phatency
@Phatency 7 жыл бұрын
This video has more memes than words.
@SirajRaval
@SirajRaval 7 жыл бұрын
lol
@Ant-xz6he
@Ant-xz6he 7 жыл бұрын
I don't want to worry you Siraj, but I think your hair is alive. Awesome video by the way.
@mayanksaxena3423
@mayanksaxena3423 7 жыл бұрын
Congratulations for 50k subscribers! Loving the rap
@SirajRaval
@SirajRaval 7 жыл бұрын
thank you!!!
@md.adnannabib2066
@md.adnannabib2066 6 жыл бұрын
Siraj Raval please make video about neural network using JAVASCRIPT or C++.plz,plz,pzl,plz,plz,plz,plz,plz,plz,plz,plz,plz,plz,plz
@manolete340
@manolete340 7 жыл бұрын
Man this is the fourth time I play the back-propagation rap, why don't you make an album called rap for machine learners or something? Needless to say Catherine Olsson owns my heart lol.
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks!! i will continue rapping.
@manolete340
@manolete340 7 жыл бұрын
Hi Siraj, I'm enrolled in your deep learning course on Udacity, because my passion right now is machine learning and AI, probably autonomous robots and stuff. I'm currently studying a Computer Science degree in the UK but it is very math-weak at the very least.. Should I switch to an online degree in maths and stats at open university and move back to my original country so I can also save the money and get the knowledge that seems to be more related to what I want, and code in my spare time (I learn better doing stuff on my own)? or stick to my CS degree? in other words is machine learning something that can be more easily grasped with a pure developer's perspective as long as concepts are clear(after all derivatives are done with the nympy module, not by hand) or a mathematician, amateur software developer perspective? It is a very important issue I need to solve, and nobody really gave me support, I think you obviously are probably the best person I could ask. THANK YOU
@finlaymacrae
@finlaymacrae 7 жыл бұрын
Cromatismo, I know Siraj didn't answer but as a person in commercial IT for 20 years and just joining the AI train this year I hope you stick at your CS degree. Even if starting your own company having a CS degree is very useful. Lots of employment opportunities use that as a litmus test for hiring. There are some great companies out there that will use your github profile as your resume but the bulk of hiring managers don't even know what one is. Use the degree as time to expand the breadth of your knowledge and hit up the lecturers and ask questions in the tutorials. Keep doing Siraj's demos in parallel and take all the math modules the course you are doing offers. They are often called odd things like Quantitative Methods but the odder the name the better the math.
@sachinautomatic
@sachinautomatic 5 жыл бұрын
@@manolete340 2 years later (now), curious to know what you actually ended up doing?
@manolete340
@manolete340 5 жыл бұрын
sachinautomatic Hi! I just finished my degree and am about to enroll in a bootcamp to learn mobile development. You can teach yourself what you learn in the degree though in this time and age you can learn anything. You can develop almost anything but in terms of jobs the hottest fields are mobile and web you can build desktop using electron for example which is an extension of react (vscode and Spotify desktop are a good example) progressive web apps are also going to become a big thing and that might change everything about mobile. I am just gonna learn full stack development, mobile development and make some 2D games in C++ using the cocos2d library. I would also like to build a programming language for the fun of it. I conceive of programming as a form of art somehow not just a way of living and it’s really beautiful. Have no doubt the world of computing is awesome imo the most fascinating engineering/technical field. As for how the degree has helped other than with job hunting. I can pick stuff surprisingly quickly. You are exposed to the whys of software development it’s not all about building apps but designing them is such a crucial part of everything, even more than the technologies that in the end just come and go. TLDR; Best choice is CS bachelors + a good bootcamp. Job guaranteed, you will have an awesome career and tons of fun. Still have not started the bootcamp though but if you watch engineered truth vídeos for example the third video of the series software engineering reality vs expectations you get a good insight on what the work culture is like and it seems pretty awesome. Good luck!
@EmanueleDiSaverio
@EmanueleDiSaverio 7 жыл бұрын
Hi siraj, is the sigmoid derivative a appxo formula? or missing instruction? Other sources say something like: def __sigmoid_derivative(self, x): x = self.__sigmoid(x) return x * (1 - x)
@sunhound817
@sunhound817 7 жыл бұрын
I'm trying to follow along with the code, but I get errors when I run what I see Siraj type on the screen. Right now I'm getting, "AttributeError: 'NeuralNetwork' object has no attribute 'train'". Also, at the bottom of the page we call a 'think' method but the NeuralNetwork class doesn't have a think method. It has a 'predict' method, though. Was that what we were supposed to call?
@josesaldivar655
@josesaldivar655 7 жыл бұрын
Hey Siraj ! I like a big lot your work. One of my goals is to become a better programer and maybe innovate on AI. But have been doing more material projects, such as a new lab, and startup a more AI insitution of real stuff. Anthrocracy is my latest last name, and I am in linkedin. I am sorry you are not having a well deserved income. You must change your license in U2b and monetize it. Sincerely, José
@pankajmathur1504
@pankajmathur1504 7 жыл бұрын
Thanks a lot Siraj for amazing creative videos on such a complex topic. You are a natural educator. quick question: are we still accepting challenge for creating neural network with numpy only. If yes, I have build a three layer simple neural network using numpy only and was able to achieve 97% accuracy with mnist data set. please see the repository here github.com/pankymathur/mnist-with-simple-neural-network-numpy-only/ any feedback will be highly appreciated..
@TheBelrick
@TheBelrick 6 жыл бұрын
Python is so bad. Library conflicts. Order of installing them. 3.x vs 2.x OMG it sucks. Would rather code in php than this shit. No wonder it is so unpopular.
@neopets6
@neopets6 7 жыл бұрын
Hey Siraj, can you make a video about using Uber Movement's data?
@SirajRaval
@SirajRaval 7 жыл бұрын
oh good call
@horlacsd
@horlacsd 7 жыл бұрын
i think i've accomplished the challenge modifying milo harper's code github.com/nacmonad/three-layer-nn/ can someone point to some good training examples?
@dchana
@dchana 7 жыл бұрын
wow, the "I hate Windows" image was taken from the Vancouver Canucks 2010 cup run riot when this chinese guy was made famous for looting, and I think he got profiled and got on the news.
@Edward3C
@Edward3C 6 жыл бұрын
So, is this essentially just a brute force, trial and error, attempt at solving multivariable equations? Are we just taking advantage of compute speed and plugging numbers into unknown variables until we assume it has the right formula due to apparent success rate?
@monoham1
@monoham1 7 жыл бұрын
wtf are you talking about. I'm watching in 144p so maybe i need to read the code but i don't know what any of that maths you're talking about except matrixs. can u link a 5m explanation?
@thehdchan
@thehdchan 7 жыл бұрын
ELI5: why does finding the gradient decent gravitate towards a calculated solution of 1? Why wouldn't it produce a 0?
@d4nisg0d
@d4nisg0d 7 жыл бұрын
What do you think would be great ressources to start with if you wanted to get more deeply into machine learning? Does it make sense to try a bottop up approach, where you try to look at what the machine is actually doing on an atomic scale, and then see how an operating system and software runs on it? Or does it make more sense to simply try and understand the python basics and kind of "accept" that a computer is able to do certain things? If you wanted to get actual understanding of what's happening, what would in your opinion be the best way to go at it?
@ClaudiaOfTheWorld
@ClaudiaOfTheWorld 7 жыл бұрын
siraj ur a boss, only youtuber i don't have to put on 1.5x speed! never slow down ! fire those action potentials !
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks!
@rabbitpiet7182
@rabbitpiet7182 6 жыл бұрын
Watching this at 1.5x
@siddharthzankat
@siddharthzankat 7 жыл бұрын
How come your videos are being posted earlier than Udacity Nanodegree? Should i wait to start as part of Nanodegree?
@NicolasSchmidMusic
@NicolasSchmidMusic 6 жыл бұрын
That is definitly not a good explanation that one from giant_neural_network is way better
@JSD999
@JSD999 4 жыл бұрын
i cant create such wonderfull effort with Raps to memorise it easily ..Great effort Siraj
@c4bbage676
@c4bbage676 7 жыл бұрын
hey siraj you are awesome but i saw that you many a times corrected the syntax without even telling......
@LORDOFSTREET786
@LORDOFSTREET786 7 жыл бұрын
hi Siraj I am new to AI and coding and want to build a bot what basics should I start reading to understand your videos
@mr.exponent6235
@mr.exponent6235 7 жыл бұрын
Watch this video after this one, helps you understand it better. kzbin.info/www/bejne/p2aYZp6cfquIea8
@greenbillugaming2781
@greenbillugaming2781 7 жыл бұрын
i dont understand why every body is eager to hand everything to machines, like havent u seen terminator ??
@Xaminn
@Xaminn 6 жыл бұрын
Your videos are quite funny and very educational. Thanks for the great videos!
@theurbanwolf298
@theurbanwolf298 6 жыл бұрын
Does me think you should have more than a few million followers, makes me a geek?!
@vahsirartapaham4578
@vahsirartapaham4578 7 жыл бұрын
first line only it shows syntax error , if __name__=__main__ : ? plz help
@Aesthetic20239
@Aesthetic20239 7 жыл бұрын
Hello Siraj Actually I am working on Word embeddings(Glove) . And trying to modify it to improve it's performance . They used Wikipedia 2014 + gigawords data, that is what I am unable to find out. Can you tell me good resource for it.
@SirajRaval
@SirajRaval 7 жыл бұрын
ask on the datasets subreddit
@puruagarwal8356
@puruagarwal8356 7 жыл бұрын
Why do we randomize by mutiplying with 2 and subtracting 1, why can't we just randomize without those? I checked with only np.random.random() and the result was same. So why??
@doggo206
@doggo206 7 жыл бұрын
Puru Agarwal he doesn't know he just read this article medium.com/technology-invention-and-more/how-to-build-a-simple-neural-network-in-9-lines-of-python-code-cc8f23647ca1
@KryometricGaming
@KryometricGaming 7 жыл бұрын
Just asking, what kind of degree or training did you do? Or were you self taught? Also what would be the best degree to get, college wise, to get a career in deep learning or artificial intelligence?
@SirajRaval
@SirajRaval 7 жыл бұрын
i studied CS at Columbia. Bought I feel mostly self taught. Columbia didnt really have deep learning classes. MOOCs are the way to go. Udacity has good ones also coursera
@mlfan6358
@mlfan6358 7 жыл бұрын
thank you for sharing and teaching. you are the next generation of education!! ML for the mortals!!
@SirajRaval
@SirajRaval 7 жыл бұрын
thank you!
@kienmai9747
@kienmai9747 5 жыл бұрын
Sorry. I not understand . Note: 4:41. why you have '2' * random.random(3,1) - "1' where '2' and '-1' you can help me explain it ? thank you.
@fuzzypenguino
@fuzzypenguino 5 жыл бұрын
# 3 by 1 matrix with values from -1 to 1 self.synaptic_weights = 2*random.random((3,1))-1 #i am guessing (3,1) creates a 3 by 1 matrix and that the random function sets the value of each cell to a value between 0 and 1. then we multiplie those values to get values from 0 to 2, and then subtract 1 to get values from -1 to 1
@shreyasrajesh2831
@shreyasrajesh2831 7 жыл бұрын
Hi, your videos are amazing. Especially this series. The raps are insane. I have a few questions about deep learning and would love it if you could answer them. How can I get in touch with you? Thanks in advance.
@SirajRaval
@SirajRaval 7 жыл бұрын
thx ask in comments
@AkashSunnyChowdary
@AkashSunnyChowdary 7 жыл бұрын
Siraj slowdown , take a breath. lovely videos though you get high level as soon as you say "no prerequisites". i think a bit more theory theory should be there to really understand what's going on. personally i being good at mathematics still need to go back n forth too much to understand whats going on. the newbies will really have trouble.
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks for the feedback
@AdityaVithaldas
@AdityaVithaldas 7 жыл бұрын
find the first half of the sessions intuitive, but the code sessions are just too fast and hard to catch. e.g. how does it adjust weights in a single perception. for a multi layer network, I presume that the nature of the network starts getting differently shaped. sample of how actual weights backpropogate etc. this is clearly a complex topic, but some good intuition around how those work would help get the topic better
@SirajRaval
@SirajRaval 7 жыл бұрын
great feedback thanks will get better
@SRedienhcs
@SRedienhcs 7 жыл бұрын
I have a question. So I've seen a lot of tutorials on how to make a neural network with one output, and I understand pretty well how to make those, but when I try to make the neural network have multiple outputs, it ends giving answers that don't make sense. How do you make a neural network have more than one output?
@SirajRaval
@SirajRaval 7 жыл бұрын
stackoverflow.com/questions/8439194/multiple-output-neural-network
@DJZ3XY
@DJZ3XY 7 жыл бұрын
3:20 onwards goes WAY too fast IMO, had to rewind and rewatch it to catch every word and understand it and the code
@SirajRaval
@SirajRaval 7 жыл бұрын
thanks for the feedback
@eliasvelisan594
@eliasvelisan594 6 жыл бұрын
Hi ! . 4:15 . There's a fast change. Where do u define .think() ?. Why do u transpose training_set_outputs ? .
@eliasvelisan594
@eliasvelisan594 6 жыл бұрын
Is think() equivalent to . predict() ?
But what is a neural network? | Chapter 1, Deep learning
18:40
3Blue1Brown
Рет қаралды 17 МЛН
Why Neural Networks can learn (almost) anything
10:30
Emergent Garden
Рет қаралды 1,2 МЛН
ПРИКОЛЫ НАД БРАТОМ #shorts
00:23
Паша Осадчий
Рет қаралды 6 МЛН
The day of the sea 😂 #shorts by Leisi Crazy
00:22
Leisi Crazy
Рет қаралды 2 МЛН
Nastya and balloon challenge
00:23
Nastya
Рет қаралды 67 МЛН
How to Generate Music - Intro to Deep Learning #9
8:22
Siraj Raval
Рет қаралды 75 М.
Which Activation Function Should I Use?
8:59
Siraj Raval
Рет қаралды 263 М.
How are memories stored in neural networks? | The Hopfield Network #SoME2
15:14
Is Computer Science still worth it?
20:08
NeetCodeIO
Рет қаралды 336 М.
A friendly introduction to Deep Learning and Neural Networks
33:20
Serrano.Academy
Рет қаралды 699 М.
The AI Revolution is Rotten to the Core
1:18:39
Jimmy McGee
Рет қаралды 1,3 МЛН
How to Do Sentiment Analysis - Intro to Deep Learning #3
9:21
Siraj Raval
Рет қаралды 175 М.
What is backpropagation really doing? | Chapter 3, Deep learning
12:47
3Blue1Brown
Рет қаралды 4,6 МЛН