addressalign-toparrow-leftarrow-leftarrow-right-10x10arrow-rightbackbellblockcalendarcameraccwcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscontroller-playcredit-cardcrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobe--smallglobegmailgooglegroupshelp-with-circleimageimagesinstagramFill 1languagelaunch-new-window--smalllight-bulblinklocation-pinlockm-swarmSearchmailmediummessagesminusmobilemoremuplabelShape 3 + Rectangle 1ShapeoutlookpersonJoin Group on CardStartprice-ribbonprintShapeShapeShapeShapeImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruserwarningyahooyoutube

Deep Artificial Neural Networks and Computer Vision Pages


What is this meetup about?
A gathering of people who are interested in learning and/or sharing their knowledge of deep artificial neural networks and intelligent computer vision and networking with people of similar interests.

Can I present/share my work in a meetup?
Of course! Just notify us and we will fit you in!

Artificial Neural Networks

What is an artificial neural network (ANN)?
An Artificial Neural Network (ANN) is very loosely based on the hierarchical architecture of the brain, where layers of neurons are connected to each other by synapses, and fire signals between one another when their input is larger than some threshold. It is important to remember however that biological brains are many orders of magnitude more complex at all levels of their hierarchy than ANNs, and that this comparison should only be understood as a useful analogy.

ANN’s are a form of machine learning, that can learn through supervised, unsupervised or reinforced learning to model a system, repeat, or predict an outcome. This learning adjusts the strength of connections and the ‘firing threshold’ mentioned above. In the ANN algorithm, this firing threshold is modeled as a loss function that is optimized through the learning process.M

Machine learning is unique to other forms of problem engineering as the task of interrogating, analyzing and idealizing the problem is undertaken by the machine, and not defined, or limited by human understanding or bias. Where human engineers have a broad but fixed set of standardised tools that they can apply to solve a problem, machine learning will learn and apply unique, and highly optimized ‘algorithms’ to each problem it is it trained on, enabling it to solve massively complex problems in a highly efficient and optimized manner that surpasses human capability.

Furthermore, a machine learning system will take relatively raw inputs and transform them directly into the desired output, and so can be considered a single stage process. This means the external complexity required to manipulate, manage, and process many disparate, complex inputs, through multistage, fixed, analytical steps is massively reduced. For example, in the case of image captioning, an ANN will take an image (a matrix of pixel intensity values) and will output a written sentence. You can imagine that to engineer such a system in conventional means would require a very long chain of individually complex processes, however machine learning effectively transforms the problem into a single step.

ANN theory is a broad and complex field that involves a moderate amount of applied mathematics. Topics in this meetup will not delve into the mathematical theory behind ANNs, but if you are interested in this area of research there is an article in the resources section below that can provide further details, otherwise there are plenty online.

What is supervised, unsupervised and reinforcement learning?
These are the three different ways that machine learning algorithms (including ANNs) can learn patterns or relationships in datasets. The definition and distinction between these methods all relate to the feedback that the ANN receives when it processes an input and produces an output.

A supervised system is trained through the use of known inputs and known outputs. When the ANN processes the input to produce a result, an error value is derived from the ANN output and the known solution, and this error is propagated back through the network in a manner that reduces the scale of the error signal.

Unsupervised training involves no explicitly defined solution data set, and so no immediately defined error signal. Instead it uses a measure of the relative outputs from different inputs. An unsupervised model learns an internal representation of the data, clustering common elements together and adjusts firing thresholds with respect to these common elements.

Reinforcement learning involves the feedback to the network that comes at some random time in the future, and based on a future event which is tied to the network output but not in an immediate or direct manner. This type of learning is popular in self-driving cars and gaming, where there is some lag between action and long term goals.

The type of learning module used for an ANN depends on the network architecture, your dataset and/or your desired outcome.

What’s the difference between an ANN and a deep ANN?
When talking about ANNs, people will often discuss ‘weights’ and ‘architectures’. The architecture of an ANN is defined by the structural features that are defined when the ANN is designed. Things such as the number of layers, and the number of neurons at each layer, and the relationships between different layers, as well as the types of neurons that are used, can all be considered architectural elements.

The weights of an ANN are the learned values that represent the connection strengths between layers and neuron thresholds that are applied to the architecture, and so represent the learned knowledge.

There are many different ANN architectures. Most ANNs have an input layer (takes inputs from outside the network), a hidden layer (often does not interact outside the network) and an output layer (provides an output to outside the network). A deep ANN refers to an ANN that contains multiple hidden layers.

Speaking generally, each layer within a network can be thought of as applying a single transformation to its inputs. The greater the number of layers, the greater the abstraction that can be applied and built upon, and so the greater the ability to identify and engage with complex abstract patterns.

This website runs through a variety of different neural net architectures: http://www.asimovinst...

