课程名称:[中英字幕]吴恩达机器学习系列课程
课程内容:Machine Learning
课程网址:https://www.bilibili.com/video/BV164411b7dx/?p=18&spm_id_from=pageDriver&vd_source=ce1ba3c38b9d663ebfa5fce9f867c7e3
课程进度:10-12
10-1 决定下一步做什么
Avenue大街,途径,选择
Overfit过拟合
Literally字面上,简直,确实地
Technique方法
Machine learning diagnostic机器学习诊断法
Fruitful富有成效的
10-2 评估假设
Overfitting过拟合 underfitting欠拟合
Training set训练集 test set测试集
Training set和test set的比例7:3比基奥常见而且合适
数据集和测试集最好是随机选择以防止有特殊顺序的影响
Shuffle洗牌,打乱次序
采用线性回归和平方误差代价函数时如上
使用逻辑回归时如上
Misclassification error
0/1 misclassification error 0/1分类错误
10-3 模型选择和训练,验证,测试集
Model selection problems
Train,validation and test sets训练集,验证集和测试集
Linear function一次函数
Quadratic function二次函数
Cubic function三次函数
10th-order polynomial十次函数
Reiterate重申,反复地说
Cross validation交叉验证
Training set和validation set和test set的比例可以6:2:2比较typical
用验证集而不是数据集在待定模型中选择合适的模型,然后可以用省下的测试集来measure或者estimate the generalization error of the model that was selected by the algorithm算法选出的模型的泛化误差
10-4 诊断偏差与方差
Diagnosing bias诊断偏差
Variance方差
Curve曲线
High diagnosing bias problem是拟合得不好underfit,high variance problem是过拟合overfit
远大于
10-5 正则化和偏差,方差
把J subscript train,cv,test视作平均的误差平方和的一半,不带正则化项
Truncate截断,截短,缩短
10-6 学习曲线
Learning curve
Artificially人工地
J subscript cv和J subscript test的error都会随training set size的增大而减小
Plateau out保持不再变化 flatten out 在图表中的趋近于水平变化不增减趋势
High bias可以由较大的J subscript cv和J subscript train反映出来
Indicative指示的
训练集数据越多时,就越难把训练集数据都拟合好,但总的来说训练误差不大
Converge会聚,集中,汇集
增大训练样本数量,交叉验证集误差会下降。所以在high variance setting下使用更多的训练集数据对改进算法是有帮助的
10-7 确定接下来做什么
Fruitful富有成效的
High variance高方差
出现高方差问题时也就是交叉验证集误差cross validation error稍大于了训练集误差training set error
Try smaller sets of features不能解决high bias问题
Try getting additional features适合解决high bias问题因为选择的features模型可能有点简单了所以导致了underfitting
Prone易于遭受…的,有做…倾向的 be prone to do
Address overfitting修正过拟合
选择large neural network出现过拟合可以考虑使用正则化,比换成small neural network好
通常情况下默认选择一层隐含层比较好,但是也可以通过分割数据为三个集来测试一层两层三层等看J subscript cv比较哪个更好
11-1 确定执行的优先级
Machine learning system design
Touch on涉及,谈及,提及
Disjoint使脱节,使解体
Spam垃圾邮件
Alphabetical order字典序
X特征向量
Sophisticated复杂的
11-2 误差分析
Error analysis
Incredible难以置信的,极大的,极好的
Premature过早的,早产的,提前的,草率的
Inspire激励,鼓舞
Categorize分类
Deliberate故意的,蓄意的,存心的,从容不迫的
Exclamation感叹号,感叹,感叹词
Punctuation标点符号
Numerical evaluation数值评价
Stemming词干提取
Upper case大写 lower case小写
Distinguish区分,辨别,分清
Quick and dirty简单粗暴的
Metric度量标准
11-3 不确定性分类的误差评估
Error metrics for skewed classes
Skewed classes偏斜类 这种情况是一个类中的样本数和另一个类的数据相比多很多
如上图如果用机器学习算法,错误率为1%,但是用简单粗暴的恒等于零判断错误率为0.5%,这时并不能说明就是改的更好了
用classification accuracy分类精确度来判断算法好不好可能并不是最优选择,通过它不能确定我们是否真的在improving the quality of your classifier
Precision查准率
Recall召回率
True positive真阳性actual class为1 predicted class为1
True negative真阴性actual class为0 predicted class为0
False positive假阳性actual class为0 predicted class为1
False negative假阴性actual class为1 predicted class为0
Precision = true positive / predicted positive = true positive / (true positive+ false positive)
Recall = true positive / actual positive = true positive / (true positive + false negative)
Denominator分母
/ divided by
使用precision和recall可以帮助我们更好地判断classifier到底好不好
拥有高查准率high precision和高召回率high recall的classifier是好的classifier,即便是有倾斜率问题时也就是when the classes are very skewed,这对学习算法来说也是一种好的评估方法
通常把比较稀少的情况作为y=1来进行detect
11-4 精确度和召回率的权衡
Threshold门槛,阈,起点,开端
Conservative保守的,守旧的
阈值高会导致higher precision和lower recall
阈值低会导致higher recall和lower precision
Incorporate使并入,包含,合并,吸收
Sparingly很少,节俭地
F Score F值 F subscript 1 Score F1值
F值会考虑一部分precision和recall的平均值,但是会给二者中较低的一项更高的权重
目标是to automatically choose the threshold for your classifier
置信度
11-5 机器学习数据
Confusable易混淆的
Variance方差
Monotonically单调地,无变化地 monotonically increase单调增加
Inferior较差的,次的,较低的
Superior优越的,品质更好的
Desired希望实现的,期望得到的
选择low bias algorithm,可以使得J subscript train较小,这种parameter很多的情况,如果能做到training set更大的程度,也可以避免overfitting,此时J subscript train和J subscript test就是大约等同的了,这样J subscript test也就很小了,同时这种情况也可以做到low variance了
Ingredient组成部分,成分,原料,配料,要素,因素
如果能够have a lot of data并且train a algorithm with a lot of parameters那么这就是a good way to give提供 a high performance learning algorithm
12-1 优化目标
Optimization objective
其实往往需要重视的是数据量的大小而不是太过关注到底选用算法A还是算法B
Industry工业界
Academia学术界
Support vector machine支持向量机 supervised learning algorithm
上图右侧是sigmoid激活函数
Transpose转置
Conversely对应地
Denote代表,表示
上图表达式是每一个数据对cost function的贡献
当y=1时,尽量把e superscript -z这一项弄大一点,这样此时只有前一项起作用所代表的cost function值就相对很小了
Portion部分,一份
上图最右边一项是regularization parameter
Support vector machine相当于是把logistic regression的cost function里面的项替换了一下
最小化目标表达式乘除一个常数都没有影响
上图中把A+lambdaB转变为CA+B的写法只是support vector machine的默认惯例,C小就相当于B的权重大,可以把C视作1/lambda,C是常数
Optimize优化
Support vector machine不会output the probability,它是直接预测y=1还是y=0,与logistic regression求概率不同,support vector machine是直接分好类
12-2 直观上对大间隔的理解
Support vector machine有时也被称为Large margin classifiers
如上图,为了使cost function更小,我们需要对应地使theta superscript T * x在两种情况分别大于等于1,小于等于-1
SVM要求的不是说刚好能分出类就可以,是要求要更强烈地满足条件来分出类
Safety margin factor安全间距
Safety factor安全因子
如上图,目标是在C很大的情况下依然能够使得cost function很小,那么就等同于目标是把第一大项尽量变为0
Decision boundary决策边界
Linearly separable线性可分
线性可分就是存在一条直线或者说很多条直线能够把positive example正样本和negative example负样本完美地划分开
Margin间距
Margin of the support vector machine尽量把positive example和negative example以最大的间距分开,使得SVM有较好的robustness
The big large margin classifier大间距分类器是在C被设得非常大的情况下得出的
大间距分类器对异常点会比较敏感,可能会选出不是特别好的分隔线,这是把C设得比较大时的情况,如果把C设的小一点可能就能选出较好的分隔线,也就是说C扮演的角色其实和1/lambda是非常接近的,lambda就是我们之前用的regularization parameter正则化参数
如果数据不是线性可分linear separable的,SVM依然能够正确地进行分类
通过上图可以理解SVM是如何作为大间距分类器large margin classifier工作的,它会用尽可能大的间距将样本区分开
Sketch(n.)草图,素描,速写,概述(v.)概述,简述
在数学层面理解如何从优化问题延申到大间距分类器的
12-3 大间隔分类器的数学原理
Inner product内积
The inner product between u and v
Norm范数,规范,标准,定额,常态,行为标准,正常行为
Euclidean length欧几里得长度
Projection投影
上图p是signed有符号的
对于优化目标函数来说,SVM做的是minimizing参数向量theta的范数的平方或者说是长度的平方
上图中的Theta subscript 0=0意味着theta这条向量必须过原点,向量theta是垂直于decision boundary的
假设选取较差的分界线,那么为了满足p superscript I * theta范数的条件,在这种p superscript i较小的情况下,theta范数就需要很大,但是这与我们的目标也就是想theta范数尽量小矛盾了,所以SVM就不会选取这个较差的分界线。同理当选取了较好的分界线时,p superscript i就比较大一点,那么theta范数也就达到了尽量小的目的
总结地来看,当decision boundary的附近样本点尽可能少时,p superscript i就可以尽可能的大,此使theta范式就可以尽可能的小,此时1/2 * theta范式的平方也就是目标函数值就能尽可能的小,也就是选取了较好的decision boundary,达到了优化的目标,这时候出现的现象也就是large margin classifier
要注意,SVM所做的是在C很大的情况下,theta subscript 0不为0时,SVM仍然可以找出positive examples and negative examples之间的large margin separator大间距分隔,以上解释了为什么SVM是一个large margin classifier
12-4 核函数1
Kernel核
Pixel像素
Landmark标记点
Interceptor截击机,截距
Gaussian kernel高斯核函数
如上图的这种相似度函数similarity functions就是核函数kernels
Kernel核函数 缩写表达为k(x, l superscript 1)
Numerator term分子项
Exp( )表示e的( )次方 e to the ( )
Quantifiable plot等高线图
用landmarks和kernel function来训练出pretty complex non-linear decision boundary
12-5 核函数2
Pertain适用,存在
关于选取landmark,可以样本点在哪里标记点landmark就取哪里,这些样本点可以是training set的也可以是cross validation set的也可以是test set的
By convention按照惯例
通常人们会选择theta transpose M theta来代替进行计算,这个M是人为制定的矩阵取决于核函数,这是另一种略有区别的距离度量方法distance metric,我们用这个来代替theta的模的平方,这意味着我们minimize了一种类似的度量,这使得SVM能run much more sufficiently,这样SVM能应用更大的training set,因为如果training set太大了,不用这种方法那么要计算的矩阵维度就太大了,这种方式主要是为了computational efficiency
Matrix矩阵
Rescale缩放,重新调整
Kernel并不能很好地从SVM推广到其他算法如linear regression
Invert倒转,转置,颠倒
The bias and variance trade off偏差-方差折中
SVM中的C的选择和高斯核函数中的sigma squared是需要优化的
Sigma如果很大,那么函数变化不明显,随着x的变化,结果浮动不大,所以这种情况是higher bias, lower variance,sigma如果很小则结果相反
12-6 使用SVM
Call some library functions
Similarity function相似函数也就是kernel
Linear kernel或者说no kernel也就是没有使用kernel的SVM,kernel主要是用于non-linear
如果有大量的features和很少的training set,也许就只想拟合一个linear decision boundary线性的判定边界了,而不是去拟合一个非常复杂的nonlinear function,因为没有足够的数据可能会过拟合,比如在一个非常复杂的高维特征空间尝试拟合非常复杂的函数时如果training set sample太小的这种情况
如上图sigma squared如果较大,可能higher bias and lower variance,如果较小,可能就会有higher variance and lower bias的classifier
如果features比较少,training set sample比较多,需要拟合complex nonlinear decision boundary,适合选择gaussian kernel高斯核函数
Do perform feature scaling进一步地缩放比例
为了考虑到所有的features在一起进行计算,需要进行归一化,采取适当的缩放
Mercer’s Theorem墨塞尔定理 确保所有的SVM 包,所有的SVM软件包能够用大类的数值优化方法并从而快速得到参数theta
Polynomial kernel多项式核函数 有两个参数 通常用在数据都是严格的非负数时,也就是如上图中的x transpose和l,保证内积是非负数。这样当x和l接近时,它们之间的内积会很大
其他复杂得核函数分别用于不同的场景,比如字符串核函数用于文本识别,卡方核函数等
多分类问题要使用SVM可以直接调库,也可以沿用logistic regression时采取的one versus all得到最优的theta
如果features远大于training set,比如垃圾邮件问题有非常多的单词特征,但是邮件可能只有几份,通常使用logistic regression或者SVM without a kernel(linear kernel),因为样本少,线性拟合不错而且很难拟合出复杂的非线性函数
如果features不是远大于training set,使用SVM with Gaussian kernel比较合适
如果features远小于training set,SVM with Gaussian kernel会运算的比较慢,这种情况更适合先添加一些features再使用logistic regression或者SVM without a kernel
Logistic regression和SVM without a kernel其实是比较相似的,往往结果比较接近,只是在某些情况下会有差别
Neural network其实比较不错,但是有时训练起来太慢了
SVM有一种convex optimization problem凸优化问题,所以好的SVM packages总是会找到全局最小值或者接近它的值,所以对于SVM我们不需要担心局部最优local optima
在实际应用中,对于neural network来说局部最优不是一个特别大的问题