maching learning入门(一)
ml入门(一)powered by @李宏毅
第一课(机器学习总览)
ml基本步骤
1 找出一个function set
2 让maching拥有衡量一个function好坏的能力
loss function L:
input: a function output: how bad it is
for example: square error
3 使用一个好的演算法挑出最好的那个function
find a function with min loss
f* = argmin L(f)
ml category
supervised learning // learning from teacher
1 regression
the output of the target function f is ‘scalar’
2 classification
binary classification
the output of the target function f is ‘Yes or No’
multi-class classification
the output of the target function f is one of the ‘class1, class2, … classN’
structured learning
the output of the target function f is a structural output
semi-supervised learning
transfer learning
unsupervised learning
reinforcement learning // learning from critics
第二课(regression)
gradient descent
1 for example
linear model y = w*x + b; w为权值,b为偏差, 目标是利用梯度下降求得最佳参数w和b;
// ps: 所谓线性模型是指,函数的参数对于输出来说是否为线性;
w*, b* = argmin L(w, b)
# consider loss function L(w, b) with two parameter w, b:
first: (Randomly) pick an initial value w0, b0
second: 分别为w,b在w=w0,b=b0的下求偏导
third: if the value is negative w1 = w0-r(@L/@w|w=w0,b=b0), b1 = b0-r(@L/@b|w=w0,b=b0)其中r称为学习比率(@暂且代表求偏导符号)
four: loop second to third
five: get average error 每个点到所求出的损失函数的距离之和的平均值
last: get best w, b
// ps: 此处的best不一定代表的为global min, 有可能在某一点偏导数都为0但却不是global min。
2 learning rate
rate太大loss可能会快速增大,rate太小可能收敛速度很慢
rate选取的解决办法
1 使用动态rate,每一次迭代都根据固定公式减小rate, 因为越到后面rate应该越小,精确度才会更高
2 不同的参数给予不同的learning rate
计算rate的方法
1 adagrad .
每次计算所有example的loss, 之后更新参数
3 stochastic gradient descent
每次只考虑一个example,算完一个example的loss就更新一次参数
4 feature scaling
由于各个特征的输入值不同,单位不同,导致每个特征参数的改变对loss的影响都不同,所以需要
将输入值进行标准化,使得所有特征参数的改变对loss的影响相同或者相差不大。
5 overfitting(过拟合) // 在train_data上的效果好,但是在test_data上效果很差
ps: overfitting是由于variance过大造成的,bias过大造成underfitting
6 regularization(目的在于寻找更加平滑的函数,防止过拟合)
通常做法为在损失函数后加上一项约束项,权重的绝对值大小就会整体倾向于减小,尤其是不会出现特别大的值
第三课(error)
训练之后的使用L()求出error来自于biase和variance,知道错误的来源往往可以准确地improve model
ps: model越复杂biase越小,variance越大。model越简单biase越大,variance越小
如何确定error来源
1 如果模型不能fit训练数据,代表bias大
可能需要去重新设计model(考虑更多的feature或者让model更加复杂)
2 如果模型较好地fit了训练数据,但是在测试数据上错误很大,代表variance很大
1 可以加大训练数据量(非常有效但是并不是每一次都有用)
2 regularization
第四课(classification)
贝叶斯分类
利用先验概率和联合概率分布求出后验概率(即每次输入数据在各个分类下的概率,概率最大的即为当前预测分类)
1 每一个类别拥有自己的协方差
在高斯分布(假设)下计算条件概率p(A|B)
2 共用一个协方差
3 sigmoid函数变换过程
sigmoid函数详解 https://blog.csdn.net/chinagreenwall/article/details/81113539
第五课(logistic regression)
交叉熵
概念详解 https://blog.csdn.net/tsyccnh/article/details/79163834
判别式模型与生成式模型
判别式模型(Discriminative Model)是直接对条件概率p(y|x;θ)建模。常见的判别式模型有 线性回归模型、线性判别分析、支持向量机SVM、神经网络等。
生成式模型(Generative Model)则会对x和y的联合分布p(x,y)建模,然后通过贝叶斯公式来求得p(yi|x),然后选取使得p(yi|x)最大的yi
multi-class classification
ps: softmax // 将多分类的输出数值转化为相对概率
概念 https://blog.csdn.net/red_stone1/article/details/80687921
limitation of logistic regression // 无法对线性不可分数据进行分类
// 异或问题 example
[0, 1], [1, 0]为class1
[1, 1], [0. 0]为class2
// 在二维平面上是无法利用直线将不同的类别划分的
ps: 可以使用feature transformation解决此类问题,即利用神经网络!!!
maching learning入门(一)相关推荐
- maching learning入门(六)
ml入门(六)powered by @李宏毅 第十五课(Reinforcement Learning) 让机器根据不同的action将会得到不同的response,可能是不好的,也可能是好的.rein ...
- maching learning入门(五)
ml入门(五)powered by @李宏毅 第十三课(RNN,recurrent neural network,循环神经网络) 全连接神经网络和卷积神经网络他们都只能单独的取处理一个个的输入,前一个 ...
- maching learning入门(四)
ml入门(四)powered by @李宏毅 第十课(迁移学习) 迁移学习要解决的问题是:假设现在手上有与task不直接相关的data,这些data能否帮助我们完成task呢? 比如现在要做猫狗的分类 ...
- maching learning入门(三)
ml入门(三)powered by @李宏毅 第七课(cnn) 1 keras example from keras import Convolution2D, Dense, models, MaxP ...
- maching learning入门(二)
ml入门(二)powered by @李宏毅 第六课(deep learning) 一 前向传播和反向传播 概念详解 https://blog.csdn.net/bitcarmanlee/articl ...
- deep learning入门学习
根据知乎的一些大牛的回答总结出的deep learning入门学习的一些material: BE NOTED THAT SOME VIDEOS ARE ON YOUTUBE! I BELIEVE TH ...
- 强化学习(Reinforcement Learning)入门学习--01
强化学习(Reinforcement Learning)入门学习–01 定义 Reinforcement learning (RL) is an area of machine learning in ...
- Maching Learning 学习资料
A星(A*, A Star)算法详解 CSDN技术主题月----"深度学习"代码笔记专栏 UC Berkeley CS188 Intro to AI 本文转自博客园Grandyan ...
- 【机器学习基础】Self-Supervised Learning入门介绍
引子 最近 self-supervised learning 变得非常火,首先是 kaiming 的 MoCo 引发一波热议,然后最近 Yann 在 AAAI 上讲 self-supervised l ...
最新文章
- 天天都会写接口(interface),但它的用途和好处有多少人能说得清楚?
- OPA4377低噪声5.5MHz带宽CMOS运放
- 第6章 I/O复用 select 和 poll 函数
- linux7怎么查看rsync状态,linux – Rsync显示单个文件的进度
- 【数据竞赛】2020 Kaggle 10大竞赛方案汇总
- 虚拟机下Linux网络配置
- Nginx服务的信号控制
- WEBAPI 增加身份验证 (OAUTH 2.0方式)
- 老板眼中理想的“数据中台”,是不是真的存在?
- (25)npm scripts 实践—构建脚本文件
- BeautifulSoup解析库select方法实例——获取企业信息
- 高等数学问题的符号解
- HTML5制作个人简历模板
- python源码剖析_Python源码剖析 深度探索动态语言核心技术
- mac 爱普生打印机驱动_爱普生l301打印机驱动Mac版-爱普生L301驱动Mac版下载 V9.31-PC6苹果网...
- 【每日一题(26)】初等排序算法(3) 插入排序 希尔排序 (更正)
- 旧物手工机器人制作图片_自制送给小朋友的生日礼物,DIY帅气的不织布机器人...
- PLSQL工具连接Oracle
- 计算机专业就业前景分析
- JAVA工具类-根据身份证进行性别和年龄计算