What are the common applications of an ANN?
A powerful tool, ANNs are theoretically capable of many tasks; you can think of them as a generalized pattern recognition solution. From this perspective ANNs can be applied to any problem that can be expressed as a form of pattern identification.

Where ANNs are modeled (very loosely) on the architecture and manner in which brains learn, it is fair to expect that they excel at tasks which brains also excel at. These include messy, complex, pattern problems which often include abstract relationships between many hundreds or even millions of features. Vision and language, as well as time series inputs that require an active ‘memory’ of previous patterns, are examples of such problems.

Of course ANNs are also very adept at solving much simpler classification tasks for any number of business process insights and applications.

What are the limitations of an ANN?
While ANNs can be applied to many situations, the use of them depends on the decision that is wanted from the application, and the ability to express the problem in a manner which can be learned by the ANN.

A primary limitation of ANNs is that they are very difficult to interrogate; as it is almost impossible to analytically derive the complex relationship between the inputs and outputs that an ANN learns. As a result insight into the problem is not readily accessible and requires independent analysis of the trained ANN.

Additionally, ANNs often require a considerable history of data for training, which must be a very good, or almost exact representation of the future data that the ANN will be working on. Where data is limited an ANN will often develop biases and learn unintentional regularities within the data, that you did not intend.

Furthermore, fast training of deep ANNs requires the application of batched simultaneous computation of millions of variables, and so requires somewhat specialized hardware. Modern GPUs coupled with specialized libraries are often necessary for training and hosting deep ANN.

How do I create an ANN?
There are different degrees of complexity when creating an ANN. You could use a neural network API to solve basic problems, you could design and build one using a high level framework with standardised units, or you can code an entirely unique custom architecture to suit your needs.

With API’s like NeuralWare you can get a result very quickly and with little knowledge of ANNs however at much cost (the licensing is very expensive). A framework like MATLAB allows API level network building as well as modifying and designing the network yourself whereas using a framework like Theano/Tensorflow within python not only is free but you have a great deal of flexibility in the design of your network. Which framework/API you should choose depends on your experience and your application.

Within each of these API’s or frameworks how you go about developing the network is different and you should consult the respective tutorials/help pages. Some of these can be found in the links below.

Intelligent Computer vision

What is intelligent computer vision compared to image processing?
Traditional image processing techniques rely upon standardised and largely fixed algorithms that are broadly applied to all vision problems. These standardised tools were derived and developed by very intelligent and capable human engineers, however they have relatively limited applications and success as they are insufficiently flexible to be applied to the infinite variation that exists in the human world, and which can be captured in an image or video feed.

For specialized applications (i.e. face detection) traditional image detection tools can still outperform ANN solutions as they are computationally light, and so suitable for local computation on mobile processors, for example.

The application of ANNs to computer vision enables the massive and complex variation of the human world to be transformed into accurate and useful outputs, as the ANN builds its own efficient and optimised internal ‘feature detection algorithms’, that incorporate a degree of complexity and flexibility that can not be manually developed by a human computer vision engineer


What does Engineered Intelligence do?
Engineered Intelligence is a startup focused on utilizing deep artificial neural networks to develop intelligent computer vision solutions for retail environments.

We are fascinated and excited about the possibilities that artificially intelligent neural networks make possible; and we want you to be excited too! We believe that deep ANNs are the most radically significant and important technologies that exist today, and so we feel it is vitally important that we engage and educate as many people as possible about these technologies.

We hope that by doing so the opportunities that ANNs bring can be shared by a wider group of people, and any potentially disruptive change can be minimized.

I/my company would like to sponsor this meetup. How can we help?
There are many ways you can help! You can provide assistance to organize and facilitate a meetup, suggest interesting speakers, offer to speak on a topic that you find interesting, or bringing your friends along to join and contribute to our community. Let us know that you are interested and we can accommodate you.

Useful Resources

Learn coding languages: https://www.codecadem...

Helpful when debugging or have a specific question:

Helpful explanations:

Beginners ANN Mathematics:

From FAQ-Neural Network Architectures:

From FAQ-Creating an ANN:

Free matlab neural net toolbox:

Basic - Introduction to Machine Learning
FREE! Stanford University - Online Machine Learning Course, with tutorials and online support. Developed and presented by Andrew NG - Chief scientist at Baidu Research in Silicon Valley.

Moderate - Introduction to Neural Networks:
FREE! University of Toronto - Neural Networks for Machine Learning. With Tutorials and online support. Developed and presented by Geoffry Hinton (Neural Networks pioneer, responsible for most modern deep neural network approaches).

Advanced - Neural Networks for Computer Vision:
FREE! (Videos of lectures can be found online). A comprehensive approach to computer vision using neural networks. Provides a thorough grounding in Neural Network theory and application for computer vision. EXCELLENT!

Table of Contents

Page title Most recent update Last edited by
About Deep Artificial Neural Networks and Computer Vision March 20, 2017 5:24 PM Roshan

People in this
group are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy