Thoughts on AI replacing coders by 2040

This blog post looks into which methods and technologies that can potentially lead to the replacement of coders in the future, some are of futuristic nature but some are more “low-hanging” wrt automation of (parts of) coding.

The background for this blog post is that researchers Jay Jay Billings, Alexander J. McCaskey, Geoffroy Vallee, and Greg Watson at Oak Ridge Laboratory wrote a paper: Will humans even write code in 2040 and what would that mean for extreme heterogeneity in computing?

Also related to this is (Tesla AI director) Andrej Karpathy’s article: Software 2.0 where he looks back at how AI (primarily Deep Learning) has replaced custom methods for e.g. image and speech recognition, machine translation (++) and generalizes how Deep Learning can further replace a lot of other software in years to come (note: examplified by Google’s recent paper The Case for Learned Index Structures)

1. FACT: Programming environments (IDEs) have barely changed the last 30 years

One of primary purposes of programming is to provide efficient automation, however programming itself is still a highly manual and labour intensive process – except for refactoring the difference between modern IDEs compared to e.g. Turbo Pascal in 1989 is surprisingly small? (Turbo Pascal came out more than 30 years ago and improved gradually towards 1989)

Turbo Pascal 5.5 in 1989 Eclipse in 2017

2. FACT: For (close to) all FUNCTIONS written there exists one or several TESTS for it

For any method already written (or to be written) in any (of the most popular) languages currently used in programming  there already exists a test for it – in the same language or in a similar language (e.g. a C# test for a Java function). The obvious (big) data source for this is all private and public repositories in Github  (100M pull requests merged so far in 2017)

So why are most developers still writing unit tests instead of having an IDE/service find and translate the appropriate tests to the functions they write? (e.g. something along the lines of IntelliTest)

3. FACT: as 2 – For (close to) all TESTS there exists a (set of ) FUNCTIONs they test

Assuming e.g. with Test Driven Development (TDD) – where you are roughly writing the (test of the new) API first – and then alternating between creating in the code to (just enough) fulfill the API.

This seems like it has 2 potential ways of being increasingly automated – on the function writing part.

  1. Search for a set of function that matches a set of tests – instead of writing the functions just write the tests
  2. Automatically generate the code (fragments) to fulfill the test, this can potentially be done in many ways, e.g.
      1. Brute force with a lot of computers (e.g. a few thousand CPUs in the cloud should be more than capable of quickly generating and selecting the best of maybe up to 30-50 increments needed per test writing iteration, this resource could be shared by a large set of programmers). See also the science of brute force.
      2. Using sophisticated AI methods with GPUs – e.g.  Program Synthesis with Deep Learning and earlier AI methods such as variants of John Koza’s Genetic Programming.
      3. Quantum Computer – e.g. Logic Synthesis with Quantum Computing (see also Quantum Development Kit)

4. FACT: (Many?) Data Structures can now be replaced by AI (e.g. Bloom Filters & B-Trees)

Google – with Tim KraskaAlex BeutelEd H. ChiJeffrey DeanNeoklis Polyzotis published an interesting paper: The Case for Learned Index Structures where they showed that traditional and popular data structures such as B-Tree, Hash Index and Bloom Filter can be with advantage be replaced by AI Trained Index Structures. This is from my perspective pretty groundbreaking research and will be interesting to see what the use cases can be towards program synthesis (e.g for other categories of data structures and also logic operating on data structures). Key result figures from their paper:

 

5. FACT: Formal Methods are starting to work and can be used to support automation of code

Amazon has used formal methods since 2011 for Amazon Web Services, e.g. to ensure the quality of AWS S3 – see Use of Formal Methods at Amazon for an overview. Facebook is using formal methods for mobile application quality assurance, see Moving Fast with Software Verification. Formal methods has also been used to validate various blockchain technologies (potentially Bitcoin), see e.g. A Temporal Blockchain: A Formal Analysis, Blockchain Protocol Analysis and Security Engineering 2017, Validation of Decentralised Smart Contracts Through Game Theory and Formal Methods

A few years back I participated in a research project – Envisage (Engineering Virtualized Services) – where formal methods were used to prove that the TimSort algorithm was buggy in a lot of languages  (See Hacker News story below). Formal methods can potentially be used together with code generating methods to ensure that what is generated is correct.

Conclusion

Have presented various technologies that might play a role in automating coding forwards. A potential interesting direction on the generative side for coding is to use sequence to sequence deep learning in combination with GAN for synthesis, see e.g. Text2Action: Generative Adversarial Synthesis from Language to Action – for program synthesis this looks like a

Best regards,

Amund Tveit

 

Continue Reading

New Publications in Deep Learning Publication Navigator

Long overdue update of new publications in Deep Learning Publication Navigator (ai.amundtveit.com) – for now the easiest way to discover new publications is probably to convert screenshots (number of papers) per category in the before and after update screenshots below.

Examples of keywords (from publication title) with (several) new Deep Learning publications are:

  1. 3D
  2. Acoustic
  3. Active learning
  4. Adaptive
  5. Adversarial (123 new papers since last update, due to significant activity in GAN Research)
  6. Alzheimer’s (22 new papers related to a disease that cost more than a quarter trillion US$ annually to treat in the USA)
  7. Anomaly detection
  8. Autoencoders
  9. Bayesian
  10. Biomedical
  11. Chinese
  12. Clinical
  13. Collaborative filtering (e.g. for recommender systems)
  14. Dataset
  15. EEG (electric brain signals)
  16. Ensemble
  17. +++++ (many more!)

If you have feature ideas or other requests for Deep Learning Publication Navigator, feel free to reach out.

Best regards,

Amund Tveit

After update (with new papers):

Before update (without new papers):

 

Continue Reading

Serverless Thrift APIs in Python on AWS Lambda

I recently wrote a blog post called Serverless Thrift APIs in Python with AWS Lambda on the Zedge corporate blog, underneath is a reposting of it:

This blog post shows a basic example of a Serverless Thrift API with Python for AWS Lambda and AWS API Gateway.

1. Serverless Computing for Thrift APIs?

Serverless computing – also called Cloud Functions or Functions as a Service (FaaS) – is an interesting type of cloud service due to its simplicity. An interpretation of serverless computing is that you (with relatively low effort):

  1. Deploy only the function needing to do the work
  2. Only pay per request to the function
    1. With the notable exception of other cloud resources used, e.g. storage
  3. Get some security setup automation/support (e.g. SSL and API keys)
  4. Get support for request throttling (e.g. QPS) and quotas (e.g. per month)
  5. Get (reasonably) low latency – when the serverless function is kept warm
  6. Get support for easily setting up caching
  7. Get support for setting up custom domain name
  8. Lower direct (cloud costs) and indirect (management) costs?

These are characteristics that in my mind make Serverless computing an interesting infrastructure to develop and deploy Thrift APIs (or other types of APIs) for.
Perhaps over time even Serverless will be preferred over (more complex) container (Kubernetes/Docker) or virtual machine based (IaaS) or PaaS solutions for APIs?

2. Example Cloud Vendors providing Serverless Services

  1. AWS Lambda in combination with AWS API Gateway
  2. Google Cloud Functions
  3. IBM Bluemix Openwhisk (Apache Openwhisk)
  4. Microsoft Azure Functions

Since Python is a key language in my team, for this initial test I choose the AWS option also since I am most familiar with AWS and the open source tooling for AWS was best wrt Python (runner up was Microsoft Azure Functions).

3. Thrift (over HTTPS) on AWS Lambda and API Gateway with Python

This shows an example of the (classic) Apache Thrift tutorial Calculator API running on AWS Lambda and API Gateway, the service requires 2 thrift files:

  1. tutorial.thrift
  2. shared.thrift
3.1 Development Environment and Tools

The tool used for deployment in this blog post is Zappa, I recommend using Zappa together with Docker for Python 3.6 as described in this blog post, with a slight change of the Dockerfile if you want to build and compile Apache thrift Python library yourself, here is the altered Dockerfile. There hasn’t been official releases of Apache Thrift since 0.10.0 January 6th 2017, and there has been important improvement related to its Python support since last release – in particular the fix for supporting recursive thrift structs in Python

a. Dockerfile – for creating a Zappashell (same as Lambda runtime ) and builds Thrift

After building this Dockerfile (see command on top of file) and adding zappashell to your .bash_profile like this (source: the above mentioned blog post)

You can start your serverless deployment environment with the command zappashell (inside an new empty directory on your host platform e.g. a mac), this gives something like this – with an empty directory.

Install virtualenv and create/activate an environment(and assuming you installed thrift as shown in Dockerfile above)

Use thrift to generate python code for tutorial.thrift and shared.thrift

Convert the gen-py package into a python library (for convenient packaging) with a setup.py file as below (change version according to your wants)

setup.py

Copy the generated thrift library – note: thrift itself not the tutorial code – (ref thriftSomeVersion.tar.gz generated by python setup.by sdist in Dockerfile) to the same directory and add it to requirements.txt

requirements.txt should look something like this:

Run pip install -r requirements.txt

Create app.py that has code for calculator thrift

Create .aws directory with files:

credentials

config

Run zappa init and answers questions, it should look something like the image below:

you should now be able to deploy the API with

You can test the deployed API with the following client, remember to change the https address to the address that the deploy gave you

But wait, something is missing, this API is reachable by anyone. Let us add an API key (and update the client with the x-api-key). This can be done through AWS Console (and perhaps with Zappa itself through automation soon?) with the following steps:

Go to Amazon API Gateway Console and click on the generated API (perhaps named task-beta due to the Docker file path and the selected stage during zappa init)

Create a Usage Plan and associate it with the API (e.g. task-beta), then create an API Key (on the left side menu) and attach the API Key to the Usage Plan

Do a zappa update dev and and uncomment/update the transport.setCustomHeaders with x-api-key in the python client above to get authentication and throttling in place.

4. Conclusion

Have shown an example of getting thrift API running on Serverless that can relatively easily be automated, and when the API is initially created it is very little effort to update it (e.g. through continuous deployment).

A final note on roundtrip time performance, based on a few rough tests it looks like the roundtrip time for calls to API is around 300-400 milliseconds (with the test client based in Trondheim, Norway and accessing API Gateway in AWS and AWS Lambda in Germany), which is quite good. Believe that with an AWS Route53 Routing Policy one could have automatic selection of the closest AWS API Gateway/Lambda to get the lowest latency (note that one of the selections in zappa init was to deploy globally, but default was one availability zone).

Believe personally that Serverless computing has a strong future ahead wrt API development, and look forward to what cloud vendors software engineers/product managers add of new features, my wish list is:

  1. Strong Python support
  2. Built-in Thrift support and service discovery, as well as support for other RPC systems, e.g. gRPC, messagepack,++
  3. Improved software tooling for automation (e.g. simplified SSL/domain name setup/maintenance handling – get deep partnerships with letsencrypt.com for SSL certificates?)
  4. Increase caching support at various levels

Best regards,

Amund Tveit

Continue Reading

Creative AI on the iPhone (with GAN) and Dynamic Loading of CoreML models

Zedge summer interns developed a very cool app using ARKit and CoreML (on iOS11). As parts of their journey the published 2 blog posts on the Zedge corporate web site related to:

  1. How to develop and run Generative Adversarial Networks (GAN) for Creative AI on the iPhone using Apple’s CoreML tools, check out their blog post about it.
  2. Deep Learning models (e.g. for GAN) can take a lot of space on a mobile device (tens of Megabytes to perhaps even Gigabytes), in order to keep initial app download size relatively low it can be useful to dynamically load only the models you need. Check out their blog post about various approaches for hotswapping CoreML models.

Best regards,

Amund Tveit 

Continue Reading

Convolutional Neural Networks for Self-Driving Cars

This blog post are my notes from project 3 in the term 1 of the Udacity Nanodegree in Self Driving cars. The project is about developing and training a convolutional neural network of camera input (3 different camera angles) from a simulated car.

Best regards,

Amund Tveit

1. Modelling Convolutional Neural Network for Self Driving Car

Used the NVIDIA Autopilot Deep Learning model for self-driving as inspiration (ref: paper “End to End Learning for Self-Driving Cars” – https://arxiv.org/abs/1604.07316 and implementation of it: https://github.com/0bserver07/Nvidia-Autopilot-Keras), but did some changes to it:

  1. Added normalization in the model itself (ref Lambda(lambda x: x/255.0 – 0.5, input_shape=img_input_shape)), since it is likely to be faster than doing it in pure Python.
  2. Added Max Pooling after the first convolution layers, i.e. making the model a more “traditional” conv.net wrt being capable of detecting low level features such as edges (similar to classic networks such as LeNet).
  3. Added Batch Normalization in early layers to be more robust wrt different learning rates
  4. Used he_normal normalization (truncated normal distribution) since this type of normalization with TensorFlow has earlier mattered a lot
  5. Used L2 regularizer (ref: “rule of thumb” – https://www.quora.com/What-is-the-difference-between-L1-and-L2-regularization-How-does-it-solve-the-problem-of-overfitting-Which-regularizer-to-use-and-when )
  6. Made the model (much) smaller by reducing the fully connected layers (got problems running larger model on 1070 card, but in retrospect it was not the model size but my misunderstandings of Keras 2 that caused this trouble)
  7. Used selu (ref: paper “Self-Normalizing Neural Networks” https://arxiv.org/abs/1706.02515) instead of relu as rectifier functions in later layers (fully connected) – since previous experience have shown (with traffic sign classification and tensorflow) showed that using selu gave faster convergence rates (though not better final result).
  8. Used dropout in later layers to avoid overfitting
  9. Used l1 regularization on the final layer, since I’ve seen that it is good for regression problems (better than l2)

Image of Model model Image

Detailed model

####2. Attempts to reduce overfitting in the model

The model contains dropout layers in order to reduce overfitting (ref dropout_1 and dropout_2 in figure above and train_car_to_drive.ipynb).

Partially related: Used also balancing of data sets in the generator, see sample_weight in generator function and snippet below

The model was tested by running it through the simulator and ensuring that the vehicle could stay on the track. See modelthatworked.mp4 file in this github repository.

####3. Model parameter tuning

The model used an adam optimizer, so the learning rate was not tuned manually

####4. Appropriate training data

Used the training data that was provided as part of the project, and in addition added two runs of data to avoid problems (e.g. curve without lane line on the right side – until the bridge started and also a separate training set driving on the bridge). Data is available on https://amundtveit.com/DATA0.tgz).

###Model Architecture and Training Strategy

####1. Solution Design Approach

The overall strategy for deriving a model architecture was to use a conv.net, first tried the previous one I used for Traffic Sign detection based on LeNet, but it didn’t work (probably too big images as input), and then started with the Nvidia model (see above for details about changes to it).

In order to gauge how well the model was working, I split my image and steering angle data into a training and validation set. Primary finding was that numerical performance of the models I tried was not a good predictor of how well it would it perform on actual driving in the simulator. Perhaps overfitting could be good for this task (i.e. memorize track), but I attempted to get a correctly trained model without overfitting (ref. dropout/selu and batch normalization). There were many failed runs before the car actually could drive around the first track.

 

2. Creation of the Training Set & Training Process

I redrove and captured training data for the sections that were problematic (as mentioned the curve without lane lines on right and the bridge and part just before bridge). Regarding center-driving I didn’t get much success adding data for that, but perhaps my rebalancing (ref. generator output above) actually was counter-productive?

For each example line in the training data I generated 6 variants (for data augmentetation), i.e. flipped image (along center vertical axis) + also used the 3 different cameras (left, center and right) with adjustments for the angle.

After the collection process, I had 10485 lines in driving_log.csv, i.e. number of data points = 62430 (6*10485). Preprocessing used to flip image, convert images to numpy arrays and also (as part of Keras model) to scale values. Also did cropping of the image as part of the model. I finally randomly shuffled the data set and put 20 of the data into a validation set, see generator for details. Examples of images (before cropping inside model) is shown below:

Example of center camera image

center Image

Example of flipped center camera image

flippedcenter Image

Example of left camera image

left Image

Example of right camera image

right Image

generator

I used this training data for training the model. The validation helped determine if the model was over or under fitting. The ideal number of epochs was 5 as evidenced by the quick flattening of loss and validation loss (to around 0.03), in earlier runs validation loss increased above training loss when having more epochs. I used an adam optimizer so that manually training the learning rate wasn’t necessary.

3. Challenges

Challenges along the way – found it to be a very hard task, since the model loss and validation loss weren’t good predictors for actual driving performance, also had cases when adding more training data with nice driving data (at the center and far from the edges) actually gave worse results and made the car drive off the road. Other challenges were Keras 2 related, the semantics of parameters in Keras 1 and Keras 2 fooled me a bit using Keras 2, ref the steps_per_epoch. Also had issues with the progress bar not working in Keras 2 in Jupyter notebook, so had to use 3rd party library https://pypi.python.org/pypi/keras-tqdm/2.0.1

Continue Reading

Deep Learning in Energy Production

This blog post has recent publications about use of Deep Learning in Energy Production context (wind, gas and oil), e.g. wind power prediction, turbine risk assessment, reservoir discovery and price forecasting.

Best regards,

Amund Tveit

Wind

Year  Title Author
2017 Short-term Wind Energy Prediction Algorithm Based on SAGA-DBNs  W Fei, WU Zhong
2017 Wind Power Prediction using Deep Neural Network based Meta Regression and Transfer Learning  AS Qureshi, A Khan, A Zameer, A Usman
2017 Wind Turbine Failure Risk Assessment Model Based on DBN  C Fei, F Zhongguang
2017 The optimization of wind power interval forecast  X Yu, H Zang
2016 Deep Learning for Wind Speed Forecasting in Northeastern Region of Brazil  AT Sergio, TB Ludermir
2016 A very short term wind power prediction approach based on Multilayer Restricted Boltzmann Machine  X Peng, L Xiong, J Wen, Y Xu, W Fan, S Feng, B Wang
2016 Short-term prediction of wind power based on deep Long Short-Term Memory  Q Xiaoyun, K Xiaoning, Z Chao, J Shuai, M Xiuda
2016 Deep belief network based deterministic and probabilistic wind speed forecasting approach  HZ Wang, GB Wang, GQ Li, JC Peng, YT Liu
2016 A hybrid wind power prediction method  Y Tao, H Chen
2016 Deep learning based ensemble approach for probabilistic wind power forecasting  H Wang, G Li, G Wang, J Peng, H Jiang, Y Liu
2016 A hybrid wind power forecasting model based on data mining and wavelets analysis  R Azimi, M Ghofrani, M Ghayekhloo
2016 ELM Based Representational Learning for Fault Diagnosis of Wind Turbine Equipment  Z Yang, X Wang, PK Wong, J Zhong
2015 Deep Neural Networks for Wind Energy Prediction  D Díaz, A Torres, JR Dorronsoro
2015 Predictive Deep Boltzmann Machine for Multiperiod Wind Speed Forecasting  CY Zhang, CLP Chen, M Gan, L Chen
2015 Resilient Propagation for Multivariate Wind Power Prediction  J Stubbemann, NA Treiber, O Kramer
2015 Transfer learning for short-term wind speed prediction with deep neural networks  Q Hu, R Zhang, Y Zhou
2014 Wind Power Prediction and Pattern Feature Based on Deep Learning Method  Y Tao, H Chen, C Qiu

Gas

Year  Title Author
2017   Sample Document–Inversion Of The Permeability Of A Tight Gas Reservoir With The Combination Of A Deep Boltzmann Kernel …  L Zhu, C Zhang, Y Wei, X Zhou, Y Huang, C Zhang
2017   Deep Learning: Chance and Challenge for Deep Gas Reservoir Identification  C Junxing, W Shikai
2016   Finite-sensor fault-diagnosis simulation study of gas turbine engine using information entropy and deep belief networks  D Feng, M Xiao, Y Liu, H Song, Z Yang, Z Hu
2015   On Accurate and Reliable Anomaly Detection for Gas Turbine Combustors: A Deep Learning Approach  W Yan, L Yu
2015   A Review of Datasets and Load Forecasting Techniques for Smart Natural Gas and Water Grids: Analysis and Experiments.  M Fagiani, S Squartini, L Gabrielli, S Spinsante
2015   Short-term load forecasting for smart water and gas grids: A comparative evaluation  M Fagiani, S Squartini, R Bonfigli, F Piazza
2015   The early-warning model of equipment chain in gas pipeline based on DNN-HMM  J Qiu, W Liang, X Yu, M Zhang, L Zhang

Oil

Year  Title Author
2017   Development of a New Correlation for Bubble Point Pressure in Oil Reservoirs Using Artificial Intelligent Technique  S Elkatatny, M Mahmoud
2017   A deep learning ensemble approach for crude oil price forecasting  Y Zhao, J Li, L Yu
2016   Automatic Detection and Classification of Oil Tanks in Optical Satellite Images Based on Convolutional Neural Network  Q Wang, J Zhang, X Hu, Y Wang
2015   A Hierarchical Oil Tank Detector With Deep Surrounding Features for High-Resolution Optical Satellite Imagery  L Zhang, Z Shi, J Wu
Continue Reading

Lane Finding (on Roads) for Self Driving Cars with OpenCV

This blog post is a (basic) approach of how to potentially use OpenCV for Lane Finding for self-driving cars (i.e. the yellow and white stripes along the road) – did this as one of the projects of term 1 of Udacity’s self-driving car nanodegree (highly recommended online education!).

Disclaimer: the approach presented in this blog post is way to simple to use for an actual self-driving car, but was a good way (for me) to learn more about (non-deep learning based) computer vision and the lane finding problem.

See github.com/atveit/LaneFindingForSelfDrivingCars for more details about the approach (python code)

Best regards,

Amund Tveit

Lane Finding (On Roads) for Self Driving Cars with OpenCV

1. First I selected the region of interest (with hand-made vertices)

2. Converted the image to grayscale

3. Extracted likely white lane information from the grayscale image.

Used 220 as limit (255 is 100% white, but 220 is close enough)

4. Extracted likely yellow lane information from the (colorized) region of interest image.

RGB for Yellow is [255,255,0] but found [220,220,30] to be close enough

5. Converted the yellow lane information image to grayscale

6. Combined the likely yellow and white lane grayscale images into a new grayscale image (using max value)

7. Did a gaussian blur (with kernel size 3) followed by canny edge detection

Gaussian blur smooths out the image using Convolution, this is reduce false signalling to the (canny) edge detector

8. Did a hough (transform) image creation, I also modified the draw_lines function (see GitHub link above) by calculating average derivative and b value (i.e. calculating y = x-b for all the hough lines to find a and b, and then average over them).

For more information about Hough Transform, check out this hough transformation tutorial.

(side note: believe it perhaps could have been smarter to use hough line center points instead of hough lines, since the directions of them seem sometimes a bit unstable, and then use average of derivatives between center points instead)

9. Used the weighted image to overlay the hough image with lane detection on top of the original image

Continue Reading

Traffic Sign Detection with Convolutional Neural Networks

Making Self-driving cars work requires several technologies and methods to pull in the same direction (e.g. Radar/Lidar, Camera, Control Theory and Deep Learning). The online available Self-Driving Car Nanodegree from Udacity (divided into 3 terms) is probably the best way to learn more about the topic (see [Term 1], [Term 2] and [Term 3] for more details about each term), the coolest part is that you actually can run your code on an actual self-driving car towards the end of term 3 (I am currently in the middle of term 1 – highly recommended course!).

Note: before taking this course I recommend taking Udacity’s Deep Learning Nanodegree Foundations since most (term 1) projects requires some hands-on experience with Deep Learning.

Traffic Sign Detection with Convolutional Neural Networks

This blog post is a writeup of my (non-perfect) approach for German traffic sign detection (a project in the course) with Convolutional Neural networks (in TensorFlow) – a variant of LeNet with Dropout and (the new) SELU – Self-Normalizing Neural Networks. The effect of SELU was primarily that it quickly gained classification accuracy (even in first epoch), but didn’t lead to higher accuracy than using batch-normalisation + RELU in the end. (Details at: github.com/atveit/TrafficSignClassification). Data Augmentation in particular and perhaps a deeper network could have improved the performance I believe.

For other approaches (e.g. R-CNN and cascaded deep networks) see the blog post: Deep Learning for Vehicle Detection and Recognition.

UPDATE – 2017-July-15:

If you thought Traffic Sign Detection from modern cars was an entire solved problem, think again:

TeslaTrafficSign

 

Best regards,

Amund Tveit

1. Basic summary of the German Traffic Sign Data set.

I used numpy shape to calculate summary statistics of the traffic signs data set:

  • The size of training set is ? 34799
  • The size of the validation set is ? 4410
  • The size of test set is ? 12630
  • The shape of a traffic sign image is ? 32x32x3 (3 color channels, RGB)
  • The number of unique classes/labels in the data set is ? 43

2. Visualization of the train, validation and test dataset.

Here is an exploratory visualization of the data set. It is a bar chart showing how the normalized distribution of data for the 43 traffic signs. The key takeaway is that the relative number of data points varies quite a bit between each class, e.g. from around 6.5% (e.g. class 1) to 0.05% (e.g. class 37), i.e. a factor of at least 12 difference (6.5% / 0.05%), this can potentially impact classification performance.

alt text

3 Design of Architecture

3.1 Preprocessing of images

Did no grayscale conversion or other conversion of train/test/validation images (they were preprocessed). For the images from the Internet they were read from using PIL and converted to RGB (from RBGA), resized to 32×32 and converted to numpy array before normalization.

All images were normalized pixels in each color channel (RGB – 3 channels with values between 0 to 255) to be between -0.5 to 0.5 by dividing by (128-value)/255. Did no data augmentation.

Here are sample images from the training set

alt text

3.2 Model Architecture

Given the relatively low resolution of Images I started with Lenet example provided in lectures, but to improve training I added Dropout (in early layers) with RELU rectifier functions. Recently read about self-normalizing rectifier function – SELU – so decided to try that instead of RELU. It gave no better end result after many epochs, but trained much faster (got > 90% in one epoch), so kept SELU in the original. For more information about SELU check out the paper Self-Normalizing Neural Networks from Johannes Kepler University in Linz, Austria.

My final model consisted of the following layers:

Layer Description
Input 32x32x3 RGB image
Convolution 5×5 1×1 stride, valid padding, outputs 28x28x6
Dropout keep_prob = 0.9
SELU
Max Pooling 2×2 stride, outputs 14x14x6
Convolution 5×5 1×1 stride, valid padding, outputs 10x10x16
SELU
Dropout keep_prob = 0.9
Max Pooling 2×2 stride, outputs 5x5x16
Flatten output dimension 400
Fully connected output dimension 120
SELU
Fully connected output dimension 84
SELU
Fully connected output dimension 84
SELU
Fully connected output dimension 43

3.3 Training of Model

To train the model, I used an Adam optimizer with learning rate of 0.002, 20 epochs (converged fast with SELU) and batch size of 256 (ran on GTX 1070 with 8GB GPU RAM)

3.4 Approach to find solution and getting accuracy > 0.93

Adding dropout to Lenet improved test accuracy and SELU improved training speed. The originally partitioned data sets were quite unbalanced (when plotting), so reading all data, shuffling and creating training/validation/test set also helped. I thought about using Keras and fine tuning a pretrained model (e.g. inception 3), but it could be that a big model on such small images could lead to overfitting (not entirely sure about that though), and reducing input size might lead to long training time (looks like fine tuning is best when you have the same input size, but changing the output classes)

My final model results were:

  • validation set accuracy of 0.976 (between 0.975-0.982)
  • test set accuracy of 0.975

If an iterative approach was chosen:

  • What was the first architecture that was tried and why was it chosen?

Started with Lenet and incrementally added dropout and then several SELU layers.. Also added one fully connected layer more.

  • What were some problems with the initial architecture?

No, but not great results before adding dropout (to avoid overfitting)

  • Which parameters were tuned? How were they adjusted and why?

Tried several combinations learning rates. Could reduce epochs after adding SELU. Used same dropout keep rate.

Since the difference between validation accuracy and test accuracy is very low the model seems to be working well. The loss is also quite low (0.02), so little to gain most likely – at least without changing the model a lot.

4 Test a Model on New Images

4.1. Choose five German traffic signs found on the web

Here are five German traffic signs that I found on the web:

alt text

In the first pick of images I didn’t check that the signs actually were among the the 43 classes the model was built for, and that was actually not the case, i.e. making it impossible to classify correctly. But got interesting results (regarding finding similar signs) for the wrongly classified ones, so replaced only 2 of them with sign images that actually was covered in the model, i.e. making it still impossible to classify 3 of them.

Here are the results of the prediction:

Image Prediction
Priority road Priority road
Side road Speed limit (50km/h)
Adult and child on road Turn left ahead
Two way traffic ahead Beware of ice/snow
Speed limit (60km/h) Speed limit (60km/h)

The model was able to correctly guess 2 of the 5 traffic signs, which gives an accuracy of 40%. For the other ones it can`t classify correctly, but the 2nd prediction for sign 3 – “adult and child on road” – is interesting since it suggests “Go straight or right” – which is quite visually similar (if you blur the innermost of each sign you will get almost the same image).

Continue Reading

Deep Learning for Emotion Recognition and Simulation

This blog post has recent publications about applying Deep Learning methods for emotion recognition (e.g. from voice, music, visual OR EEG input) and simulation (e.g. for robots).

The quote “Emotion is what makes us human” from a Human Computer Interaction (HCI) perspective be interpreted as: “For computers to properly communicate with humans they need to recognize human emotion, and simulate the appropriate emotion when communicating with humans”. Wikipedia describes emotion as:

    Emotion is any conscious experience characterized by intense mental activity and a high degree of pleasure or displeasure.Scientific discourse has drifted to other meanings and there is no consensus on a definition. Emotion is often intertwined with mood, temperament, personality, disposition, and motivation. In some theories, cognition is an important aspect of emotion. Those acting primarily on the emotions they are feeling may seem as if they are not thinking, but mental processes are still essential, particularly in the interpretation of events. For example, the realization of our believing that we are in a dangerous situation and the subsequent arousal of our body’s nervous system (rapid heartbeat and breathing, sweating, muscle tension) is integral to the experience of our feeling afraid. Other theories, however, claim that emotion is separate from and can precede cognition.

Best regards,
Amund Tveit

Year  Title Author
2017   End-to-End Multimodal Emotion Recognition using Deep Neural Networks  P Tzirakis, G Trigeorgis, MA Nicolaou, B Schuller
2017   EEG-based emotion recognition using hierarchical network with subnetwork nodes  Y Yang, QMJ Wu, WL Zheng, BL Lu
2017   Multimodal architecture for emotion in robots using deep learning  M Ghayoumi, AK Bansal
2017   Attentive Convolutional Neural Network based Speech Emotion Recognition: A Study on the Impact of Input Features, Signal Length, and Acted Speech  M Neumann, NT Vu
2017   Learning Affective Features with a Hybrid Deep Model for Audio-Visual Emotion Recognition  S Zhang, S Zhang, T Huang, W Gao, Q Tian
2017   A Literature Review on Emotion Recognition Using Various Methods  R Khan, O Sharif
2017   Evaluating deep learning architectures for Speech Emotion Recognition  HM Fayek, M Lech, L Cavedon
2017   Emotion Recognition from Scrambled Facial Images via Many Graph Embedding  R Jiang, ATS Ho, I Cheheb, N Al
2017   Prediction-based learning for continuous emotion recognition in speech  J Han, Z Zhang, F Ringeval, B Schuller
2017   Deep learning and SVM‐based emotion recognition from Chinese speech for smart affective services  W Zhang, D Zhao, Z Chai, LT Yang, X Liu, F Gong
2017   Deep spatio-temporal features for multimodal emotion recognition  D Nguyen, K Nguyen, S Sridharan, A Ghasemi, D Dean
2017   Imitation of human expressions based on emotion estimation by mental simulation  T Horii, Y Nagai, M Asada
2017   On Line Emotion Detection Using Retrainable Deep Neural Networks  D Kollias, A Tagaris, A Stafylopatis
2017   Quantum-inspired associative memories for incorporating emotion in a humanoid/Naoki Masuyama  M Naoki
2017   Respiration-based emotion recognition with deep learning  Q Zhang, X Chen, Q Zhan, T Yang, S Xia
2017   Wearable Biosensor Network Enabled Multimodal Daily-life Emotion Recognition Employing Reputation-driven Imbalanced Fuzzy Classification  Y Dai, X Wang, P Zhang, W Zhang
2016   Towards real-time Speech Emotion Recognition using deep neural networks  HM Fayek, M Lech, L Cavedon
2016   A Multi-task Learning Framework for Emotion Recognition Using 2D Continuous Space  R Xia, Y Liu
2016   Collaborative expression representation using peak expression and intra class variation face images for practical subject-independent emotion recognition in videos  SH Lee, WJ Baddar, YM Ro
2016   TrueHappiness: Neuromorphic Emotion Recognition on TrueNorth  PU Diehl, BU Pedroni, A Cassidy, P Merolla, E Neftci
2016   Discriminatively Trained Recurrent Neural Networks for Continuous Dimensional Emotion Recognition from Audio  F Weninger, F Ringeval, E Marchi, B Schuller
2016   Feature Transfer Learning for Speech Emotion Recognition  J Deng
2016   Emotion Recognition in Speech with Deep Learning Architectures  M Erdal, M Kächele, F Schwenker
2016   Error-correcting output codes for multi-label emotion classification  C Li, Z Feng, C Xu
2016   Software Effort Estimation Framework To Improve Organization Productivity Using Emotion Recognition Of Software Engineers In …  BP Rao, PS Ramaiah
2016   How Deep Neural Networks Can Improve Emotion Recognition on Video Data  P Khorrami, TL Paine, K Brady, C Dagli, TS Huang
2016   Automatic emotion recognition in the wild using an ensemble of static and dynamic representations  MM Ghazi, HK Ekenel
2016   HoloNet: towards robust emotion recognition in the wild  A Yao, D Cai, P Hu, S Wang, L Sha, Y Chen
2016   Deep learning driven hypergraph representation for image-based emotion recognition  Y Huang, H Lu
2016   A Review on Deep Learning Algorithms for Speech and Facial Emotion Recognition  CP Latha, M Priya
2016   Novel Affective Features For Multiscale Prediction Of Emotion In Music  N Kumar, T Guha, CW Huang, C Vaz, SS Narayanan
2016   Facial emotion detection using deep learning  DL Spiers
2016   Speech Emotion Recognition Based on Deep Belief Networks and Wavelet Packet Cepstral Coefficients.  Y Huang, A Wu, G Zhang, Y Li
2016   Audio-Video Based Multimodal Emotion Recognition Using SVMs and Deep Learning  B Sun, Q Xu, J He, L Yu, L Li, Q Wei
2016   Transfer Learning of Deep Neural Network for Speech Emotion Recognition  Y Huang, M Hu, X Yu, T Wang, C Yang
2016   Feature Learning via Deep Belief Network for Chinese Speech Emotion Recognition  S Zhang, X Zhao, Y Chuang, W Guo, Y Chen
2016   Multiagent Social Influence Detection Based on Facial Emotion Recognition  P Mishra, R Hadfi, T Ito
2016   Emotion Recognition from Speech Signals Using Deep Learning Methods  S Pathak, MV Kolhe
2016   Emotion Recognition Using Facial Expression Images for a Robotic Companion  V Palade
2016   Multimodal Emotion Recognition Using Multimodal Deep Learning  W Liu, WL Zheng, BL Lu
2016   Self-Configuring Ensemble of Neural Network Classifiers for Emotion Recognition in the Intelligent Human-Machine Interaction  E Sopov, I Ivanov
2016   The Role of Emotion and Context in Musical Preference  Y Song
2016   Facing Realism in Spontaneous Emotion Recognition from Speech: Feature Enhancement by Autoencoder with LSTM Neural Networks  Z Zhang, F Ringeval, J Han, J Deng, E Marchi
2016   The University of Passau Open Emotion Recognition System for the Multimodal Emotion Challenge  J Deng, N Cummins, J Han, X Xu, Z Ren, V Pandit
2016   Building a large scale dataset for image emotion recognition: The fine print and the benchmark  Q You, J Luo, H Jin, J Yang
2016   Emotion Prediction from User-Generated Videos by Emotion Wheel Guided Deep Learning  CT Ho, YH Lin, JL Wu
2016   Emotion Recognition Using Multimodal Deep Learning  W Liu, WL Zheng, BL Lu
2016   FDBN: Design and development of Fractional Deep Belief Networks for speaker emotion recognition  K Mannepalli, PN Sastry, M Suman
2016   A novel Adaptive Fractional Deep Belief Networks for speaker emotion recognition  K Mannepalli, PN Sastry, M Suman
2016   Affect and Legal Education: Emotion in Learning and Teaching the Law  C Maughan
2016   Unsupervised domain adaptation for speech emotion recognition using PCANet  Z Huang, W Xue, Q Mao, Y Zhan
2016   Learning Auditory Neural Representations for Emotion Recognition  P Barros, C Weber, S Wermter
2016   Towards an” In-the-Wild” Emotion Dataset Using a Game-based Framework  W Li, F Abtahi, C Tsangouri, Z Zhu
2016   Deep Learning for Emotion Recognition in Faces  A Ruiz
2016   Emotion Classification on face images  M Jorda, N Miolane, A Ng
2016   Paralinguistic Speech Recognition: Classifying Emotion in Speech with Deep Learning Neural Networks  ER Segal
2016   Architecture of Emotion in Robots Using Convolutional Neural Networks  M Ghayoumi, AK Bansal
2016   Emotion recognition from face dataset using deep neural nets  D Das, A Chakrabarty
2016   Recognize the facial emotion in video sequences using eye and mouth temporal Gabor features  PI Rani, K Muneeswaran
2016   Deep Learning Based Emotion Recognition from Chinese Speech  W Zhang, D Zhao, X Chen, Y Zhang
2016   Bi-Modal Music Emotion Recognition: Novel Lyrical Features and Dataset  R Malheiro, R Panda, P Gomes, R Paiva
2016   Speech Emotion Recognition Using Voiced Segment Selection Algorithm  Y Gu, E Postma, HX Lin, J van den Herik
2015   Multi-modal Dimensional Emotion Recognition using Recurrent Neural Networks  S Chen, Q Jin
2015   Quantification of Cinematography Semiotics for Video-based Facial Emotion Recognition in the EmotiW 2015 Grand Challenge  AC Cruz
2015   EEG Based Emotion Identification Using Unsupervised Deep Feature Learning  X Li, P Zhang, D Song, G Yu, Y Hou, B Hu
2015   Pattern-Based Emotion Classification on Social Media  E Tromp, M Pechenizkiy
2015   Investigating Critical Frequency Bands and Channels for EEG-based Emotion Recognition with Deep Neural Networks  WL Zheng, BL Lu
2015   Revealing critical channels and frequency bands for emotion recognition from EEG with deep belief network  WL Zheng, HT Guo, BL Lu
2015   Analysis of Physiological for Emotion Recognition with IRS Model  C Li, C Xu, Z Feng
2015   Emotion Recognition in the Wild via Convolutional Neural Networks and Mapped Binary Patterns  G Levi, T Hassner
2015   Negative Emotion Recognition in Spoken Dialogs  X Zhang, H Wang, L Li, M Zhao, Q Li
2015   Combining Multimodal Features within a Fusion Network for Emotion Recognition in the Wild  B Sun, L Li, G Zhou, X Wu, J He, L Yu, D Li, Q Wei
2015   Recurrent Neural Networks for Emotion Recognition in Video  S Ebrahimi Kahou, V Michalski, K Konda, R Memisevic
2015   A Deep Feature based Multi-kernel Learning Approach for Video Emotion Recognition  W Li, F Abtahi, Z Zhu
2015   Learning Speech Emotion Features by Joint Disentangling-Discrimination  W Xue, Z Huang, X Luo, Q Mao
2015   Data selection for acoustic emotion recognition: Analyzing and comparing utterance and sub-utterance selection strategies  D Le, EM Provost
2015   Leveraging Inter-rater Agreement for Audio-Visual Emotion Recognition  Y Kim, EM Provost
2015   The Research on Cross-Language Emotion Recognition Algorithm for Hearing Aid  X Shulan, W Jilin
2015   Optimized multi-channel deep neural network with 2D graphical representation of acoustic speech features for emotion recognition  MN Stolar, M Lech, IS Burnett
2015   EmoNets: Multimodal deep learning approaches for emotion recognition in video  SE Kahou, X Bouthillier, P Lamblin, C Gulcehre
2015   Deep learninig of EEG signals for emotion recognition  Y Gao, HJ Lee, RM Mehmood
2015   Emotion Recognition & Classification using Neural Networks  K Koupidis, A Ioannis
2015   Emotion recognition from embedded bodily expressions and speech during dyadic interactions  PM Müller, S Amin, P Verma, M Andriluka, A Bulling
2015   Speech emotion recognition with unsupervised feature learning  Z HUANG, W XUE, Q MAO
2015   Emotion identification by facial landmarks dynamics analysis  A Bandrabur, L Florea, C Florea, M Mancas
2014   Speech Emotion Recognition Using CNN  Z Huang, M Dong, Q Mao, Y Zhan
2014   Multi-scale Temporal Modeling for Dimensional Emotion Recognition in Video  L Chao, J Tao, M Yang, Y Li, Z Wen
2014   Improving generation performance of speech emotion recognition by denoising autoencoders  L Chao, J Tao, M Yang, Y Li
2014   Acoustic emotion recognition using deep neural network  J Niu, Y Qian, K Yu
2014   Prosodic, spectral and voice quality feature selection using a long-term stopping criterion for audio-based emotion recognition  M Kächele, D Zharkov, S Meudt, F Schwenker
2014   Emotion Recognition in the Wild with Feature Fusion and Multiple Kernel Learning  JK Chen, Z Chen, Z Chi, H Fu
2014   Emotion Modeling and Machine Learning in Affective Computing  K Kim
2014   A Study of Deep Belief Network Based Chinese Speech Emotion Recognition  B Chen, Q Yin, P Guo
Continue Reading

Deep Learning for Protein(omics)

This blog post has recent publications related to Deep Learning for proteinomics (the study of proteins). Proteins are a set of molecules in the human (and animal) bodies (probably best known for their role related to muscle mass and in DNA replication).

Wikipedia describes proteins as:

    Proteins (/ˈproʊˌtiːnz/ or /ˈproʊti.ᵻnz/) are large biomolecules, or macromolecules, consisting of one or more long chains of amino acid residues. Proteins perform a vast array of functions within organisms, including catalysing metabolic reactions, DNA replication, responding to stimuli, and transporting molecules from one location to another. Proteins differ from one another primarily in their sequence of amino acids, which is dictated by the nucleotide sequence of their genes, and which usually results in protein folding into a specific three-dimensional structure that determines its activity.

Best regards,
Amund Tveit (WeChat ID: AmundTveit)

Year  Title Author
2017   Deep Recurrent Neural Network for Protein Function Prediction from Sequence  XL Liu
2017   Sequence-based prediction of protein protein interaction using a deep-learning algorithm  T Sun, B Zhou, L Lai, J Pei
2017   Protein Model Quality Assessment: A Machine Learning Approach  K Uziela
2017   Deep convolutional neural networks for detecting secondary structures in protein density maps from cryo-electron microscopy  R Li, D Si, T Zeng, S Ji, J He
2017   Towards recognition of protein function based on its structure using deep convolutional networks  A Tavanaei, AS Maida, A Kaniymattam
2017   Improved protein model quality prediction by changing the target function  K Uziela, D Menendez Hurtado, N Shu, B Wallner
2017   A Novel Model Based On Fcm-Lm Algorithm For Prediction Of Protein Folding Rate  L Liu, M Ma, J Cui
2017   EPSILON-CP: using deep learning to combine information from multiple sources for protein contact prediction  K Stahl, M Schneider, O Brock
2017   Prediction of protein function using a deep convolutional neural network ensemble  EI Zacharaki
2017   Protein Function Prediction using Deep Restricted Boltzmann Machines  X Zou, G Wang, G Yu
2017   Next-Step Conditioned Deep Convolutional Neural Networks Improve Protein Secondary Structure Prediction  A Busia, N Jaitly
2017   Predicting membrane protein contacts from non-membrane proteins by deep transfer learning  Z Li, S Wang, Y Yu, J Xu
2017   A Template-Based Protein Structure Reconstruction Method Using Deep Autoencoder Learning  H Li, Q Lyu, J Cheng
2017   DNpro: A Deep Learning Network Approach to Predicting Protein Stability Changes Induced by Single-Site Mutations  X Zhou, J Cheng
2017   Computational Methods for the Prediction of Drug-Target Interactions from Drug Fingerprints and Protein Sequences by Stacked Auto-Encoder Deep Neural Network  L Wang, ZH You, X Chen, SX Xia, F Liu, X Yan, Y Zhou
2017   Multi-task Deep Neural Networks in Automated Protein Function Prediction  AS Rifaioglu, T Doğan, MJ Martin, R Cetin
2016   AUC-Maximized Deep Convolutional Neural Fields for Protein Sequence Labeling  S Wang, S Sun, J Xu
2016   Evaluation of Protein Structural Models Using Random Forests  R Cao, T Jo, J Cheng
2016   A Protein Domain and Family Based Approach to Rare Variant Association Analysis  TG Richardson, HA Shihab, MA Rivas, MI McCarthy
2016   Protein Sequencing And Neural Network Classification Methods  V Indarni, SK Terala, PV Bhushan, MR Ireddy
2016   Accurate prediction of docked protein structure similarity using neural networks and restricted Boltzmann machines  R Farhoodi, B Akbal
2016   Identification of thermostabilizing mutations for a membrane protein whose three‐dimensional structure is unknown  Y Kajiwara, S Yasuda, Y Takamuku, T Murata
2016   Identification of Genetic Sequences Recognized by Human SC35 Protein Using Artificial Neural Networks: A Deep Learning Approach  AJ Luke, S Fergione
2016   MUST-CNN: A MUltilayer Shift-and-sTitch Deep Convolutional Architecture for Sequence-based Protein Structure Prediction  Z Lin, Y Qi
2016   Protein Secondary Structure Prediction Using Deep Multi-scale Convolutional Neural Networks and Next-Step Conditioning  A Busia, J Collins, N Jaitly
2016   A computational framework for disease grading using protein signatures  E Zerhouni, B Prisacari, Q Zhong, P Wild, M Gabrani
2016   ProtPOS: a python package for the prediction of protein preferred orientation on a surface  JCF Ngai, PI Mak, SWI Siu
2016   DeepQA: Improving the estimation of single protein model quality with deep belief networks  R Cao, D Bhattacharya, J Hou, J Cheng
2016   Protein contact prediction from amino acid co-evolution using convolutional networks for graph-valued images  V Golkov, MJ Skwark, A Golkov, A Dosovitskiy, T Brox
2016   Protein Secondary Structure Prediction by using Deep Learning Method  Y Wang, H Mao, Z Yi
2016   On the importance of composite protein multiple ligand interactions in protein pockets  S Tonddast‐Navaei, B Srinivasan, J Skolnick
2016   Protein function in precision medicine: deep understanding with machine learning  B Rost, P Radivojac, Y Bromberg
2016   Protein Residue-Residue Contact Prediction Using Stacked Denoising Autoencoders  IV Luttrell, J Bailey
2016   Protein Residue Contacts and Prediction Methods  B Adhikari, J Cheng
2016   RaptorX-Property: a web server for protein structure property prediction.  S Wang, W Li, S Liu, J Xu
2016   AUCpreD: proteome-level protein disorder prediction by AUC-maximized deep convolutional neural fields  S Wang, J Ma, J Xu
2016   Benchmarking Deep Networks for Predicting Residue-Specific Quality of Individual Protein Models in CASP11  T Liu, Y Wang, J Eickholt, Z Wang
2015   Theory, Methods, and Applications of Coevolution in Protein Contact Prediction  J Ma, S Wang
2015   A topological approach for protein classification  Z Cang, L Mu, K Wu, K Opron, K Xia, GW Wei
2015   Application of Learning to Rank to protein remote homology detection  B Liu, J Chen, X Wang
2015   Improving Protein Fold Recognition by Deep Learning Networks  T Jo, J Hou, J Eickholt, J Cheng
2015   Proteins, physics and probability kinematics: a Bayesian formulation of the protein folding problem  T Hamelryck, W Boomsma, J Ferkinghoff
2015   DeepCNF-D: Predicting Protein Order/Disorder Regions by Weighted Deep Convolutional Neural Fields  S Wang, S Weng, J Ma, Q Tang
2015   A deep learning framework for modeling structural features of RNA-binding protein targets  S Zhang, J Zhou, H Hu, H Gong, L Chen, C Cheng
2015   A serum protein test for improved prognostic stratification of patients with myelodysplastic syndrome (MDS)  J Roder, J Löffler
2015   An Overview of Practical Applications of Protein Disorder Prediction and Drive for Faster, More Accurate Predictions  X Deng, J Gumm, S Karki, J Eickholt, J Cheng
2015   A panel of mass spectrometry based serum protein tests for predicting graft-versus-host disease (GvHD) and its severity  H Roder, AC Hoffmann, J Roder, M Koldehoff
2015   Learning Deep Architectures for Protein Structure Prediction  K Baek
2015   Protein secondary structure prediction using deep convolutional neural fields  S Wang, J Peng, J Ma, J Xu
2015   Protein sequence labelling by AUC-maximized Deep Convolutional Neural Fields  S Wang, J Ma, S Sun, J Xu
2015   Fast loop modeling for protein structures  J Zhang, S Nguyen, Y Shang, D Xu, I Kosztin
2015   Introducing Students to Protein Analysis Techniques: Separation and Comparative Analysis of Gluten Proteins in Various Wheat Strains  AL Pirinelli, JC Trinidad, NLB Pohl
2014   Predicting backbone Cα angles and dihedrals from protein sequences by stacked sparse auto‐encoder deep neural network  J Lyons, A Dehzangi, R Heffernan, A Sharma
2014   Improved contact predictions using the recognition of protein like contact patterns.  MJ Skwark, D Raimondi, M Michel, A Elofsson
Continue Reading
1 2 3 6

Support this blog?

[cryptodonation address="16QtH1FpzkghMNRS6wpUdV3whupYsKNPoR"]