Hacker News new | past | comments | ask | show | jobs | submit login
Facebook AI Research Team Open Source DeepMask and SharpMask (facebook.com)
366 points by natthub on Aug 25, 2016 | hide | past | favorite | 83 comments

Is there any way for those of us with average intelligence to contribute to tools like this?

I know I'm a decent developer, but I feel entirely entirely inadequate to participate in this enormous, scary world of AI.

> Is there any way for those of us with average intelligence to contribute to tools like this?

The people doing this aren't magical geniuses; they've just put the time and work into the subject and have been able to get themselves into a position they can do this all day surrounded by others they can collaborate with.

As with most human endeavors, the trick is to just get started, and not get frustrated and give up when it turns out you don't know anything at first. Some people don't mind starting with a ton of abstract learning about the subject, others prefer trying to accomplish specific tasks, learning the theory along the way.

For your specific question, as with all software, there's likely a lot to be done that has little to do with the main task of the tool and is just the everyday tasks of ease of use, interoperation with other tools, testing, etc. If on the other hand you want to get into the scary world of AI, like many others I'd recommend the Coursera machine learning course as a great place to start[1]

[1] https://www.coursera.org/learn/machine-learning

> The people doing this aren't magical geniuses

Says the person named 'magicalist'. :)

double upvote

The course on coursera uses Octave for the exercises. This guy has rewritten all the exercises in Python: http://www.johnwittenauer.net/machine-learning-exercises-in-...

I completed that course awhile back. Definitely a really great course if you can keep up. It is quite difficult, and I was quite terrible at it.

I don't think I have any affinity for the topic, but at least now I can read/discuss the topic without being completely blind. There are also a lot of smaller components in the course that I found useful even not working directly in AI/ML. Just some general data modelling and linear algebra stuff was nice to pick up on the ride.

Some AI professors recommend first jumping into a ML framework such as scikit-learn or Keras, which are more approachable, playing with them to the point where a little practical intuition will develop, and only then follow up with theory. Works better in practice than loading up on courses and math at the beginning, and helps the student form practical interest in the field and be more emotionally invested. In other words, first, hack your way in, and only then open the books.

I think this is the exact reason most people tend to struggle with any type of learning. Even topics like math and science which require building block approaches can benefit from taking a high level view and refining where appropriate.

Good advice for life in general.

Thank you for the link that course!

fwiw, over 4 years ago, I quit a risk quant job at an investment bank and joined Twitter. When I saw all the sophisticated ML systems they had deployed, I asked the same question - How do I, a person of average intelligence with zero exposure to ML, contribute ? Is there anything I can do to get involved?

The answer I got was rather unpleasant and won't please everybody. No you cannot contribute. At least not in a direct meaningful fashion. You can be a waterboy. So that's what I did for 2 years. I wrote a lot of ETL jobs using custom Scala DSLs, that fed the input to these ML jobs. It was a total waste of time. Sure I learnt map reduce and Hadoop and all that jazz, but end of the day, I wasn't doing ML. I was doing ancillary tasks. These tasks no doubt have some economic worth, because I was getting paid. But no company is going to let you do the ML when they have 100s of ML PhDs on their payroll and you aren't one of them. So you just do the data prep, or do ETL, or do data viz, or crunch some numbers aka BI, and convince yourself you are doing real ML. This went on for a while. Finally I couldn't put up with this farce and quit. What worked for me personally was finding a very small company with a tiny data science department, that was headed by an ML PhD who was ready to mentor me, tell me which papers to read, get me to start working on my own papers, get me to build ML systems for image recognition on company time, get me to read textbooks and present topics...it was all quite painful and very humbling, but I learnt a shit ton of stuff. So my frank suggestion is to be brutally honest with yourself. You aren't going to get from here to there by hanging around on coursera or writing ETL. This stuff is seriously hard. If you want to make a genuine contribution, be willing to put in serious time - and that means literally stopping whatever shit you are doing now as a webdev/back-end dev/ETL dev/data-eng etc. Those ancillary tasks won't get you anywhere. Buckle down and do the real deal. You'll thank yourself one day if you did.

