PyTorch DCGAN Implementation from Scratch
New Video in my Channel
👉 Github Repo (Numbered) - https://github.com/rohan-paul/MachineLearning-DeepLearning-Code-for-my-YouTube-Channel
👉 Blog - https://rohan-paul-ai.netlify.app/blog
You can find me here:
🐦 TWITTER: https://twitter.com/paulr_rohan
👨🔧 Kaggle: https://www.kaggle.com/paulrohan2020
👨🏻💼 LINKEDIN: https://www.linkedin.com/in/rohan-paul-b27285129/
👨💻 GITHUB: https://github.com/rohan-paul
🦾🤖: My Website and Blog: https://rohan-paul-ai.netlify.app/
🧑🦰 Facebook Page: https://www.facebook.com/Computer-Vision-with-Rohan-Paul-109348958325690
📸 Instagram: https://www.instagram.com/rohan_paul_2020/
#computervision #deeplearning #machine-learning #data-science #tensorflow #python #100daysofmlcode
In today’s world, Computer Vision technologies are everywhere. They are embedded within many of the tools and applications that we use on a daily basis. However, we often pay little attention to those underlaying Computer Vision technologies because they tend to run in the background. As a result, only a small fraction of those outside the tech industries know about the importance of those technologies. Therefore, the goal of this article is to provide an overview of Computer Vision to those with little to no knowledge about the field. I attempt to achieve this goal by answering three questions: What is Computer Vision?, Why should you learn Computer Vision? and How you can get started?
Figure 1: Portrait of Larry Roberts.
The field of Computer Vision dates back to the 1960s when Larry Roberts, who is now widely considered as the “Father of Computer Vision”, published his paper _Machine Perception of Three-Dimensional Solids _detailing how a computer can infer 3D shapes from a 2D image (Roberts, 1995). Since then, other researchers have made amazing contributions to the field. These advances, however, have not changed the underlaying goal of Computer Vision which is to mimic the human visual system. From an engineering point of view, this means being able to build autonomous systems that can do things a human visual system can do such as detecting and recognizing objects, recognizing faces and facial expressions, etc. (Huang, 1996). Traditionally, many approaches in Computer Vision involves manual feature extraction. This means manually finding some unique features/characteristics (edges, shapes, etc) that are only present in an object to be able to detect and recognize what that object is. Unfortunately, one major issue arises when trying to detect and recognize variations (sizes, lightning conditions, etc) of that same object. It is difficult to find features that can uniquely identify an object across all variations. Fortunately, this problem is now solved with the introduction of Machine Learning, particularly a sub-field of Machine Learning called Deep Learning. Deep Learning utilizes a form of Neural Networks called Convolutional Neural Networks (CNNs). Unlike the traditional methods, methods that utilize CNNs are able to extract features automatically. Instead of trying to figure out which features can represent an object manually, a CNN can learn those features automatically by looking at many variations of that same object. As result, many recent advancements in the field of Computer Vision involves the use of CNNs.
#computer-science #machine-learning #deep-learning #computer-vision #learning #deep learning
We at Inexture, strategically work on every project we are associated with. We propose a robust set of AI, ML, and DL consulting services. Our virtuoso team of data scientists and developers meticulously work on every project and add a personalized touch to it. Because we keep our clientele aware of everything being done associated with their project so there’s a sense of transparency being maintained. Leverage our services for your next AI project for end-to-end optimum services.
#deep learning development #deep learning framework #deep learning expert #deep learning ai #deep learning services
TL;DR This is the first in a [series of posts] where I will discuss the evolution and future trends in the field of deep learning on graphs.
Deep learning on graphs, also known as Geometric deep learning (GDL) , Graph representation learning (GRL), or relational inductive biases , has recently become one of the hottest topics in machine learning. While early works on graph learning go back at least a decade  if not two , it is undoubtedly the past few years’ progress that has taken these methods from a niche into the spotlight of the ML community and even to the popular science press (with Quanta Magazine running a series of excellent articles on geometric deep learning for the study of manifolds, drug discovery, and protein science).
Graphs are powerful mathematical abstractions that can describe complex systems of relations and interactions in fields ranging from biology and high-energy physics to social science and economics. Since the amount of graph-structured data produced in some of these fields nowadays is enormous (prominent examples being social networks like Twitter and Facebook), it is very tempting to try to apply deep learning techniques that have been remarkably successful in other data-rich settings.
There are multiple flavours to graph learning problems that are largely application-dependent. One dichotomy is between node-wise and graph-wise problems, where in the former one tries to predict properties of individual nodes in the graph (e.g. identify malicious users in a social network), while in the latter one tries to make a prediction about the entire graph (e.g. predict solubility of a molecule). Furthermore, like in traditional ML problems, we can distinguish between supervised and unsupervised (or self-supervised) settings, as well as transductive and inductive problems.
Similarly to convolutional neural networks used in image analysis and computer vision, the key to efficient learning on graphs is designing local operations with shared weights that do message passing  between every node and its neighbours. A major difference compared to classical deep neural networks dealing with grid-structured data is that on graphs such operations are permutation-invariant, i.e. independent of the order of neighbour nodes, as there is usually no canonical way of ordering them.
Despite their promise and a series of success stories of graph representation learning (among which I can selfishly list the [acquisition by Twitter] of the graph-based fake news detection startup Fabula AI I have founded together with my students), we have not witnessed so far anything close to the smashing success convolutional networks have had in computer vision. In the following, I will try to outline my views on the possible reasons and how the field could progress in the next few years.
**Standardised benchmarks **like ImageNet were surely one of the key success factors of deep learning in computer vision, with some  even arguing that data was more important than algorithms for the deep learning revolution. We have nothing similar to ImageNet in scale and complexity in the graph learning community yet. The [Open Graph Benchmark] launched in 2019 is perhaps the first attempt toward this goal trying to introduce challenging graph learning tasks on interesting real-world graph-structured datasets. One of the hurdles is that tech companies producing diverse and rich graphs from their users’ activity are reluctant to share these data due to concerns over privacy laws such as GDPR. A notable exception is Twitter that made a dataset of 160 million tweets with corresponding user engagement graphs available to the research community under certain privacy-preserving restrictions as part of the [RecSys Challenge]. I hope that many companies will follow suit in the future.
**Software libraries **available in the public domain played a paramount role in “democratising” deep learning and making it a popular tool. If until recently, graph learning implementations were primarily a collection of poorly written and scarcely tested code, nowadays there are libraries such as [PyTorch Geometric] or [Deep Graph Library (DGL)] that are professionally written and maintained with the help of industry sponsorship. It is not uncommon to see an implementation of a new graph deep learning architecture weeks after it appears on arxiv.
Scalability is one of the key factors limiting industrial applications that often need to deal with very large graphs (think of Twitter social network with hundreds of millions of nodes and billions of edges) and low latency constraints. The academic research community has until recently almost ignored this aspect, with many models described in the literature completely inadequate for large-scale settings. Furthermore, graphics hardware (GPU), whose happy marriage with classical deep learning architectures was one of the primary forces driving their mutual success, is not necessarily the best fit for graph-structured data. In the long run, we might need specialised hardware for graphs .
**Dynamic graphs **are another aspect that is scarcely addressed in the literature. While graphs are a common way of modelling complex systems, such an abstraction is often too simplistic as real-world systems are dynamic and evolve in time. Sometimes it is the temporal behaviour that provides crucial insights about the system. Despite some recent progress, designing graph neural network models capable of efficiently dealing with continuous-time graphs represented as a stream of node- or edge-wise events is still an open research question.
#deep-learning #representation-learning #network-science #graph-neural-networks #geometric-deep-learning #deep learning
In this post, you will get to learn deep learning through a simple explanation (layman terms) and examples.
Deep learning is part or subset of machine learning and not something that is different than machine learning. Many of us, when starting to learn machine learning, try and look for the answers to the question, “What is the difference between machine learning and deep learning?” Well, both machine learning and deep learning are about learning from past experience (data) and make predictions on future data.
Deep learning can be termed as an approach to machine learning where learning from past data happens based on artificial neural networks (a mathematical model mimicking the human brain). Here is the diagram representing the similarity and dissimilarity between machine learning and deep learning at a very high level.
#machine learning #artificial intelligence #deep learning #neural networks #deep neural networks #deep learning basics
This chapter continues the series on Bayesian deep learning. In the chapter we’ll explore alternative solutions to conventional dense neural networks. These alternatives will invoke probability distributions over each weight in the neural network resulting in a single model that effectively contains an infinite ensemble of neural networks trained on the same data. We’ll use this knowledge to solve an important problem of our age: how long to boil an egg.
The data is from an experiment in egg boiling. The boil durations are provided along with the egg’s weight in grams and the finding on cutting it open. Findings are categorised into one of three classes: under cooked, soft-boiled and hard-boiled. We want the egg’s outcome from its weight and boiling time. The problem is insanely simple, so much so that the data is near being linearly separable¹. But not quite, as the egg’s pre-boil life (fridge temperature or cupboard storage at room temperature) aren’t provided and as you’ll see this swings cooking times. Without the missing data we can’t be certain what we’ll find when opening an egg up. Knowing how certain we are we can influence the outcome here as we can with most problems. In this case if relatively confident an egg’s undercooked we’ll cook it more before cracking it open.
Let’s have a look at the data first to see what we’re dealing with. If you want to feel the difference for yourself you can get the data at github.com/DoctorLoop/BayesianDeepLearning/blob/master/egg_times.csv. You’ll need Pandas and Matplotlib for exploring the data. (pip install — upgrade pandas matplotlib) Download the dataset to the same directory you’re working from. From a Jupyter notebook type pwd on its own in a cell to find out where that directory is if unsure.
Figure 2.01 Scatter plot of egg outcomes
And let’s see it now as a histogram.
Figure 2.02 Histogram of egg times by outcome
It seems I wasn’t so good at getting my eggs soft-boiled as I like them so we see a fairly large class imbalance with twice as many underdone instances and three times as many hardboiled instances relative to the soft-boiled lovelies. This class imbalance can spell trouble for conventional neural networks causing them to underperform and an imbalanced class size is a common finding.
Note that we’re not setting density to True (False is the default so doesn’t need to be specified) as we’re interested in comparing actual numbers. While if we were comparing probabilities sampled from one of the three random variables, we’d want to set density=True to normalise the histogram summing the data to 1.0.
#editors-pick #bayesian-machine-learning #deep-learning #bayesian-neural-network #neural-networks #deep learning