Skip to content

The sophia project is the coding-based tutorial for machine intelligence (MI) and artificial intelligence (AI).

License

Notifications You must be signed in to change notification settings

jiankaiwang/sophia

Repository files navigation

Sophia

Build Status

The Sophia project is the tutorial for machine intelligence (MI), artificial intelligence (AI), basic mathematics, basic statistics. The whole document and implement are mainly based on Python and R, and several topics are implemented via other programming languages, i.e. C++, Javascript, Nodejs, Swift and Golang, etc. In this project, we introduce machine learning (ML) / deep learning (DL) models mainly based on sci-kit learn, Keras, and Tensorflow, and some topics might rely on other related libraries. We try to provide everyone with more applicable tutorials for MI and AI.

Please enjoy it.

Content

Theories and Mechanism

This section is the tutorial of basic theories about deep learning. We discuss how to design a model and how to train it. Furthermore, we discuss lots of details about the mechanism of well-designed training and try to implement those from scratch. Please refer to the repository, jiankaiwang/deep_learning_from_scratch, for more details. πŸ”—

Structured Data

  • Classify Structured Data using Feature Columns on TF2.Keras: notebook
  • Classify Imbalanced Structured Data using TF2Data and TF2.Keras: notebook
  • Time Series Forecasting on Structured Data using TF2.Keras: notebook

Image / Space

  • Dataset Processing

  • Convolution Neural Network

    • CNN Basis and Batch Normalization: notebook
  • Image Classification

    • A CNN Example with Keras: notebook
    • Inference from a frozen model (using tfhub pretrained model): notebook
    • image retraining example based on pretrained models: notebook
    • A quick view of a TF2.Keras CNN model: notebook
    • A quick view of a CNN model with a Customized Layer via TF2.Keras and TF2.Core as well: notebook
    • Image classification model with data augmentation and overfitting prevention using TF2.keras: notebook
    • Training with Transfer Learning using TF2.Hub: notebook
    • Transfer Learning with Feature Extraction and Fine-Tuning using TF2.Keras: notebook
  • Object Detection

    The introduction of object detection algorithms and the implementations from scratch were moved to the new repository, jiankaiwang/object_detection_tutorial. πŸ”—

    We also introduce the Tensorflow Object Detection APIs for a shortcut of state-of-art model implementations. The content was moved to jiankaiwang/TF_ObjectDetection_Flow. πŸ”—

  • Image Segmentation

    • a Modified U-Net(a Semantic Network): notebook
    • Mask R-CNN
  • Depth Estimator

    • Monocular Depth Estimation
  • Dynamic Routing Between Capsules (CapsNet): notebook

Series / Sequence / Time

  • Data Preprocessing
  • Word Embedding
  • Text Classification
    • A quick view of implementing text classification via Tensorflow 2 with TF2.Keras as well: notebook
    • Advanced text classification with training embeddings using TF2Keras: notebook
  • Recurrent Neural Network
    • Seq2Seq for Part of Speech (Vanilla RNN): notebook
    • Static RNN vs. Dynamic RN: notebook
  • Seq2Seq Model
    • Character-based Text Generation using TF2Keras: notebook
    • From RNN to LSTM with the bidirectional architecture: notebook
    • Bidirectional Dynamic RNN + LSTM / GRU cell + Attention Mechanism using Tensorflow 1.0.0 notebook, or using Tensorflow 1.11.0 notebook, or using TF2Keras notebook
    • Using the Transformer architecture on TF2Keras: notebook
  • Differentiable Neural Computer (DNC)

    Differentiable Neural Computer (DNC) is a kind of enhanced neural cell-like LSTM and GRU. It enhances the memory mechanism to memorize more long-term information. The more details please refer to the repository, jiankaiwang/dnc-py3. πŸ”—

  • Emotion Analyzing (IMDB Dataset): notebook

Audio / Signal

  • Dataset Processing:
  • Word-based

    Word-level audio recognition is one of the most popular requirements in technical fields. Simple words like Up, Down, Hey, Siri! or OK, Google!, etc. are commonplace. The details about how to implement a word-level audio recognition were moved to a new repository jiankaiwang/word_level_audio_recognition (https://github.com/jiankaiwang/word_level_audio_recognition). πŸ”—

  • Phrase-based
  • Sentence-based
  • Environment Sound Classification: notebook

Images with Text or Space with Time

  • Image Captioning using Attention Mechanism using TF2Keras: notebook

Encoder / Decoder

Reinforcement Learning

Frameworks

ml5.js

ML5.js is the higher level API built on the top of Tensorflow.js. This tutorial had been moved to a new repository jiankaiwang/mljs.

Tensorflow.js

We provide you with more details about lower level API to machine learning or deep learning tasks. This tutorial had been moved to a new repository jiankaiwang/mljs. πŸ”—

Tensorflow 2.x: 2019 ~ Now

  • differences between version 1.x and 2.x
    • New Features to Datasets: notebook
    • New Features to the Eager Mode, TF functions, and Flow Controllers: notebook
    • New Features to TF.Data, KerasHub, and Model Building: notebook
    • Using tf.function and py_function in Advanced: notebook
  • Save and Load Models
    • Manipulation of SavedModel in TF2: notebook
    • Save and Load Models in TF2Keras: notebook
  • The whole flow
    • Using TF2.Keras on the Structured Dataset: notebook
    • Using TF2.Keras on Image Datasets: notebook
    • Using TF2.Keras and TF Core in advanced: notebook
  • The Manipulation of Datasets on Tensorflow 2:
    • Processed CSV Files with tf2.data APIs: notebook
    • Processed Numpy and Pandas Objects with tf2.data APIs: notebook
    • Processed Image Datasets with tf2.keras and tf2.data APIs: notebook
    • Processed Text Datasets with tf.data: notebook
    • Processed Unicode Text Datasets with tf.data: notebook
    • Processed TF.Text with tf.data: notebook
    • Processing TFRecord Files with tf.train.Example: notebook
  • Tensorflow Estimator(tf.estimator) on Tensorflow 2:
    • Premade Estimators: notebook
    • A Linear Model with TF.Estimator: notebook
    • A Simple Boosted Trees Model with TF.Estimator: notebook
    • Understanding Boosted Trees Model: notebook
    • Creating a TF.estimator Model From a TF.keras Model: notebook

Tensorflow 1.x: 2015 ~ Now

  • Basis Flow
  • Data Manipulation
    • manipulating the tfrecord format: notebook
    • tf.Data API
  • Tensorflow Estimators (tf.estimator)
    • a numeric example of Estimators APIs: notebook
    • an image example of Estimator APIs with serving example: notebook
  • Tensorflow Keras (tf.keras)

    The TF1.Keras APIs are similar to the official Keras APIs. However, there are some improvements in TF1.keras, e.g. for distributed training, etc. This section provides no more document or you can refer to jiankaiwang/distributed_training (https://github.com/jiankaiwang/distributed_training) πŸ”— and an updated version TF2.keras (Tensorflow 2.x).

  • Tensorboard: a visualization tool designed to monitor progesses
  • Distributed architecture:

    Distributed architecture helps engineers or scientists to scale up the serving capability or to speed up the training process. Now it is easy to deploy a scalable serving architecture via Tensorflow Serving. Here we put an emphasis on how to speed up the training process. We have transferred the whole content to a new repository, jiankaiwang/distributed_training (https://github.com/jiankaiwang/distributed_training). πŸ”—

  • Tensorflow Lite

    We moved this topic to a new repository, please refer to the repository jiankaiwang/aiot for more details. πŸ”—

    • API introduction and convertion: notebook
    • Advanced convertion and network editing via shell commands: notebook
    • A flow from convertion to doing an inference: notebook
  • Tensorflow Extended
    • Quick Start: markdown
    • Introduction to ExampleGen: notebook
    • Introduction to Tensorflow Data Validation (TFDV): notebook
    • Introduction to Tensorflow Transform (tft): notebook
    • Introduction to TFX Modeling
    • Introduction to Tensorflow Model Analysis (TFMA): notebook
    • Introduction to Tensorflow Serving:
      • Article: Run via Docker: markdown
      • Request a Restful API for the Numeric Prediction: notebook
      • request a Restful API for an Image Recognition: notebook
  • AdaNet
  • Convertion with other frameworks

Keras: Here Keras in Sophia is the official Python library supporting multiple backends and also only supporting Tensorflow 1.x, not tf.keras.

Simple Cloud-AI (SCAI)

Simple Cloud-AI (SCAI) is a simple Restful API server for AI image recognition. It provides a UI interface and two API services on the backend. Now it supports both image recognition and object detection tasks. You can also update your customized retained models no matter what it is coming from transfer learning or Tensorflow Object Detection API. In addition, you can integrate the APIs with your own service. You can refer to the repository, jiankaiwang/scai, for more details. πŸ”—

AI x Iot (aiot)

We integrate Raspberry Pi, Intel Movidius, and Jetson Tx2, etc. to an AIoT prototype architecture. We demonstrate how to use these integrated devices to do AI projects. Please refer to the repository jiankaiwang/aiot for more details. πŸ”—