/deep_learning_ecology

Educational Resources on Neural Networks for Ecology and Remote Sensing

Primary LanguageJupyter NotebookMIT LicenseMIT

Deep Learning for Ecology

Welcome to a brief overview of the applications of deep learning to ecology and remote sensing!

Quick Resources

What is Machine Learning? [video - 2 min]

What are Neural Networks? [video - 20 min]

Applications for Deep Learning in Ecology [paper ~ 20 min] - very short, make sure you actually read it!

A Computer Vision for Ecology [paper ~15 min] - ideally read but at least skim, look at figures and read case studies

Running the Code in the Cloud (easier)

We will be using a cloud based Jupyter Notebook environment, Google's Colaboratory to run code. You must then sign in to Colab with a Google account and then click File > Open Notebook > GitHub and then copy in the url 'https://github.com/patrickcgray/deep_learning_ecology' and all the notebooks in this Github repo will appear. If you don't want to run the code all the notebooks can be viewed on Github.

Running the Code Locally (more advanced)

In order to run locally you need to have Python 3+ and TensorFlow installed. We will be doing our development in IPython notebooks, so you'll need to have Jupyter installed as well. If you don't already have the aforementioned software installed and want to work locally, please go through the notebook labeled TensorFlow_Installation.ipynb. Installing these tools should take about 5-10 minutes.

More Resources for the Repo

For a better understanding of these topics I recommend some background knowledge on scientific computing in Python. If you are unfamiliar with IPython notebooks or Python coding environments, a brief introduction can be found in Coding_Environments.ipynb.

If you haven't used Python before, or want a refresher, I recommend Python Like You Mean It, by Ryan Soklaski. This free e-book consists of five short modules introducing Python for scientific computing and data analysis. Modules 1 and 2, on installing Python and Python essentials, will be especially useful. Module 3, which concerns the manipulation of matrices and vectors in Python, is very relevant as well.

Finally, Git is an incredibly useful tool and the most seamless way to keep your files up-to-date when working on a team. You do this by cloning/forking repositories and pulling and pushing changes. If you need a primer on Git, there's one available in Git_Basics.ipynb, but learning how to use Git isn't required; I'll distribute the materials in other ways as well.

Getting Serious about Deep Learning for Ecology

If you're interested in pursuing these topics more rigorously I highly recommend: