This article was written by Marcus Oliveira da Silva.I am not a real data scientist.I have never used a deep learning framework, like TensorFlow or Keras.I have never touched a GPU.I don’t have a degree in computer science or statistics. My degree is in mechanical engineering, of all things.I don't know R.But I haven’t given up hope. After reading a bunch of job postings, I figured out that all it will take to become a real data scientist is five PhD's and 87 years of job experience.If this sounds familiar, know that you are not alone. You are not the only one who wonders how much longer they can get away with pretending to be a data scientist. You are not the only one who has nightmares about being laughed out of your next interview.Imposter syndrome is feeling like everyone else in your field is more qualified than you are, that you will never get hired or, if you already have been, that you are a mistake of the hiring process. What a real data scientist looks likeA good generalistis superficially familiar with every part of data science,recognizes all the jargon and technical terms,has a good notion of what tools and expertise are needed to solve a given problem, andasks insightful questions in technical reviews.A good specialistunderstands one area deeply,can explain their area of expertise to non-experts,understands the tradeoffs between different approaches,is up to date on current research and new tools, andcan use their tools quickly to produce high-quality results.To read the rest of the article, click here.See More

This article was written by Ronald Van Loon.Ronald lists the 6 following skills:Programming - Python, Perl, R, C/C++, SQL, and Java Knowledge of SaS and Other Analytical Tools - Hadoop, Spark, Hive, Pig, TableauAdept at Working with Unstructured DataA Strong Business AcumenStrong Communication SkillsGreat Data IntuitionTo read the rest of the article, click here.See More

This article was written by Thimira Amaratunga.Deep Learning has been around for about a decade now. Since its inception, Deep Learning has taken the world by storm due to its success (See my article “What is Deep Learning?” on how Deep Learning evolved through Artificial Intelligence, and Machine Learning). Here are some of the more significant achievements of Deep Learning throughout the years.Table of contents:AlexNet — 2012ZF Net — 2013VGG Net — 2014GoogLeNet — 2014/2015Microsoft ResNet — 2015Is Deep Learning just CNNs?To read the whole article, with each achievement of Deep Learning detailed and illustrated, click here. For other deep learning articles, follow this link. See More

This article was written by Motoki Wu. Full title: How to construct prediction intervals for deep learning models using Edward and TensorFlow.Edward and Tensorflow. Source: here (Duke University)The difference between statistical modeling and machine learning gets blurry by the day. They both learn from data and predict an outcome. The main distinction seems to come from the existence of uncertainty estimates. Uncertainty estimates allow hypothesis testing, though usually at the expense of scalability. Machine Learning = Statistical Modeling - Uncertainty + DataIdeally, we mesh the best of both worlds by adding uncertainty to machine learning. Recent developments in variational inference (VI) and deep learning (DL) make this possible (also called Bayesian deep learning). What’s nice about VI is that it scales well with data size and fits nicely with DL frameworks that allow model composition and stochastic optimization.An added benefit to adding uncertainty to models is that it promotes model-based machine learning. In machine learning, the results of the predictions are what you base your model on. If the results are not up to par, the strategy is to “throw data at the problem”, or “throw models at the problem”, until satisfactory. In model-based (or Bayesian) machine learning, you are forced to specify the probability distributions for the data and parameters. The idea is to explicitly specify the model first, and then check on the results (a distribution which is richer than a point estimate).Bayesian Linear RegressionHere is an example adding uncertainty to a simple linear regression model. A simple linear regression predicts labels Y given data X with weights w. Y = w * XThe goal is to find a value for unknown parameter w by minimizing a loss function. (Y - w * X)²Let’s flip this into a probability. If you assume that Y is a Gaussian distribution, the above is equivalent to maximizing the following data likelihood with respect to w: p(Y | X, w)So far this is traditional machine learning. To add uncertainty to your weight estimates and turn it into a Bayesian problem, it’s as simple as attaching a prior distribution to the original model. p(Y | X, w) * p(w)Notice this is equivalent to inverting the probability of the original machine learning problem via Bayes Rule: p(w | X, Y) = p(Y | X, w) * p(w) / CONSTANTThe probability of the weights (w) given the data is what we need for uncertainty intervals. This is the posterior distribution of weight w.Although adding a prior is simple conceptually, the computation is often intractible; namely, the CONSTANT is a big, bad integral.Monte Carlo IntegrationAn approximation of the integral of a probability distribution is usually done by sampling. Sampling the distribution and averaging will get an approximation of the expected value (also called Monte Carlo integration). So let’s reformulate the integral problem into an expectation problem.The CONSTANT above integrates out the weights from the joint distribution between the data and weights. CONSTANT = ∫ p(x, w) dwTo reformulate it into an expectation, introduce another distribution, q, and take the expectation according to q. ∫ p(x, w) q(w) / q(w) dw = E[ p(x, w) / q(w) ]We choose a q distribution so that it’s easy to sample from. Sample a bunch of w from q and take the sample mean to get the expectation. E[ p(x, w) / q(w) ] ≈ sample mean[ p(x, w) / q(w) ]This idea we’ll use later for variational inference.Variational InferenceThe idea of variational inference is that you can introduce a variational distribution, q, with variational parameters, v, and turn it into an optimization problem. The distribution q will approximate the posterior. q(w | v) ≈ p(w | X, Y)These two distributions need to be close, a natural approach would minimize the difference between them. It’s common to use the Kullback-Leibler divergence (KL divergence) as a difference (or variational) function. KL[q || p] = E[ log (q / p) ]The KL divergence can be decomposed to the data distribution and the evidence lower bound (ELBO). KL[q || p] = CONSTANT - ELBOThe CONSTANT can be ignored it since it’s not dependent on q. Intuitively, the denominators of q and p cancel out and you’re left with the ELBO. Now we only need to optimize over the ELBO.The ELBO is just the original model with the variational distribution. ELBO = E[ log p(Y | X, w)*p(w) - log q(w | v) ]To obtain the expectation over q, Monte Carlo integration is used (sample and take the mean).In deep learning, it’s common to use stochastic optimization to estimate the weights. For each minibatch, we take the average of the loss function to obtain the stochastic estimate of the gradient. Similarly, any DL framework that has automatic differentiation can estimate the ELBO as the loss function. The only difference is you sample from q and the average will be a good estimate of the expectation and then the gradient.To read the rest of the article with source code and computation of prediction intervals, click here.See More

]]>

]]>

]]>

]]>

]]>

This article was written by Andrey Nikishaev.Today I will show you very simple but powerful example of how to count traffic capacity with the algorithm that you can run on devices.So this algorithm works in 4 steps:1. Get frame edges.2. Blur them to get the more filled area.3. Binary threshold blurred the image.4. Overlap threshold image with ROI(you mask where you count) and count black pixels/white pixels which gives you traffic capacity.EdgesHere we use CLAHE equalization to remove noise from the image that can occur on cheap/old cameras at night. It not the best thing, but gives a better result.Then we use Canny Edge Detector to get edges from the image. We invert it to get white background (just for visual convenient).BlurWe use basic blur with bilateral filtering which removes some color noise and gives better segmentation.ThresholdThe last filter is a binary threshold which we use to get only white and black pixels which give as our segmentation on car/not car.CountingAnd the last simple step just divides the number of black pixels with the number of white pixels to get traffic capacity.To read the rest of the article, with illustrations, click here.See More