Doing the dev is the only way, I would recommend though reading the Hinton dropout paper and trying to implement a non full featured Neural Network framework to implement those ideas. Then pick papers to implement in your toy framework. Once you have done this a few times, you will get a really good idea how all this stuff works and ideas to extend things. It also REALLY helps if you have a very strong linear algebra background, so if your weak there do lots of reading and practice getting those skills up to snuff. I may not be the best example, because I worked in computer graphics heavily over my career. My suggestion though is to try and apply DNN's and ML techniques in somewhere you have domain experience. It really will help a lot with the intuition part since you have valuable domain experience to give you ideas to try.

This is a path I took around 4 years ago, and I have built some seriously valuable stuff in that time.

Also I would personally say to not discount the value of backend stuff, doing scalable ML processing is not off the shelf and lots of value can be created by making scalable reusable systems that can run machine learning models. Most of those ML PHd's can't (or don't want to) build scalable distributed systems. If you can train experiments faster, or actually do the work to make an end to end system work outside the lab, you can make real measurable contributions.

I came to exactly the same conclusion about six ago when I decided to try to get into the field. I spent several months studying and implementing all the common algorithms by hand and working on various public data sets. I enjoyed it and ML is a fascinating subject, but once I started taking a closer look at the job market I realized that even big companies only need a few ML experts and that those roles tend to go to people with graduate degrees in the subject. So making the jump from web or mobile dev, for example, is pretty tough.

> What worked for me personally was finding a very small company with a tiny data science department, that was headed by an ML PhD who was ready to mentor me

IMO this is excellent advice for anyone who wants to move into a new field, and I've personally learned many of my skills through this kind of situation. Get yourself a job somewhere small but ambitious, and you'll end up wearing a lot of hats and doing new things simply because you put your hand up for them. Then when it's time to move on, voila! You have X years commercial experience in a whole bunch of things and you put the one that you want to focus on next onto your resume.

The bigger the company, the smaller the pidgeonhole you'll live in and the less likely you are to ever end up doing anything outside your original job description.

While I really appreciate the realism in your post, I wouldn't call webdev/back-end dev shit though. After all, that's what brought us here in the first place and are still heavily needed.

Don't think he was saying that stuff is shit. I think he was using the word the same way you might when saying "Boy, did I get a lot of shit done today!"

Thanks for that post, I'm in that waterboy place you're talking about and have been trying to find a way to the next level. If nothing else, sharing your experience was confirmation that helped me realize I'm not suddenly going to start doing ML at work if I'm paid to be doing other things.

I would argue some of the most difficult problems in ml is data prep/ preprocessing.

1. Don't sell yourself short.

2. Start small. Really small. Tinker with tutorials. See what happens when you change stuff around.

3. Read the documentation with another browser tab open to look up definitions.

4. Don't be afraid of the math. Its your friend. If it feels too complicated (it happens to all) then look for tutorials / online help on forums to figure it out.

5. Realize that nobody knows much about AI. Its still being developed. Pompous people will try and make themselves look smart by making it seem like they know a lot about it. They might know a lot of what we collectively know about AI, but they don't know a lot about it. No one does.

PS. I'm currently working in AI applications and this is how I started. Don't believe the hype.

ML can be an useful skill for developer. Think of it as of linux / sysadmin skills, or as web design / UI skills - they are all quite different from software development, but many software devs have them. I think that applied ML slowly becomes a similar thing - an useful tool in a toolbelt.

It takes time to become really good at it, but basics are relatively easy to aquire. Libraries and learning resources are much better now than they used to be. You can totally learn how to apply ML using just scikit-learn tutorials. Coursera ML course gives a nice introduction. For deep learning check an awesome http://www.deeplearningbook.org/ and try to implement what you're reading about e.g. using https://github.com/Theano/Theano.

The world of AI is enormous indeed, tens of new worthwhile papers are published every day. Just reading them can be a full-time job, but you don't have to know all state-of-the-arts techniques to be dangerous. Over time it will become easier to read new papers, and you will start to realize how are ideas related. Often a paper provides just a small tweak for a known algorithm, or combines existing "building blocks" in a new way.

As with all skills, it takes time to become good at it, but there is nothing to be scared of. Keep learning, do something practical every week. If you don't have problems at hand to solve using ML, register at kaggle.com. There is more to learn than e.g. in devops, but everyone can do it.

> but you don't have to know all state of the arts techniques to be dangerous

Often times you can be dangerous with just scikit learn, xgboost and Keras if you can do data prepping, pipelines and stacking/ensembles. Besides wonderful frameworks such as TF, Theano and Torch there are also "zoos" of ready made models, word vectors and such that can be used out of the box.

Do read introduction to statistical learning though, as that book helps to give (some) understanding of what's actually happening in the models, which is important when (not if) things go horribly wrong.

Playing devil's advocate slightly, but as a web developer recently getting into ML over the last year, it's really nothing that fancy. Even the cutting edge like "word2vec using long short term memory neural networks" is still at its heart a "dumb" approach to 'intelligence'... treat the phenomena like a black box, let your system figure out the 'unknown parameters' automatically from data, don't ask too many questions. Sure there are a lot of aspects to tweak and tune, but at its heart, it's still a 'dumb' approach. It can still get a lot of mileage for a lot of types of tasks, no question, but it's pretty straightforward all in all. Today you can use very accessible Python packages or frameworks like Tensorflow to implement pretty much any of the best learning algorithm almost instantly. There are likely entire fields of ML that I am short changing, but as far as anything popular you read about, which at least I have been exposed to, it's certainly very interesting, but not particularly 'scary' in any sense.

I quickly (read everything, didn't solve the exercises, 5 days along several commutes and flights) skimmed Steinwart-Chritmann's Support Vector Machines before joining my current company in case I needed to get into more modern papers, so I could have a decent-ish background in the subject. It's a tough area, and I have an acceptable level in functional analysis.

You are mixing "applying ML black boxes" with "creating ML black boxes". The former is not specially hard (if you know the language the libraries are in, have curiosity and time), but you need to know a little bit of what you are doing unless you want to just be one of the thousand monkeys with a typewriter. The latter is hard, like very hard.

I'm not sure what you mean by "creating ML black boxes", since I don't think most people working in ML are required to invent new types of ML approaches, in the same way that Rails, Django, Sails works for most web apps. It's pretty straightforward to learn the ancillary data preparation, cross-validation, etc, and at the very least you can quickly apply a wide array of ML techniques (KNN, decision trees, LR, neural nets, etc.) with 3,4 LOC each (frameworks) and compare results, an approach you sometimes see on Kaggle. There's a reason "data science" bootcamps are putting out thousands of attendees on the job market - it's straightforward enough to get someone in the door for an interview after a few months of hard work (assuming they have either a strong programming or strong stats background).

Brief, on phone: my view of the comment addressed is that it is different doing stuff with ML that on ML, and I thought on was the addressed topic, not with

well that's not "contributing to the field", is just being a developer using libraries. The OP is talking about creating something new, which is like contributing to physics: quite hard, and requires a lot of knowledge. Maybe you don't need to be a genius (although the field attract quite a bit of them, tough competition) but surely a lot of effort.

Personally, I think the work of creating new solutions to problems by applying ML techniques is a far broader and more interesting arena than creating brand new ML techniques. Whether you're "contributing to the field" by "just being a developer using libraries" depends on what "field" you're taking about: the "field" can be "increasingly intelligent solutions to problems people have", for which successful application of "black box ML" is a very valid contribution. To continue your physics analogy: we need more people taking advantage of our knowledge of physics to engineer things like buildings, machines, and electrical circuits, than we need scientists making fundamental contributions to physics itself. Both things are useful!

dxbydt nailed it on the head: https://news.ycombinator.com/item?id=12362642

If you want to make actual contributions to the machine learning part of machine learning (i.e. not building infrastructure and pipelines), then you need to get your math into a really good state. That comes first before you can even hope to begin to learn ML. That means acing probability and linear algebra, which is most of what ML is based off of.

If you have no experience with probability or linear algebra, it'll take you at least a year of solid studying to get up to speed.

Then, you can start taking ML courses. That will take you another year to really understand well.

At that point, as dxbydt said, you should find a ML PhD who is willing to mentor you. Otherwise, you will not be able to make meaningful contributions, since there are thousands of ML PhDs out there who are much better skilled than you are, and companies would rather hire them than you.

So the ultimate answer is: yes, with a ton of sacrifices and years of work. The only question for you to answer is whether or not you want to make those sacrifices and put in that work.

This one specifically? It would be nice to port the torch implementation of DeepMask/Sharpmask to tensorflow and stick that on github.

Though it might be too much for a beginner ML project. If you are starting from zero, this is a good intro to CNN's - http://cs231n.github.io/convolutional-networks/

Don't give up! Check me out, I consider myself a decent developer but I've done almost NOTHING with AI and ML. Guess what my side project / prospective company is? I'm working on an AI. Haha. Seriously [1]

I still don't know a ton but I'm fumbling my way through it working towards my end goal. If I can start working through it and figure it out I don't see why any developer couldn't!

Also never forget the golden rule: largely no one really knows what they're doing. Sure we have AI / ML experts and me saying they don't know what they're doing is insulting but overall people rarely know everything that they're doing or how to specifically accomplish a goal. Most of the times it's a haze and you work through it.

[1] https://www.simex.io (sorry, shameless plug but it seemed relevant! Anyone can get into this category)

I have a pile of links for getting started with DL in my comment history you can use: https://news.ycombinator.com/item?id=10676455

What really helped advance my understanding from zero to knowledgeable novice was rewriting some existing code line by line (using expanded variable names and comments), and thinking about each line and what it does as you go. It's the software development equivalent of Hunter S. Thompson re-typing The Great Gatsby just to get the feel of writing a great novel. Here's one I did based on Denny Britz's tutorial:

Britz's Original: http://www.wildml.com/2015/09/implementing-a-neural-network-...

My version: https://gist.github.com/sthware/c47824c116e6a61a56d9


The wrap, documentation and detail of tools could often be improved, and often the people who have built these tools are focused on their next paper, or their IPO. Some amazing projects have research devs who have extremely high quality thresholds but these amazing teams struggle when faced with the need to deal with the very diverse needs of the wider world - for example three major OS's, five (say) versions of each OS, 5 (say) databases, and so on. If more helpful developers could be focused on helping these projects then that would be fantastic.

The challenge is to find a figure who is not a researcher driving for papers who has authority and experience managing delivery and can engage and orchestrate mainstream contributors. Occasionally these people emerge like a messiah (cf. Linux) but it seems to me that this is one of the hit/miss factors that mean that some of the best "1000 flowers" fail to bloom.

Does Tensorflow have an Open Source project manager employed by Google?

You would need to join a community of people who can show you how to contribute to these projects. There are a lot of very active open-source communities, including OpenAI and Deeplearning4j, to name but two.[0][1]

People in those communities can't point you in the right direction, if you show you're willing to read the docs and do the work of learning. One thing you will find is that AI requires a lot of non-AI components to work. That is, you may be able to help an open-source project develop its UI, or improve its datapipeline, or any number of other useful things. By working on the edges of such a project, you'll learn the lingo and grasp some of the basic ideas. From there, you can start working on the math, etc.

Bottom line, there are a lot of ways to get involved with AI.

[0] https://gitter.im/openai/gym

[1] https://gitter.im/deeplearning4j/deeplearning4j

[2] http://deeplearning4j.org/deeplearningforbeginners.html

Why is this comment downvoted? Is this bad advice?

Because vonnick has a habit of plugging deeplearning4j in every deep learning-related thread. IMHO, that's somewhat to be expected/laudable here on HN - particularly since deeplearning4j has an open-source framework, and has published interesting and informative blog posts. OTOH, they're ours-is-more-serious because java-is-enterprise thing is a little out of mainstream, so having OpenAI and deeplearning4j being highlighted in a way that seems to equate them isn't as helpful as it appears.

Yeah, I probably plug DL4J too much. It's a hard habit to break, and I'm sure some people get tired of it. I try to only do it when I have something substantive to say about the post in question.

OpenAI and DL4J are equivalent in the sense that they both have active communities focused on parts of machine learning. The difference, of course, is that DL4J is a commercially backed OSS framework, while OpenAI is a not-for-profit think tank that is using other group's DL libs, while building its own sandbox and obviously conducting its own research.

I wouldn't say that DL4J is more serious because Java is enterprise. It's just tackling different problems. It does some things better (many integrations) and some things worse or not at all (automatic differentiation), which is simply a reflection of our priorities. Not research, just production solutions and apps. That said, we are making it easier to create custom layers with DL4J, so people will be able to implement a lot of the latest papers there soon.


Many people already answered you. I add that there is another barrier to entry: the hardware you have could not be able to run the software.

A requirement for this one is an NVIDIA GPU with compute capability 3.5+. It turns out that my NVIDIA GPU is a 3.0 one (a laptop with a Quadro K1100M). I'm half lucky, because my laptop lets me upgrade the GPU (it's a HP zBook), still do I want to spend the money only to experiment? I didn't check the price for a 3.5+ GPU that fits in my laptop but you can compare this to cloning a pure-CPU repository from GitHub and give it a try.

As GPUs are used more and more for computing tasks, it feels more and more like back in the 80s when you found a nice 6502 assembly program on a magazine but your CPU was a Z80 (or 68000 and you had 80286). We eventually standardized on x86/amd64 because the market went there. I wonder if we're going to standardize on a GPU architecture too.

By the way, before somebody points it out, a solution is to get a cloud GPU server (AWS has them). Still I'd like to be able to develop locally.

`Hacker's guide to Neural Networks` http://karpathy.github.io/neuralnets/

I found this a very good place to start from scratch: https://cs231n.github.io/

Email me if you're interested in working on things like this. alexandersfarley at gmail.com.

I'm working on segmentation in the context of traffic counting.

Web traffic or road traffic?

Road traffic: www.traffic-camera.com

I will email you with some questions. Been researching V2I systems and your software is intriguing.

Find applications and use their tools. The development of a new tool is typically harder than applying the tool.

First, one must understand that these things are not just over, but over-over hyped. It is a socially constructed meme that Deep Learning is only for real geniuses, math PhDs, etc, build by Deep Learning guys themselves.

The problem with AI is that one need enormous money and resources of a big corporation to produce results one could see on AI competitions. It their "research" they do progress, like everyone else, by trial and error (well, augmented with a decent heuristic search process) and the more people and hardware resources they could put in it, the more chances they will outperform other teams. It is resources, not "smartness".

I have completed the very first AI MOOC by Andrew Ng years ago - 780 out of 800 or something. The only difficulty is that it combines methods from math and programming, so one need to have some background to really understand hows and whys. Also really decent knowledge of English is required, otherwise one might miss the nuances in a very dense, loaded with terminology lectures, so, the entry level is quite high (of course, one could always copy-paste code without understanding and use ready-made toolkits and tutorials).

Apart from that it is nothing special. Basically, it is a function composition, with linear algebra and some numerical optimizations. When you have understood the basic building blocks - mathematical functions, processes and algorithms involved, there is nothing much else to do - one has to apply the theoretical knowledge which is, again, not a big deal, to real problems, and this is where big corps with resources took the advantage.

As long as you manage to get inside one of bigcorp AI lab, you become a star, simply because of the well funded PR machine of the corp. Everything that comes out is super cool, of course, so even being mentioned in the context makes one super cool too.

In my opinion, the guys from upper middle class families, who went through a decent technical school (with mom and dad's money) which taught them the basis needed for entering AI, are not that special. I probably could beat one or two of such snobs, having no high school education at all, never studied English or programming in a school and being raised in an impoverished family, but this is another story.

As for ML, take Andrew Ng's course, it is pretty accessible, and then take the one on the Udacity (with all these arrogant hot shots) and realize that there is really no magic in it. It is not that hard.

When you see a cool paper or video about some "breakthroughs" it ML, take into account that it is mostly due to resources spent on it, not some kind of extraordinary genius of the authors of the paper. Remember, all they do is basically a heuristic search and constraint satisfaction problems - train, test, change function (layer) composition (usually, without real understanding of whys), re-train, re-test. The problem is that there are very few of such slots in megacorps.

The guys like Andrew Ng himself are, of course, the real stars. But this kind of success comes from years of rigorous training similar to what Olympic champions have undergo. I personally don't think I have such ambitions or wish to embrace such lifestyle.

Future Facebook AR goggles will float people's names above their heads, replace billboard advertisements with live Facebook ads, and make people you 'mute' become invisible. It'll be a weird world.

I can 'disappear' annoying people and relatives? sign me up

> make people you 'mute' become invisible

That would be dangerous. They could follow the SL example and turn them into cardboard-like figures, or get more creative and let you dress them up as clowns, Barney the Dinosaur or some other avatar of your choice. :)

Being colorblind, I'd be excited to point at an object and as what color it is. There are phone apps that can annotate individual pixel data, but the key is segmentation, average, and contextual/lighting cues.

Are the EnChroma glasses not effective in your case?

Their test tells me they "may not work" for my type of colorblindness.

But also, my understanding is their glasses cut a lot of light and are meant for outdoor use. Indoor use would be very useful too!

Black mirror?

For those not familiar, specifically the "White Christmas" episode: http://www.imdb.com/title/tt3973198/?ref_=ttep_ep1

For those who are familiar, new episodes are apparently arriving on Oct.21st.

A hackathon project inspired by White Christmas: http://jonathandub.in/cognizance/ (Brand Killer)

Or maybe more like Dennou Coil :) https://en.wikipedia.org/wiki/Denn%C5%8D_Coil

