简介:
学习目标
1. 掌握机器学习中必备的数学知识
2. 理解并实现基本的机器学习算法
3. 能够使用典型的机器学习库完成分类、回归和预判
4. 掌握机器学习模型的评价和优化方法
5. 了解和掌握深度神经网络的设计方法
6. 能够使用TensorFlow实现典型的深度神经网络和卷积神经网络
适用人群
对机器学习、深度学习等感兴趣的技术人员
预备知识
熟练掌握Python基本语法
工具和平台
1. Visual Studio Code
2. Python及:numpy, scipy,scikit-sklearn, matplotlib
3. TensorFlow for Python
4. 数据集:MNIST、CIFAR-10
课程安排
计划共14次课,每次课程约90分钟
第一次课:数学基础(一)
- numpy.array的典型操作
- 向量、矩阵的dot和*运算
- 概率分布和随机数
- 函数求导及链式法则
- 求和公式导数计算
- 拉格朗日乘子法和凸优化
第二次课:数学基础(二)
- 矩阵和向量的求导
- 链式求导法则的图解法
- 求解函数极值
- 基本统计量:偏差、方差、标准差、协方差、相关性
第三次课:数学基础(三)
- 最小二乘法推导及Analytic解法
- 最小二乘法的Numeric解法:梯度下降算法
第四次课:数学基础(四)
- 梯度下降算法的Python实现
- 使用scipy.optimize求解普通函数极值
- 使用sklearn.linear_model.LinearRegression实现一元线性回归
- 一元线性回归的梯度下降算法实现
第五次课:线性回归
- 线性回归的效能评价
- 使用sklearn.linear_model.LinearRegression实现多元线性回归
- 多元线性回归的梯度下降算法实现
- 数据归一化(Normalization)
- 超参数:Learning Rate
- 非线性拟合(高阶拟合)的线性处理
- 欠拟合(Underfit)和过拟合(Overfit)
第六次课:逻辑回归
- 使用sklearn.linear_model.LogisticRegression实现二分类
- 二分类的梯度下降算法实现
- 模型正则化(Regularization)
- 使用sklearn.linear_model.LogisticRegression实现多分类
- 多分类的自定义实现
- Validation和Cross Validation
- 超参数:λ
- 模型效能评价:F1 Score
第七次课:凸优化
- 距离计算
- 拉格朗日乘子法
- 凸优化
- 使用scipy.optimize求解带约束条件的函数极值
- 使用sklearn.svm实现二分类
- SVM的优化目标
- 使用凸优化求解SVM目标函数
- 核函数的作用和工作方式
- 使用sklearn.svm实现多分类
- 使用sklearn.neighbors.NearestNeighbors实现分类
- KNN的自定义实现
- 超参数:K
- 交叉验证
- 使用sklearn.cluster.KMeans实现无监督学习的分类
- K-Means算法的自定义实现
- 条件概率和贝叶斯公式
- 朴素贝叶斯方法与文本信息分类
- 朴素贝叶斯文本信息分类的自定义实现
- 使用sklearn.naive_bayes.MultinomialNB实现文本信息分类
- 信息熵的计算
- ID3算法的Step By Step演示
- 决策树特征的预处理:数值化和向量化
- 决策树的自定义实现
- 使用sklearn.tree.DecisionTreeClassifier
- 使用sklearn.ensemble.RandomForestClassifier
- 随机森林的自定义实现
- 神经网络的前向传播计算
- 使用sklearn.neural_network.MLPClassifier实现手写图片分类识别
- cifar-10数据集
- mini-batch
- SVM线性分类器
- Softmax线性分类器
- 神经网络反向传播算法原理
- 神经网络的自定义实现
- 激活函数
- 数据预处理考量
- 权重初始化考量
- Batch Normalization
- 梯度更新策略
- Dropout
- 使用模块化的全连接神经网络实现图像分类
- 图像过滤器
- 卷积层计算
- 池化层计算
- 全连接层
- 典型图像分类卷积神经网络的层次结构
- 卷积神经网络的自定义实现
- TensorFlow使用入门
- 使用TensorFlow完成典型的机器学习任务
- 使用TensorFlow简化卷积神经网络代码编写
- 使用卷积神经网络实现图像分类