How to start a deep learning startup, NOT from scratch: a tutorial
This tutorial teaches how to start a deep learning startup.
Basically, the method is the same as with any startup, except that you put a deep learning ingredient somewhere. So you need to:
- Elaborate an idea
- Build a team
3. Assemble a deep learning product
4. Engage with a market
These 4 processes must be executed quickly, and in parallel. Any improvement in one process impacts the 3 others considerably.
For example, you will elaborate better ideas, once you develop an intuition about your market. You will better learn from the market, once you have a product to showcase,….
However, you should not spread your effort equally. You should focus your resources on the bottleneck process, and avoid over-optimizing the others.
Recommended material:
How to start a startup, Paul Graham
The lean startup, Eric Ries
How to start a startup, Stanford CS183B course, Sam Altman et al.
1. Elaborate an idea
The best ideas are the ideas that can solve your own problems. This approach will help you to empathize with users. For example, I thought about face recognition in a hostel, when I got annoyed by the frequent ringing of the doorbell. It can be a real noise pollution. That’s my “customer pain”. And I heard that existing technology could solve this problem at a cheap cost, that image recognition is becoming a commodity.
However, any kind of idea is good, as far as you have the motivation to explore it. You should not spend too much time overthinking your initial idea, it’s too early to shine with originality. It’s better to put something on the table, and then use the feedback from users to refine or modify your idea, in original ways.
If you have no clue at all, you can find inspiration from other startups.
Recommended material:
Angellist startups with the tag ‘deep learning’
How to Get Startup Ideas, Paul Graham
What are the best ways to think of ideas for a startup? Quora
2. Build a team
That’s the Human Resource part. Ideally, you should build a team of 2–3 co-founders. The criteria are: trust, motivation and skills. Nonetheless, these requirements for a Minimal Viable Co-founder can be hard to meet.
If you don’t find anyone, just start as a single founder. Maybe it will be easier to learn all the tech/business stuff alone, than to find a tech/business co-founder.
Recommended material:
Lean startup thinking: your ‘Minimum Viable Co-founder’, Ian Brookes
Breaking a myth: Data shows you don’t actually need a co-founder, Haje Jan Kamps
3. Assemble a deep learning product
You build your product like a furniture from IKEA: by quickly assembling ready-made parts:
Pay attention to design, it matters. Code can be left dirty, you will clean the mess later. Like a cheap IKEA furniture, things will fall apart quickly, but don’t worry, you are not crafting a piece of museum.
Your product should be “minimal viable” (MVP), which means that it should be viable enough to be shown to users, while requiring the minimal amount of effort to be produced.
Now, let’s get to the practical details:
3.1 Deep learning without deep understanding.
The core feature of the product is based on deep learning. You don’t need a deep understanding of deep learning to get started: you can use transfer learning, or an open-source API. You can also use a commercial API to get started, but think about a fallback plan. First, this API costs money at some point, and second, it is more risky if the provider pivots, or simply shuts down. In deep learning, many companies dream to get acquired by a competitor, don’t rely on a mock startup too much.
For my product, I choose the OpenFace library of face recognition, which re-implements Google’s FaceNet paper. And I am satisfied.
3.2 Code and deploy a web/mobile application
The deep learning feature is packaged into a web or mobile application. A web framework like Python Flask, and a database like MySQL, are usually enough.
If your product uses live streaming, then you will probably need websockets, available in autobahn. In this case, you use a twisted server for deployment. Otherwise, deploying on a HTTP Apache server is enough.
For hosting, I used AWS free tier, but now there are many other alternatives.
And when bugs happen, the first reflex is to google the error message, the second reflex is to try asking a good Stack Overflow question (which might require substantial preparation). If it fails, ask your rubber duck. It works.
Finally, register a fancy dot-com domain, or not-dot-com domain, and associate it with your server.
BONUS: For the streaming part, instead of websockets, it would be nice to adapt WebRTC for peer2server communication, as WebRTC is primarily peer 2 peer.
Recommended material (list not exhaustive):
How do I ask a good question? — Help Center — Stack Overflow
Creating a Web App From Scratch Using Python Flask and MySQL, Jay
How to Retrain Inception’s Final Layer for New Categories, TensorFlow
OpenFace library, Carnegie Mellon, B. Amos, B. Ludwiczuk, M. Satyanarayanan
4. Engage with a market
The product has little intrinsic value, despite all the efforts poured to assemble it. It acquires value with users and customers (or with investors, but it is risky to sell to them. Also, it is more difficult to play the tech bubble without traction).
For illustration, building an Uber clone costs 2000 dollars with a freelancer on Upwork.com:
On the other hand, as of June 2016, Uber inc. is valued to 66 Billion dollars.
The main difference (besides the bubble) is the 66 Million monthly trips made using the real Uber. The Uber clone has zero trip.
Another illustration: I am selling a clone website of my own startup, mindolia.com. I don’t really care about encouraging would-be competitors, because for me, the real value consists of the domain name and user data, which are not for sale.
However, this deal can still be interesting if you want to start a deep learning startup, but can’t do this tutorial by yourself, because of lack of time. Time is money. Contact me with offers.
Conclusion: the product is a cheap honeypot, designed to attract valuable bees.
So even before launching your product, you can spend a little time communicating with potential users, preferably face-to-face, and feel their mood. Expect brutal rejections, that’s what product-market fit is all about.
Things become more interesting, once you have a real product to show. You will be taken more seriously. In both ways, acts speak louder than words: your users can tell you one thing, and then react differently when they experience the real product.
So keep listening to users carefully, but also monitor metrics. Data science is useful for both assembling and selling your product.
Finally, build a brand. Remove all barriers to your product. Maximize your visibility. You need to be transparent, you can’t afford a secretive company culture. You are not Apple.
For example, you can contribute to a blog (on Medium, of course!), Quora, and record a Video clip for YouTube:
Recommended material:
Secrets of When and How to Talk to Customers at a Startup, Bob Warfield
How Sales Complexity impacts your Startup’s Viability, David Skok
The Definitive Guide to Growth Hacking, Neil Pattel and Bronson Taylor
Introduction to Marketing, Wharton Business School, Coursera, B. Kahn, P. Fader, D. Bell
Conclusion
Voilà, that’s it!
If you follow this tutorial, you will get started pretty quickly. Also, this tutorial is kept short and high-level: it’s only a Minimal Viable Post! If you wish more details about a particular point, just ask!
I will be glad to hear about your result! You can even pitch it remotely at our deep learning meetup in Ukraine! Click here to register!