These seem to be the papers for DeepMask [1] and SharpMask [2]

[1] https://arxiv.org/abs/1506.06204

[2] https://arxiv.org/abs/1603.08695

NB: The libraries use Torch.

I'm still playing around with fasttext (which is amazing btw) officially announced last week so I'm surprised to see Facebook Research announce and release another project so soon.

Could you share what you did with fasttext? It'd be great to see some examples around the amazing tools being open sourced! I read that there are no documentation comments, maybe they were removed?

For basic use, you can construct text vectors faster/better than word2vec/doc2vec.

The Python package which serves as an API to fasttext (https://pypi.python.org/pypi/fasttext/0.7.2 ) is well documented, is constantly being updated, and is easy to use.

Does/can fastText use GPGPU at all? I use a CUDA cbow word2vec [1] that is really quick, and has served me quite well. Hard to know if switching to something more accurate would be worth giving up the speed :)

[1] https://github.com/ChenglongChen/word2vec_cbow

No, fastText is CPU only.

fastText is so fast, you may not need to use the GPU. That was their goal from the very beginning.

It would be nice to see results compared to other SOTA semantic segmentation approaches like




I feel less and less willing to upload personal photos to social media sites where they will stick around forever attached to my identity while advancing computer vision techniques extract more and more information from them.

Not just social media sites - free searchable storage on Google Photos for instance (as nice as it is), is in exchange for Google to mine the shit out of your photos

This is very timely for me. Right at the moment I'm working on image segmentation for medical imaging.

If I can draft off tech developed to sell more ads to do some good I'm all for it.

I have a colleague working on something similar, drop me an email and I'll introduce you.

Is it safe to assume this release, as well as fastText are meant as PR for hiring?

Looks very promising. Self-driving cars will need algorithms like this to understand as much as possible of the environment that they see through the cameras. I think currently things like those ropes that the shepherd is holding in the picture are still very difficult to detect and classify correctly but they could just as well be a line across the road, maybe with a sign on it saying "closed".

How 'deep' are the networks used in something like DeepMask, and how does it compare with the number of layers of the human brain?

As I understand it, you can't meaningfully ask about the number of layers in the human brain.

Layers are an abstraction we use to make artificial neural networks dramatically faster to work with using linear algebra. By keeping each node interacting only with the layers above and below, we make the computations a lot nicer for our model of computation.

In the brain, neurons link freely to other arbitrary neurons based on adaption processes we (or at least I) don't really understand.

The brain also lacks a clear idea of direction to count the layers along, since it has innumerable different inputs coming in at all times, and the resulting signals interact all over the place.

