exploring artificial intelligence

neural networks for life sciences

Felipe Delestro

contact@delestro.com

1. Introduction

2. Basics of Artificial Neural Networks

3. ANNs for embryo classification

4. How to get started

Layout

Introduction

  • Artificial Neural Networks (ANNs) are computational models inspired by biological neurons in the brain
  • ANNs recognize patterns in data and make predictions based on those patterns
  • ANNs are typically organized into layers of neurons, with each layer performing a different type of processing

Overview

In the 1920s, McCulloch and Pitts developed the first mathematical model of a neuron, known as the McCulloch-Pitts neuron

McCulloch WS, Pitts W.
A logical calculus of the ideas immanent in nervous activity.
The bulletin of mathematical biophysics. 1943

During the 1950s Frank Rosenblatt developed the first neural network model capable of learning, known as the Perceptron

Perceptron , Mark I

National Museum of American History

Washington, D.C.

Basics of Artificial Neural Networks

  • Perceptron is a mathematical model that mimics the behavior of a single neuron
  • It takes inputs, applies weights, sums them up, and passes the result through an activation function to produce an output
  • Perceptrons are essentially linear classifiers that make decisions by combining inputs with weights and producing output using an activation function

Perceptrons

https://towardsdatascience.com/perceptron-the-artificial-neuron-4d8c70d5cc8d

https://medium.com/@shrutijadon/survey-on-activation-functions-for-deep-learning-9689331ba092

Weights are learned through training, where the perceptron is presented with a set of labeled examples and it adjusts its weights in order to correctly classify the inputs

Perceptron cooking as a chef

Stable diffusion, OpenJourney model

https://scikit-learn.org/stable/modules/clustering.html

On its own, the perecptron is limited to linear decision boundaries.

Adding layers

  • Multi-layer perceptrons (MLPs) or feedforward neural networks were developed to overcome the linearity limitation
  • MLPs have multiple layers, including input, hidden, and output layers
  • MLPs can learn more complex features and relationships between inputs

Visualization of a fully connected neural network, version 1

Marijn van Vliet

MLP as a detective solving a crime

Stable diffusion, OpenJourney model

Backpropagation

  • Backpropagation is an algorithm for training ANNs to learn from their mistakes and improve their accuracy over time
  • Backpropagation adjusts the weights of the connections in the network to minimize the difference between the actual output and the desired output
  • It propagates the error backwards through the network, from output layer to input layer, and adjusts the weights based on the contribution of each connection to the error
  • Backpropagation aims to find the set of weights that produces the smallest error for a given set of input-output pairs

Backpropagation as a choreographer teaching a dance

Stable diffusion, OpenJourney model

Deep learning

  • Multi-layer perceptrons (MLPs) have limitations in learning complex patterns, which deep learning can solve by using many layers of neurons.
  • The number of layers in deep neural networks can range from a few dozen to several hundred or more, making it possible to learn intricate features and relationships within the data.
  • Layers can be specialized, and two types are very important: convolution and pooling layers

Convolution

  • Convolution is a weighted sum operation used in signal and image processing to extract features from data.
  • A small filter is slid over the input signal or image, and the results of element-wise multiplication are summed up to obtain a single output value.

https://commons.wikimedia.org/wiki/File:2D_Convolution_Animation.gif

https://www.youtube.com/watch?v=KuXjwB4LzSA

But what is a convolution?

Pooling

  • Pooling is a technique used in neural networks to reduce the spatial dimensionality of feature maps obtained from convolutional layers.
  • The pooling function (such as max pooling or average pooling) reduces the information in each region to a single value, resulting in a smaller feature map with a reduced spatial dimensionality.
  • Pooling helps make the subsequent layers of the network more robust to slight variations in the input and provide translational invariance to the input data.

https://www.geeksforgeeks.org/cnn-introduction-to-pooling-layer/

Pooling as understanding a book by summarizing the chapters

Stable diffusion, OpenJourney model

convolution + pooling made possible the creation of the convolutional Neural Networks, or CNNs

They correspond to the vast majority of DL models currently in usage.

ANNs for embryo classification

José Celso

Applied mathematics

Marcelo Nogueira

Embryology

Cummulative Google Scholar results for "deep learning" and "image"

Started to work on embryo classification

Human embryo development during 5 days, data from time-lapse system

User manually perform measurements in the image

Graphical interface allows inference using the ANN

Compromises

  • MLPs cannot read directly from the image, a feature extraction step was needed
  • The system predicts quality of the embryo, which could be a biased label

Alexandra Boussommier

CEO ImVitro

https://doi.org/10.1093/humrep/dead023

Embryoscope

(Vitrolife)

MIRI

(ESCO)

Geri

(Genea Biomedx)

Automatic embryo cropping using YoloV5. The original model was retrained using a few hundred annotated images

https://github.com/ultralytics/yolov5

https://www.youtube.com/watch?v=cHDLvp_NPOk

YoloV5 model in action for object detection

pregnancy
no pregnancy

AUC: 0.68

video
score
clinical
features
pregnancy
no pregnancy

AUC: 0.73

How to get started

Knowledge background

  • Python:
    A popular programming language for deep learning and is used extensively in the field for tasks such as data manipulation, preprocessing, and training models.
  • Machine learning
    Understanding the principles and concepts of machine learning is important for developing deep learning models as it helps to identify the appropriate models, evaluate their performance, and make modifications to improve them.
  • "Classical" approaches
    Knowledge of classical approaches such as linear regression, logistic regression, and decision trees can help understand the fundamentals of deep learning and develop more complex models. It can also help in selecting appropriate preprocessing techniques and handling missing data.

Recommended framework

High level approaches

BioImage model Zoo

thanks!

https://slides.com/delestro/ann-unesp

Exploring Artificial Intelligence

By Felipe Delestro

Exploring Artificial Intelligence

neural networks for life sciences

  • 227