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.
- Principal Components Analysis (PCA): Rscript, RPubs
- Factor Analysis (FA): Rscript, RPubs
- Multidimensional Scaling (MDS)
- Linear Discriminate Analysis (LDA): Rscript, RPubs
- Quadratic Discriminate Analysis (QDA): Rscript, RPubs
- Singular Value Decomposition (SVD): notebook
- t-SNE
- Linear Regression: Rscript, RPubs
- Logistic Regression: Rscript, RPubs
- Multinomial Logistic Regression Model: Rscript, RPubs
- Cox Regression: Rscript, RPubs
- Regression via TF2Keras: notebook
- K-nearest neighbor (KNN): Rscript, RPubs
- Neighbor Joining: Markdown, webpage
- Neural Network: Rscript, RPubs
- Supported Vector Machine (SVM): Rscript, RPubs
- Random Forest: Rscript, RPubs
- Naive Bayes and Bayes Network: Rscript, RPubs
- CHAID for Decision Tree: Rscript, RPubs
- K-means: Rscript, RPubs
- Hierarchical Clustering: Rscript, RPubs
- Fuzzy C-Means: Rscript, RPubs
- Self-Organizing Map (SOM): Rscript, RPubs
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. π
- Classify Structured Data using Feature Columns on
TF2.Keras
: notebook - Classify Imbalanced Structured Data using
TF2Data
andTF2.Keras
: notebook - Time Series Forecasting on Structured Data using
TF2.Keras
: notebook
-
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
andTF2.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
andFine-Tuning
usingTF2.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
- Data Preprocessing
- Word Embedding
- Text Classification
- Recurrent Neural Network
- 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
- Character-based Text Generation using
- 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
- 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!
orOK, Google!
, etc. are commonplace. The details about how to implement a word-level audio recognition were moved to a new repositoryjiankaiwang/word_level_audio_recognition
(https://github.com/jiankaiwang/word_level_audio_recognition). π - Phrase-based
- Sentence-based
- Environment Sound Classification: notebook
- Image Captioning using Attention Mechanism using
TF2Keras
: notebook
- Vanilla GAN using Keras: notebook
- Multiple Generator GAN: notebook
- Introduction to Neural Style Transfer: notebook on TF2Keras
- Introduction to DeepDream: notebook on TF2Keras
- Introduction to DCGANs Using TF2Keras: notebook
- Pix2Pix with Conditional GANs and PatchGANs: notebook
- BigGAN From TF.Hub: notebook
- Introduction to CycleGAN: notebook
- Adversarial examples using FGSM: notebook
- Basis Concept: notebook
- Introduction to OpenAI Gym: pyscript
- Policy Learning (PoleCart): notebook, pyscript
- DQN (Value Learning, Breakout): notebook, pyscript
ML5.js
is the higher level API built on the top ofTensorflow.js
. This tutorial had been moved to a new repository jiankaiwang/mljs.
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
- Save and Load Models
- The whole flow
- 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
andtf2.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 withtf.train.Example
: notebook
- Processed CSV Files with
- Tensorflow Estimator(
tf.estimator
) on Tensorflow 2:
Tensorflow 1.x: 2015 ~ Now
- Basis Flow
- Data Manipulation
- manipulating the
tfrecord
format: notebook tf.Data
API
- manipulating the
- Tensorflow Estimators (
tf.estimator
) - Tensorflow Keras (
tf.keras
)The
TF1.Keras
APIs are similar to the official Keras APIs. However, there are some improvements inTF1.keras
, e.g. for distributed training, etc. This section provides no more document or you can refer tojiankaiwang/distributed_training
(https://github.com/jiankaiwang/distributed_training) π and an updated versionTF2.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. π
- Tensorflow Extended
- AdaNet
- Convertion with other frameworks
- Convertion with Onnx: notebook
Keras: Here Keras in Sophia is the official Python library supporting multiple backends and also only supporting Tensorflow 1.x, not tf.keras
.
- Basis workflow using CNN: notebook, webapge
- Editing Network and Convert to TFLite: notebook, webpage
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. π
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. π