The most meaningful analog would probably be to ask "How many neuron firings typically occur between an external stimulus and a response to that stimulus?" Even that is extremely rough though, because through evolution a lot of 'short circuit' structures have formed in our bodies. The gag reflex is obviously triggered by sensory input, but it probably doesn't check with your frontal lobe before firing the appropriate muscles.

For example, ResNet from 2015 had 152 layers.

A real neuron takes in the order of 10ms to integrate and fire to the next neuron. Many subconscious reactions take less than 1 sec, which leaves time to a chain of length less than 100. Note that those neurons are not strictly arranged in layers.

The human visual cortex has 10^12 synapses [1]. One popular 2015 deep learning net (ResNet 152-layers) used 10^12 FLOPs to classify objects in one image (but less weights.)

In terms of depth, we're there. In terms of breadth, it will take several years. But the brain does things very differently. For example, it has top-down signals during "prediction."

[1] http://www.ncbi.nlm.nih.gov/pubmed/7244322

It would seem that the current release from FB does top-down and bottom-up integration:

> To capture general object shape, you have to have a high-level understanding of what you are looking at (DeepMask), but to accurately place the boundaries you need to look back at lower-level features all the way down to the pixels (SharpMask).

"It will take several years."

A Noob question:

If it reaches the "breadth" of human brain, how close will that to the "Skynet becomes self-aware" moment.

