AI-for-beginners-1_lab
Task
使用上一篇讲述到的代码做一个MNIST的手写数字分类的模型:能够做多类别分类来识别任何数字。
给train data和test data计算准确率,输出confusion矩阵
Hint
1、对每一个数字:创建一个二元分类器: this digit vs all other digit
2、给每一个数字创建不同的二元分类感受器
3、定义一个函数来分类输入的数字
如果外面将10个感受器的权重合到一个矩阵上,我们就能将10个感受器的结果通过一次矩阵乘法完成。最可能的数字将通过argmax操作输出出来
Think
前文Perceptron一节中我们构建了一个二元的分类器,即可以分辨两个数字的的神经网络,那么我们分辨10个数字的神经网络便在此基础上来改造
最直接的想法就是提示中给我们的思路:仍然使用一个二元分类器,用于分类这个数字和其他数字
于是乎答案呼之欲出了,我们仍然用一个特定的数字i来作为这个数字的数据,对于其他数字的数据,我们则将0~9中除了i以外的所有数字的数据混合在一起,就得到了其他数字的数据集,随后我们用同样的方法训练一个二元分类器,看上去我们的任务就将圆满完成了!! ...
AI-for-beginners_1
lesson/3-NeuralNetworks/03-Perceptron
分类问题(classification)
感知器(Perceptron)能够解决分类问题。从最简单的二元分类开始
1234567891011121314# 引入必要的库import pylabfrom matplotlib import gridspecfrom sklearn.datasets import make_classificationimport numpy as npfrom ipywidgets import interact, interactive, fixedimport ipywidgets as widgetsimport pickleimport osimport gzip# pick the seed for reproducability - change it to explore the effects of random variationsnp.random.seed(1)import random
构造数据
教程中为了方便理解,给数据赋予了实际含义:用两个指标来判 ...
AI-for-beginners_0
Background
之前学习李宏毅机器学习的视频课,感觉无穷无尽的视频很容易分散注意力,加之配课程要求的环境有一些阻力,演化成了只看不练的假把式,深思熟虑后认为李宏毅老师的课程不太适合我目前的学习状态。课程讲得固然清晰,但是奈何没法长时间集中注意学习。痛定思痛,找到了微软的AI-for-beginners课程,决定跟着每一讲快速过一遍知识点,把每一个lab做下去。
note:截止这一篇文章撰写的时候Suchan做了两讲的内容,发现:
李宏毅老师的课程将挺多知识点都讲解的十分透彻,自己在看课程的时候遇到的知识点都很快理解并往下做
微软共有三个AI的课程,分别是MachineLearning-for-beginners、AI-for-beginners以及generative-ai-for-beginners,遗憾的是,Suchan选中的AI-for-beginners没有中文教程,只能硬着头皮啃英文版
再次遗憾的是,Suchan找了挺多网站也没有找到AI-for-beginners里面Lab的solution,只能自己摸索(有找到的小伙伴麻烦评论分享一下呢)
ok废话少说,启动!
...
Machine_learning_1
李宏毅机器学习笔记(一)
问题种类:regression 、 classification 、 structuredLearning
$$
y = w * x + b (linear)
$$
训练合适的w和b
定义loss函数:
MAE: regression中预测值与label之间差的绝对值和
MSE: regression中预测值与label之间差的平方和
Cross-Entropy:classification中预测值与label的交叉熵
training:找到loss最小的feature
optimize
通常使用梯度下降法:对各个feature求偏导得到梯度,向梯度减小的方向修改参数
tips:对于斜率变化小的case,在梯度下降的过程中使用相同的步长将很难达到最优的loss。通常使用adam(pytorch自带)、冲量梯度下降法来优化
DNN
上述linear的方程没法预测更多一般的情况,通常采用多个ReLU函数或者Sigmoid函数来逼近真实的分布
sigmoid
$$y = b + \sum_i c_i sigmoid(y_j)$$
上式$y_j$也可以写 ...