• (機械學習於工業的應用) 機械學習與數據分析於化工的應用 (Machine Learning and Data Analysis in Chemical Engineering Applications)

    • More and more intelligent services are being introduced for industrial applications, bringing in a new era of information society. Machine Learning (or Deep Learning) is the technology leading this wave of intelligence. This course is designed to provide a thorough grounding in the fundamental methodologies, technologies, mathematics and algorithms of machine learning. The topics of the course draw from classical statistics, from machine learning, from data mining, from Bayesian statistics, and from statistical algorithmic. To avoid giving too many theoretical concepts behind machine learning, a step-by-step approach can help students understanding the basic concepts. we emphasize more on practical code examples and work through example applications.

    • The course requires basic knowledge in principles of chemical engineering, numerical methods, probability, statistics, calculus, optimization and some computer programming experience,  although it certainly is advantageous to have prior exposure--not strictly required.
    • (Spring 2023) Class Meeting Times: MON (12:10-13:00, WebEx), FRI (13:10~15:00, 工419)
    • Office hours:  WED (10:00~12:00)
    • Course Structure:
      • (2-14-2023)
        • To schedule the class meeting
      • (2-18-2023) & (2-20-2023)
        • From  chemical engineering applications to fundamental machine learning and data analytics
      • (2-24-2023)
        • Giving Computers the Ability to Learn from Data
        • Python 3 Installation & Basic Guide
        • Learning Python (Anaconda Python) 
      • (3-3-2023)
        • Python Mini Course
        • Giving Computer the Ability to Learn from Data
          • Three types of machine learning
      • (3-6-2023)
        • Training Simple Machine Learning Algorithms for Classification: Perceptron in Python
        • HW0: Steady State Simulation of CSTR
      • (3-10-2023)
        • Training Simple Machine Learning Algorithms for Classification: Adaline in Python
          • Batch Gradient Descent
          • Stochastic Gradient Descent (Shuffle)
          • Feature Scaling
      • (3-13-2023)
        • Scikit-learn: Perceptron
        • HW1: Process Modeling, Simulation, and Data Generation
      • (3-17-2023)
        • Modeling Class Probabilities via Logistic Regression
        • \Logistic Regression in Python
        • Scikit-learn: Logistic Regression
      • (3-18-2023)
        • Tacking Overfitting via Regularization
      • (3-20-2023)
        • Support Vector Machines (SVM)
        • SVM with Slack Variables
        • Scikit-learn: SGDClassifier (perceptron, log, hings)
        • HW2: Classification
      • (3-24-2023)
        • Kernel SVM
        • Scikit-learn: SVC
        • Decision Tree Learning: Information Gain, Impurity
        • Random Forest
      • (3-27-2023)
        • K-nearest Neighbor (Lazy Learning)
        • Compressing Data: Feature Selection and Feature Extraction
        • Principal Component Analysis in Python and in Scikit-learn
      • (3-31-2023)
        • Linear Discriminate Analysis in Numpy and in Scikit-learn
      • (4-7-2023)
        • Kernel Principal Component Analysis in Scikit-learn
        • HW3: Compression & Classification
      • (4-10-2023)
        • Regression analysis
          • Visualization
          • Linear regression
      • (4-14-2023)
        • Regression analysis
          • Linear regression
          • OLS (Ordinary Least Squares)
          • Robust regression (RANSAC)
      • (4-17-2023)
        • Regularized method for regression
        • Nonlinear relationships using random forest
      • (4-21-2023)
        • Multilayer artificial neural network
        • Forward propagation
      • (4-28-2023)
        • Backpropagation algorithm in Numpy
        • Neural network training with Tensorflow
      • (5-1-2023)
        • Tensorflow
          • Creating tensor
          • Manipulating data type and shape of a tensor
          • Math operations to tensors
          • Split, Stack, Concatenate tensors
          • Creating a Tensorflow dataset
          • Shuffle, batch and repeat
      • (5-5-2023)
        • Building an NN model in Tensorflow: A simple linear regression model
        • Model training via .compile() and .fit() methods
        • Model evaluating via .evaluate() method
        • Saving and reloading the trained model
      • (5-8-2023)
        • The key features of Tensorflow
        • Tensorflow's computation graphs: from Tensorflow v1 to v2
        • Function decorators
      • (5-12-2023)
        • Tensorflow variable objects
        • Automatic differentiation and Gradient Tape: trainable variables and non-trainable variables
        • Implementations of common architectures via Keras API
        • Making model building more flexible with Keras' functional API
      • (5-15-2023)
        • HW4: Regression Analysis in Tensorflow
        • TensorFlow estimator
        • Working with different features: continuous, unordered categorical (nominal), and ordered
      • (5-22-2023)
        • Using estimators for MNIST handwritten digit
        • Creating a custom Estimator from an existing Keras model
      • (5-26-2023)
        • Sequential data
        • Recurrent neural networks (RNN)
        • TBPTT
      • (5-29-2023)
        • HW5: Dynamic process modeling in RNN
        • LSTM
        • GRU
        • Modeling reinforcement learning problem: Markopv decision processes
      • (6-2--2023)
        • Modeling reinforcement learning problem: Markopv decision processes
        • N-armed bandit problem
        • Exploration versus exploitation
        • Epsilon-greedy strategy
        • Softmax selection policy
      • (6-5-2023)
        • States, actions and rewards
        • Neural network model as the action-value function
        • Markov property
      • (6-9-2023)
        • Q function
        • Counteracting catastrophic forgetting with experience replay
        • Improving learning stability with target networks
      • (6-15-2023)
        • Oral presentations
    • Homework: Python would be used for the programming portions of the assignments. During the first week, a tutorial session would be hosted to jump-start your transition into working in Python
      • (3-06-2023) HW#0: Steady State Simulation of CSTR in Python (Due: 3-18-2023)
      • (3-24-2023) HW#1: Data generation of CSTR (Due: 3-24-2023)
      • (3-24-2023) HW#2: Simple Classification (Different operating conditions of CSTR) (Due: 4-7-2023)
      • (4-07-2023) HW#3: Compression &  Classification (Different operating conditions of CSTR) (Due: 4-28-2022)
      • (5-15-2023) HW#4: Regression Analysis in Tensorflow (Due: 6-09-2023)
      • (5-29-2023) HW#5: Dynamic process modeling in RNN (Due: 6-14-2022)
    • Grading Distribution
      • No quiz and exam will be given. Several homework will be assigned. Homework will be assigned periodically. The homework will consist of applying one of the techniques design methods presented in the course to a problem chosen by students. Analysis and simulation will be expected. Hope that these applications can inspire your fantasy, which contributes to new applications of these techniques in chemical problems or other fields
      • Homework (four to five times): 65%
      • Project: 20%
      • Class activity (Q&A and presentation): 15%
      • Note that late assignments will not be allowed unless a legitimate reason (illness, religious convention, etc) exists and is discussed with the instructor.
    • Grades