What would it tell us about human, our society after it study, analyze millions, billions hours of FB, youtube videos?

As long as we do simple data processing, it won't become the dreaded Skynet. When we stuck a Reinforcement Learning system on top, feed it with reward signals and let it loose on the net or in real life robots, then it could become intelligent and develop its own goals/interests. So the Skynet part comes after reinforcement learning.

The architecture of the brain is not really known and quite different to deep convolutional networks - but roughly 100 million neurons in a human brain, each one with thousands of synapses.

It's several orders of magnitude more "neurons" and "connections" than even the largest ANN's

Wow, the code is in Lua! Just a little surprised. Also I just read some LinkedIn post on the dearth of Haskell education in schools. Always on the lookout for more companies using Haskell and hoping in the field of AI, machine-learning.

SharpMask looks very similar to a year-old "U-Net" http://arxiv.org/pdf/1505.04597

I thought that too. Just finished a kaggle competition involving segmentation, like a lot of participant I used one form of U-net (my own implementation).

You can probably find a lot of u-net implementations from this contest. One that performed really well [1]. It uses 'inception style' blocks feature extraction instead of vgg. But otherwise pretty similar.

[1] https://github.com/EdwardTyantov/ultrasound-nerve-segmentati...

What's the performance like? Fast enough to handle live video with a high-end PC?

Additional patent grand + bsd. Why not apache 2.0 or mpl 2.0?

Is there a link to get the code?

Click the links in the "We're making the code for DeepMask+SharpMask as well as MultiPathNet" line. They should have made them display more prominently.

They require to login to FB, then redirect to GitHub



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact