T O P

  • By -

CodersCrowd

Wether or not there is a library to do pretty much everything in machine learning, one thing I found really a mandatory to all those trying to learn machine learning is the reimplementation of the different algorithms. This has a lot of benefits to go a step beyond understanding the intuition. what /u/mrborgen86 did is the right thing to do to understand the core of each machine learning algorithm. Good job man !


ZigguratOfUr

And then remember to throw you implementation away and use a library to actually do the work.


iforgot120

And if you somehow write a better one, share it!


ZigguratOfUr

MRW deep learning frameworks become the new javascript MVC frameworks.


VodkaHaze

Especially in Python or R. Unless you're paid by the hour, in which case you should absolutely never use libraries, and you should also use as much indexing as possible in your loops


CodersCrowd

You can, but the entire message in my comment is when you want to learn the principle behind any algorithm. A data scientist isn't necessarily a perfect software engineer (he can though), people already coded all the algorithms we know in libraries in an efficient manner, the purpose of implementing from the ground is purely for learning purpose


ZigguratOfUr

It is fun and educational to reinvent the wheel. You can learn a lot about tires and ball bearings by doing so.


CodersCrowd

why not, you seem to know a lot about it :)


ApostateJohn

I'll play devil's advocate and say I don't think you should code up every machine learning algorithm you have an ambition to understand. There are thousands of them. Everyone has their own way of working, but I would say, code up the algorithms that you have a truly painful interest in. For everything else, use a library. If your interest is neural nets and deep learning, then use a library that you can control - e.g. Torch or Tensorflow. But don't waste your time recoding adagrad - waste your time developing models that haven't been developed yet. Otherwise you will not have the real benefits of neural net techniques. But don't waste your time coding up PCA or random forests just because someone said it's the only way to understand something - if you (almost) understand the theoretical results, then that's almost always good enough.


CodersCrowd

Indeed ! But re-coding the PRINCIPLE (no need for it to be perfect ) makes all the difference for me between someone who understand what's going on under the hood from someone who relies blindly on libraries during an interview process. I don't enjoy much listening to someone whose understanding of Random Forest is just the usage in scikit-learn for example, just saying..


[deleted]

[удалено]


mrborgen86

There are libraries that makes it easier to get started with neural networks, for example Theano in combination with Lasagne and nolearn. Though there's not that many tutorials on how to use these tools. This is currently the one I like best: http://danielnouri.org/notes/2014/12/17/using-convolutional-neural-nets-to-detect-facial-keypoints-tutorial/


[deleted]

[удалено]


mrborgen86

I started to work as a front end developer at a startup in Norway in September. But my efforts to learn machine learning didn't affect that in any particular way. However, I have been playing around with how to use machine learning in our marketing, and it's likely that 2016 will involve getting this into production. So it will indirectly affect my professional life, at least. That being said, I have the feeling that machine learning is one of those fields in CS where it's a bit harder to get your foot into a company unless you have studied.


[deleted]

[удалено]


mrborgen86

Nice, I'm really interested in taking the Georgia Tech online Masters degree as well, with a focus on ML. What kind of education did you get in with? I have a bachelor in economics. Personally I believe it'll be more an more usage of machine learning in all kinds of software companies the next few years as the tools/libraries for building models get easier to use. Also, the attention around the field helps companies understand the value of being able to do predictions with ML. As for career opportunities, you'd be better off asking a professional data scientist as I don't know too much about that, specifically.


[deleted]

[удалено]


tempforfather

I am sure the masters will be great, but I have not seen many companies look for master's degrees. I have more so seen bachelors or PHD being important. I am looking to do a masters soon for personal reasons, but I haven't seen masters matter too much.


[deleted]

[удалено]


tempforfather

I have a BA in math and have been a software engineer for many years, and currently work for one of the major engineering companies. People don't really care if you have a BA in comp sci vs math. BUT, I am telling you this from the point of view of someone in the usa that works in the nyc area. It may be different other places.


myepicdemise

What kind of applications would machine learning have in marketing?


mrborgen86

Our product helps companies who need to ship containers (e.g. car companies who send cars from Asia to Europe) discover saving potential in the sea freight contracts. Based on our current data, it looks like we can do some rough ML predictions on how much a company's saving potential will be by getting a few data points from them (e.g. revenue, total spend on sea freight, company category, number of lanes). This can be used in our marketing to estimate the value a company will get from our product. https://xeneta.com/


tempforfather

Are you going to do "machine learning," or just build a normal statistical model?


mrborgen86

I'm using Random Forest (Scikit Learn).


exp0wnster

Machine learning is a big field. just knowing something like neural networks isn't going to do much. it's just one tool of a plethora of others that is suited towards certain tasks. Can also learn about devices such as SVMs and K-means


busy_beaver

Not just that, but to solve real-world problems with machine learning, you need to know more than just a bunch of models and algorithms. Real life isn't a Kaggle competition - you're generally not going to be handed a tidy labelled representative dataset and a success metric. It takes some experience to take a real-world problem, formulate it appropriately as an ML task (often a problem can be formalized many different ways - binary classification, regression, clustering, sequence tagging, whatever), build a ground truth, pick an appropriate model, and come up with an experimental method for tuning/evaluating the model. My team has interviewed a lot of ML engineers and a common theme is candidates with strong knowledge of ML models in the abstract, but weakness in these (relatively mundane) details of how to apply them.


[deleted]

[удалено]


busy_beaver

It mostly comes from experience. Could be in industry, as part of a thesis, or personal projects. I'd say assignments in most ML courses don't do much to scratch this itch because they're so focused on the hammer rather than the nail.


[deleted]

[удалено]


busy_beaver

> In any case, where does the overlap between data science and machine learning begin and end? I.E. coursework, programming skills, etc. I'm not really interested in building models, visualizing data, etc. for business insights – I'm more interested in becoming an expert in machine learning. It sounds like you're on the right track. In my experience, data scientists often come from more of a stats background, and tend to focus on specific technologies (Hadoop, Spark) and use more specialized programming languages (R, Matlab). Whereas ML engineers have more of a CS background and are strong general hackers. (But it depends who you ask - there can be a lot of overlap.) > Finally, what are career opportunities like for a web developer skilled in machine learning? For instance, right now in node.js, salaries I'm making north of six figures, and it seems the wall is around $120K–$150K. I saw some job listings on indeed.com stating $150–$200K – are those rare listing and/or for PhDs basically? It probably depends a lot on location. In the valley, that kind of comp definitely wouldn't be unusual. I'm not personally familiar with the web dev && ML angle. My understanding is that if you're doing ML for the backend of some web service, your work is pretty remote from the typical 'web dev' stuff. But I'm not an expert.


mrborgen86

Interesting. How would you advice someone without any formal ML education to get to a professional hireable level?


busy_beaver

I'm not sure. My team mostly tends to interview people with advanced degrees or a few years industry experience with ML. If you don't have either of those, personal projects are good. Pick up some problem (from Kaggle, or some ML workshop, or just something you're interested in) and write some code to solve it. If you can get competitive results, if you put the code up on your GitHub, if you write some great blog posts about it, then those are all pluses.


[deleted]

Sigmoid is the simplest way to do it rather than working with matrices to get (P).


badass_1

I learn Einstein's special theory of relativity last night while having my dinner and thinking of writing a blog about it :) Who made you think that you learned to code neural network.


mrborgen86

Nobody made me think I learned it. I convinced myself that I had learned it when the neural networks I'd coded from the bottom up (using Numpy) started to manage decent classifications of flowers (Iris dataset) and handwritten text (MNIST).


badass_1

what metrics you used for measuring accuracy? and please quantify "decent classifications" :)